@font-face{font-family:'Fraunces';font-style:normal;font-weight:100 900;font-display:swap;src:url('fonts/fraunces-latin-wght-normal.woff2') format('woff2')}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:100 900;font-display:swap;src:url('fonts/fraunces-latin-wght-italic.woff2') format('woff2')}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('fonts/instrument-sans-latin-wght-normal.woff2') format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:100 800;font-display:swap;src:url('fonts/jetbrains-mono-latin-wght-normal.woff2') format('woff2')}
.gzl{--accent:#7DF0C0;--bg:#0B1410;--surface:#0D1A13;--text:#E8EFE6;--line:#1e3328;--line2:#356148;--muted:#b8c8bd;--soft:#d6e1da;--ink:#06130d;--gutter:clamp(18px,4vw,72px);
--serif:'Fraunces',Georgia,'Times New Roman',serif;--sans:'Instrument Sans',system-ui,-apple-system,'Segoe UI',sans-serif;--mono:'JetBrains Mono',ui-monospace,Menlo,monospace;
position:relative;background:var(--bg);color:var(--text)!important;font-family:var(--sans);font-size:17px;line-height:1.6;overflow-x:hidden;-webkit-text-size-adjust:100%} .gzl *,.gzl *::before,.gzl *::after{box-sizing:border-box} .gzl a{color:inherit!important;text-decoration:none} .gzl h1,.gzl h2,.gzl h3,.gzl p,.gzl ul,.gzl dl,.gzl dd,.gzl figure{margin:0;padding:0} .gzl ul{list-style:none} .gzl img,.gzl svg{max-width:100%} .gzl em{font-style:italic;color:var(--accent)!important} .gzl :focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px} .gzl .wrap{width:100%;max-width:1560px;margin:0 auto;padding:0 var(--gutter)} .gzl .narrow{max-width:980px} .gzl .sec{padding:clamp(64px,10vw,128px) 0;position:relative} .gzl .sec--alt{background:var(--surface);border-block:1px solid var(--line)} .gzl .eyebrow{font-family:var(--mono);font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)!important;margin-bottom:14px} .gzl .h1{font-family:var(--serif);font-weight:300;font-size:clamp(40px,7vw,86px);line-height:1.04;letter-spacing:-.02em} .gzl .h2{font-family:var(--serif);font-weight:300;font-size:clamp(30px,4.6vw,56px);line-height:1.1;letter-spacing:-.015em} .gzl .lead{color:var(--soft)!important;font-size:clamp(17px,2vw,20px);max-width:960px;margin-top:18px} .gzl .head{margin-bottom:clamp(32px,5vw,56px)} .gzl .mono{font-family:var(--mono)} /* For readability: builder styles must not override text colors */ .gzl,.gzl p,.gzl li,.gzl span,.gzl div,.gzl h1,.gzl h2,.gzl h3,.gzl h4,.gzl dt,.gzl dd,.gzl strong,.gzl b,.gzl blockquote,.gzl figcaption,.gzl small{color:var(--text)!important} .gzl a{text-decoration:none!important} .gzl p{opacity:1} /* Buttons */ .gzl .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 26px;border-radius:999px;border:1px solid transparent;font:600 15.5px/1 var(--sans);cursor:pointer;transition:transform .3s,box-shadow .3s,border-color .3s,color .3s;white-space:nowrap} .gzl .btn--p{background:linear-gradient(135deg,#16966a,#0f7a55);color:#fff!important;border-color:rgba(125,240,192,.55);text-shadow:0 1px 1px rgba(0,0,0,.25)} .gzl .btn--p:hover{transform:translateY(-2px);box-shadow:0 12px 40px -10px var(--accent);border-color:var(--accent)} .gzl .btn--g{border-color:var(--line2);color:var(--text)!important;font-weight:500} .gzl .btn--g:hover{border-color:var(--accent);color:var(--accent)!important} .gzl .btn--lg{padding:18px 34px;font-size:16.5px} /* Hero */ .gzl .hero{position:relative;min-height:min(92vh,860px);display:flex;align-items:center;overflow:hidden;border-bottom:1px solid var(--line);background:radial-gradient(ellipse 70% 60% at 70% 40%,rgba(125,240,192,.09),transparent 70%)} .gzl .hero canvas{position:absolute;inset:0;width:100%;height:100%;display:block} .gzl .hero__in{position:relative;z-index:2;padding-block:clamp(48px,8vw,96px);pointer-events:none} .gzl .hero__in a,.gzl .hero__in .btn{pointer-events:auto} .gzl .badge{display:inline-flex;align-items:center;gap:10px;padding:8px 16px;border:1px solid var(--line2);border-radius:999px;font-family:var(--mono);font-size:12.5px;letter-spacing:.06em;color:var(--soft)!important;background:color-mix(in srgb,var(--bg) 70%,transparent);margin-bottom:26px} .gzl .badge i{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent);animation:gzl-pulse 2.4s infinite} .gzl .hero .lead{max-width:720px} .gzl .award .lead{max-width:none} .gzl .cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px} .gzl .stats{display:flex;flex-wrap:wrap;gap:28px 48px;margin-top:clamp(36px,6vw,64px);padding-top:26px;border-top:1px solid var(--line);max-width:680px} .gzl .stat b{display:block;font-family:var(--serif);font-weight:300;font-size:clamp(28px,4vw,40px);color:var(--accent)!important;line-height:1.1} .gzl .stat span{font-size:13.5px;color:var(--muted)!important} .gzl .rise{opacity:0;transform:translateY(24px);animation:gzl-rise .9s cubic-bezier(.2,.7,.2,1) forwards} .gzl .d1{animation-delay:.1s}.gzl .d2{animation-delay:.25s}.gzl .d3{animation-delay:.4s}.gzl .d4{animation-delay:.55s}.gzl .d5{animation-delay:.7s} @keyframes gzl-rise{to{opacity:1;transform:none}} @keyframes gzl-pulse{0%{box-shadow:0 0 0 0 rgba(125,240,192,.5)}70%{box-shadow:0 0 0 10px transparent}100%{box-shadow:0 0 0 0 transparent}} /* Marquee */ .gzl .mq{border-bottom:1px solid var(--line);background:var(--surface);overflow:hidden;padding:18px 0} .gzl .mq__t{display:flex;gap:56px;width:max-content;animation:gzl-mq 38s linear infinite} .gzl .mq__t span{font-family:var(--mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)!important;white-space:nowrap} .gzl .mq__t span::before{content:"✦";color:var(--accent)!important;margin-right:56px} @keyframes gzl-mq{to{transform:translateX(-50%)}} /* Reveal */ .gzl.js .rv{opacity:0;transform:translateY(30px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)} .gzl.js .rv.in{opacity:1;transform:none} .gzl.js .rv.in.s1{transition-delay:.08s}.gzl.js .rv.in.s2{transition-delay:.16s}.gzl.js .rv.in.s3{transition-delay:.24s} /* Cards */ .gzl .grid{display:grid;gap:22px;grid-template-columns:repeat(4,minmax(0,1fr))} .gzl .card{position:relative;display:flex;flex-direction:column;gap:14px;padding:26px;background:var(--surface);border:1px solid var(--line);border-radius:26px;overflow:hidden;transition:transform .45s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .45s} .gzl .sec--alt .card{background:var(--bg)} .gzl .card::before{content:"";position:absolute;inset:-1px;border-radius:inherit;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),rgba(125,240,192,.14),transparent 45%);opacity:0;transition:opacity .35s;pointer-events:none} .gzl .card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 30px 70px -30px rgba(125,240,192,.35)} .gzl .card:hover::before{opacity:1} .gzl .card__ic{width:52px;height:52px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent)!important} .gzl .card__tag{position:absolute;top:20px;right:20px;padding:4px 12px;border-radius:999px;background:#0f7a55;color:#fff!important;font-size:11.5px;font-weight:700;letter-spacing:.04em} .gzl .card__tag--soon{background:transparent;border:1px solid var(--line2);color:var(--soft)!important} .gzl .card h3{font-family:var(--serif);font-weight:400;font-size:23px;line-height:1.2;hyphens:manual;-webkit-hyphens:manual;overflow-wrap:normal} .gzl .card__sub{font-family:var(--mono);font-size:12.5px;color:var(--muted)!important} .gzl .card p{color:var(--muted)!important;font-size:15px;flex:1} .gzl .card__more{color:var(--accent)!important;font-size:14.5px;font-weight:600;display:inline-flex;gap:8px;align-items:center} .gzl .card__more::after{content:"→";transition:transform .3s} .gzl .card__links{display:flex;flex-wrap:wrap;gap:0 22px} .gzl .card__more--off{color:var(--muted)!important;font-weight:500}.gzl .card__more--off::after{content:none} .gzl .card:hover .card__more::after{transform:translateX(6px)} .gzl .note{margin-top:30px;font-size:13.5px;color:var(--muted)!important;max-width:820px} .gzl .grid--3{grid-template-columns:repeat(3,minmax(0,1fr))} .gzl .grid--2{grid-template-columns:repeat(2,minmax(0,1fr))} /* Story */ .gzl .story{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);gap:clamp(24px,5vw,64px);align-items:start} .gzl .tabs{display:flex;flex-direction:column;gap:10px} .gzl .tab{display:flex;gap:16px;align-items:center;text-align:left;padding:18px 20px;border-radius:18px;border:1px solid var(--line);background:transparent;color:var(--muted)!important;font:500 17px/1.3 var(--sans);cursor:pointer;transition:all .35s} .gzl .tab:hover{border-color:var(--line2);color:var(--text)!important} .gzl .tab span{font-family:var(--mono);font-size:13px;color:var(--dim,#7d9186)!important} .gzl .tab[aria-selected=true]{border-color:var(--accent);color:var(--text)!important;background:color-mix(in srgb,var(--accent) 7%,transparent)} .gzl .tab[aria-selected=true] span{color:var(--accent)!important} .gzl .panel{position:relative;padding:clamp(26px,4vw,48px);border:1px solid var(--line);border-radius:28px;background:var(--bg);overflow:hidden;min-height:320px;animation:gzl-rise .6s both} .gzl .panel[hidden]{display:none} .gzl .panel svg.hy{position:absolute;right:-20px;bottom:-10px;width:70%;color:var(--accent)!important;opacity:.2;pointer-events:none} .gzl .panel .path{stroke-dasharray:900;stroke-dashoffset:900;animation:gzl-draw 2.4s .1s ease forwards} @keyframes gzl-draw{to{stroke-dashoffset:0}} .gzl .panel h3{font-family:var(--serif);font-weight:300;font-size:clamp(28px,3.4vw,40px);margin:6px 0 14px;position:relative} .gzl .panel p{color:var(--soft)!important;max-width:520px;position:relative} .gzl .chip{display:inline-block;margin-top:20px;padding:8px 16px;border-radius:999px;border:1px solid var(--line2);font-family:var(--mono);font-size:12.5px;color:var(--accent)!important;position:relative} .gzl .band{display:flex;gap:clamp(20px,4vw,48px);align-items:center;margin-top:clamp(36px,6vw,64px);padding:clamp(24px,4vw,40px);border:1px solid var(--line2);border-radius:28px;background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 8%,transparent),transparent 60%)} .gzl .band b{font-family:var(--serif);font-weight:300;font-size:clamp(48px,8vw,92px);line-height:1;color:var(--accent)!important} .gzl .band h3{font-family:var(--serif);font-weight:400;font-size:24px;margin-bottom:6px} .gzl .band p{color:var(--muted)!important;font-size:15.5px} /* Why */ .gzl .why{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:28px;overflow:hidden} .gzl .why>div{padding:clamp(24px,3vw,38px);border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .35s} .gzl .why>div:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)} .gzl .why>div:nth-child(3n){border-right:0}.gzl .why>div:nth-last-child(-n+3){border-bottom:0} .gzl .why b{font-family:var(--mono);font-size:13px;color:var(--accent)!important;display:block;margin-bottom:12px} .gzl .why h3{font-family:var(--serif);font-weight:400;font-size:22px;margin-bottom:8px} .gzl .why p{color:var(--muted)!important;font-size:15.5px;max-width:none} /* Award */ .gzl .award{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:center} .gzl .trophy{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1/1;max-width:420px;margin:0 auto;width:100%;border-radius:50%;border:1px solid var(--line2);background:radial-gradient(circle,rgba(125,240,192,.14),transparent 65%)} .gzl .trophy::before,.gzl .trophy::after{content:"";position:absolute;inset:8%;border-radius:50%;border:1px dashed var(--line2);animation:gzl-spin 40s linear infinite} .gzl .trophy::after{inset:20%;animation-direction:reverse;animation-duration:30s} @keyframes gzl-spin{to{transform:rotate(360deg)}} .gzl .trophy div{text-align:center;position:relative;z-index:1;padding:20px} .gzl .trophy svg{color:var(--accent)!important;margin-bottom:10px} .gzl .trophy strong{display:block;font-family:var(--serif);font-weight:300;font-size:clamp(34px,5vw,52px);line-height:1} .gzl .trophy span{display:block;font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--muted)!important;margin-top:8px;text-transform:uppercase} .gzl .facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:30px} .gzl .fact{padding:20px;border:1px solid var(--line);border-radius:20px;background:var(--surface)} .gzl .fact b{display:block;font-family:var(--serif);font-weight:300;font-size:32px;color:var(--accent)!important;line-height:1.1} .gzl .fact span{font-size:13.5px;color:var(--muted)!important} .gzl .ph{border:1px dashed var(--line2);border-radius:20px;padding:20px;color:var(--muted)!important;font-size:14.5px} /* Services list */ .gzl .svc{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px} .gzl .svc span{padding:5px 12px;border:1px solid var(--line);border-radius:999px;font-family:var(--mono);font-size:12px;color:var(--soft)!important} /* Contact */ .gzl .contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:start} .gzl .cl{display:grid;gap:14px;margin-top:26px} .gzl .cl a,.gzl .cl p{display:flex;gap:14px;align-items:flex-start;color:var(--soft)!important} .gzl .cl a:hover{color:var(--accent)!important} .gzl .cl svg{flex:none;color:var(--accent)!important;margin-top:3px} .gzl .map{position:relative;aspect-ratio:4/3;border:1px solid var(--line);border-radius:28px;overflow:hidden;background:var(--surface);display:flex;align-items:center;justify-content:center} .gzl .map svg{position:absolute;inset:0;width:100%;height:100%;color:var(--accent)!important;opacity:.35} .gzl .map div{position:relative;text-align:center;padding:24px} .gzl .map b{display:block;font-family:var(--serif);font-weight:300;font-size:34px} .gzl .map span{color:var(--muted)!important;font-size:14.5px} .gzl .pin{width:14px;height:14px;border-radius:50%;background:var(--accent);margin:0 auto 14px;box-shadow:0 0 0 0 var(--accent);animation:gzl-pulse 2s infinite} /* Final CTA */ .gzl .final{text-align:center;background:radial-gradient(ellipse at center,rgba(125,240,192,.1),transparent 70%)} .gzl .final .cta{justify-content:center} .gzl .final .lead{margin-inline:auto} /* Footer */ .gzl .ft{border-top:1px solid var(--line);padding:clamp(40px,6vw,72px) 0 28px;background:#08100c} .gzl .ft__g{display:flex;flex-wrap:wrap;gap:36px 56px;justify-content:space-between} .gzl .ft__g>div{min-width:150px} .gzl .ft h4{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)!important;margin:0 0 14px;font-weight:500} .gzl .ft li{margin-bottom:8px;color:var(--muted)!important;font-size:15px} .gzl .ft li a:hover{color:var(--text)!important} .gzl .ft__brand{max-width:340px;color:var(--muted)!important;font-size:15px} .gzl .ft__legal{margin-top:40px;padding-top:22px;border-top:1px solid var(--line);color:var(--muted)!important;font-size:12.5px;line-height:1.6} /* CSS fallback animation (runs if the builder blocks scripts) */ .gzl .fb{position:absolute;inset:0;overflow:hidden;pointer-events:none} .gzl .fb svg{position:absolute;inset:0;width:100%;height:100%;color:var(--accent)!important;opacity:.5} .gzl .fb .hp{fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:round;stroke-dasharray:1400;stroke-dashoffset:1400;animation:gzl-draw 4s ease forwards} .gzl .fb .hp:nth-child(2){animation-delay:.6s}.gzl .fb .hp:nth-child(3){animation-delay:1.2s}.gzl .fb .hp:nth-child(4){animation-delay:1.8s} .gzl .fb .hn{fill:currentColor;animation:gzl-pulse 3s infinite} .gzl .fb i{position:absolute;bottom:-12px;left:var(--x);width:var(--s);height:var(--s);border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent);opacity:0;animation:gzl-spore var(--d) var(--dl) linear infinite} @keyframes gzl-spore{0%{opacity:0;transform:translate(0,0)}12%{opacity:.9}50%{transform:translate(18px,-45vh)}88%{opacity:.7}100%{opacity:0;transform:translate(-14px,-95vh)}} .gzl.js .fb{display:none} @media(prefers-reduced-motion:reduce){.gzl .fb i,.gzl .fb .hn{animation:none}.gzl .fb .hp{animation:none;stroke-dashoffset:0}} /* Responsive */ @media(max-width:1100px){.gzl .grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gzl .grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}} @media(max-width:860px){
.gzl .story,.gzl .award,.gzl .contact{grid-template-columns:1fr}
.gzl .tabs{flex-direction:row;overflow-x:auto;padding-bottom:6px;scrollbar-width:none;margin-inline:calc(var(--gutter)*-1);padding-inline:var(--gutter)}
.gzl .tabs::-webkit-scrollbar{display:none}
.gzl .tab{flex:none;padding:14px 18px;font-size:15.5px}
.gzl .why{grid-template-columns:repeat(2,minmax(0,1fr))}
.gzl .why>div{border-right:1px solid var(--line)!important;border-bottom:1px solid var(--line)!important}
.gzl .why>div:nth-child(2n){border-right:0!important}.gzl .why>div:nth-last-child(-n+2){border-bottom:0!important} } @media(max-width:640px){
.gzl{font-size:16.5px}
.gzl .grid,.gzl .grid--3,.gzl .grid--2{grid-template-columns:1fr}
.gzl .why{grid-template-columns:1fr}.gzl .why>div{border-right:0!important;border-bottom:1px solid var(--line)!important}.gzl .why>div:last-child{border-bottom:0!important}
.gzl .hero{min-height:0}
.gzl .cta{flex-direction:column}.gzl .cta .btn{width:100%}
.gzl .band{flex-direction:column;align-items:flex-start}
.gzl .facts{grid-template-columns:1fr 1fr}
.gzl .stats{gap:22px 32px} } /* Mobile hardening */ .gzl{width:100%;max-width:100vw;overflow-x:hidden;overflow-x:clip} .gzl section,.gzl [id]{scroll-margin-top:84px} .gzl .hero{min-height:min(92vh,860px);min-height:min(92svh,860px);touch-action:pan-y} .gzl .card__more,.gzl .ft li a{display:inline-flex;align-items:center;min-height:44px} .gzl .h1,.gzl .h2,.gzl h3,.gzl p,.gzl .lead{overflow-wrap:break-word;hyphens:manual;-webkit-hyphens:manual} .gzl .btn{white-space:normal;text-align:center} @media(max-width:640px){
.gzl .sec{padding:56px 0}
.gzl .hero__in{padding-block:44px 40px}
.gzl .badge{font-size:11.5px;padding:7px 14px;letter-spacing:.03em}
.gzl .card{padding:22px;border-radius:22px}
.gzl .band,.gzl .panel,.gzl .safety{border-radius:22px}
.gzl .tab{min-height:48px}
.gzl .stats{gap:18px 26px}
.gzl .map{aspect-ratio:16/11;border-radius:22px}
.gzl .trophy{max-width:300px}
.gzl .ft__g{gap:28px}.gzl .ft__g>div{min-width:130px;flex:1 1 130px} } @media(max-width:420px){
.gzl{font-size:16px}
.gzl .h1{font-size:clamp(32px,10.4vw,44px)}
.gzl .h2{font-size:clamp(27px,8.4vw,36px)}
.gzl .facts{grid-template-columns:1fr}
.gzl .stat b{font-size:26px} } @media(hover:none){.gzl .card:hover{transform:none;box-shadow:none}.gzl .card:hover::before{opacity:0}} @media(prefers-reduced-motion:reduce){
.gzl .rise,.gzl.js .rv{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}
.gzl .mq__t,.gzl .trophy::before,.gzl .trophy::after,.gzl .badge i,.gzl .pin,.gzl .panel .path{animation:none!important}
.gzl .panel .path{stroke-dashoffset:0} }
100of100 Science & Startups Award Winner 2025
Life Sciences from Kronach:
Medicinal Mushrooms
& Tissue Culture
Wild harvesting, ultrasound extraction and laboratory analysis — from a startup in Upper Franconia making science visible.
Shop
Learn more
100of100
Award Winner 2025
Kronach
Made in Bavaria
COA
Batch analysis for every batch
Wild-harvested in Germany
Ultrasound extraction
Fruiting bodies, not mycelium
Ethanol + hot water
Made in Bavaria
Lab tested
Products
Grown in the forest,
extracted in the lab
.
Medicinal mushroom extracts, lab chemicals, soil amendments and more — straight from the maker in Kronach.
Bestsellers
Tinder Fungus Extract
Fomes fomentarius
Liquid medicinal mushroom extract from wild-harvested fruiting bodies. Ultrasound + ethanol + hot water.
Learn more
View in shop
Birch Polypore Extract
Fomitopsis betulina
Liquid medicinal mushroom extract from birch polypore — extracted using the same process as Tinder Fungus.
Learn more
View in shop
Trichoderma harzianum
Soil amendment
Live spores for the root zone — 12 million spores per gram. Soil amendment, not a pesticide.
Learn more
Methylene Blue
Laboratory chemical · USP specification
High-purity laboratory chemical and textile dye. Not for ingestion.
View in shop
Cannabis & Accessories
Seeds · Analyses · Fertilizer
Mindful and responsible, within the law. Please follow the rules in your country.
View in shop
Sicilian Olive Oil
Finazzo · Passione per la natura
Two varieties from Sicily, hand-picked and cold-extracted. 0.75 L each.
View in shop
Studies & Research
Scientific sources
Background information, studies and sources about medicinal mushrooms and our lab work.
Learn more
Medicinal mushroom extracts may be dietary supplements and are not a substitute for a balanced and varied diet. Do not exceed the recommended daily dose. Methylene blue is a laboratory chemical and is not intended for ingestion.
From forest to bottle
Five steps.
Nothing
in between.
01
Wild harvesting
02
Ultrasound
03
Ethanol + hot water
04
Lab testing
05
Bottling
Step 1 / 5
Wild harvesting
We hand-harvest Tinder Fungus and Birch Polypore in German forests. Only fruiting bodies are used, not mycelium.
Fruiting bodies only
Step 2 / 5
Ultrasound
The mushrooms’ tough cell structures are broken down with ultrasound — a gentle, modern method used in laboratory practice.
Ultrasound extraction
Step 3 / 5
Ethanol + hot water
Dual extraction with ethanol and hot water brings water- and alcohol-soluble compounds into the extract. Both mushrooms are processed in the same way.
Ultrasound + ethanol + hot water
Step 4 / 5
Lab testing
Every batch is tested in the lab. We document the results in a Certificate of Analysis (COA).
COA for every batch
Step 5 / 5
Bottling
Products are bottled and shipped from Kronach, discreetly packaged and with tracking.
Made in Bavaria
5,000
Years of tradition
Archaeologists found Tinder Fungus and Birch Polypore with the glacier mummy Ötzi. The use of both mushrooms is based on traditional knowledge passed down over generations. We combine this tradition with modern ultrasound extraction — without making medicinal claims.
Services
A lab that
works
for you.
Scientific-grade analysis and plant cultivation, right here in Upper Franconia.
Cannabis testing
Profiling and testing your samples using modern analytical methods.
NIR
HPLC
GC-MS
Terpenes
Pesticides
Heavy metals
Request a consultation
InVitro Tissue Culture
Propagating plants in sterile tissue cultures — clean, consistent and predictable.
Micropropagation
Pathogen-free
Variety preservation
Request a consultation
Quality control
Our own batches are tested for active compounds, heavy metals, microbiology and residues.
Active compounds
Heavy metals
Microbiology
Residues
Request a consultation
Why GrayZone Labs
Six reasons
to trust us
.
01
Scientific excellence
Laboratory methods, not guesswork: measure, test, document.
02
Rooted in the region
Made in Kronach, Upper Franconia — short supply chains and full control.
03
Maximum transparency
Batch analyses available to review via link or QR code.
04
Award-winning quality
Winner of the 100of100 Science & Startups Award 2025.
05
Fruiting bodies only
Our mushroom extracts are made from fruiting bodies, not mycelium grown on grain.
06
Customer service
Personal advice, discreet packaging and tracked shipping.
100of100
Science & Startups
Award 2025
Science
Innovation that
has been
recognised.
The 100of100 Award recognises scientific depth and innovation. For us, it’s a commitment to back every claim with data.
2025
Science & Startups Award Winner
100%
of batches lab tested
View scientific sources
Location & Contact
Rooted in
Kronach
, Upper Franconia.
Consultations and lab tours by appointment. Write to us or call.
Friesener Straße 13
96317 Kronach, Upper Franconia, Bavaria
grayzonelabs@proton.me
+49 174 1524416
Directions & Opening Hours →
Kronach
Upper Franconia · Bavaria
Ready for
lab-quality
products
?
Discover extracts, laboratory chemicals and more in the shop — or get in touch directly.
Shop now
Request a consultation
GrayZone
Labs
Life Sciences from Kronach: medicinal mushrooms, laboratory chemicals and tissue culture. 100of100 Science & Startups Award Winner 2025.
Pages
Products
Services
Science
Contact
Studies & Research
Shop
Shop now
Medicinal mushroom extracts
Cannabis & Accessories
Legal
Legal Notice
Privacy Policy
Terms and Conditions
© GrayZone Labs · Anja Finazzo · Friesener Straße 13 · 96317 Kronach. Medicinal mushroom extracts may be dietary supplements and are not a substitute for a balanced and varied diet. Methylene blue is a laboratory chemical and is not intended for ingestion. Trichoderma is a soil amendment, not a pesticide. Organic certification in progress.
{"@context":"https://schema.org","@type":"Organization","name":"Grayzone Labs","url":"https://www.grayzonelabs.net","foundingDate":"2022","founder":{"@type":"Person","name":"Luca Finazzo","jobTitle":"Founder & Managing Director (M.Sc.)"},"address":{"@type":"PostalAddress","streetAddress":"Friesener Straße 13","addressLocality":"Kronach","addressRegion":"Oberfranken, Bayern","postalCode":"96317","addressCountry":"DE"},"geo":{"@type":"GeoCoordinates","latitude":"50.2367","longitude":"11.3295"},"contactPoint":{"@type":"ContactPoint","telephone":"+491741524416","email":"grayzonelabs@proton.me"},"award":"100of100 Science and Startups Award 2025"}
(function(){
'use strict';
var root=document.getElementById('gzl-root'); if(!root||root.getAttribute('data-gzl-init')) return; root.setAttribute('data-gzl-init','1');
root.classList.add('js');
var reduce=window.matchMedia&&window.matchMedia('(prefers-reduced-motion: reduce)').matches;
function $(s,r){return (r||root).querySelector(s)} function $$(s,r){return Array.prototype.slice.call((r||root).querySelectorAll(s))}
function clamp(v,a,b){return Math.min(b,Math.max(a,v))}
/* Duplicate marquee */
var mq=$('[data-mq]'); if(mq){mq.innerHTML+=mq.innerHTML}
/* Smooth scrolling to sections (replaces the old page's global anchor handler) */
$$('a[href^="#"]').forEach(function(a){
var h=a.getAttribute('href'); if(!h||h.length<2) return;
a.addEventListener('click',function(e){var t=document.getElementById(h.slice(1)); if(t){e.preventDefault();t.scrollIntoView({behavior:reduce?'auto':'smooth',block:'start'})}});
});
/* Scroll reveal */
var rv=$$('.rv');
if('IntersectionObserver' in window){
var io=new IntersectionObserver(function(es){es.forEach(function(e){if(e.isIntersecting){e.target.classList.add('in');io.unobserve(e.target)}})},{threshold:.12,rootMargin:'0px 0px -6% 0px'});
rv.forEach(function(el){io.observe(el)});
} else { rv.forEach(function(el){el.classList.add('in')}) }
/* Card glow follows cursor */
$$('[data-glow]').forEach(function(c){
c.addEventListener('pointermove',function(e){var r=c.getBoundingClientRect();c.style.setProperty('--mx',(e.clientX-r.left)+'px');c.style.setProperty('--my',(e.clientY-r.top)+'px')},{passive:true});
});
/* Story tabs */
var st=$('[data-story]');
if(st){
var tabs=$$('[role=tab]',st),panels=$$('[role=tabpanel]',st);
function sel(i,focus){
tabs.forEach(function(t,k){t.setAttribute('aria-selected',k===i?'true':'false');t.tabIndex=k===i?0:-1});
panels.forEach(function(p,k){p.hidden=k!==i});
if(focus)tabs[i].focus();
var t=tabs[i]; if(t&&t.scrollIntoView&&window.innerWidth<=860){var par=t.parentNode;par.scrollTo({left:t.offsetLeft-par.offsetLeft-20,behavior:reduce?'auto':'smooth'})}
}
tabs.forEach(function(t,i){
t.addEventListener('click',function(){sel(i)});
t.addEventListener('keydown',function(e){
var n=null;
if(e.key==='ArrowRight'||e.key==='ArrowDown')n=(i+1)%tabs.length;
if(e.key==='ArrowLeft'||e.key==='ArrowUp')n=(i-1+tabs.length)%tabs.length;
if(n!==null){e.preventDefault();sel(n,true)}
});
});
}
/* Hero: responsive mycelium network + spores */
var hero=$('[data-hero]'),cv=hero&&$('canvas',hero);
if(cv&&cv.getContext){
var ctx=cv.getContext('2d'),W=0,H=0,dpr=1,nodes=[],spores=[],reach=240,t0=performance.now(),last=t0,running=false,visible=true;
var cur={x:0,y:0,tx:0,ty:0,on:false},touched=false,release;
function rnd(a,b){return a+Math.random()*(b-a)}
function makeSpore(init){return{x:rnd(0,W),y:init?rnd(0,H):H+10,v:rnd(10,32),sw:rnd(.6,1.6),ph:rnd(0,6.28),s:rnd(1,2.6),life:init?Math.random():0,ls:rnd(.05,.12)}}
function resize(){
var r=hero.getBoundingClientRect();W=Math.max(1,r.width);H=Math.max(1,r.height);
dpr=Math.min(2,window.devicePixelRatio||1);cv.width=W*dpr;cv.height=H*dpr;ctx.setTransform(dpr,0,0,dpr,0,0);
var n=clamp(Math.round(W*H/20000),22,W<640?30:64);
nodes=[];for(var i=0;i
var sc=reduce?0:(W<640?16:30);spores=[];for(var j=0;j
reach=W<640?170:260;draw(0,0);
}
function draw(t,dt){
ctx.clearRect(0,0,W,H);
var grow=reduce?1:clamp(t/2.4,0,1);grow=1-Math.pow(1-grow,3);
var cx=cur.x,cy=cur.y,active=cur.on||(!touched&&!reduce);
if(!touched&&!reduce){cur.tx=W*(.5+.32*Math.sin(t*.35));cur.ty=H*(.5+.28*Math.sin(t*.52+1));}
cur.x+=(cur.tx-cur.x)*Math.min(1,dt*6);cur.y+=(cur.ty-cur.y)*Math.min(1,dt*6);
var i,j,a,b,d,dx,dy;
for(i=0;i
a=nodes[i];
if(!reduce){a.x+=a.vx;a.y+=a.vy;if(a.x<-20)a.x=W+20;if(a.x>W+20)a.x=-20;if(a.y<-20)a.y=H+20;if(a.y>H+20)a.y=-20;}
a.ox=a.x;a.oy=a.y;
if(active){dx=cur.x-a.x;dy=cur.y-a.y;d=Math.sqrt(dx*dx+dy*dy);if(d1){var f=(1-d/reach)*(touched?26:14);a.ox=a.x+dx/d*f;a.oy=a.y+dy/d*f}}
}
ctx.lineCap='round';
var link=W<640?120:150;
for(i=0;i
for(j=i+1;j
if(d }
}
for(i=0;iif(active){dx=cur.x-a.ox;dy=cur.y-a.oy;d=Math.sqrt(dx*dx+dy*dy);if(d
ctx.fillStyle='rgba(125,240,192,'+((.35+near*.65)*grow).toFixed(3)+')';
ctx.shadowColor='rgba(125,240,192,.9)';ctx.shadowBlur=near*14;
ctx.beginPath();ctx.arc(a.ox,a.oy,a.r+near*2.2,0,6.283);ctx.fill();
}
ctx.shadowBlur=0;
if(active&&grow>.6){
var cand=[];for(i=0;i
cand.sort(function(p,q){return p[0]-q[0]});
for(i=0;ictx.strokeStyle='rgba(125,240,192,'+(al2*.85).toFixed(3)+')';ctx.lineWidth=1.3;ctx.shadowColor='rgba(125,240,192,.8)';ctx.shadowBlur=8;
ctx.beginPath();ctx.moveTo(cur.x,cur.y);
var mx=(cur.x+a.ox)/2+Math.sin(t*2+i)*12,my=(cur.y+a.oy)/2+Math.cos(t*2+i)*12;
ctx.quadraticCurveTo(mx,my,a.ox,a.oy);ctx.stroke();
}
ctx.shadowBlur=0;
var g=ctx.createRadialGradient(cur.x,cur.y,0,cur.x,cur.y,46);g.addColorStop(0,'rgba(125,240,192,.28)');g.addColorStop(1,'rgba(125,240,192,0)');
ctx.fillStyle=g;ctx.beginPath();ctx.arc(cur.x,cur.y,46,0,6.283);ctx.fill();
}
for(i=0;is.y-=s.v*dt;s.x+=Math.sin(t*s.sw+s.ph)*.35;s.life+=s.ls*dt;
if(s.y<-10||s.life>1){spores[i]=makeSpore(false);continue}
var sa=Math.sin(s.life*Math.PI)*.9;if(sa<.02)continue;
ctx.fillStyle='rgba(125,240,192,'+sa.toFixed(3)+')';ctx.shadowColor='rgba(125,240,192,.9)';ctx.shadowBlur=s.s*4;
ctx.beginPath();ctx.arc(s.x,s.y,s.s,0,6.283);ctx.fill();
}
ctx.shadowBlur=0;
}
function frame(now){
if(!visible||document.hidden){running=false;return}
var dt=Math.min(.05,(now-last)/1000);last=now;draw((now-t0)/1000,dt);requestAnimationFrame(frame);
}
function start(){if(running||reduce)return;running=true;last=performance.now();requestAnimationFrame(frame)}
function setP(e){var r=hero.getBoundingClientRect();cur.tx=e.clientX-r.left;cur.ty=e.clientY-r.top;if(!cur.on){cur.x=cur.tx;cur.y=cur.ty}cur.on=true;touched=true;clearTimeout(release)}
function leave(e){clearTimeout(release);if(e&&e.pointerType==='touch'){release=setTimeout(function(){cur.on=false},900)}else{cur.on=false}}
if(!reduce){hero.addEventListener('pointermove',setP,{passive:true});hero.addEventListener('pointerdown',setP,{passive:true});hero.addEventListener('pointerleave',leave,{passive:true});hero.addEventListener('pointerup',leave,{passive:true});hero.addEventListener('pointercancel',leave,{passive:true})}
if('ResizeObserver' in window){new ResizeObserver(resize).observe(hero)}else{window.addEventListener('resize',resize)}
if('IntersectionObserver' in window){new IntersectionObserver(function(es){visible=es[0].isIntersecting;if(visible)start()},{threshold:0}).observe(hero)}
document.addEventListener('visibilitychange',function(){if(!document.hidden)start()});
resize();start();
} })();
--serif:'Fraunces',Georgia,'Times New Roman',serif;--sans:'Instrument Sans',system-ui,-apple-system,'Segoe UI',sans-serif;--mono:'JetBrains Mono',ui-monospace,Menlo,monospace;
position:relative;background:var(--bg);color:var(--text)!important;font-family:var(--sans);font-size:17px;line-height:1.6;overflow-x:hidden;-webkit-text-size-adjust:100%} .gzl *,.gzl *::before,.gzl *::after{box-sizing:border-box} .gzl a{color:inherit!important;text-decoration:none} .gzl h1,.gzl h2,.gzl h3,.gzl p,.gzl ul,.gzl dl,.gzl dd,.gzl figure{margin:0;padding:0} .gzl ul{list-style:none} .gzl img,.gzl svg{max-width:100%} .gzl em{font-style:italic;color:var(--accent)!important} .gzl :focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px} .gzl .wrap{width:100%;max-width:1560px;margin:0 auto;padding:0 var(--gutter)} .gzl .narrow{max-width:980px} .gzl .sec{padding:clamp(64px,10vw,128px) 0;position:relative} .gzl .sec--alt{background:var(--surface);border-block:1px solid var(--line)} .gzl .eyebrow{font-family:var(--mono);font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)!important;margin-bottom:14px} .gzl .h1{font-family:var(--serif);font-weight:300;font-size:clamp(40px,7vw,86px);line-height:1.04;letter-spacing:-.02em} .gzl .h2{font-family:var(--serif);font-weight:300;font-size:clamp(30px,4.6vw,56px);line-height:1.1;letter-spacing:-.015em} .gzl .lead{color:var(--soft)!important;font-size:clamp(17px,2vw,20px);max-width:960px;margin-top:18px} .gzl .head{margin-bottom:clamp(32px,5vw,56px)} .gzl .mono{font-family:var(--mono)} /* For readability: builder styles must not override text colors */ .gzl,.gzl p,.gzl li,.gzl span,.gzl div,.gzl h1,.gzl h2,.gzl h3,.gzl h4,.gzl dt,.gzl dd,.gzl strong,.gzl b,.gzl blockquote,.gzl figcaption,.gzl small{color:var(--text)!important} .gzl a{text-decoration:none!important} .gzl p{opacity:1} /* Buttons */ .gzl .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 26px;border-radius:999px;border:1px solid transparent;font:600 15.5px/1 var(--sans);cursor:pointer;transition:transform .3s,box-shadow .3s,border-color .3s,color .3s;white-space:nowrap} .gzl .btn--p{background:linear-gradient(135deg,#16966a,#0f7a55);color:#fff!important;border-color:rgba(125,240,192,.55);text-shadow:0 1px 1px rgba(0,0,0,.25)} .gzl .btn--p:hover{transform:translateY(-2px);box-shadow:0 12px 40px -10px var(--accent);border-color:var(--accent)} .gzl .btn--g{border-color:var(--line2);color:var(--text)!important;font-weight:500} .gzl .btn--g:hover{border-color:var(--accent);color:var(--accent)!important} .gzl .btn--lg{padding:18px 34px;font-size:16.5px} /* Hero */ .gzl .hero{position:relative;min-height:min(92vh,860px);display:flex;align-items:center;overflow:hidden;border-bottom:1px solid var(--line);background:radial-gradient(ellipse 70% 60% at 70% 40%,rgba(125,240,192,.09),transparent 70%)} .gzl .hero canvas{position:absolute;inset:0;width:100%;height:100%;display:block} .gzl .hero__in{position:relative;z-index:2;padding-block:clamp(48px,8vw,96px);pointer-events:none} .gzl .hero__in a,.gzl .hero__in .btn{pointer-events:auto} .gzl .badge{display:inline-flex;align-items:center;gap:10px;padding:8px 16px;border:1px solid var(--line2);border-radius:999px;font-family:var(--mono);font-size:12.5px;letter-spacing:.06em;color:var(--soft)!important;background:color-mix(in srgb,var(--bg) 70%,transparent);margin-bottom:26px} .gzl .badge i{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent);animation:gzl-pulse 2.4s infinite} .gzl .hero .lead{max-width:720px} .gzl .award .lead{max-width:none} .gzl .cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px} .gzl .stats{display:flex;flex-wrap:wrap;gap:28px 48px;margin-top:clamp(36px,6vw,64px);padding-top:26px;border-top:1px solid var(--line);max-width:680px} .gzl .stat b{display:block;font-family:var(--serif);font-weight:300;font-size:clamp(28px,4vw,40px);color:var(--accent)!important;line-height:1.1} .gzl .stat span{font-size:13.5px;color:var(--muted)!important} .gzl .rise{opacity:0;transform:translateY(24px);animation:gzl-rise .9s cubic-bezier(.2,.7,.2,1) forwards} .gzl .d1{animation-delay:.1s}.gzl .d2{animation-delay:.25s}.gzl .d3{animation-delay:.4s}.gzl .d4{animation-delay:.55s}.gzl .d5{animation-delay:.7s} @keyframes gzl-rise{to{opacity:1;transform:none}} @keyframes gzl-pulse{0%{box-shadow:0 0 0 0 rgba(125,240,192,.5)}70%{box-shadow:0 0 0 10px transparent}100%{box-shadow:0 0 0 0 transparent}} /* Marquee */ .gzl .mq{border-bottom:1px solid var(--line);background:var(--surface);overflow:hidden;padding:18px 0} .gzl .mq__t{display:flex;gap:56px;width:max-content;animation:gzl-mq 38s linear infinite} .gzl .mq__t span{font-family:var(--mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)!important;white-space:nowrap} .gzl .mq__t span::before{content:"✦";color:var(--accent)!important;margin-right:56px} @keyframes gzl-mq{to{transform:translateX(-50%)}} /* Reveal */ .gzl.js .rv{opacity:0;transform:translateY(30px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)} .gzl.js .rv.in{opacity:1;transform:none} .gzl.js .rv.in.s1{transition-delay:.08s}.gzl.js .rv.in.s2{transition-delay:.16s}.gzl.js .rv.in.s3{transition-delay:.24s} /* Cards */ .gzl .grid{display:grid;gap:22px;grid-template-columns:repeat(4,minmax(0,1fr))} .gzl .card{position:relative;display:flex;flex-direction:column;gap:14px;padding:26px;background:var(--surface);border:1px solid var(--line);border-radius:26px;overflow:hidden;transition:transform .45s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .45s} .gzl .sec--alt .card{background:var(--bg)} .gzl .card::before{content:"";position:absolute;inset:-1px;border-radius:inherit;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),rgba(125,240,192,.14),transparent 45%);opacity:0;transition:opacity .35s;pointer-events:none} .gzl .card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 30px 70px -30px rgba(125,240,192,.35)} .gzl .card:hover::before{opacity:1} .gzl .card__ic{width:52px;height:52px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent)!important} .gzl .card__tag{position:absolute;top:20px;right:20px;padding:4px 12px;border-radius:999px;background:#0f7a55;color:#fff!important;font-size:11.5px;font-weight:700;letter-spacing:.04em} .gzl .card__tag--soon{background:transparent;border:1px solid var(--line2);color:var(--soft)!important} .gzl .card h3{font-family:var(--serif);font-weight:400;font-size:23px;line-height:1.2;hyphens:manual;-webkit-hyphens:manual;overflow-wrap:normal} .gzl .card__sub{font-family:var(--mono);font-size:12.5px;color:var(--muted)!important} .gzl .card p{color:var(--muted)!important;font-size:15px;flex:1} .gzl .card__more{color:var(--accent)!important;font-size:14.5px;font-weight:600;display:inline-flex;gap:8px;align-items:center} .gzl .card__more::after{content:"→";transition:transform .3s} .gzl .card__links{display:flex;flex-wrap:wrap;gap:0 22px} .gzl .card__more--off{color:var(--muted)!important;font-weight:500}.gzl .card__more--off::after{content:none} .gzl .card:hover .card__more::after{transform:translateX(6px)} .gzl .note{margin-top:30px;font-size:13.5px;color:var(--muted)!important;max-width:820px} .gzl .grid--3{grid-template-columns:repeat(3,minmax(0,1fr))} .gzl .grid--2{grid-template-columns:repeat(2,minmax(0,1fr))} /* Story */ .gzl .story{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);gap:clamp(24px,5vw,64px);align-items:start} .gzl .tabs{display:flex;flex-direction:column;gap:10px} .gzl .tab{display:flex;gap:16px;align-items:center;text-align:left;padding:18px 20px;border-radius:18px;border:1px solid var(--line);background:transparent;color:var(--muted)!important;font:500 17px/1.3 var(--sans);cursor:pointer;transition:all .35s} .gzl .tab:hover{border-color:var(--line2);color:var(--text)!important} .gzl .tab span{font-family:var(--mono);font-size:13px;color:var(--dim,#7d9186)!important} .gzl .tab[aria-selected=true]{border-color:var(--accent);color:var(--text)!important;background:color-mix(in srgb,var(--accent) 7%,transparent)} .gzl .tab[aria-selected=true] span{color:var(--accent)!important} .gzl .panel{position:relative;padding:clamp(26px,4vw,48px);border:1px solid var(--line);border-radius:28px;background:var(--bg);overflow:hidden;min-height:320px;animation:gzl-rise .6s both} .gzl .panel[hidden]{display:none} .gzl .panel svg.hy{position:absolute;right:-20px;bottom:-10px;width:70%;color:var(--accent)!important;opacity:.2;pointer-events:none} .gzl .panel .path{stroke-dasharray:900;stroke-dashoffset:900;animation:gzl-draw 2.4s .1s ease forwards} @keyframes gzl-draw{to{stroke-dashoffset:0}} .gzl .panel h3{font-family:var(--serif);font-weight:300;font-size:clamp(28px,3.4vw,40px);margin:6px 0 14px;position:relative} .gzl .panel p{color:var(--soft)!important;max-width:520px;position:relative} .gzl .chip{display:inline-block;margin-top:20px;padding:8px 16px;border-radius:999px;border:1px solid var(--line2);font-family:var(--mono);font-size:12.5px;color:var(--accent)!important;position:relative} .gzl .band{display:flex;gap:clamp(20px,4vw,48px);align-items:center;margin-top:clamp(36px,6vw,64px);padding:clamp(24px,4vw,40px);border:1px solid var(--line2);border-radius:28px;background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 8%,transparent),transparent 60%)} .gzl .band b{font-family:var(--serif);font-weight:300;font-size:clamp(48px,8vw,92px);line-height:1;color:var(--accent)!important} .gzl .band h3{font-family:var(--serif);font-weight:400;font-size:24px;margin-bottom:6px} .gzl .band p{color:var(--muted)!important;font-size:15.5px} /* Why */ .gzl .why{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:28px;overflow:hidden} .gzl .why>div{padding:clamp(24px,3vw,38px);border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .35s} .gzl .why>div:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)} .gzl .why>div:nth-child(3n){border-right:0}.gzl .why>div:nth-last-child(-n+3){border-bottom:0} .gzl .why b{font-family:var(--mono);font-size:13px;color:var(--accent)!important;display:block;margin-bottom:12px} .gzl .why h3{font-family:var(--serif);font-weight:400;font-size:22px;margin-bottom:8px} .gzl .why p{color:var(--muted)!important;font-size:15.5px;max-width:none} /* Award */ .gzl .award{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:center} .gzl .trophy{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1/1;max-width:420px;margin:0 auto;width:100%;border-radius:50%;border:1px solid var(--line2);background:radial-gradient(circle,rgba(125,240,192,.14),transparent 65%)} .gzl .trophy::before,.gzl .trophy::after{content:"";position:absolute;inset:8%;border-radius:50%;border:1px dashed var(--line2);animation:gzl-spin 40s linear infinite} .gzl .trophy::after{inset:20%;animation-direction:reverse;animation-duration:30s} @keyframes gzl-spin{to{transform:rotate(360deg)}} .gzl .trophy div{text-align:center;position:relative;z-index:1;padding:20px} .gzl .trophy svg{color:var(--accent)!important;margin-bottom:10px} .gzl .trophy strong{display:block;font-family:var(--serif);font-weight:300;font-size:clamp(34px,5vw,52px);line-height:1} .gzl .trophy span{display:block;font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--muted)!important;margin-top:8px;text-transform:uppercase} .gzl .facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:30px} .gzl .fact{padding:20px;border:1px solid var(--line);border-radius:20px;background:var(--surface)} .gzl .fact b{display:block;font-family:var(--serif);font-weight:300;font-size:32px;color:var(--accent)!important;line-height:1.1} .gzl .fact span{font-size:13.5px;color:var(--muted)!important} .gzl .ph{border:1px dashed var(--line2);border-radius:20px;padding:20px;color:var(--muted)!important;font-size:14.5px} /* Services list */ .gzl .svc{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px} .gzl .svc span{padding:5px 12px;border:1px solid var(--line);border-radius:999px;font-family:var(--mono);font-size:12px;color:var(--soft)!important} /* Contact */ .gzl .contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:start} .gzl .cl{display:grid;gap:14px;margin-top:26px} .gzl .cl a,.gzl .cl p{display:flex;gap:14px;align-items:flex-start;color:var(--soft)!important} .gzl .cl a:hover{color:var(--accent)!important} .gzl .cl svg{flex:none;color:var(--accent)!important;margin-top:3px} .gzl .map{position:relative;aspect-ratio:4/3;border:1px solid var(--line);border-radius:28px;overflow:hidden;background:var(--surface);display:flex;align-items:center;justify-content:center} .gzl .map svg{position:absolute;inset:0;width:100%;height:100%;color:var(--accent)!important;opacity:.35} .gzl .map div{position:relative;text-align:center;padding:24px} .gzl .map b{display:block;font-family:var(--serif);font-weight:300;font-size:34px} .gzl .map span{color:var(--muted)!important;font-size:14.5px} .gzl .pin{width:14px;height:14px;border-radius:50%;background:var(--accent);margin:0 auto 14px;box-shadow:0 0 0 0 var(--accent);animation:gzl-pulse 2s infinite} /* Final CTA */ .gzl .final{text-align:center;background:radial-gradient(ellipse at center,rgba(125,240,192,.1),transparent 70%)} .gzl .final .cta{justify-content:center} .gzl .final .lead{margin-inline:auto} /* Footer */ .gzl .ft{border-top:1px solid var(--line);padding:clamp(40px,6vw,72px) 0 28px;background:#08100c} .gzl .ft__g{display:flex;flex-wrap:wrap;gap:36px 56px;justify-content:space-between} .gzl .ft__g>div{min-width:150px} .gzl .ft h4{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)!important;margin:0 0 14px;font-weight:500} .gzl .ft li{margin-bottom:8px;color:var(--muted)!important;font-size:15px} .gzl .ft li a:hover{color:var(--text)!important} .gzl .ft__brand{max-width:340px;color:var(--muted)!important;font-size:15px} .gzl .ft__legal{margin-top:40px;padding-top:22px;border-top:1px solid var(--line);color:var(--muted)!important;font-size:12.5px;line-height:1.6} /* CSS fallback animation (runs if the builder blocks scripts) */ .gzl .fb{position:absolute;inset:0;overflow:hidden;pointer-events:none} .gzl .fb svg{position:absolute;inset:0;width:100%;height:100%;color:var(--accent)!important;opacity:.5} .gzl .fb .hp{fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:round;stroke-dasharray:1400;stroke-dashoffset:1400;animation:gzl-draw 4s ease forwards} .gzl .fb .hp:nth-child(2){animation-delay:.6s}.gzl .fb .hp:nth-child(3){animation-delay:1.2s}.gzl .fb .hp:nth-child(4){animation-delay:1.8s} .gzl .fb .hn{fill:currentColor;animation:gzl-pulse 3s infinite} .gzl .fb i{position:absolute;bottom:-12px;left:var(--x);width:var(--s);height:var(--s);border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent);opacity:0;animation:gzl-spore var(--d) var(--dl) linear infinite} @keyframes gzl-spore{0%{opacity:0;transform:translate(0,0)}12%{opacity:.9}50%{transform:translate(18px,-45vh)}88%{opacity:.7}100%{opacity:0;transform:translate(-14px,-95vh)}} .gzl.js .fb{display:none} @media(prefers-reduced-motion:reduce){.gzl .fb i,.gzl .fb .hn{animation:none}.gzl .fb .hp{animation:none;stroke-dashoffset:0}} /* Responsive */ @media(max-width:1100px){.gzl .grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gzl .grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}} @media(max-width:860px){
.gzl .story,.gzl .award,.gzl .contact{grid-template-columns:1fr}
.gzl .tabs{flex-direction:row;overflow-x:auto;padding-bottom:6px;scrollbar-width:none;margin-inline:calc(var(--gutter)*-1);padding-inline:var(--gutter)}
.gzl .tabs::-webkit-scrollbar{display:none}
.gzl .tab{flex:none;padding:14px 18px;font-size:15.5px}
.gzl .why{grid-template-columns:repeat(2,minmax(0,1fr))}
.gzl .why>div{border-right:1px solid var(--line)!important;border-bottom:1px solid var(--line)!important}
.gzl .why>div:nth-child(2n){border-right:0!important}.gzl .why>div:nth-last-child(-n+2){border-bottom:0!important} } @media(max-width:640px){
.gzl{font-size:16.5px}
.gzl .grid,.gzl .grid--3,.gzl .grid--2{grid-template-columns:1fr}
.gzl .why{grid-template-columns:1fr}.gzl .why>div{border-right:0!important;border-bottom:1px solid var(--line)!important}.gzl .why>div:last-child{border-bottom:0!important}
.gzl .hero{min-height:0}
.gzl .cta{flex-direction:column}.gzl .cta .btn{width:100%}
.gzl .band{flex-direction:column;align-items:flex-start}
.gzl .facts{grid-template-columns:1fr 1fr}
.gzl .stats{gap:22px 32px} } /* Mobile hardening */ .gzl{width:100%;max-width:100vw;overflow-x:hidden;overflow-x:clip} .gzl section,.gzl [id]{scroll-margin-top:84px} .gzl .hero{min-height:min(92vh,860px);min-height:min(92svh,860px);touch-action:pan-y} .gzl .card__more,.gzl .ft li a{display:inline-flex;align-items:center;min-height:44px} .gzl .h1,.gzl .h2,.gzl h3,.gzl p,.gzl .lead{overflow-wrap:break-word;hyphens:manual;-webkit-hyphens:manual} .gzl .btn{white-space:normal;text-align:center} @media(max-width:640px){
.gzl .sec{padding:56px 0}
.gzl .hero__in{padding-block:44px 40px}
.gzl .badge{font-size:11.5px;padding:7px 14px;letter-spacing:.03em}
.gzl .card{padding:22px;border-radius:22px}
.gzl .band,.gzl .panel,.gzl .safety{border-radius:22px}
.gzl .tab{min-height:48px}
.gzl .stats{gap:18px 26px}
.gzl .map{aspect-ratio:16/11;border-radius:22px}
.gzl .trophy{max-width:300px}
.gzl .ft__g{gap:28px}.gzl .ft__g>div{min-width:130px;flex:1 1 130px} } @media(max-width:420px){
.gzl{font-size:16px}
.gzl .h1{font-size:clamp(32px,10.4vw,44px)}
.gzl .h2{font-size:clamp(27px,8.4vw,36px)}
.gzl .facts{grid-template-columns:1fr}
.gzl .stat b{font-size:26px} } @media(hover:none){.gzl .card:hover{transform:none;box-shadow:none}.gzl .card:hover::before{opacity:0}} @media(prefers-reduced-motion:reduce){
.gzl .rise,.gzl.js .rv{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}
.gzl .mq__t,.gzl .trophy::before,.gzl .trophy::after,.gzl .badge i,.gzl .pin,.gzl .panel .path{animation:none!important}
.gzl .panel .path{stroke-dashoffset:0} }
100of100 Science & Startups Award Winner 2025
Life Sciences from Kronach:
Medicinal Mushrooms
& Tissue Culture
Wild harvesting, ultrasound extraction and laboratory analysis — from a startup in Upper Franconia making science visible.
Shop
Learn more
100of100
Award Winner 2025
Kronach
Made in Bavaria
COA
Batch analysis for every batch
Wild-harvested in Germany
Ultrasound extraction
Fruiting bodies, not mycelium
Ethanol + hot water
Made in Bavaria
Lab tested
Products
Grown in the forest,
extracted in the lab
.
Medicinal mushroom extracts, lab chemicals, soil amendments and more — straight from the maker in Kronach.
Bestsellers
Tinder Fungus Extract
Fomes fomentarius
Liquid medicinal mushroom extract from wild-harvested fruiting bodies. Ultrasound + ethanol + hot water.
Learn more
View in shop
Birch Polypore Extract
Fomitopsis betulina
Liquid medicinal mushroom extract from birch polypore — extracted using the same process as Tinder Fungus.
Learn more
View in shop
Trichoderma harzianum
Soil amendment
Live spores for the root zone — 12 million spores per gram. Soil amendment, not a pesticide.
Learn more
Methylene Blue
Laboratory chemical · USP specification
High-purity laboratory chemical and textile dye. Not for ingestion.
View in shop
Cannabis & Accessories
Seeds · Analyses · Fertilizer
Mindful and responsible, within the law. Please follow the rules in your country.
View in shop
Sicilian Olive Oil
Finazzo · Passione per la natura
Two varieties from Sicily, hand-picked and cold-extracted. 0.75 L each.
View in shop
Studies & Research
Scientific sources
Background information, studies and sources about medicinal mushrooms and our lab work.
Learn more
Medicinal mushroom extracts may be dietary supplements and are not a substitute for a balanced and varied diet. Do not exceed the recommended daily dose. Methylene blue is a laboratory chemical and is not intended for ingestion.
From forest to bottle
Five steps.
Nothing
in between.
01
Wild harvesting
02
Ultrasound
03
Ethanol + hot water
04
Lab testing
05
Bottling
Step 1 / 5
Wild harvesting
We hand-harvest Tinder Fungus and Birch Polypore in German forests. Only fruiting bodies are used, not mycelium.
Fruiting bodies only
Step 2 / 5
Ultrasound
The mushrooms’ tough cell structures are broken down with ultrasound — a gentle, modern method used in laboratory practice.
Ultrasound extraction
Step 3 / 5
Ethanol + hot water
Dual extraction with ethanol and hot water brings water- and alcohol-soluble compounds into the extract. Both mushrooms are processed in the same way.
Ultrasound + ethanol + hot water
Step 4 / 5
Lab testing
Every batch is tested in the lab. We document the results in a Certificate of Analysis (COA).
COA for every batch
Step 5 / 5
Bottling
Products are bottled and shipped from Kronach, discreetly packaged and with tracking.
Made in Bavaria
5,000
Years of tradition
Archaeologists found Tinder Fungus and Birch Polypore with the glacier mummy Ötzi. The use of both mushrooms is based on traditional knowledge passed down over generations. We combine this tradition with modern ultrasound extraction — without making medicinal claims.
Services
A lab that
works
for you.
Scientific-grade analysis and plant cultivation, right here in Upper Franconia.
Cannabis testing
Profiling and testing your samples using modern analytical methods.
NIR
HPLC
GC-MS
Terpenes
Pesticides
Heavy metals
Request a consultation
InVitro Tissue Culture
Propagating plants in sterile tissue cultures — clean, consistent and predictable.
Micropropagation
Pathogen-free
Variety preservation
Request a consultation
Quality control
Our own batches are tested for active compounds, heavy metals, microbiology and residues.
Active compounds
Heavy metals
Microbiology
Residues
Request a consultation
Why GrayZone Labs
Six reasons
to trust us
.
01
Scientific excellence
Laboratory methods, not guesswork: measure, test, document.
02
Rooted in the region
Made in Kronach, Upper Franconia — short supply chains and full control.
03
Maximum transparency
Batch analyses available to review via link or QR code.
04
Award-winning quality
Winner of the 100of100 Science & Startups Award 2025.
05
Fruiting bodies only
Our mushroom extracts are made from fruiting bodies, not mycelium grown on grain.
06
Customer service
Personal advice, discreet packaging and tracked shipping.
100of100
Science & Startups
Award 2025
Science
Innovation that
has been
recognised.
The 100of100 Award recognises scientific depth and innovation. For us, it’s a commitment to back every claim with data.
2025
Science & Startups Award Winner
100%
of batches lab tested
View scientific sources
Location & Contact
Rooted in
Kronach
, Upper Franconia.
Consultations and lab tours by appointment. Write to us or call.
Friesener Straße 13
96317 Kronach, Upper Franconia, Bavaria
grayzonelabs@proton.me
+49 174 1524416
Directions & Opening Hours →
Kronach
Upper Franconia · Bavaria
Ready for
lab-quality
products
?
Discover extracts, laboratory chemicals and more in the shop — or get in touch directly.
Shop now
Request a consultation
GrayZone
Labs
Life Sciences from Kronach: medicinal mushrooms, laboratory chemicals and tissue culture. 100of100 Science & Startups Award Winner 2025.
Pages
Products
Services
Science
Contact
Studies & Research
Shop
Shop now
Medicinal mushroom extracts
Cannabis & Accessories
Legal
Legal Notice
Privacy Policy
Terms and Conditions
© GrayZone Labs · Anja Finazzo · Friesener Straße 13 · 96317 Kronach. Medicinal mushroom extracts may be dietary supplements and are not a substitute for a balanced and varied diet. Methylene blue is a laboratory chemical and is not intended for ingestion. Trichoderma is a soil amendment, not a pesticide. Organic certification in progress.
{"@context":"https://schema.org","@type":"Organization","name":"Grayzone Labs","url":"https://www.grayzonelabs.net","foundingDate":"2022","founder":{"@type":"Person","name":"Luca Finazzo","jobTitle":"Founder & Managing Director (M.Sc.)"},"address":{"@type":"PostalAddress","streetAddress":"Friesener Straße 13","addressLocality":"Kronach","addressRegion":"Oberfranken, Bayern","postalCode":"96317","addressCountry":"DE"},"geo":{"@type":"GeoCoordinates","latitude":"50.2367","longitude":"11.3295"},"contactPoint":{"@type":"ContactPoint","telephone":"+491741524416","email":"grayzonelabs@proton.me"},"award":"100of100 Science and Startups Award 2025"}
(function(){
'use strict';
var root=document.getElementById('gzl-root'); if(!root||root.getAttribute('data-gzl-init')) return; root.setAttribute('data-gzl-init','1');
root.classList.add('js');
var reduce=window.matchMedia&&window.matchMedia('(prefers-reduced-motion: reduce)').matches;
function $(s,r){return (r||root).querySelector(s)} function $$(s,r){return Array.prototype.slice.call((r||root).querySelectorAll(s))}
function clamp(v,a,b){return Math.min(b,Math.max(a,v))}
/* Duplicate marquee */
var mq=$('[data-mq]'); if(mq){mq.innerHTML+=mq.innerHTML}
/* Smooth scrolling to sections (replaces the old page's global anchor handler) */
$$('a[href^="#"]').forEach(function(a){
var h=a.getAttribute('href'); if(!h||h.length<2) return;
a.addEventListener('click',function(e){var t=document.getElementById(h.slice(1)); if(t){e.preventDefault();t.scrollIntoView({behavior:reduce?'auto':'smooth',block:'start'})}});
});
/* Scroll reveal */
var rv=$$('.rv');
if('IntersectionObserver' in window){
var io=new IntersectionObserver(function(es){es.forEach(function(e){if(e.isIntersecting){e.target.classList.add('in');io.unobserve(e.target)}})},{threshold:.12,rootMargin:'0px 0px -6% 0px'});
rv.forEach(function(el){io.observe(el)});
} else { rv.forEach(function(el){el.classList.add('in')}) }
/* Card glow follows cursor */
$$('[data-glow]').forEach(function(c){
c.addEventListener('pointermove',function(e){var r=c.getBoundingClientRect();c.style.setProperty('--mx',(e.clientX-r.left)+'px');c.style.setProperty('--my',(e.clientY-r.top)+'px')},{passive:true});
});
/* Story tabs */
var st=$('[data-story]');
if(st){
var tabs=$$('[role=tab]',st),panels=$$('[role=tabpanel]',st);
function sel(i,focus){
tabs.forEach(function(t,k){t.setAttribute('aria-selected',k===i?'true':'false');t.tabIndex=k===i?0:-1});
panels.forEach(function(p,k){p.hidden=k!==i});
if(focus)tabs[i].focus();
var t=tabs[i]; if(t&&t.scrollIntoView&&window.innerWidth<=860){var par=t.parentNode;par.scrollTo({left:t.offsetLeft-par.offsetLeft-20,behavior:reduce?'auto':'smooth'})}
}
tabs.forEach(function(t,i){
t.addEventListener('click',function(){sel(i)});
t.addEventListener('keydown',function(e){
var n=null;
if(e.key==='ArrowRight'||e.key==='ArrowDown')n=(i+1)%tabs.length;
if(e.key==='ArrowLeft'||e.key==='ArrowUp')n=(i-1+tabs.length)%tabs.length;
if(n!==null){e.preventDefault();sel(n,true)}
});
});
}
/* Hero: responsive mycelium network + spores */
var hero=$('[data-hero]'),cv=hero&&$('canvas',hero);
if(cv&&cv.getContext){
var ctx=cv.getContext('2d'),W=0,H=0,dpr=1,nodes=[],spores=[],reach=240,t0=performance.now(),last=t0,running=false,visible=true;
var cur={x:0,y:0,tx:0,ty:0,on:false},touched=false,release;
function rnd(a,b){return a+Math.random()*(b-a)}
function makeSpore(init){return{x:rnd(0,W),y:init?rnd(0,H):H+10,v:rnd(10,32),sw:rnd(.6,1.6),ph:rnd(0,6.28),s:rnd(1,2.6),life:init?Math.random():0,ls:rnd(.05,.12)}}
function resize(){
var r=hero.getBoundingClientRect();W=Math.max(1,r.width);H=Math.max(1,r.height);
dpr=Math.min(2,window.devicePixelRatio||1);cv.width=W*dpr;cv.height=H*dpr;ctx.setTransform(dpr,0,0,dpr,0,0);
var n=clamp(Math.round(W*H/20000),22,W<640?30:64);
nodes=[];for(var i=0;i
}
function draw(t,dt){
ctx.clearRect(0,0,W,H);
var grow=reduce?1:clamp(t/2.4,0,1);grow=1-Math.pow(1-grow,3);
var cx=cur.x,cy=cur.y,active=cur.on||(!touched&&!reduce);
if(!touched&&!reduce){cur.tx=W*(.5+.32*Math.sin(t*.35));cur.ty=H*(.5+.28*Math.sin(t*.52+1));}
cur.x+=(cur.tx-cur.x)*Math.min(1,dt*6);cur.y+=(cur.ty-cur.y)*Math.min(1,dt*6);
var i,j,a,b,d,dx,dy;
for(i=0;i
if(!reduce){a.x+=a.vx;a.y+=a.vy;if(a.x<-20)a.x=W+20;if(a.x>W+20)a.x=-20;if(a.y<-20)a.y=H+20;if(a.y>H+20)a.y=-20;}
a.ox=a.x;a.oy=a.y;
if(active){dx=cur.x-a.x;dy=cur.y-a.y;d=Math.sqrt(dx*dx+dy*dy);if(d
}
ctx.lineCap='round';
var link=W<640?120:150;
for(i=0;i
}
for(i=0;i
ctx.shadowColor='rgba(125,240,192,.9)';ctx.shadowBlur=near*14;
ctx.beginPath();ctx.arc(a.ox,a.oy,a.r+near*2.2,0,6.283);ctx.fill();
}
ctx.shadowBlur=0;
if(active&&grow>.6){
var cand=[];for(i=0;i
for(i=0;i
ctx.beginPath();ctx.moveTo(cur.x,cur.y);
var mx=(cur.x+a.ox)/2+Math.sin(t*2+i)*12,my=(cur.y+a.oy)/2+Math.cos(t*2+i)*12;
ctx.quadraticCurveTo(mx,my,a.ox,a.oy);ctx.stroke();
}
ctx.shadowBlur=0;
var g=ctx.createRadialGradient(cur.x,cur.y,0,cur.x,cur.y,46);g.addColorStop(0,'rgba(125,240,192,.28)');g.addColorStop(1,'rgba(125,240,192,0)');
ctx.fillStyle=g;ctx.beginPath();ctx.arc(cur.x,cur.y,46,0,6.283);ctx.fill();
}
for(i=0;i
if(s.y<-10||s.life>1){spores[i]=makeSpore(false);continue}
var sa=Math.sin(s.life*Math.PI)*.9;if(sa<.02)continue;
ctx.fillStyle='rgba(125,240,192,'+sa.toFixed(3)+')';ctx.shadowColor='rgba(125,240,192,.9)';ctx.shadowBlur=s.s*4;
ctx.beginPath();ctx.arc(s.x,s.y,s.s,0,6.283);ctx.fill();
}
ctx.shadowBlur=0;
}
function frame(now){
if(!visible||document.hidden){running=false;return}
var dt=Math.min(.05,(now-last)/1000);last=now;draw((now-t0)/1000,dt);requestAnimationFrame(frame);
}
function start(){if(running||reduce)return;running=true;last=performance.now();requestAnimationFrame(frame)}
function setP(e){var r=hero.getBoundingClientRect();cur.tx=e.clientX-r.left;cur.ty=e.clientY-r.top;if(!cur.on){cur.x=cur.tx;cur.y=cur.ty}cur.on=true;touched=true;clearTimeout(release)}
function leave(e){clearTimeout(release);if(e&&e.pointerType==='touch'){release=setTimeout(function(){cur.on=false},900)}else{cur.on=false}}
if(!reduce){hero.addEventListener('pointermove',setP,{passive:true});hero.addEventListener('pointerdown',setP,{passive:true});hero.addEventListener('pointerleave',leave,{passive:true});hero.addEventListener('pointerup',leave,{passive:true});hero.addEventListener('pointercancel',leave,{passive:true})}
if('ResizeObserver' in window){new ResizeObserver(resize).observe(hero)}else{window.addEventListener('resize',resize)}
if('IntersectionObserver' in window){new IntersectionObserver(function(es){visible=es[0].isIntersecting;if(visible)start()},{threshold:0}).observe(hero)}
document.addEventListener('visibilitychange',function(){if(!document.hidden)start()});
resize();start();
} })();
