@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)} /* Lesbarkeit: Builder-Styles dürfen die Textfarben nicht überschreiben */ .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 (läuft, falls der Builder Skripte blockiert) */ .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-Härtung */ .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 Teaduse ja idufirmade auhinna laureaat 2025
Eluteadused Kronachist:
ravimseened
ja koekultuur
Loodusest korjamine, ultraheliga ekstraheerimine ja laborianalüüs – Ülem-Frangimaa idufirmalt, kes teeb teaduse nähtavaks.
Poodi
Loe lähemalt
100of100
Auhinna laureaat 2025
Kronach
Valmistatud Baieris
COA
Iga partii analüüs
Käsitsi korjatud Saksamaal
Ultraheliga ekstraheerimine
Viljakehad, mitte mütseel
Etanool + kuum vesi
Valmistatud Baieris
Laboris kontrollitud
Tooted
Metsas kasvanud,
laboris ekstraheeritud
.
Ravimseeneekstraktid, laborikemikaalid, mullaparandajad ja palju muud – otse tootjalt Kronachis.
Enimmüüdud
Taeliku ekstrakt
Fomes fomentarius
Vedel ravimseeneekstrakt loodusest korjatud viljakehadest. Ultraheli + etanool + kuum vesi.
Loe lähemalt
Vaata poes
Kasekäsnaekstrakt
Fomitopsis betulina
Vedel ravimseeneekstrakt kasekäsnast – ekstraheeritud samal viisil nagu taelik.
Loe lähemalt
Vaata poes
Trichoderma harzianum
Mullaparandaja
Elusad eosed juuretsooni jaoks – 12 miljonit eost grammi kohta. Mullaparandaja, mitte taimekaitsevahend.
Loe lähemalt
Metüleensinine
Laborikemikaal · USP spetsifikatsioon
Kõrge puhtusastmega laborikemikaal ja tekstiilivärv. Mitte sisse võtta.
Vaata poes
Kanep ja tarvikud
Seemned · analüüsid · väetised
Teadlikult ja vastutustundlikult, seaduse piires. Palun järgi oma riigi eeskirju.
Vaata poes
Sitsiilia oliiviõli
Finazzo · Passione per la natura
Kaks sorti Sitsiiliast, käsitsi korjatud ja külmpressitud. 0,75 l pudel.
Vaata poes
Uuringud ja teadustöö
Teadusallikad
Taustateave, uuringud ja allikad ravimseente ning meie laboritöö kohta.
Loe lähemalt
Ravimseeneekstraktid võivad olla toidulisandid ega asenda tasakaalustatud ja mitmekesist toitumist. Soovitatavat päevast annust ei tohi ületada. Metüleensinine on laborikemikaal, mis ei ole mõeldud sissevõtmiseks.
Metsast pudelisse
Viis sammu.
Ei midagi
vahepealset.
01
Loodusest korjamine
02
Ultraheli
03
Etanool + kuum vesi
04
Laborikontroll
05
Villimine
1. samm / 5
Loodusest korjamine
Korjame taelikuid ja kasekäsni käsitsi Saksamaa metsadest. Kasutame ainult viljakehi, mitte mütseeli.
Ainult viljakehad
2. samm / 5
Ultraheli
Seente kõvad rakustruktuurid lõhustatakse ultraheliga – see on õrn ja nüüdisaegne laboripraktikas kasutatav meetod.
Ultraheliga ekstraheerimine
3. samm / 5
Etanool + kuum vesi
Etanooli ja kuuma veega tehtav topeltekstraktsioon toob ekstrakti nii vees kui ka alkoholis lahustuvad koostisosad. Mõlemat seent töödeldakse samal viisil.
Ultraheli + etanool + kuum vesi
4. samm / 5
Laborikontroll
Iga partii kontrollitakse laboris. Tulemused dokumenteerime partii analüüsina (COA).
COA iga partii kohta
5. samm / 5
Villimine
Tooted villitakse ja saadetakse teele Kronachist, diskreetses pakendis ja jälgimisnumbriga.
Valmistatud Baieris
5000
aastat traditsiooni
Ötzi liustikumuumia juurest leidsid arheoloogid taeliku ja kasekäsna. Nende seente kasutamine põhineb põlvest põlve edasi antud kogemustel. Ühendame selle traditsiooni nüüdisaegse ultraheliga ekstraheerimisega – raviväiteid esitamata.
Teenused
Labor, mis
töötab sinu
heaks.
Teaduslikul tasemel analüüsid ja taimede kasvatamine otse Ülem-Frangimaal.
Kanepi analüüsid
Proovide profileerimine ja kontroll tänapäevaste mõõtmismeetoditega.
NIR
HPLC
GC-MS
Terpeenid
Pestitsiidid
Raskmetallid
Küsi nõu
In vitro koekultuur
Taimede paljundamine steriilsetes koekultuurides – puhtalt, ühtlaselt ja prognoositavalt.
Mikropropagatsioon
Haigustekitajavaba
Sordipuhtuse säilitamine
Küsi nõu
Kvaliteedikontroll
Kontrollime oma partiide koostisosi, raskmetalle, mikrobioloogilist puhtust ja jääke.
Koostisosad
Raskmetallid
Mikrobioloogia
Jäägid
Küsi nõu
Miks GrayZone Labs
Kuus põhjust,
miks meid
usaldada
.
01
Teaduslik tipptase
Laboris kasutatavad meetodid, mitte kõhutunne: mõõdame, kontrollime ja dokumenteerime.
02
Tugevad kohalikud juured
Valmistatud Kronachis, Ülem-Frangimaal – lühikesed tarneahelad ja täielik kontroll.
03
Maksimaalne läbipaistvus
Partii analüüsidega saab tutvuda lingi või QR-koodi kaudu.
04
Tunnustatud kvaliteet
100of100 Science & Startups Award 2025 auhinna laureaat.
05
Ainult viljakehad
Meie seeneekstraktid on valmistatud viljakehadest, mitte teraviljal kasvatatud mütseelist.
06
Klienditeenindus
Isiklik nõustamine, diskreetne pakend ja saadetise jälgimisnumber.
100of100
Teaduse ja idufirmade auhind
2025
Teadus
Auhinnatud
innovatsioon.
100of100 Award tunnustab teaduslikku põhjalikkust ja innovatsiooni. Meie jaoks tähendab see kohustust toetada iga väidet andmetega.
2025
Teaduse ja idufirmade auhinna laureaat
100 %
partiidest laboris kontrollitud
Vaata teadusallikaid
Asukoht ja kontakt
Meie juured on
Kronachis
, Ülem-Frangimaal.
Nõustamine ja laborikülastused kokkuleppel. Kirjuta või helista meile.
Friesener Straße 13
96317 Kronach, Ülem-Frangimaa, Baieri
grayzonelabs@proton.me
+49 174 1524416
Sõidujuhised ja lahtiolekuajad →
Kronach
Ülem-Frangimaa · Baieri
Oled valmis
laborikvaliteediks
?
Avasta e-poes ekstrakte, laborikemikaale ja muud – või võta meiega otse ühendust.
E-poodi
Küsi nõu
GrayZone
Labs
Eluteadused Kronachist: ravimseened, laborikemikaalid ja koekultuur. 100of100 Science & Startups Award 2025 auhinna laureaat.
Lehed
Tooted
Teenused
Teadus
Kontakt
Uuringud ja teadustöö
E-pood
Poodi
Ravimseeneekstraktid
Kanep ja tarvikud
Õiguslik teave
Ettevõtte andmed
Andmekaitse
Müügitingimused
© GrayZone Labs · Anja Finazzo · Friesener Straße 13 · 96317 Kronach. Ravimseeneekstraktid võivad olla toidulisandid ega asenda tasakaalustatud ja mitmekesist toitumist. Metüleensinine on laborikemikaal, mis ei ole mõeldud sissevõtmiseks. Trichoderma on mullaparandaja, mitte taimekaitsevahend. Mahetootmise sertifikaat on taotlemisel.
{"@context":"https://schema.org","@type":"Organization","name":"Grayzone Labs","url":"https://www.grayzonelabs.net","foundingDate":"2022","founder":{"@type":"Person","name":"Luca Finazzo","jobTitle":"Gründer & Geschäftsführer (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))}
/* Marquee verdoppeln */
var mq=$('[data-mq]'); if(mq){mq.innerHTML+=mq.innerHTML}
/* Sanftes Scrollen zu Abschnitten (ersetzt den globalen Anker-Handler der alten Seite) */
$$('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')}) }
/* Karten-Glow folgt dem 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: reaktives Myzel-Netz + Sporen */
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)} /* Lesbarkeit: Builder-Styles dürfen die Textfarben nicht überschreiben */ .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 (läuft, falls der Builder Skripte blockiert) */ .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-Härtung */ .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 Teaduse ja idufirmade auhinna laureaat 2025
Eluteadused Kronachist:
ravimseened
ja koekultuur
Loodusest korjamine, ultraheliga ekstraheerimine ja laborianalüüs – Ülem-Frangimaa idufirmalt, kes teeb teaduse nähtavaks.
Poodi
Loe lähemalt
100of100
Auhinna laureaat 2025
Kronach
Valmistatud Baieris
COA
Iga partii analüüs
Käsitsi korjatud Saksamaal
Ultraheliga ekstraheerimine
Viljakehad, mitte mütseel
Etanool + kuum vesi
Valmistatud Baieris
Laboris kontrollitud
Tooted
Metsas kasvanud,
laboris ekstraheeritud
.
Ravimseeneekstraktid, laborikemikaalid, mullaparandajad ja palju muud – otse tootjalt Kronachis.
Enimmüüdud
Taeliku ekstrakt
Fomes fomentarius
Vedel ravimseeneekstrakt loodusest korjatud viljakehadest. Ultraheli + etanool + kuum vesi.
Loe lähemalt
Vaata poes
Kasekäsnaekstrakt
Fomitopsis betulina
Vedel ravimseeneekstrakt kasekäsnast – ekstraheeritud samal viisil nagu taelik.
Loe lähemalt
Vaata poes
Trichoderma harzianum
Mullaparandaja
Elusad eosed juuretsooni jaoks – 12 miljonit eost grammi kohta. Mullaparandaja, mitte taimekaitsevahend.
Loe lähemalt
Metüleensinine
Laborikemikaal · USP spetsifikatsioon
Kõrge puhtusastmega laborikemikaal ja tekstiilivärv. Mitte sisse võtta.
Vaata poes
Kanep ja tarvikud
Seemned · analüüsid · väetised
Teadlikult ja vastutustundlikult, seaduse piires. Palun järgi oma riigi eeskirju.
Vaata poes
Sitsiilia oliiviõli
Finazzo · Passione per la natura
Kaks sorti Sitsiiliast, käsitsi korjatud ja külmpressitud. 0,75 l pudel.
Vaata poes
Uuringud ja teadustöö
Teadusallikad
Taustateave, uuringud ja allikad ravimseente ning meie laboritöö kohta.
Loe lähemalt
Ravimseeneekstraktid võivad olla toidulisandid ega asenda tasakaalustatud ja mitmekesist toitumist. Soovitatavat päevast annust ei tohi ületada. Metüleensinine on laborikemikaal, mis ei ole mõeldud sissevõtmiseks.
Metsast pudelisse
Viis sammu.
Ei midagi
vahepealset.
01
Loodusest korjamine
02
Ultraheli
03
Etanool + kuum vesi
04
Laborikontroll
05
Villimine
1. samm / 5
Loodusest korjamine
Korjame taelikuid ja kasekäsni käsitsi Saksamaa metsadest. Kasutame ainult viljakehi, mitte mütseeli.
Ainult viljakehad
2. samm / 5
Ultraheli
Seente kõvad rakustruktuurid lõhustatakse ultraheliga – see on õrn ja nüüdisaegne laboripraktikas kasutatav meetod.
Ultraheliga ekstraheerimine
3. samm / 5
Etanool + kuum vesi
Etanooli ja kuuma veega tehtav topeltekstraktsioon toob ekstrakti nii vees kui ka alkoholis lahustuvad koostisosad. Mõlemat seent töödeldakse samal viisil.
Ultraheli + etanool + kuum vesi
4. samm / 5
Laborikontroll
Iga partii kontrollitakse laboris. Tulemused dokumenteerime partii analüüsina (COA).
COA iga partii kohta
5. samm / 5
Villimine
Tooted villitakse ja saadetakse teele Kronachist, diskreetses pakendis ja jälgimisnumbriga.
Valmistatud Baieris
5000
aastat traditsiooni
Ötzi liustikumuumia juurest leidsid arheoloogid taeliku ja kasekäsna. Nende seente kasutamine põhineb põlvest põlve edasi antud kogemustel. Ühendame selle traditsiooni nüüdisaegse ultraheliga ekstraheerimisega – raviväiteid esitamata.
Teenused
Labor, mis
töötab sinu
heaks.
Teaduslikul tasemel analüüsid ja taimede kasvatamine otse Ülem-Frangimaal.
Kanepi analüüsid
Proovide profileerimine ja kontroll tänapäevaste mõõtmismeetoditega.
NIR
HPLC
GC-MS
Terpeenid
Pestitsiidid
Raskmetallid
Küsi nõu
In vitro koekultuur
Taimede paljundamine steriilsetes koekultuurides – puhtalt, ühtlaselt ja prognoositavalt.
Mikropropagatsioon
Haigustekitajavaba
Sordipuhtuse säilitamine
Küsi nõu
Kvaliteedikontroll
Kontrollime oma partiide koostisosi, raskmetalle, mikrobioloogilist puhtust ja jääke.
Koostisosad
Raskmetallid
Mikrobioloogia
Jäägid
Küsi nõu
Miks GrayZone Labs
Kuus põhjust,
miks meid
usaldada
.
01
Teaduslik tipptase
Laboris kasutatavad meetodid, mitte kõhutunne: mõõdame, kontrollime ja dokumenteerime.
02
Tugevad kohalikud juured
Valmistatud Kronachis, Ülem-Frangimaal – lühikesed tarneahelad ja täielik kontroll.
03
Maksimaalne läbipaistvus
Partii analüüsidega saab tutvuda lingi või QR-koodi kaudu.
04
Tunnustatud kvaliteet
100of100 Science & Startups Award 2025 auhinna laureaat.
05
Ainult viljakehad
Meie seeneekstraktid on valmistatud viljakehadest, mitte teraviljal kasvatatud mütseelist.
06
Klienditeenindus
Isiklik nõustamine, diskreetne pakend ja saadetise jälgimisnumber.
100of100
Teaduse ja idufirmade auhind
2025
Teadus
Auhinnatud
innovatsioon.
100of100 Award tunnustab teaduslikku põhjalikkust ja innovatsiooni. Meie jaoks tähendab see kohustust toetada iga väidet andmetega.
2025
Teaduse ja idufirmade auhinna laureaat
100 %
partiidest laboris kontrollitud
Vaata teadusallikaid
Asukoht ja kontakt
Meie juured on
Kronachis
, Ülem-Frangimaal.
Nõustamine ja laborikülastused kokkuleppel. Kirjuta või helista meile.
Friesener Straße 13
96317 Kronach, Ülem-Frangimaa, Baieri
grayzonelabs@proton.me
+49 174 1524416
Sõidujuhised ja lahtiolekuajad →
Kronach
Ülem-Frangimaa · Baieri
Oled valmis
laborikvaliteediks
?
Avasta e-poes ekstrakte, laborikemikaale ja muud – või võta meiega otse ühendust.
E-poodi
Küsi nõu
GrayZone
Labs
Eluteadused Kronachist: ravimseened, laborikemikaalid ja koekultuur. 100of100 Science & Startups Award 2025 auhinna laureaat.
Lehed
Tooted
Teenused
Teadus
Kontakt
Uuringud ja teadustöö
E-pood
Poodi
Ravimseeneekstraktid
Kanep ja tarvikud
Õiguslik teave
Ettevõtte andmed
Andmekaitse
Müügitingimused
© GrayZone Labs · Anja Finazzo · Friesener Straße 13 · 96317 Kronach. Ravimseeneekstraktid võivad olla toidulisandid ega asenda tasakaalustatud ja mitmekesist toitumist. Metüleensinine on laborikemikaal, mis ei ole mõeldud sissevõtmiseks. Trichoderma on mullaparandaja, mitte taimekaitsevahend. Mahetootmise sertifikaat on taotlemisel.
{"@context":"https://schema.org","@type":"Organization","name":"Grayzone Labs","url":"https://www.grayzonelabs.net","foundingDate":"2022","founder":{"@type":"Person","name":"Luca Finazzo","jobTitle":"Gründer & Geschäftsführer (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))}
/* Marquee verdoppeln */
var mq=$('[data-mq]'); if(mq){mq.innerHTML+=mq.innerHTML}
/* Sanftes Scrollen zu Abschnitten (ersetzt den globalen Anker-Handler der alten Seite) */
$$('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')}) }
/* Karten-Glow folgt dem 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: reaktives Myzel-Netz + Sporen */
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();
} })();
