:root{
  --night:#120e28;--indigo:#1c1742;--violet:#2a2362;--violet-2:#3b3288;--pipe:#6d74d6;--pipe-hi:#9aa2f2;
  --pink:#f2a9ec;--pink-d:#c877c2;--paper:#f6f3ff;--ink:#0e0b24;--mute:#b9b3e0;
  --lime:#b4f04e;--lime-2:#c9ff6e;--lime-d:#8cc331;--red:#8a0f16;--red-d:#5c070c;
  --sky:#9ff0fc;--mint:#b8f2c9;--lemon:#fff3a6;--lilac:#e3d6ff;--rust:#e0785a;--teal:#1d6f73;
  --grey:#35353b;--grey-d:#26262b;--yellow:#facc15;--mono:"JetBrains Mono",ui-monospace,monospace;
  --wrap:1360px;--gut:clamp(16px,4vw,56px);--cell:2px;
  --f-logo:"Silkscreen",monospace;--f:"Archivo",system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:80px;overflow-x:hidden}
body{margin:0;background:var(--grey);position:relative;color:var(--paper);font:500 17px/1.55 var(--f);overflow-x:hidden;-webkit-font-smoothing:antialiased}
body.is-loading{overflow:hidden}
img,canvas{display:block;image-rendering:pixelated;image-rendering:crisp-edges}
a{color:inherit;text-decoration:underline;text-underline-offset:3px}
a:hover{color:var(--lime)}
::selection{background:var(--lime);color:var(--ink)}
:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
button{font:inherit;color:inherit}
h1,h2,h3{font-family:var(--f);font-weight:900;font-stretch:115%;line-height:.94;margin:0;letter-spacing:-.035em;text-wrap:balance}
p{margin:0;text-wrap:pretty}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{position:relative;max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.logo{font-family:var(--f-logo);font-weight:400;letter-spacing:.01em;line-height:1}
.kicker{margin:0;font:800 14px/1.2 var(--f);letter-spacing:.08em;text-transform:uppercase;color:var(--pink)}

/* ---------- Preloader ---------- */
.loader{position:fixed;inset:0;z-index:100;background:var(--grey-d);color:var(--paper);display:grid;place-items:center;padding:var(--gut)}
.loader__box{width:min(560px,100%);display:grid;gap:22px}
.loader__title{font-size:clamp(28px,6vw,52px)}
.loader__bar{height:28px;border:4px solid var(--paper);padding:4px}
.loader__fill{height:100%;width:0;background:var(--lime);transition:width .12s linear}
.loader__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-weight:700;color:var(--mute)}
.loader__pct{font:900 28px/1 var(--f);color:var(--paper)}
.loader.is-out{animation:loaderOut .6s steps(6) forwards}
@keyframes loaderOut{0%{clip-path:inset(0)}25%{transform:translateX(-10px)}50%{clip-path:inset(20% 0 30% 0);transform:translateX(12px)}75%{clip-path:inset(46% 0 46% 0);transform:none}100%{clip-path:inset(50% 0 50% 0);visibility:hidden}}
.page{opacity:0}
.page.is-in{opacity:1;animation:pageIn .5s steps(5)}
@keyframes pageIn{0%{clip-path:inset(0 0 100% 0)}40%{clip-path:inset(0 0 50% 0);transform:translateX(5px)}70%{clip-path:inset(0 0 15% 0);transform:translateX(-3px)}100%{clip-path:inset(0);transform:none}}

/* ---------- Nav ---------- */
.nav{position:sticky;top:0;z-index:50;background:rgba(38,38,43,.94);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:3px solid var(--ink)}
.nav__in{display:flex;align-items:center;gap:28px;height:72px}
.brand{display:flex;align-items:center;gap:12px;font-size:24px;color:var(--paper);text-decoration:none}
.brand:hover{color:var(--lime)}
.brand__head{width:44px;height:44px;border:3px solid var(--ink);background:var(--lime)!important}
.nav__links{display:flex;gap:4px;margin:0;padding:0;list-style:none}
.nav__links a{display:block;padding:10px 12px;font-weight:800;font-size:15px;color:var(--mute);text-decoration:none}
.nav__links a:hover,.nav__links a.is-active{color:var(--lime)}
.nav__end{margin-left:auto;display:flex;align-items:center;gap:12px}
.icon-btn{display:grid;place-items:center;width:44px;height:44px;border:3px solid var(--violet-2);color:var(--paper);background:transparent;cursor:pointer}
.icon-btn:hover{border-color:var(--lime);color:var(--lime)}
.icon-btn svg{width:17px;height:17px;fill:currentColor;display:block}
.nav__burger{display:none}
.burger{width:18px;height:12px;display:grid;align-content:space-between}
.burger i{display:block;height:3px;background:currentColor}
@media (max-width:1000px){
  .nav__links{position:fixed;left:0;right:0;top:72px;flex-direction:column;gap:0;background:var(--night);border-bottom:3px solid var(--lime);padding:4px var(--gut) 18px;display:none}
  .nav__links.is-open{display:flex}
  .nav__links a{padding:16px 0;font-size:22px;color:var(--paper);border-bottom:2px solid var(--violet)}
  .nav__burger{display:grid}
}
@media (max-width:460px){.nav .btn--sm .long{display:none}.brand{font-size:18px}.nav__in{gap:10px}.brand__head{width:36px;height:36px}}

/* ---------- Art (DOM pixel boxes) ---------- */
.art{position:relative;display:block;overflow:hidden;background:var(--violet)}
.art>img,.art>canvas,.art .ch{position:absolute;left:0;top:0;max-width:none}
.art .chs{position:absolute;inset:0;isolation:isolate;opacity:0;overflow:hidden;pointer-events:none}
.art .ch{mix-blend-mode:screen;opacity:.35}
.art .ch--r{filter:url(#ch-r)}
.art .ch--gb{display:none}
.glitchable.is-glitch .chs{opacity:1}
.glitchable.is-glitch .ch--r{translate:calc(var(--cell) * -1) 0}

/* ---------- Section heads ---------- */
.sec{padding:clamp(72px,10vw,136px) 0}
.head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px 40px;margin-bottom:clamp(32px,5vw,56px)}
.head .kicker{margin-bottom:14px}
.head h2{font-size:clamp(44px,7vw,100px)}
.head p{font-size:19px;max-width:420px;color:var(--mute)}

/* ---------- Ticker ---------- */
.ticker{background:var(--lime);color:var(--ink);overflow:hidden;border-block:3px solid var(--ink)}
.ticker__track{display:flex;width:max-content;animation:tick 48s linear infinite}
.ticker:hover .ticker__track{animation-play-state:paused}
.ticker__set{display:flex;align-items:center;gap:28px;padding:14px 14px}
.ticker__txt{font:900 30px/1 var(--f);font-stretch:115%;white-space:nowrap;letter-spacing:-.02em;text-transform:uppercase}
.ticker .art{width:88px;height:88px;flex:0 0 88px;border:3px solid var(--ink)}
@keyframes tick{to{transform:translateX(-50%)}}

/* ---------- Specimen shelves ---------- */
.filters{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:28px}
.shelves{display:grid;grid-template-columns:repeat(3,1fr);column-gap:0;row-gap:36px;padding:28px 20px 24px;background:var(--indigo);border:4px solid var(--ink);border-radius:14px}
@media (max-width:560px){.shelves{--cell:1.1px}}
.wallpager{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:24px}
.wallpager__info{font:600 13px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;min-width:120px;text-align:center}
.arrow:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;background:transparent;transform:none}
.spec{position:relative;display:grid;grid-template-rows:calc(110 * var(--cell)) 18px auto;justify-items:center;align-items:end;padding:0;border:0;background:transparent;cursor:pointer;text-align:center;color:var(--paper)}
.spec canvas{transition:transform .12s}
.spec:hover canvas,.spec:focus-visible canvas{transform:translateY(calc(var(--cell) * -3))}
.spec:focus-visible{outline-offset:-3px}
.spec .shelf{width:100%;border-inline-width:0}
.spec[hidden]{display:none}
.spec__cap{display:block;padding:12px 8px 0;font:800 15px/1.2 var(--f)}
.tip{position:fixed;z-index:60;pointer-events:none;min-width:220px;max-width:280px;background:var(--paper);color:var(--ink);border:3px solid var(--ink);box-shadow:6px 6px 0 0 var(--lime);padding:14px 16px;display:none}
.tip.is-on{display:block}
.tip__h{font:900 20px/1 var(--f);letter-spacing:-.02em;margin-bottom:10px}
.tip dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:3px 14px;font-size:14px;line-height:1.4}
.tip dt{font-weight:500;color:#4c4670}
.tip dd{margin:0;font-weight:800}

/* ---------- Devils: camera feed ---------- */
.devil{background:var(--red);color:#fff;overflow:hidden}
.devil .kicker{color:#ffd0d0}
.devil .head p{color:#ffe0e0}
.devil__pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,3vw,40px)}
@media (max-width:720px){.devil__pair{grid-template-columns:1fr}}
.dcard{display:grid;gap:16px;align-content:start}
.dcard h3{font-size:clamp(26px,3.2vw,44px)}
.dcard p{color:#ffe0e0;font-weight:600}
.cam{position:relative;border:4px solid #000;box-shadow:10px 10px 0 0 #000;background:#000;overflow:hidden}
.cam .art{aspect-ratio:1;width:100%;background:#000}
.cam--night .art{background:#3a0508}
.cam__fx{position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(to bottom,rgba(0,0,0,.28) 0 2px,transparent 2px 4px)}
.cam__noise{position:absolute;inset:-40%;pointer-events:none;opacity:.12;background-image:var(--noise);background-size:96px 96px;image-rendering:pixelated;animation:camNoise .3s steps(3) infinite;mix-blend-mode:screen}
@keyframes camNoise{0%{transform:translate(0,0)}33%{transform:translate(-6%,4%)}66%{transform:translate(5%,-5%)}}
.cam__roll{position:absolute;left:0;right:0;height:18%;top:-20%;pointer-events:none;background:rgba(255,255,255,.06);animation:camRoll 5s linear infinite}
@keyframes camRoll{to{top:110%}}
.cam__hud{position:absolute;inset:0;pointer-events:none;padding:5%;font:800 clamp(11px,1.3vw,15px)/1 var(--f);letter-spacing:.06em;color:#fff;text-shadow:0 2px 0 #000;font-variant-numeric:tabular-nums}
.cam__hud>*{position:absolute}
.cam__rec{left:5%;top:5%;display:flex;align-items:center;gap:8px}
.cam__rec i{width:12px;height:12px;border-radius:50%;background:#ff2b2b;box-shadow:0 0 0 2px #000;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.cam__id{right:5%;top:5%}
.cam__tc{left:5%;bottom:5%}
.cam__bat{right:5%;bottom:5%;width:34px;height:16px;border:2px solid #fff;box-shadow:0 2px 0 #000;padding:2px}
.cam__bat::before{content:"";display:block;height:100%;width:70%;background:#fff}
.cam__bat::after{content:"";position:absolute;right:-6px;top:3px;width:4px;height:6px;background:#fff}
.cam__corner{width:9%;aspect-ratio:1;border:3px solid #fff}
.cam__corner:nth-of-type(1){left:3%;top:3%;border-right:0;border-bottom:0}
.cam__corner:nth-of-type(2){right:3%;top:3%;border-left:0;border-bottom:0}
.cam__corner:nth-of-type(3){left:3%;bottom:3%;border-right:0;border-top:0}
.cam__corner:nth-of-type(4){right:3%;bottom:3%;border-left:0;border-top:0}
.cam__focus{left:50%;top:50%;width:14%;aspect-ratio:1;transform:translate(-50%,-50%);border:2px solid rgba(255,255,255,.7)}
.cam .art.is-jolt>img{translate:var(--cell) 0}

/* ---------- Apply (clipboard) ---------- */
.apply__grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(36px,5vw,80px);align-items:start}
@media (max-width:920px){.apply__grid{grid-template-columns:1fr}}
.apply__side{display:grid;gap:24px;align-content:start}
.apply__side h2{font-size:clamp(48px,7vw,110px)}
.apply__side>p{font-size:19px;font-weight:600;max-width:440px;color:var(--lilac)}
.apply__spec{width:min(100%,352px);aspect-ratio:1;border:4px solid var(--ink);box-shadow:8px 8px 0 var(--ink)}
.apply__spec.is-live{box-shadow:8px 8px 0 var(--lime)}
.apply__who{display:grid;gap:4px;font-weight:700;color:var(--mute)}
.apply__who b{font:900 26px/1.1 var(--f);letter-spacing:-.02em;overflow-wrap:anywhere;color:var(--paper)}
.form{position:relative;background:var(--paper);color:var(--ink);border:4px solid var(--ink);box-shadow:12px 12px 0 0 var(--ink);display:grid;gap:28px;padding:clamp(40px,4vw,52px) clamp(22px,3.4vw,40px) clamp(22px,3.4vw,40px);margin-top:26px}
.form::before{content:"";position:absolute;left:50%;top:-26px;transform:translateX(-50%);width:160px;height:44px;background:var(--pipe);border:4px solid var(--ink);box-shadow:inset 0 6px 0 var(--pipe-hi)}
.form__top{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding-bottom:18px;border-bottom:3px solid var(--ink)}
.form__top h3{font-size:clamp(26px,3vw,40px)}
.serum{display:flex;align-items:center;gap:10px;font-weight:800;font-size:15px}
.serum__bar{display:grid;grid-template-columns:1fr 1fr;gap:4px;width:88px;height:18px;padding:3px;border:3px solid var(--ink)}
.serum__bar i{background:transparent}
.serum__bar i.on{background:var(--lime-d)}
.field{display:grid;gap:10px}
.field label{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;font:800 18px/1.2 var(--f)}
.field label span{font-weight:600;font-size:14px;color:#4c4670}
.input-row{display:flex;border:3px solid var(--ink);background:#fff}
.input-row:focus-within{box-shadow:5px 5px 0 0 var(--lime-d)}
.field.is-bad .input-row{border-color:#c21d10;box-shadow:5px 5px 0 0 #c21d10}
.field.is-good .input-row{box-shadow:5px 5px 0 0 var(--lime-d)}
.input{flex:1;min-width:0;min-height:58px;padding:14px 16px;background:transparent;border:0;color:var(--ink);font:600 17px/1.4 var(--f);outline:none;resize:none}
.input::placeholder{color:#7d7799}
textarea.input{min-height:100px;word-break:break-all;font-size:15px}
.paste{flex:0 0 auto;border:0;border-left:3px solid var(--ink);background:var(--lime);color:var(--ink);padding:0 20px;font:800 16px/1 var(--f);cursor:pointer;min-width:96px}
.paste:hover{background:var(--lime-2)}
.paste:active{background:var(--lime-d)}
.form :focus-visible{outline-color:var(--ink)}
.field__foot{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:15px;font-weight:600;min-height:1.5em}
.hint{color:#4c4670}
.ok{color:#2f6b00;font-weight:800}
.err{display:flex;gap:8px;align-items:flex-start;color:#a3170c;font-weight:800}
.err::before{content:"!";flex:0 0 20px;height:20px;display:grid;place-items:center;background:#c21d10;color:#fff;font:900 13px/1 var(--f)}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.form__submit{display:grid;gap:16px}
.form__submit>.btn{width:100%}
.privacy{font-size:15px;font-weight:600;color:#3d375e}
.status__box{display:grid;gap:12px;justify-items:start;padding:18px;border:3px solid var(--ink)}
.status__t{font:900 24px/1.05 var(--f);letter-spacing:-.02em}
.status p{font-size:15px;font-weight:600}
.status--submitting .status__box{background:var(--lemon)}
.status--success .status__box{background:var(--lime)}
.status--duplicate .status__box{background:var(--sky)}
.status--error .status__box{background:#ffd6d0}
.inject{width:100%;height:18px;border:3px solid var(--ink);padding:2px}
.inject i{display:block;height:100%;width:30%;background:var(--ink);animation:inject 1s steps(8) infinite}
@keyframes inject{0%{margin-left:0}100%{margin-left:70%}}
.demo-note{font-size:13px;font-weight:700;color:#6b5a00}

/* ---------- FAQ ---------- */
.faq{max-width:1000px}
.faq details{border-top:3px solid var(--violet-2)}
.faq details:last-child{border-bottom:3px solid var(--violet-2)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;align-items:center;padding:26px 0;font:800 clamp(22px,2.6vw,32px)/1.15 var(--f);letter-spacing:-.02em}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--lime)}
.faq summary i{flex:0 0 22px;width:22px;height:22px;position:relative}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;background:var(--lime);left:0;right:0;top:9px;height:4px}
.faq summary i::after{transform:rotate(90deg)}
.faq details[open] summary i::after{display:none}
.faq__a{padding:0 48px 28px 0;color:var(--mute);font-size:18px;max-width:760px}
.faq__a p+p{margin-top:10px}
.faq__a b{color:var(--paper)}
.faq__a a{color:var(--lime)}

/* ---------- Footer ---------- */
.foot{background:var(--lime);color:var(--ink);padding:clamp(56px,8vw,96px) 0 36px;border-top:3px solid var(--ink)}
.foot :focus-visible{outline-color:var(--ink)}
.foot__big{font-size:min(10.2vw,164px);white-space:nowrap;max-width:100%;margin-bottom:32px}
.foot .btn{--c:var(--ink);--t:var(--lime)}
.foot .btn:hover{--c:#000}
.foot__row{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;margin-top:40px;padding-top:22px;border-top:3px solid var(--ink);font-weight:700;font-size:15px}
.foot__row a{display:inline-flex;gap:8px;align-items:center;color:var(--ink)}
.foot__row svg{width:15px;height:15px;fill:currentColor}
.foot__disc{flex:1 1 320px;font-size:13px;font-weight:500}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .page{opacity:1}
  .loader.is-out{display:none}
}

/* ---------- Lab desk backdrop ---------- */


/* ---------- Buttons (emboss, fx-55) ---------- */
:root{--bink:#E2F1F2;--bsurf:var(--grey);--bsh:rgba(0,0,0,.55);--bhi:rgba(255,255,255,.12)}
.form,.pad,.foot,.report,.cover,.status{--bink:#0F191E;--bsurf:#E2F1F2;--bsh:color-mix(in srgb,#0F191E 35%,transparent);--bhi:#fff}
.foot{--bsurf:var(--lime)}
.btn,.chip,.arrow,.icon-btn,.paste,.pad__x{position:relative;isolation:isolate;font:600 13px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;
  border:1px solid var(--bink);border-radius:8px;background:transparent;color:var(--bink);cursor:pointer;white-space:nowrap;text-decoration:none;user-select:none;
  transition:all .4s cubic-bezier(.22,1,.36,1)}
.btn:hover,.chip:hover,.arrow:hover,.icon-btn:hover,.paste:hover,.pad__x:hover,.chip.is-on{color:var(--bink);border-color:var(--bink);
  box-shadow:inset 2px 2px 4px var(--bsh),inset -2px -2px 4px var(--bhi);background:color-mix(in srgb,var(--bink) 6%,var(--bsurf))}
.btn:active,.chip:active,.arrow:active,.icon-btn:active,.paste:active,.pad__x:active{box-shadow:inset 3px 3px 6px var(--bsh),inset -1px -1px 2px var(--bhi);transform:translateY(1px)}
.btn{display:inline-flex;align-items:center;justify-content:flex-start;gap:12px;min-height:48px;padding:13px 24px}
.btn--white{border-style:dashed}
.btn--sm{min-height:40px;padding:10px 16px;font-size:12px}
.btn[disabled]{opacity:.45;cursor:not-allowed;box-shadow:none;background:transparent;transform:none}
.btn__arrow{width:14px;height:14px;flex:0 0 14px;background:currentColor;clip-path:polygon(0 40%,60% 40%,60% 10%,100% 50%,60% 90%,60% 60%,0 60%)}
.chip{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 16px}
.chip span{display:inline-grid;place-items:center;min-width:26px;height:22px;padding:0 6px;border-radius:4px;background:var(--bink);color:var(--bsurf);font-size:11px}
.tag{--c:var(--paper);display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border:1px solid var(--ink);border-radius:8px;background:var(--c);color:var(--ink);font:600 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.tag--lemon{--c:#ffe36e}.tag--sky{--c:var(--sky)}.tag--red{--c:#ff5d5d}
.icon-btn{border-color:color-mix(in srgb,var(--bink) 40%,transparent)}
.paste{border-width:0 0 0 1px;border-radius:0;min-width:96px;padding:0 18px}
.arrow{box-shadow:none;margin-bottom:0}
.arrow:hover{background:color-mix(in srgb,var(--bink) 6%,var(--bsurf))}
.pad__x{border-radius:8px}

/* ---------- Loader (Pulse EKG) ---------- */
.ld-ekg{--ekg-ink:currentColor;width:128px;height:64px;color:var(--yellow);overflow:visible}
.status .ld-ekg{color:var(--ink)}
.ld-ekg polyline{fill:none;stroke:var(--ekg-ink);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:90;stroke-dashoffset:90;animation:ekg 1.6s linear infinite}
@keyframes ekg{0%{stroke-dashoffset:90}60%,75%{stroke-dashoffset:0}100%{stroke-dashoffset:-90}}

/* ---------- Ribbons (infinite ribbon) ---------- */
.ribbons{position:relative;display:grid;place-items:center;height:clamp(150px,15vw,200px);overflow:hidden}
.ribbon{grid-area:1/1;width:120%;background:var(--yellow);color:#000;border-block:3px solid #000;transform:rotate(var(--rot));overflow:hidden;padding:8px 0}
.ribbon--rev{z-index:1}
.ribbon__track{display:flex;width:max-content;white-space:nowrap;animation:ribbon 42s linear infinite}
.ribbon--rev .ribbon__track{animation-name:ribbonRev}
.ribbon__item{display:inline-flex;align-items:center;gap:14px;margin-right:32px;font:900 clamp(20px,2.4vw,30px)/1 var(--f);font-stretch:115%;letter-spacing:-.02em;text-transform:uppercase;user-select:none}
.ribbon .art{width:48px;height:48px;flex:0 0 48px;border:2px solid #000}
@keyframes ribbon{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes ribbonRev{from{transform:translateX(-50%)}to{transform:translateX(0)}}

/* ---------- Hero desk ---------- */
.hotlab{padding:0;background:var(--night)}
.hotlab__frame{position:relative;width:min(100%,1415px);aspect-ratio:1415/1111;margin:auto;border-block:4px solid var(--ink);overflow:hidden;background:var(--indigo)}
.hotlab__art{width:100%;height:100%;object-fit:contain;image-rendering:auto}
.hotlab__spots{position:absolute;inset:0}
.hotspot{position:absolute;left:var(--x);top:var(--y);width:var(--w);height:var(--h);padding:0;border:0;background:transparent;cursor:pointer}
.hotspot:focus-visible{outline:0}
.hotspot::before{display:none}
.hotspot span{position:absolute;left:50%;bottom:4px;transform:translate(-50%,6px);width:max-content;max-width:180px;padding:5px 8px;background:var(--ink);color:var(--paper);font:800 11px/1.1 var(--f);opacity:0;pointer-events:none;transition:opacity .12s,transform .12s}
.hotspot:hover span,.hotspot:focus-visible span{opacity:1;transform:translate(-50%,0)}

@media(max-width:760px){.hotlab__frame{width:100%;margin:0}.hotspot span{display:none}}

.hotdrawer{padding:0;border:0;background:transparent;width:min(860px,calc(100vw - 24px));max-width:none;overflow:visible;color:var(--ink)}
.hotdrawer::backdrop{background:rgba(14,11,36,.78);backdrop-filter:blur(4px)}
.hotdrawer__panel{background:var(--paper);border:4px solid var(--ink);box-shadow:14px 14px 0 var(--lime);max-height:calc(100dvh - 32px);display:grid;grid-template-rows:auto minmax(0,1fr)}
.hotdrawer__head{display:flex;align-items:center;gap:20px;padding:16px 18px;border-bottom:4px solid var(--ink);background:var(--pink)}
.hotdrawer__head>div{display:grid;gap:4px}.hotdrawer__head span{font:800 11px/1 var(--mono);text-transform:uppercase}.hotdrawer__head h2{font-size:clamp(24px,4vw,42px);letter-spacing:0}
.hotdrawer__close{position:relative;margin-left:auto;width:44px;height:44px;flex:0 0 44px;border:3px solid var(--ink);background:var(--paper);cursor:pointer}
.hotdrawer__close:hover{background:var(--lime)}.hotdrawer__close i::before,.hotdrawer__close i::after{content:"";position:absolute;left:8px;right:8px;top:18px;height:4px;background:var(--ink);transform:rotate(45deg)}.hotdrawer__close i::after{transform:rotate(-45deg)}
.hotdrawer__body{min-height:390px;overflow:auto;padding:clamp(18px,4vw,38px)}.hotdrawer__body.is-reveal{animation:drawerReveal .3s steps(4)}
@keyframes drawerReveal{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:none}}
.hotdrawer__loading{min-height:310px;display:grid;place-items:center;align-content:center;gap:22px}.hotdrawer__loading b{font:800 14px/1 var(--mono)}
.hotdrawer__spec,.hotdrawer__dna{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);gap:clamp(22px,5vw,50px);align-items:center}.hotdrawer__spec h3,.hotdrawer__dna h3,.hotdrawer__zoom h3{font-size:clamp(34px,5vw,62px);letter-spacing:0;margin:8px 0 18px}
.hotdrawer__pixel{aspect-ratio:1;background:var(--indigo);border:4px solid var(--ink);overflow:hidden}.hotdrawer__pixel img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.hotdrawer__pixel--face img{transform:scale(1.8)}
.hotdrawer__traits{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 20px}.hotdrawer__traits dt{color:#5d5880;font-weight:600}.hotdrawer__traits dd{margin:0;font-weight:900}
.hotdrawer__cycle{margin-top:16px;font:800 12px/1 var(--mono);color:#5d5880}
.hotdrawer__dnaframe{height:330px;display:grid;place-items:center;background:var(--indigo);border:4px solid var(--ink)}.hotdrawer__dnaframe img{height:90%;width:auto;image-rendering:pixelated}.hotdrawer__dnaframe img.is-mutating{animation:dnaGlitch .55s steps(5)}
@keyframes dnaGlitch{25%{transform:translateX(-8px);filter:hue-rotate(90deg)}50%{transform:translateX(7px) scale(1.06)}75%{opacity:.35}}
.hotdrawer__meter{height:18px;border:3px solid var(--ink);margin-top:24px;padding:2px}.hotdrawer__meter i{display:block;height:100%;background:var(--lime);animation:meter 1.4s steps(8) forwards}@keyframes meter{from{width:0}to{width:100%}}
.hotdrawer__zoom{display:grid;grid-template-columns:minmax(250px,1fr) minmax(240px,1fr);gap:18px 34px;align-items:start}.zoomstage{aspect-ratio:1;overflow:hidden;background:var(--indigo);border:4px solid var(--ink);touch-action:none;cursor:grab}.zoomstage:active{cursor:grabbing}.zoomstage img{width:100%;height:100%;object-fit:contain;transform-origin:0 0;image-rendering:pixelated;will-change:transform}.zoomtools{grid-row:2;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.zoomtools button{height:44px;border:3px solid var(--ink);background:var(--lime);color:var(--ink);font-weight:900;cursor:pointer}.zoomtools button:hover{background:var(--pink)}.hotdrawer__zoom>div:last-child{grid-column:2;grid-row:1/3}
@media(max-width:650px){.hotdrawer__spec,.hotdrawer__dna,.hotdrawer__zoom{grid-template-columns:1fr}.hotdrawer__pixel,.hotdrawer__dnaframe,.zoomstage{max-width:320px;width:100%;margin:auto}.hotdrawer__zoom>div:last-child{grid-column:1;grid-row:auto}.zoomtools{grid-row:auto}.hotdrawer__panel{max-height:calc(100dvh - 20px)}}

.desk{padding:24px 0 clamp(40px,5vw,64px)}
.desk__crop{position:relative;max-width:1415px;margin:0 auto;overflow:hidden;border-block:4px solid var(--ink);padding:clamp(120px,11vw,140px) 0 clamp(40px,5vw,72px)}
.desk__stage{position:relative;z-index:1}
.desk__inner{position:relative;width:100%;aspect-ratio:1415/1111;container-type:inline-size}
.desk__img{position:absolute;inset:0;width:100%;height:100%;image-rendering:auto;object-fit:cover}
.cover{position:absolute;left:31.3%;top:21%;width:46.6%;height:67.8%;display:grid;grid-template-rows:auto 1fr auto auto;gap:2.2cqw;align-content:start;padding:3cqw 3.2cqw;
  background:#f3ecdf;color:var(--ink);border:0;border-radius:.6cqw;text-align:left;cursor:pointer;box-shadow:inset 0 0 0 .25cqw rgba(14,11,36,.12);transition:transform .15s}
.cover:hover{transform:translateY(-.4cqw) rotate(-.3deg)}
.cover:focus-visible{outline:4px solid var(--lime);outline-offset:4px}
.cover__top{display:flex;justify-content:space-between;gap:10px;padding-bottom:1.2cqw;border-bottom:.3cqw solid var(--ink);font:800 1.25cqw/1 var(--f);letter-spacing:.08em;text-transform:uppercase}
.cover__title{font:900 5.2cqw/.95 var(--f);font-stretch:115%;letter-spacing:-.035em;align-self:center;text-wrap:balance}
.cover__sub{font:600 1.6cqw/1.4 var(--f)}
.cover__cta{display:inline-flex;align-items:center;gap:1cqw;justify-self:start;padding:1.2cqw 2cqw;background:var(--lime);border:.3cqw solid var(--ink);border-radius:1cqw;font:800 1.7cqw/1 var(--f);box-shadow:0 .5cqw 0 #6f9a25,0 .5cqw 0 .3cqw var(--ink)}
.cover__cta .btn__arrow{width:1.4cqw;height:1.4cqw;flex-basis:1.4cqw}
.cover__stamp{position:absolute;right:3cqw;top:9cqw;padding:.6cqw 1.2cqw;border:.35cqw solid #c21d10;color:#c21d10;font:900 1.6cqw/1 var(--f);letter-spacing:.1em;text-transform:uppercase;transform:rotate(8deg);opacity:.85}
.desk__cta{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin-top:28px}
@media (max-width:760px){
  .desk__inner{width:200%;margin-left:-58%;margin-top:-26%;margin-bottom:-18%}
  .cover{gap:3cqw}
}

/* ---------- Reports ---------- */
.reports{padding:clamp(56px,8vw,112px) 0}
.reports__stack{display:grid;gap:clamp(64px,9vw,120px)}
.report{position:relative;background:#f3ecdf;color:var(--ink);border:4px solid var(--ink);border-radius:10px;box-shadow:14px 14px 0 rgba(0,0,0,.45);padding:clamp(40px,5vw,60px) clamp(20px,4vw,56px) clamp(24px,4vw,48px);display:grid;gap:26px}
.report::before{content:"";position:absolute;left:50%;top:-24px;transform:translateX(-50%);width:170px;height:44px;background:#8a90e0;border:4px solid var(--ink);border-radius:10px 10px 4px 4px;box-shadow:inset 0 6px 0 #b4b9f5}
.report__head{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 20px;padding-bottom:14px;border-bottom:3px solid var(--ink);font:800 13px/1.2 var(--f);letter-spacing:.08em;text-transform:uppercase}
.report__title{font-size:clamp(38px,5.4vw,80px)}
.report__row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px 40px}
.report__row .magic{max-width:520px}
.report__split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:start}
@media (max-width:900px){.report__split{grid-template-columns:1fr}}
.report__col{display:grid;gap:24px;align-content:start}
.report__kw{font-size:16px;font-weight:600}
.magic{display:flex;flex-wrap:wrap;gap:.1em .28em;font:800 clamp(24px,3.2vw,44px)/1.15 var(--f);letter-spacing:-.02em;max-width:30ch}
.magic--sm{font-size:clamp(19px,1.8vw,24px);font-weight:700}
.data{border-collapse:collapse;width:100%;max-width:460px;font-size:17px}
.data caption{text-align:left;padding-bottom:8px;caption-side:top;font:800 13px/1.2 var(--f);letter-spacing:.08em;text-transform:uppercase}
.data th,.data td{padding:10px 0;border-bottom:2px solid var(--ink);text-align:left}
.data tr:first-child th,.data tr:first-child td{border-top:3px solid var(--ink)}
.data th{font-weight:600}
.data td{font-weight:900;text-align:right;font-variant-numeric:tabular-nums}
.bench{margin:0;display:grid;gap:14px;background:var(--indigo);color:var(--paper);border:4px solid var(--ink);border-radius:14px;padding:24px 18px 18px}
.bench__rig{display:flex;justify-content:center;padding-right:clamp(0px,8vw,130px)}
.flask{position:relative;flex:0 0 auto}
.note{position:absolute;height:0;border-top:2px solid var(--paper);width:calc(100% + 18px - var(--x,0%));pointer-events:none}
.note>span{position:absolute;left:100%;top:-12px;padding:3px 8px;margin-left:4px;background:var(--paper);color:var(--ink);border:2px solid var(--ink);border-radius:6px;font:800 12px/1.2 var(--f);white-space:nowrap}
.note::before{content:"";position:absolute;left:-4px;top:-5px;width:8px;height:8px;background:var(--paper)}
.bench figcaption{font-size:14px;color:var(--mute)}
.bench figcaption b{color:var(--paper);font-weight:900}
.log{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:3px solid var(--ink);border-radius:8px;overflow:hidden;background:var(--night)}
.log li{display:grid;gap:2px;padding:9px 11px;border-right:2px solid var(--violet-2);border-bottom:2px solid var(--violet-2);font-size:13px;font-weight:600;color:var(--mute);opacity:.45;transition:opacity .15s,background-color .15s,color .15s}
.log li:nth-child(2n){border-right:0}.log li:nth-child(n+3){border-bottom:0}
.log li.is-on{opacity:1}
.log li.is-now{background:var(--lime);color:var(--ink)}
.log time{font-weight:900;font-variant-numeric:tabular-nums}
@media (max-width:440px){.note{display:none}.bench__rig{padding-right:0}}

/* ---------- Periodic table ---------- */
.ptw{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,4vw,56px);align-items:start}
@media (max-width:980px){.ptw{grid-template-columns:1fr}}
.card{--g:var(--lilac);display:grid;border:4px solid var(--ink);border-radius:14px;overflow:hidden;background:var(--g);color:var(--ink);box-shadow:8px 8px 0 var(--ink);max-width:500px;width:100%}
.card__top{display:flex;justify-content:space-between;gap:12px;padding:16px 18px 0;font-weight:800}
.card__num{font:900 22px/1 var(--f);font-variant-numeric:tabular-nums}
.card__mass{font:700 14px/1.3 var(--f);text-align:right}
.card__sym{font:900 clamp(64px,7vw,104px)/.85 var(--f);letter-spacing:-.05em;padding:6px 18px 0}
.card__name{font:800 22px/1.1 var(--f);padding:6px 18px 14px}
.card .art{aspect-ratio:1;width:100%;border-top:4px solid var(--ink);border-bottom:4px solid var(--ink)}
.card__ctrl{display:grid;grid-template-columns:52px minmax(0,1fr) 52px;gap:12px;align-items:center;padding:14px}
.card__item{display:grid;gap:2px;min-width:0}
.card__item b{font:900 21px/1.1 var(--f);letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card__item span{font-weight:700;font-size:14px}
.arrow{width:52px;height:52px;flex:0 0 52px;display:grid;place-items:center}
.arrow i{width:14px;height:16px;background:currentColor;clip-path:polygon(100% 0,100% 100%,0 50%)}
.arrow--next i{clip-path:polygon(0 0,0 100%,100% 50%)}
.pt{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.el{--g:var(--lilac);position:relative;aspect-ratio:1/1.12;display:grid;grid-template-rows:auto 1fr auto;padding:8px 10px;border:3px solid var(--ink);border-radius:10px;background:var(--g);color:var(--ink);text-align:left;cursor:pointer;text-decoration:none;min-width:0;transition:transform .08s,box-shadow .08s}
.el:hover{transform:translate(-3px,-3px);box-shadow:5px 5px 0 var(--ink);color:var(--ink)}
.el[aria-selected="true"]{box-shadow:0 0 0 4px #f3ecdf,0 0 0 8px var(--ink)}
.el__row{display:flex;justify-content:space-between;font:800 13px/1 var(--f);font-variant-numeric:tabular-nums}
.el__s{align-self:center;font:900 clamp(24px,3vw,42px)/1 var(--f);letter-spacing:-.04em}
.el__name{font:700 12px/1.2 var(--f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.el--gap{visibility:hidden}
.g-env{--g:var(--mint)}.g-body{--g:var(--lilac)}.g-head{--g:var(--sky)}.g-gear{--g:var(--lemon)}.g-anom{--g:#ff6b6b}
.legend{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:20px;font-weight:700;font-size:14px}
.legend span{display:inline-flex;align-items:center;gap:8px}
.legend i{width:16px;height:16px;border:2px solid var(--ink);border-radius:4px;background:var(--g)}

/* ---------- Classified research console ---------- */
:root{--lab-bg:#050918;--lab-panel:#081126;--lab-line:#43517f;--lab-line-hi:#8878d8;--lab-text:#e8e7ff;--lab-dim:#8f9ac9;--lab-pink:#ff3c82;--lab-cyan:#37dff4;--lab-green:#96f26c}
body{background:var(--lab-bg);color:var(--lab-text)}
.nav{background:color-mix(in srgb,var(--lab-bg) 92%,transparent);border-bottom:1px solid var(--lab-line);backdrop-filter:blur(12px)}
.research{position:relative;min-height:calc(100vh - 72px);overflow:hidden;background-color:var(--lab-bg);background-image:linear-gradient(color-mix(in srgb,var(--lab-line) 12%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--lab-line) 12%,transparent) 1px,transparent 1px);background-size:32px 32px;border-bottom:1px solid var(--lab-line)}
.research::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 23% 42%,color-mix(in srgb,var(--lab-pink) 16%,transparent),transparent 27%),radial-gradient(circle at 70% 25%,color-mix(in srgb,var(--lab-cyan) 7%,transparent),transparent 31%)}
.research__bar{position:relative;z-index:2;min-height:64px;display:grid;grid-template-columns:1fr 1.3fr 1fr;align-items:center;border-bottom:1px solid var(--lab-line);font:600 11px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.research__bar>div{height:100%;display:flex;align-items:center;padding:0 22px;border-right:1px solid var(--lab-line)}
.research__brand{gap:12px}.research__brand .atom{font-size:28px;color:var(--lab-pink);text-shadow:0 0 14px var(--lab-pink)}.research__brand span:last-child{display:grid;gap:4px}.research__brand small{color:var(--lab-dim);font-size:9px}
.research__report{justify-content:center;gap:28px}.research__report span,.research__status span{color:var(--lab-dim)}.research__status{justify-content:flex-end;gap:16px;border-right:0!important}.research__status i{width:7px;height:7px;border-radius:50%;background:var(--lab-green);box-shadow:0 0 9px var(--lab-green);animation:blink 1.8s steps(1) infinite}.research__status b{font-size:8px;color:var(--lab-dim)}
.research__grid{position:relative;z-index:1;display:grid;grid-template-columns:96px minmax(280px,1.02fr) minmax(320px,1fr) minmax(350px,1.16fr);grid-template-rows:minmax(610px,auto) minmax(250px,auto);max-width:1600px;margin:auto}
.vials{grid-row:1/3;border-right:1px solid var(--lab-line);padding:18px 10px;min-width:0}.vials__label{display:grid;gap:4px;padding:0 2px 13px;font:600 9px/1.2 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--lab-dim)}.vials__label b{font-size:10px;color:var(--lab-text)}.vials__list{display:grid;gap:9px;max-height:calc(100vh - 176px);overflow:auto;scrollbar-width:thin}.vial{position:relative;width:100%;aspect-ratio:1;border:1px solid var(--lab-line);background:color-mix(in srgb,var(--lab-panel) 88%,transparent);padding:6px;cursor:pointer;overflow:hidden}.vial img{width:100%;height:100%;object-fit:contain}.vial::after{content:"";position:absolute;inset:auto 10px 6px;height:2px;background:var(--vial,var(--lab-pink));box-shadow:0 0 9px var(--vial,var(--lab-pink))}.vial:hover,.vial.is-active{border-color:var(--lab-pink);box-shadow:inset 0 0 18px color-mix(in srgb,var(--lab-pink) 16%,transparent)}.vial.is-active::before{content:"";position:absolute;left:0;top:38%;border:6px solid transparent;border-left-color:var(--lab-text)}
.chamber{--serum-color:var(--lab-pink);--serum-next:var(--lab-cyan);position:relative;display:grid;place-items:center;overflow:hidden;border-right:1px solid var(--lab-line);background:linear-gradient(90deg,transparent 49.8%,color-mix(in srgb,var(--lab-pink) 18%,transparent) 50%,transparent 50.2%)}
.dropper{position:absolute;left:50%;top:-10px;translate:-50% 0;width:70px;height:138px;border:2px solid var(--lab-line-hi);background:color-mix(in srgb,var(--lab-panel) 75%,transparent);box-shadow:0 0 20px color-mix(in srgb,var(--lab-pink) 28%,transparent)}.dropper::after{content:"";position:absolute;left:50%;bottom:-28px;translate:-50%;width:5px;height:24px;background:var(--lab-pink);box-shadow:0 0 12px var(--lab-pink);animation:serumDrop 2.8s ease-in infinite}.dropper i{position:absolute;inset:12px;background:var(--lab-pink);opacity:.65}
@keyframes serumDrop{0%,48%{transform:translateY(0);opacity:0}55%{opacity:1}82%,100%{transform:translateY(56px);opacity:0}}
.chamber__tube{position:absolute;top:106px;left:50%;translate:-50%;width:54px;height:80px;border:5px solid var(--lab-text);border-top:0;background:color-mix(in srgb,var(--lab-pink) 32%,transparent);box-shadow:inset 0 0 18px var(--lab-pink),0 0 18px color-mix(in srgb,var(--lab-pink) 48%,transparent)}
.chamber__flask{position:relative;width:min(78%,360px);aspect-ratio:1;margin-top:120px;border:5px solid color-mix(in srgb,var(--lab-text) 80%,transparent);border-radius:46% 46% 43% 43%/43% 43% 54% 54%;overflow:hidden;background:linear-gradient(to bottom,color-mix(in srgb,var(--lab-panel) 56%,transparent) 0 28%,color-mix(in srgb,var(--lab-pink) 58%,transparent) 29% 100%);box-shadow:inset 13px 0 18px color-mix(in srgb,var(--lab-cyan) 22%,transparent),inset -16px -8px 24px color-mix(in srgb,var(--lab-pink) 42%,transparent),0 0 34px color-mix(in srgb,var(--lab-pink) 35%,transparent)}
.chamber__flask::before{content:"";position:absolute;left:0;right:0;top:28%;height:5px;background:var(--lab-pink);box-shadow:0 0 14px var(--lab-pink);z-index:2}.chamber__flask img{position:absolute;inset:16% 10% 3%;width:80%;height:80%;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 0 10px var(--lab-pink));animation:specFloat 3.2s ease-in-out infinite}.chamber__flask.is-switching img{animation:specSwitch .35s steps(4)}
.chamber__shine{position:absolute;left:13%;top:12%;width:9%;height:48%;border-left:4px solid color-mix(in srgb,var(--lab-text) 72%,transparent);border-radius:50%;z-index:3}.bubble{position:absolute;border:2px solid color-mix(in srgb,var(--lab-text) 72%,transparent);border-radius:50%;z-index:4;animation:bubbleUp 3s ease-in infinite}.bubble--1{width:13px;height:13px;left:22%;bottom:13%;animation-delay:-.4s}.bubble--2{width:8px;height:8px;left:66%;bottom:6%;animation-delay:-1.2s}.bubble--3{width:18px;height:18px;left:76%;bottom:24%;animation-delay:-2s}.bubble--4{width:6px;height:6px;left:39%;bottom:20%;animation-delay:-2.5s}
@keyframes bubbleUp{to{transform:translateY(-190px) scale(.7);opacity:0}}@keyframes specFloat{50%{transform:translateY(-7px)}}@keyframes specSwitch{0%{transform:scale(.72);opacity:.2}45%{transform:translateX(-8px);filter:hue-rotate(90deg)}100%{transform:none;opacity:1}}
.chamber__base{position:absolute;left:14%;right:14%;bottom:12px;height:42px;border:2px solid var(--lab-line-hi);background:var(--lab-panel);box-shadow:0 -5px 16px color-mix(in srgb,var(--serum-color) 30%,transparent)}.chamber__base i{display:block;margin:10px 14%;height:10px;background:repeating-linear-gradient(90deg,var(--serum-color) 0 10%,transparent 10% 15%)}.chamber__scan{position:absolute;left:16px;bottom:18px;font:600 8px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--lab-dim)}
.techpanel{position:relative;min-width:0;background:color-mix(in srgb,var(--lab-panel) 88%,transparent);border:1px solid var(--lab-line);padding:16px}.techpanel__title{height:26px;border-bottom:1px solid var(--lab-line);font:600 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--lab-dim)}.techpanel__title::after{content:"";display:block;width:40px;margin-top:9px;border-bottom:2px solid var(--lab-pink);box-shadow:0 0 7px var(--lab-pink)}
.specdata{min-height:610px;display:flex;flex-direction:column}.specdata__heading{display:grid;grid-template-rows:auto 132px;align-content:start}.specdata__identity{display:grid;align-content:start;padding-top:14px}.specdata h1{height:92px;overflow:hidden;display:block;margin:0;font-size:48px;line-height:.94;letter-spacing:0;color:var(--lab-text);overflow-wrap:normal}.specdata__preview{height:132px;display:grid;grid-template-columns:38px 96px 38px;gap:12px;align-items:center;justify-content:start}.specdata__preview img{width:96px;height:96px;object-fit:contain;image-rendering:pixelated}.specdata__arrow{width:38px;height:50px;padding:0;display:grid;place-items:center;border:0;background:transparent;color:var(--lab-pink);cursor:pointer}.specdata__arrow:hover,.specdata__arrow:focus-visible{color:var(--lab-text)}.specdata__arrow i{width:18px;height:34px;background:currentColor;clip-path:polygon(70% 0,100% 0,30% 50%,100% 100%,70% 100%,0 50%)}.specdata__arrow--next i{transform:scaleX(-1)}.specdata__tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:7px;font:600 10px/1 var(--mono);letter-spacing:.06em}.specdata__tags b,.specdata__tags span{padding:6px 10px;border:1px solid var(--lab-pink)}.specdata__tags b{background:var(--lab-pink);color:var(--lab-bg)}.specdata__tags span{color:var(--lab-pink)}.specdata>p{color:#b4bcdd;font-size:13px;line-height:1.55;max-width:48ch;min-height:62px;margin:10px 0}.specdata__rows{margin:auto 0 0;border-top:1px solid var(--lab-line)}.specdata__rows>div{display:grid;grid-template-columns:1fr 1.25fr;gap:10px;padding:7px 2px;border-bottom:1px solid color-mix(in srgb,var(--lab-line) 50%,transparent);font:600 10px/1.25 var(--mono);text-transform:uppercase}.specdata__rows dt{color:var(--lab-dim)}.specdata__rows dd{margin:0;text-align:right;color:var(--lab-text);overflow-wrap:anywhere}.specdata__rows>div:nth-child(2) dd{color:var(--lab-pink)}
.anatomy{border-width:0 0 1px 0}.anatomy__stage{position:relative;height:calc(100% - 30px);min-height:410px;overflow:hidden;background-image:linear-gradient(color-mix(in srgb,var(--lab-line) 20%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--lab-line) 20%,transparent) 1px,transparent 1px);background-size:22px 22px}.anatomy__stage>img{position:absolute;left:2%;bottom:2%;width:60%;height:92%;object-fit:contain;image-rendering:pixelated}.scanline{position:absolute;z-index:2;left:0;right:0;height:1px;background:var(--lab-cyan);box-shadow:0 0 8px var(--lab-cyan);animation:scan 4s linear infinite}.callout{position:absolute;right:2%;display:grid;width:31%;padding-left:10px;font:600 9px/1.25 var(--mono);text-transform:uppercase;background:color-mix(in srgb,var(--lab-bg) 82%,transparent)}.callout i{position:absolute;right:100%;top:8px;width:72px;border-top:2px solid var(--lab-pink)}.callout i::before{content:"";position:absolute;left:-5px;top:-4px;width:7px;height:7px;border:1px solid var(--lab-text);background:var(--lab-bg)}.callout b{color:var(--lab-text)}.callout small{margin-top:4px;color:var(--lab-cyan);font-size:8px;overflow-wrap:anywhere}.callout--a{top:13%}.callout--b{top:43%}.callout--c{top:76%}@keyframes scan{from{top:0}to{top:100%}}
.reaction{grid-column:2;grid-row:2;border-width:0 1px 0 0}.reaction__flow{height:calc(100% - 26px);display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:8px}.reaction__flow>div{display:grid;gap:7px;justify-items:center;min-width:0}.reaction__flow img{width:72px;height:72px;object-fit:contain;image-rendering:pixelated}.reaction__flow small{font:600 7px/1.2 var(--mono);text-transform:uppercase;text-align:center}.reaction__flow>b{color:var(--lab-pink);font-size:23px}.reaction__arrow{font-size:30px!important}.mini-vial{position:relative;width:34px;height:68px;border:3px solid var(--lab-text);border-radius:5px 5px 12px 12px;background:linear-gradient(transparent 35%,var(--lab-pink) 36%);box-shadow:inset 0 0 10px var(--lab-pink),0 0 10px color-mix(in srgb,var(--lab-pink) 40%,transparent)}
.timeline{grid-column:3;grid-row:2;border-width:0 1px 0 0}.timeline ol{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;list-style:none;margin:14px 0 0;padding:0}.timeline li{position:relative;min-height:116px;padding:12px;border:1px solid var(--lab-line);display:grid;grid-template-columns:auto 1fr;gap:7px 10px;align-content:start;font:600 9px/1.4 var(--mono);color:var(--lab-dim)}.timeline li:not(:last-child)::after{content:"→";position:absolute;right:-12px;top:45%;z-index:2;color:var(--lab-text)}.timeline li>b{grid-row:1/3;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--lab-dim);color:var(--lab-bg)}.timeline time{color:var(--lab-text)}.timeline span{grid-column:2}.timeline .is-complete{border-color:color-mix(in srgb,var(--lab-green) 50%,var(--lab-line))}.timeline .is-complete b{background:var(--lab-green)}.timeline .is-complete time,.timeline .is-complete span{color:var(--lab-green)}.timeline .is-result{border-color:var(--lab-pink);background:color-mix(in srgb,var(--lab-pink) 8%,transparent)}.timeline .is-result b{background:var(--lab-pink)}.timeline .is-result time,.timeline .is-result strong{color:var(--lab-pink)}
.traitscan{grid-column:4;grid-row:2;border-width:0}.traitscan__grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-top:12px}.traitbtn{display:grid;grid-template-rows:auto auto auto;min-width:0;padding:0;border:1px solid var(--lab-line);background:var(--lab-bg);color:var(--lab-dim);cursor:pointer;font:600 7px/1.2 var(--mono);text-transform:uppercase}.traitbtn img,.traitbtn__missing{width:100%;aspect-ratio:1;object-fit:contain;image-rendering:pixelated;background:color-mix(in srgb,var(--lab-line) 18%,var(--lab-bg))}.traitbtn__missing{display:grid!important;place-items:center;padding:0!important;color:var(--lab-pink);line-height:1.5}.traitbtn>span{display:block;padding:7px 3px 3px;color:var(--lab-text)}.traitbtn small{min-height:25px;padding:0 3px 6px;color:var(--lab-dim);font-size:6px;line-height:1.25;overflow-wrap:anywhere}.traitbtn:hover,.traitbtn.is-active{border-color:var(--lab-pink);color:var(--lab-text)}.traitbtn.is-unavailable{border-style:dashed}.traitscan__detail{min-height:30px;padding-top:10px;font:600 8px/1.4 var(--mono);color:var(--lab-cyan);text-transform:uppercase}
.research__tabs{position:relative;z-index:2;display:flex;min-height:54px;border-top:1px solid var(--lab-line);padding-left:96px}.research__tabs a{display:grid;place-items:center;min-width:150px;padding:0 22px;border-right:1px solid var(--lab-line);color:var(--lab-dim);font:600 9px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;text-decoration:none}.research__tabs a:hover,.research__tabs .is-active{color:var(--lab-text);background:color-mix(in srgb,var(--lab-line-hi) 13%,transparent)}.research__collection{margin-left:auto!important;border-left:1px solid var(--lab-line)}
.desk{display:none}.reports{background:var(--lab-bg)}.report{background:var(--lab-panel);color:var(--lab-text);border:1px solid var(--lab-line);border-radius:0;box-shadow:none}.report::before{display:none}.report__head{border-bottom:1px solid var(--lab-line);color:var(--lab-dim);font-family:var(--mono)}.report__title{letter-spacing:0}.report .magic{color:var(--lab-dim)}.shelves{background:var(--lab-bg);border:1px solid var(--lab-line);border-radius:0}.bench{border-color:var(--lab-line)}.filters .chip,.wallpager .arrow{--bink:var(--lab-text);--bsurf:var(--lab-panel)}
@media(max-width:1180px){.research__grid{grid-template-columns:82px minmax(280px,1fr) minmax(310px,1fr);grid-template-rows:auto auto auto}.vials{grid-row:1/4}.chamber{min-height:520px}.specdata{border-right:0}.anatomy{grid-column:2;grid-row:2}.reaction{grid-column:3;grid-row:2}.timeline{grid-column:2/4;grid-row:3}.traitscan{grid-column:2/4;grid-row:4}.research__tabs{padding-left:82px;overflow:auto}.research__tabs a{min-width:120px}}
@media(max-width:760px){.research__bar{grid-template-columns:1fr auto}.research__report{display:none!important}.research__bar>div{padding:0 12px}.research__status b{display:none}.research__grid{display:block}.vials{border-right:0;border-bottom:1px solid var(--lab-line);padding:12px}.vials__list{display:flex;max-height:none;overflow-x:auto}.vial{flex:0 0 68px}.chamber{min-height:510px;border-right:0;border-bottom:1px solid var(--lab-line)}.specdata,.anatomy,.reaction,.timeline,.traitscan{border-width:0 0 1px}.specdata{min-height:610px}.anatomy__stage{min-height:430px}.anatomy__stage>img{left:0;width:64%}.callout{right:1%;width:32%}.callout i{width:46px}.reaction__flow{min-height:180px}.timeline ol{grid-template-columns:1fr}.timeline li{min-height:86px}.timeline li:not(:last-child)::after{content:"↓";right:50%;top:auto;bottom:-13px}.traitscan__grid{grid-template-columns:repeat(3,minmax(92px,1fr));overflow-x:auto}.research__tabs{padding-left:0}.research__tabs a{min-width:106px}.research__collection{margin-left:0!important}.shelves{--cell:1px;padding-inline:4px}.spec__cap{font-size:10px}.reports__stack{gap:50px}.report{padding-inline:12px}}

/* Anatomy hover anahots */
.anatomy__hint{float:right;font-style:normal;color:var(--lab-dim);font-size:8px;letter-spacing:.06em}
.anatomy__figure{position:absolute;left:2%;top:50%;transform:translateY(-50%);width:min(62%,420px);aspect-ratio:1}
.anatomy__figure>img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated;display:block}
.anahot{position:absolute;padding:0;border:1px dashed transparent;background:transparent;cursor:crosshair;transition:border-color .15s,background .15s}
.anahot:hover,.anahot:focus-visible,.anahot.is-on{border-color:var(--lab-pink);background:color-mix(in srgb,var(--lab-pink) 14%,transparent);outline:none}
.anahot--eyes{left:44%;top:37%;width:28%;height:23%}
.anahot--mouth{left:47%;top:60%;width:18%;height:20%}
.anahot--body{left:20%;top:80%;width:42%;height:20%}
.anahot--weapon{left:6%;top:42%;width:16%;height:58%}
.anahot--costume{left:20%;top:10%;width:62%;height:27%}
.anatip{position:absolute;z-index:3;right:2%;display:grid;width:31%;padding:6px 10px;font:600 9px/1.25 var(--mono);text-transform:uppercase;background:color-mix(in srgb,var(--lab-bg) 88%,transparent);border-left:2px solid var(--lab-pink);opacity:0;transform:translateX(6px);transition:opacity .18s,transform .18s,top .18s;pointer-events:none}
.anatip.is-on{opacity:1;transform:none}
.anatip b{color:var(--lab-text)}.anatip small{margin-top:4px;color:var(--lab-cyan);font-size:8px;overflow-wrap:anywhere}
.anatip__line{position:absolute;right:100%;top:50%;border-top:2px solid var(--lab-pink);width:var(--len,60px)}
.anatip__line::before{content:"";position:absolute;left:-5px;top:-5px;width:7px;height:7px;border:1px solid var(--lab-text);background:var(--lab-bg)}
.traitbtn>span{font-size:6px}
@media(max-width:1180px){.reaction{grid-column:2;grid-row:3}.timeline{grid-column:3;grid-row:3}.traitscan{grid-column:2/4;grid-row:4}}
/* Timeline fits its column: 2x2 */
@media(min-width:761px){.timeline{min-width:0;overflow:hidden}.timeline ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.timeline li{min-width:0;min-height:96px;overflow-wrap:anywhere}.timeline li:nth-child(3){order:4}.timeline li:nth-child(4){order:3}.timeline li:nth-child(2)::after{content:"↓";right:50%;top:auto;bottom:-14px}.timeline li:nth-child(3)::after{content:"←";right:auto;left:-14px;top:45%}}
/* premium SVG flask */
.labflask{position:relative;width:min(80%,330px);margin-top:10px;margin-bottom:60px;cursor:pointer;transition:transform .35s ease,filter .35s ease;filter:drop-shadow(0 0 18px color-mix(in srgb,var(--serum-color) 30%,transparent));outline:none}
.labflask:hover,.labflask:focus-visible{transform:scale(1.035);filter:drop-shadow(0 0 30px color-mix(in srgb,var(--serum-color) 60%,transparent))}
.labflask__svg{display:block;width:100%;height:auto;overflow:visible}
.labflask__wave{animation:lfWave 4s linear infinite}.labflask__wave--2{animation-duration:6s;animation-direction:reverse}
@keyframes lfWave{to{transform:translateX(-80px)}}
.labflask__liquid{animation:lfBob 3.4s ease-in-out infinite}@keyframes lfBob{50%{transform:translateY(-3px)}}
.lfb{fill:color-mix(in srgb,#fff 25%,transparent);stroke:#fff;stroke-opacity:.7;stroke-width:1.2;animation:lfRise 3.6s ease-in infinite}
.lfb--2{animation-delay:.8s}.lfb--3{animation-delay:1.6s;animation-duration:4.4s}.lfb--4{animation-delay:2.2s}.lfb--5{animation-delay:2.9s}
@keyframes lfRise{0%{transform:translateY(0);opacity:0}15%{opacity:1}85%{opacity:.8}100%{transform:translateY(-88px);opacity:0}}
.labflask__halo{animation:lfPulse 3s ease-in-out infinite}@keyframes lfPulse{50%{opacity:.6}}
.labflask__drop{transform-box:fill-box;transform-origin:center top;animation:lfHang 2.4s ease-in-out infinite}
@keyframes lfHang{50%{transform:scaleY(1.12)}}
.labflask.is-dropping .labflask__drop{animation:lfFall .9s cubic-bezier(.5,0,.9,.5) forwards}
@keyframes lfFall{0%{transform:translateY(0)}90%{transform:translateY(172px);opacity:1}100%{transform:translateY(176px) scale(1.6,.3);opacity:0}}
.labflask.is-splash .labflask__liquid{animation:lfSplash .6s ease-out}@keyframes lfSplash{30%{transform:translateY(-6px)}60%{transform:translateY(2px)}}
@media (prefers-reduced-motion:reduce){.labflask *{animation:none!important}}
.labflask__specs{position:absolute;inset:0;pointer-events:none;clip-path:polygon(42% 42.5%,42% 53.6%,17.3% 83.4%,16% 89.4%,23.3% 90.6%,76.7% 90.6%,84% 89.4%,82.7% 83.4%,58% 53.6%,58% 42.5%);animation:none}.labflask__specimen{position:absolute;left:29%;top:auto;bottom:9.6%;width:42%;height:auto;aspect-ratio:1;image-rendering:pixelated;transform-origin:center;opacity:1;filter:drop-shadow(0 0 8px color-mix(in srgb,var(--serum-color) 55%,transparent))}.labflask__specimen--next{opacity:0}.labflask.is-swapping .labflask__specimen--current{animation:lfSpecOut .25s ease forwards}.labflask.is-swapping .labflask__specimen--next{animation:lfSpecIn .25s ease forwards}@keyframes lfSpecOut{to{opacity:0;transform:scale(.9)}}@keyframes lfSpecIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}

/* specimen rail removed */
.research__grid{grid-template-columns:minmax(280px,1.02fr) minmax(320px,1fr) minmax(350px,1.16fr)}.reaction{grid-column:1}.timeline{grid-column:2}.traitscan{grid-column:3}.research__tabs{padding-left:0}
@media(min-width:761px) and (max-width:1180px){.research__grid{grid-template-columns:minmax(280px,1fr) minmax(310px,1fr)}.anatomy{grid-column:1/3;grid-row:2}.reaction{grid-column:1;grid-row:3}.timeline{grid-column:2;grid-row:3}.traitscan{grid-column:1/3;grid-row:4}}

/* serum reaction removed: timeline takes its place */
.research__grid .timeline{grid-column:1/3;grid-row:2}.research__grid .traitscan{grid-column:3;grid-row:2}
@media(min-width:761px){.research__grid .timeline ol{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(min-width:761px) and (max-width:1180px){.research__grid .timeline{grid-column:1/3;grid-row:3}.research__grid .traitscan{grid-column:1/3;grid-row:4}}
@media(max-width:760px){.research__grid .timeline,.research__grid .traitscan{grid-column:auto;grid-row:auto}.research__grid .timeline ol{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* timeline: 01 → 02 → 03 → 04 */
@media(min-width:761px){.research__grid .timeline li:nth-child(n){order:0}.research__grid .timeline li:not(:last-child)::after{content:"→";left:auto;right:-14px;bottom:auto;top:50%;width:14px;transform:translateY(-50%);text-align:center;font-size:12px;line-height:1;color:var(--lab-text)}}
@media(max-width:760px){.research__grid .timeline ol{grid-template-columns:1fr;gap:16px}.research__grid .timeline li:nth-child(n){order:0}.research__grid .timeline li:not(:last-child)::after{content:"↓";right:auto;left:50%;top:auto;bottom:-16px;width:16px;transform:translateX(-50%);text-align:center;font-size:12px;line-height:16px}}
/* tabs moved to top, bar removed */
.research__tabs{border-top:0;border-bottom:1px solid var(--lab-line)}
/* collapsible reports */
.reports__stack{gap:24px}
.report__head{align-items:center}.report__meta{display:flex;align-items:center;gap:16px}
.report.is-collapsed>:not(.report__head){display:none}
.report.is-collapsed{padding-block:0;transition:border-color .2s}
.report.is-collapsed .report__head{padding:22px 0;border-bottom:0;cursor:pointer}
.report.is-collapsed:hover{border-color:var(--lab-pink)}
.report__head:focus-visible{outline:2px solid var(--lab-pink);outline-offset:4px}
.report__open{display:grid;place-items:center;width:28px;height:28px;border:1px solid currentColor;font:600 16px/1 var(--mono)}
.report__x{display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid var(--lab-line);background:transparent;color:var(--lab-text);font:600 20px/1 var(--mono);cursor:pointer}
.report__x:hover,.report__x:focus-visible{border-color:var(--lab-pink);color:var(--lab-pink)}
.report.is-collapsed .report__x,.report:not(.is-collapsed) .report__open{display:none}
/* card stack (specimen shelves + mutation index) */
.cstack__deck{--ch:400px;position:relative;height:calc(var(--ch) + 52px);overflow:hidden;border-bottom:1px solid var(--lab-line)}
.cstack__card{position:absolute;left:50%;bottom:0;width:min(512px,calc(100% - 32px));height:var(--ch);display:flex;flex-direction:column;gap:14px;padding:4px 4px 16px;background:var(--lab-panel);color:var(--lab-text);border:1px solid var(--lab-line);border-bottom:0;box-shadow:0 -8px 28px rgba(0,0,0,.4);transition:transform .8s cubic-bezier(.22,1,.36,1),opacity .45s ease;will-change:transform}
@media (prefers-reduced-motion:reduce){.cstack__card{transition:none}}
.cstack__empty{position:absolute;inset:0;display:grid;place-items:center;margin:0;font:600 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--lab-dim)}
.ccard__img{position:relative;flex:0 0 210px;overflow:hidden;outline:1px solid rgba(255,255,255,.08);outline-offset:-1px}
.ccard__img img,.ccard__img canvas{position:absolute;inset:0;margin:auto;height:100%;width:auto;max-width:100%;max-height:100%;image-rendering:pixelated;object-fit:contain}
.ccard__body{display:grid;align-content:start;gap:12px;padding:0 12px;min-height:0;overflow:hidden}
.ccard__head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.ccard__head>div{display:grid;gap:5px;min-width:0}
.ccard__title{font:800 20px/1.1 var(--f);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ccard__sub{font:600 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--lab-dim)}
.ccard__read{flex:none;display:flex;align-items:center;gap:4px;height:38px;padding:0 12px 0 16px;border:1px solid var(--lab-text);background:var(--lab-text);color:var(--lab-bg);font:600 12px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.ccard__read:hover{background:var(--lab-pink);border-color:var(--lab-pink)}
.ccard__read:focus-visible{outline:2px solid var(--lab-pink);outline-offset:2px}
.ccard__dl{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 20px;font-size:13px;line-height:1.3}
.ccard__dl>div{display:grid;grid-template-columns:84px minmax(0,1fr);gap:8px}
.ccard__dl .ccard__wide{grid-column:1/-1}
.ccard__dl dt{color:var(--lab-dim)}
.ccard__dl dd{margin:0;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:560px){.cstack__deck{--ch:450px}.ccard__img{flex-basis:170px}.ccard__dl{grid-template-columns:1fr}}
.card .cstack__deck{--ch:340px;border-top:4px solid var(--ink);border-bottom:4px solid var(--ink);cursor:pointer}
.card .ccard__img{flex-basis:190px}
/* v6: no Read button, full-bleed art, black info panel */
.cstack__deck{--ch:460px}
.cstack__card{background:#000;padding:0 0 16px}
.ccard__img{flex-basis:270px;outline:0}
.ccard__img img,.ccard__img canvas{position:absolute;inset:0;margin:auto;height:100%;width:auto;max-width:100%;max-height:100%;object-fit:contain}
.ccard__body{background:#000}
.card .cstack__deck{--ch:380px}
.card .ccard__img{flex-basis:230px}
@media(max-width:560px){.cstack__deck{--ch:480px}.ccard__img{flex-basis:200px}}
/* v7: grey info panel */
.cstack__card,.ccard__body{background:#2a2d33}
/* timeline cards take the periodic-table colours: 01 Bg, 02-03 Sk/Fc, 04 Dv */
.research__grid .timeline li{--tc:var(--lilac);background:var(--tc);border-color:var(--tc);color:var(--ink)}
.research__grid .timeline li:nth-child(1){--tc:var(--mint)}
.research__grid .timeline li:nth-child(4){--tc:#ff6b6b}
.research__grid .timeline li>b{background:var(--ink);color:var(--tc)}
.research__grid .timeline li time,.research__grid .timeline li span,.research__grid .timeline li strong{color:var(--ink)}
.research__grid .timeline li strong{font-weight:800}
/* Traits preview: every trait sits on the current specimen's background */
.traitscan__grid .traitbtn:not(.is-unavailable){background:var(--spec-bg,var(--lab-panel))}
.traitscan__grid .traitbtn img{background:var(--spec-bg,transparent)}
.traitscan__grid .traitbtn:not(.is-unavailable)>span,.traitscan__grid .traitbtn:not(.is-unavailable)>small{background:var(--lab-panel)}
/* specimen-details arrows use the shelf pager arrow */
.specdata__preview{grid-template-columns:52px 96px 52px}
/* traits preview: scan-failed on specimen bg, grey labels, DNA loader */
.traitscan__grid .traitbtn.is-unavailable,.traitscan__grid .traitbtn .traitbtn__missing{background:var(--spec-bg,var(--lab-panel))}
.traitscan__grid .traitbtn .traitbtn__missing{color:var(--ink)}
.traitscan__grid .traitbtn>span,.traitscan__grid .traitbtn>small,.traitscan__grid .traitbtn:not(.is-unavailable)>span,.traitscan__grid .traitbtn:not(.is-unavailable)>small{background:#2a2d33}
.traitscan__wrap{position:relative}
.traitscan__loader{position:absolute;inset:12px 0 0;display:grid;place-items:center;background:color-mix(in srgb,var(--lab-bg) 82%,transparent);opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}
.traitscan__wrap.is-loading .traitscan__loader{opacity:1;visibility:visible}
.ld-dna{display:flex;gap:8px;color:var(--lab-pink)}
.ld-dna i{position:relative;width:8px;height:36px}
.ld-dna i::before,.ld-dna i::after{content:"";position:absolute;top:0;left:0;width:8px;height:8px;border-radius:50%;background:currentColor;animation:ldDna 1.4s ease-in-out infinite}
.ld-dna i::after{opacity:.4}
.ld-dna i:nth-child(1)::before{animation-delay:0s}.ld-dna i:nth-child(1)::after{animation-delay:-.7s}
.ld-dna i:nth-child(2)::before{animation-delay:-.15s}.ld-dna i:nth-child(2)::after{animation-delay:-.85s}
.ld-dna i:nth-child(3)::before{animation-delay:-.3s}.ld-dna i:nth-child(3)::after{animation-delay:-1s}
.ld-dna i:nth-child(4)::before{animation-delay:-.45s}.ld-dna i:nth-child(4)::after{animation-delay:-1.15s}
.ld-dna i:nth-child(5)::before{animation-delay:-.6s}.ld-dna i:nth-child(5)::after{animation-delay:-1.3s}
@keyframes ldDna{0%,100%{transform:translateY(0)}50%{transform:translateY(28px)}}
/* specimen details: image-only card stack + bare arrows */
.specdata__heading{grid-template-rows:auto 190px}
.specdata__preview{height:190px;grid-template-columns:44px 150px 44px;gap:10px}
.specdata__preview #labSilhouette{display:none}
.specdata__deck{--ch:124px;width:150px;height:180px;border-bottom:0}
.specdata__deck .cstack__card{width:124px;padding:0;gap:0;background:transparent;border:0;box-shadow:0 -6px 18px rgba(0,0,0,.45)}
.specdata__deck .ccard__img{flex:1 1 auto;outline:0}
.specdata__preview .arrow.specdata__nav{width:44px;height:44px;flex-basis:44px;border:0;background:transparent;box-shadow:none;border-radius:0;color:var(--lab-text)}
.specdata__preview .arrow.specdata__nav:hover,.specdata__preview .arrow.specdata__nav:focus-visible{background:transparent;color:var(--lab-pink)}
.specdata__preview .arrow.specdata__nav i{width:18px;height:22px}
.specdata__deck .cstack__card{bottom:12px}
/* anatomy scanline: red, bounded to the NFT */
.anatomy__stage .scanline{top:var(--st,0);height:2px;background:#ff2d2d;box-shadow:0 0 8px #ff2d2d;animation:scanNft 4s linear infinite}
@keyframes scanNft{from{transform:translateY(0)}to{transform:translateY(calc(var(--sh,100%) - 2px))}}
/* collapsed report bars: 02 = Ns (sky), 03 = Dv (coral) */
#specimens.is-collapsed,#traits.is-collapsed{--rb:var(--sky);background:var(--rb);border-color:var(--rb);border-radius:12px}
#traits.is-collapsed{--rb:#ff6b6b}
#specimens.is-collapsed .report__head,#traits.is-collapsed .report__head{background:var(--rb);color:var(--ink);border-radius:12px}
#specimens.is-collapsed .report__head *,#traits.is-collapsed .report__head *{color:var(--ink);border-color:var(--ink)}
/* rounded corners on every card */
.techpanel,.timeline li,.traitbtn,.traitbtn img,.traitbtn>span,.cstack__card,.ccard__img,.card,.el,.specdata__deck .cstack__card,.anatomy__stage>img,.anatomy__figure img,.report{border-radius:12px}
.traitbtn{overflow:hidden}.traitbtn img{border-radius:12px 12px 0 0}.traitbtn>span{border-radius:0}
.cstack__card{overflow:hidden}.ccard__img{border-radius:0}
/* header links removed */
.nav__links,.nav__burger{display:none!important}
/* specimen details on the navy background colour; data rows on grey */
.specdata{background:#1f3366}
.specdata__rows{background:#2a2d33;border-radius:12px;padding:4px 14px}
/* research tab buttons with tilt hover */
.research__tabs{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.research__tabs .tbtn{--primary:#F4FF2B;--secondary:#0F191E;position:relative;isolation:isolate;display:inline-flex;align-items:center;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:13px 24px;border:1px solid var(--secondary);border-radius:8px;background:var(--primary);color:var(--secondary);text-decoration:none;cursor:pointer;white-space:nowrap;overflow:visible;transition:all .4s cubic-bezier(.22,1,.36,1)}
.research__tabs .tbtn::before,.research__tabs .tbtn::after{display:none}
.research__tabs .tbtn .btn-label{position:relative;z-index:2;display:inline-block;transition:inherit}
.research__tabs .tbtn:hover{transform:rotate(-3deg) scale(1.05);color:var(--secondary);background:var(--primary)}
.research__tabs .tbtn:focus-visible{outline:2px solid var(--primary);outline-offset:3px}
/* anatomy NFT square so the scanline stays inside */
.anatomy__stage>img,.anatomy__figure img{border-radius:0!important}
/* Lab reports 02 + 03: plum background (bacground/plum), collapsed and open */
#specimens,#traits,#specimens.is-collapsed,#traits.is-collapsed{--rb:#5b2f6e;background:#5b2f6e;border-color:#5b2f6e;color:#f6f3ff}
#specimens .report__head,#traits .report__head,#specimens.is-collapsed .report__head,#traits.is-collapsed .report__head{background:#5b2f6e;color:#f6f3ff;border-color:rgba(246,243,255,.35)}
#specimens.is-collapsed .report__head *,#traits.is-collapsed .report__head *,#specimens .report__head *,#traits .report__head *{color:#f6f3ff;border-color:#f6f3ff}
/* Lab notes: forest background (bacground/forest) */
#faq{background:#24533b}
#faq .faq details{border-color:rgba(246,243,255,.3)}
/* devil cams: no black offset shadow */
.cam{box-shadow:none}
/* report head bars: 02 sky (Ns), 03 coral (Dv) — collapsed bar + open header */
#specimens .report__head,#specimens.is-collapsed,#specimens.is-collapsed .report__head{background:var(--sky);color:var(--ink)}
#traits .report__head,#traits.is-collapsed,#traits.is-collapsed .report__head{background:#ff6b6b;color:var(--ink)}
#specimens.is-collapsed,#traits.is-collapsed{border-color:transparent}
#specimens .report__head *,#traits .report__head *{color:var(--ink);border-color:var(--ink)}
#specimens:not(.is-collapsed) .report__head,#traits:not(.is-collapsed) .report__head{margin:calc(-1*clamp(40px,5vw,60px)) calc(-1*clamp(20px,4vw,56px)) 0;padding:18px clamp(20px,4vw,56px);border-radius:8px 8px 0 0;border-bottom:0}
/* Lab notes: black section, each note its own colour */
#faq{background:#000}
#faq .faq{display:grid;gap:12px}
#faq .faq details{border:0;border-radius:12px;padding:0 24px;color:#f6f3ff}
#faq .faq details:nth-child(1){background:#1f3366}
#faq .faq details:nth-child(2){background:#5b2f6e}
#faq .faq details:nth-child(3){background:#6e1f35}
#faq .faq details:nth-child(4){background:#24533b}
#faq .faq details:nth-child(5){background:#1f6f73}
#faq .faq details:nth-child(6){background:#8a3b1f}
#faq .faq details *{color:#f6f3ff}
#faq .faq details b,#faq .faq details strong{color:#fff}
/* collapsed report bars: dark ink text (beats earlier light override) */
.reports #specimens.is-collapsed .report__head,.reports #traits.is-collapsed .report__head,.reports #specimens.is-collapsed .report__head *,.reports #traits.is-collapsed .report__head *,.reports #specimens .report__head *,.reports #traits .report__head *{color:var(--ink)!important;border-color:var(--ink)!important;background-color:transparent}
.reports #specimens .report__head,.reports #traits .report__head{color:var(--ink)!important}
/* Lab notes: repo background colours, report-bar styling */
#faq .faq details{border:0!important;border-radius:12px;padding:0 clamp(20px,4vw,56px)}
#faq .faq details:nth-child(1){background:#9ff0fc}
#faq .faq details:nth-child(2){background:#e3d6ff}
#faq .faq details:nth-child(3){background:#ffc9d6}
#faq .faq details:nth-child(4){background:#b8f2c9}
#faq .faq details:nth-child(5){background:#fff3a6}
#faq .faq details:nth-child(6){background:#ffcf9e}
#faq .faq details,#faq .faq details *{color:var(--ink)}
#faq .faq summary{padding:22px 0;font:800 13px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase}
#faq .faq summary:hover{color:var(--ink)}
#faq .faq summary i{flex:0 0 28px;width:28px;height:28px;border:1px solid var(--ink);display:grid;place-items:center}
#faq .faq summary i::before,#faq .faq summary i::after{background:var(--ink);left:8px;right:8px;top:13px;height:1.5px}
#faq .faq__a{padding:0 0 22px;font:500 14px/1.6 var(--mono);letter-spacing:.04em;max-width:820px}
#faq .faq__a b,#faq .faq__a strong{color:var(--ink);font-weight:800}
#faq .faq__a a{color:var(--ink);text-decoration:underline}
/* FAQ emphasis: ink, bold + underline */
#faq .faq details .faq__a b,#faq .faq details .faq__a strong{color:var(--ink)!important;font-weight:800;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;background:none}
/* section backgrounds from the repo's bacground set */
#apply{background:#1f3366}
#faq{background:#5b2f6e!important}
.foot{background:#d6f5a3}
.chamber{background-color:#6e1f35}
.anatomy__stage{background-color:#24533b}
/* ribbons ride over the lab reports; gone while a report is open */
.reports{position:relative}
.reports>.ribbons{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);z-index:5;pointer-events:none;transition:opacity .35s,visibility .35s}
.reports.has-open>.ribbons{opacity:0;visibility:hidden}
/* + box always above the ribbons */
.reports .report__open{position:relative;z-index:7;background:var(--ink)!important;color:#fff!important;border-color:var(--ink)!important}
.reports>.ribbons{z-index:5}
/* no black offset shadows on form card + unregistered image */
.form,.apply__spec,.apply__spec.is-live{box-shadow:none!important}
/* flask chamber: science-lab blueprint, not red */
.chamber{background-color:#0f2233!important;background-image:radial-gradient(ellipse at 50% 70%,rgba(159,240,252,.14),transparent 60%),linear-gradient(rgba(159,240,252,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(159,240,252,.08) 1px,transparent 1px)!important;background-size:auto,22px 22px,22px 22px!important}
/* anatomy: no header, label inside, NFT centred, compact height */
.anatomy__stage{height:460px;min-height:0}
.anatomy__label{position:absolute;z-index:3;left:16px;top:14px;font:600 12px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#f6f3ff}
.anatomy__figure{left:50%!important;top:calc(50% + 12px)!important;transform:translate(-50%,-50%)!important;width:min(80%,400px)!important}
@media(min-width:1181px){.research__grid .anatomy{grid-row:1;align-self:start}.research__grid .traitscan{grid-row:1/3;align-self:start;margin-top:492px}}
.reports #specimens .report__head .report__open,.reports #traits .report__head .report__open{color:#fff!important;background:var(--ink)!important;border-color:var(--ink)!important}
@media(min-width:1181px){
.research__grid .chamber{grid-column:1;grid-row:1/3}
.research__grid .specdata{grid-column:2;grid-row:1}
.research__grid .anatomy{grid-column:3;grid-row:1;align-self:start}
.research__grid .traitscan{grid-column:3;grid-row:1/3;align-self:start;margin-top:492px}
.research__grid .timeline{grid-column:1/3;grid-row:2}
.research__grid .chamber{grid-row:1}}
.anatomy__stage{background-color:#8a0f16!important}
/* anatomy: CCTV texture like the Hellspawn cam (no HUD) */
.anatomy__stage{background-color:#8a0f16!important;background-image:none!important;isolation:isolate}
.anatomy__stage::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:repeating-linear-gradient(to bottom,rgba(0,0,0,.28) 0 2px,transparent 2px 4px),radial-gradient(ellipse at 50% 50%,transparent 55%,rgba(0,0,0,.35))}
.anatomy__stage::after{content:"";position:absolute;inset:-40%;z-index:0;pointer-events:none;opacity:.12;background-image:var(--noise);background-size:96px 96px;image-rendering:pixelated;mix-blend-mode:screen;animation:camNoise .3s steps(3) infinite}
.anatomy__stage .anatomy__roll{position:absolute;left:0;right:0;height:18%;top:-20%;z-index:1;pointer-events:none;background:rgba(255,255,255,.06);animation:camRoll 5s linear infinite}
.anatomy__figure,.anatomy__label,.anatomy__stage .scanline,.anatomy__stage .anatip{z-index:2}
.anatomy__stage .anatomy__roll{display:none}
.anatomy__stage .scanline{z-index:4}
/* ribbons: no clipping above/below */
.reports{overflow-x:clip;overflow-y:visible}
.reports>.ribbons{overflow:visible!important;height:auto;padding:0;margin:0}
.reports>.ribbons .ribbon{margin-left:-6%;margin-right:-6%}
