/* ============================================================
   PRP design system
   Client palette (locked 2026-08-15): white ground, baby blue,
   neon blue trim, grey hairlines. No dark mode, 2px radius.
   ============================================================ */
:root{
  --paper:#FFFFFF; --surface:#FFFFFF;
  --wash:#F4F9FF;            /* faintest baby-blue section ground */
  --wash-2:#EDF4FD;
  --ink:#0B1220; --ink-2:#48566B; --ink-3:#8494A8;
  --rule:#E2E8F1; --rule-2:#C8D4E4;
  --accent:#0A5BFF; --accent-ink:#FFFFFF; --accent-2:#0847CC; --accent-soft:#EAF2FF;
  --neon:#00C2FF; --baby:#BFDCF5;
  --warn:#8A5A00; --warn-soft:#FBF0DA; --good:#0A7C4A;
  --e1:0 1px 2px rgba(11,18,32,.05), 0 10px 28px -16px rgba(11,18,32,.18);
  --e2:0 2px 8px rgba(11,18,32,.06), 0 28px 70px -28px rgba(11,18,32,.26);
  --e3:0 1px 2px rgba(10,91,255,.10), 0 20px 50px -22px rgba(10,91,255,.34);
  --sans:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --serif:"Newsreader",Georgia,"Iowan Old Style",Times,serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-io:cubic-bezier(.4,0,.2,1);
  --spring:cubic-bezier(.34,1.4,.64,1);
  --r:2px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.wrap{max-width:1300px;margin-inline:auto;padding-inline:clamp(1.1rem,3.5vw,2.5rem)}
.wrap-n{max-width:1080px}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
a{color:inherit;text-decoration:none}
img{max-width:100%}
:focus-visible{outline:2px solid var(--neon);outline-offset:3px;border-radius:2px}

/* ---------------- typography ---------------- */
.d0{font-weight:700;letter-spacing:-.042em;line-height:.98;font-size:clamp(2.9rem,7vw,5.4rem);text-wrap:balance;margin:0}
.d1{font-weight:700;letter-spacing:-.038em;line-height:1.02;font-size:clamp(2.3rem,4.6vw,3.5rem);text-wrap:balance;margin:0}
.d2{font-weight:650;letter-spacing:-.03em;line-height:1.1;font-size:clamp(1.65rem,3vw,2.4rem);text-wrap:balance;margin:0}
.h3{font-weight:620;letter-spacing:-.018em;font-size:1.15rem;line-height:1.3;margin:0}
.body{font-family:var(--serif);font-size:1.05rem;line-height:1.7;color:var(--ink-2);max-width:66ch}
.lab{font-family:var(--mono);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600}
.data{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.grad{background:linear-gradient(96deg,var(--accent) 8%,var(--neon) 92%);-webkit-background-clip:text;background-clip:text;color:transparent}

/* section eyebrow with running index */
.eyeb{display:inline-flex;align-items:center;gap:.6rem;color:var(--accent);margin:0 0 .9rem}
.eyeb::before{content:"";width:26px;height:1px;background:linear-gradient(90deg,var(--accent),var(--neon));flex:none}

/* ---------------- header ---------------- */
.tick{position:relative;z-index:61;background:var(--ink);color:#DCE7F7;font-family:var(--mono);font-size:.67rem;letter-spacing:.11em;text-transform:uppercase;padding:.62rem 0;overflow:hidden}
.tick .wrap{display:flex;align-items:center;justify-content:center;gap:.6rem;min-height:1.1em}
.tick b{color:var(--neon);font-weight:600}
.tickslot{display:inline-flex;gap:.55rem;align-items:center;animation:tin .5s var(--ease-out) both}
@keyframes tin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.82);backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);border-bottom:1px solid var(--rule);transition:box-shadow .2s,border-color .2s}
header.stuck{box-shadow:0 1px 0 rgba(0,194,255,.5),0 10px 30px -22px rgba(11,18,32,.4)}
.hbar{display:flex;align-items:center;gap:1.6rem;min-height:68px}

/* PRP lockup: client shield (printed on every vial label) + new PRP wordmark */
.logo{display:flex;align-items:center;gap:.6rem;flex:none}
.logo img{height:34px;width:auto;display:block}
.logo .wm{display:flex;flex-direction:column;line-height:1;gap:.22rem}
.logo .wm .p{font-weight:700;font-size:1.32rem;letter-spacing:.02em;color:var(--ink)}
.logo .wm .p i{font-style:normal;color:var(--accent)}
.logo .wm .t{font-family:var(--mono);font-size:.5rem;letter-spacing:.19em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap}
.logo.lg img{height:44px}
.logo.lg .wm .p{font-size:1.7rem}
.logo.lg .wm .t{font-size:.56rem}

.hnav{display:flex;gap:.25rem;margin-left:.5rem}
.hnav a{position:relative;font-size:.87rem;font-weight:500;color:var(--ink-2);padding:.5rem .7rem;border-radius:var(--r);transition:color .15s,background .15s}
.hnav a::after{content:"";position:absolute;left:.7rem;right:.7rem;bottom:.22rem;height:1.5px;background:linear-gradient(90deg,var(--accent),var(--neon));transform:scaleX(0);transform-origin:left;transition:transform .22s var(--ease-out)}
.hnav a:hover{color:var(--ink)}
.hnav a:hover::after,.hnav a.on::after{transform:scaleX(1)}
.hnav a.on{color:var(--ink);font-weight:600}
.hact{margin-left:auto;display:flex;align-items:center;gap:.3rem}
.icb{width:40px;height:40px;display:grid;place-items:center;border-radius:var(--r);color:var(--ink-2);transition:background .15s,color .15s}
.icb:hover{background:var(--accent-soft);color:var(--accent)}
.cartb{position:relative}
.cartb .ring{position:absolute;inset:3px;pointer-events:none}
.cartb .ring circle{fill:none;stroke-width:1.7;transform:rotate(-90deg);transform-origin:50% 50%}
.cartb .ring .bg{stroke:var(--rule-2)}
.cartb .ring .fg{stroke:var(--accent);stroke-linecap:round;transition:stroke-dasharray .55s var(--spring)}
.cartb .n{position:absolute;top:0;right:0;min-width:17px;height:17px;padding:0 4px;background:var(--accent);color:#fff;border-radius:99px;font-family:var(--mono);font-size:.62rem;font-weight:700;display:grid;place-items:center;opacity:0;transform:scale(.4);transition:opacity .2s,transform .34s var(--spring);box-shadow:0 0 0 2px #fff}
.cartb .n.show{opacity:1;transform:scale(1)}
.burger{display:none}
@media(max-width:1000px){
  .hnav{display:none}
  .burger{display:grid}
  .hbar{gap:1rem;min-height:60px}
  .logo .wm .t{display:none}
}
/* mobile sheet */
.msheet{position:fixed;inset:0;z-index:75;background:#fff;transform:translateY(-100%);transition:transform .34s var(--ease-out);display:flex;flex-direction:column;padding:1.2rem;overflow-y:auto}
.msheet.show{transform:none}
.msheet .top{display:flex;align-items:center;margin-bottom:2rem}
.msheet nav{display:flex;flex-direction:column}
.msheet nav a{font-size:1.5rem;font-weight:620;letter-spacing:-.025em;padding:.85rem 0;border-bottom:1px solid var(--rule)}
.msheet nav a span{font-family:var(--mono);font-size:.6rem;color:var(--ink-3);letter-spacing:.14em;display:block;margin-top:.25rem;font-weight:400}

/* ---------------- buttons ---------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-size:.88rem;font-weight:600;padding:.92rem 1.5rem;border-radius:var(--r);border:1px solid transparent;transition:background .16s,transform .16s var(--ease-out),box-shadow .16s,color .16s,border-color .16s;white-space:nowrap;letter-spacing:-.005em}
.btn.pri{background:var(--accent);color:#fff;box-shadow:inset 0 0 0 1px rgba(0,194,255,.45),0 1px 2px rgba(10,91,255,.2)}
.btn.pri:hover{background:var(--accent-2);transform:translateY(-2px);box-shadow:inset 0 0 0 1px var(--neon),0 10px 26px -10px rgba(10,91,255,.65)}
.btn.pri:active{transform:none}
.btn.gh{border-color:var(--rule-2);color:var(--ink);background:#fff}
.btn.gh:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);transform:translateY(-2px)}
.btn.dk{background:var(--ink);color:#fff}
.btn.dk:hover{background:#18243a;transform:translateY(-2px)}
.btn.sm{padding:.62rem 1.05rem;font-size:.8rem}
.btn.lg{padding:1.05rem 1.9rem;font-size:.95rem}
.btn.blk{width:100%}
.btn:disabled{background:var(--wash);color:var(--ink-3);cursor:not-allowed;transform:none;box-shadow:none}
.btn .ar{transition:transform .2s var(--ease-out)}
.btn:hover .ar{transform:translateX(3px)}

/* ---------------- decorative grounds ---------------- */
.gridfield{position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(var(--baby) 1px,transparent 1px),linear-gradient(90deg,var(--baby) 1px,transparent 1px);
  background-size:58px 58px}
.glow{position:absolute;border-radius:50%;pointer-events:none;filter:blur(60px)}
/* Product renders carry true alpha transparency, so their white labels remain
   white while the surrounding stage/grid shows cleanly through the canvas. */
.vial{display:block;max-width:100%;height:auto;mix-blend-mode:normal}
.vwrap{position:relative;display:inline-block}
.vwrap .plate{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:215%;height:150%;background:#fff;border-radius:50%;filter:blur(34px);z-index:0;pointer-events:none}
.vwrap .vial{position:relative;z-index:1}
/* ---------------- hero ---------------- */
.hero{position:relative;overflow:hidden;background:
  radial-gradient(ellipse 70% 60% at 78% 18%, #E9F3FF 0%, rgba(255,255,255,0) 62%),
  radial-gradient(ellipse 50% 55% at 12% 88%, #F2F8FF 0%, rgba(255,255,255,0) 60%),
  #fff}
.hero .gridfield{opacity:.42;mask-image:radial-gradient(ellipse 85% 75% at 62% 38%,#000 12%,transparent 72%);-webkit-mask-image:radial-gradient(ellipse 85% 75% at 62% 38%,#000 12%,transparent 72%)}
.hero .g1{width:520px;height:520px;background:rgba(0,194,255,.16);top:-140px;right:2%}
.hero .g2{width:400px;height:400px;background:rgba(10,91,255,.10);bottom:-180px;right:22%}
.heroin{position:relative;display:grid;grid-template-columns:1.08fr .92fr;gap:2.5rem;align-items:center;padding-block:clamp(2.6rem,6vw,5rem) clamp(2rem,4vw,3.2rem)}
.hero h1{margin:0}
.hero .sub{font-family:var(--serif);font-size:clamp(1.02rem,1.5vw,1.18rem);line-height:1.62;color:var(--ink-2);max-width:48ch;margin:1.4rem 0 0}
.hero .ctas{display:flex;gap:.65rem;flex-wrap:wrap;margin-top:1.9rem}
.hero .under{display:flex;align-items:center;gap:1.1rem;margin-top:1.5rem;flex-wrap:wrap;font-family:var(--mono);font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3)}
.hero .under span{display:inline-flex;align-items:center;gap:.4rem}
.hero .under svg{color:var(--accent);flex:none}

/* hero batch-verify — the differentiator, above the fold */
.hverify{margin-top:1.9rem;max-width:34rem}
.hverify .cap{font-family:var(--mono);font-size:.63rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-3);margin:0 0 .5rem;display:flex;align-items:center;gap:.45rem}
.hverify .cap .dot{width:6px;height:6px;border-radius:50%;background:var(--good);box-shadow:0 0 0 3px rgba(10,124,74,.14);animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 3px rgba(10,124,74,.14)}50%{box-shadow:0 0 0 6px rgba(10,124,74,.05)}}

.hero-art{position:relative;display:grid;place-items:center;min-height:400px}
.hero-art .stage{position:relative;transform-style:preserve-3d;transition:transform .5s var(--ease-out)}
.hero-art .float{animation:drift 7s ease-in-out infinite;will-change:transform}
@keyframes drift{0%,100%{transform:translateY(-6px)}50%{transform:translateY(6px)}}
.hero-art .halo{position:absolute;inset:-14% -30%;border-radius:50%;background:radial-gradient(circle,rgba(0,194,255,.20) 0%,rgba(191,220,245,.14) 42%,transparent 68%);filter:blur(18px);z-index:-1}
/* orbiting credential chips */
.chipfl{position:absolute;display:flex;align-items:center;gap:.45rem;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border:1px solid var(--rule);box-shadow:var(--e1);border-radius:var(--r);padding:.5rem .7rem;font-family:var(--mono);font-size:.66rem;letter-spacing:.04em;white-space:nowrap;animation:drift 7s ease-in-out infinite}
.chipfl b{font-weight:600;color:var(--ink)}
.chipfl .d{width:6px;height:6px;border-radius:50%;background:var(--accent);flex:none;box-shadow:0 0 0 3px rgba(10,91,255,.13)}
.chipfl.c1{top:9%;left:-4%;animation-delay:-1.2s}
.chipfl.c2{top:44%;right:-6%;animation-delay:-3.4s}
.chipfl.c3{bottom:11%;left:2%;animation-delay:-5.1s}
@media(max-width:1120px){.chipfl.c1{left:-1%}.chipfl.c2{right:-1%}}
@media(max-width:980px){
  .heroin{grid-template-columns:1fr;gap:2rem;padding-block:2.2rem 2rem}
  /* headline leads on mobile; the vial follows the copy rather than
     pushing the offer under the fold */
  .hero-art{min-height:0}
  .hero-art img{height:min(38vh,290px);width:auto}
  .chipfl{font-size:.6rem;padding:.4rem .55rem}
  .chipfl.c3{display:none}
}

/* ---------------- sections ---------------- */
section{padding:clamp(3.2rem,6.5vw,6rem) 0;border-bottom:1px solid var(--rule);position:relative}
section.washed{background:linear-gradient(180deg,var(--wash) 0%,#fff 78%)}
section.washed-2{background:var(--wash)}
.shead{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:2.4rem;flex-wrap:wrap}
.shead p{margin:.85rem 0 0;color:var(--ink-2);max-width:56ch;font-size:.98rem}
.shead .idx{font-family:var(--mono);font-size:.68rem;color:var(--ink-3);letter-spacing:.14em}

/* ---------------- category cards ---------------- */
.cats{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem}
.cat{position:relative;display:flex;flex-direction:column;gap:.7rem;padding:1.35rem;border:1px solid var(--rule);border-radius:var(--r);background:#fff;overflow:hidden;transition:border-color .2s,box-shadow .25s var(--ease-out),transform .25s var(--ease-out);text-align:left}
.cat::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 90% 70% at 80% 0%,rgba(0,194,255,.12),transparent 62%);opacity:0;transition:opacity .3s}
.cat:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:var(--e3)}
.cat:hover::after{opacity:1}
.cat .ic{width:38px;height:38px;display:grid;place-items:center;border-radius:var(--r);background:var(--accent-soft);color:var(--accent);position:relative;z-index:1}
.cat b{font-size:1rem;font-weight:620;letter-spacing:-.02em;position:relative;z-index:1}
.cat span{font-family:var(--mono);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);position:relative;z-index:1}
.cat .go{margin-top:auto;font-family:var(--mono);font-size:.63rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:.35rem;position:relative;z-index:1;opacity:0;transform:translateY(4px);transition:all .25s var(--ease-out)}
.cat:hover .go{opacity:1;transform:none}
@media(max-width:1000px){.cats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.cats{grid-template-columns:1fr}}

/* ---------------- catalog ---------------- */
.toolbar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.4rem}
.chips{display:flex;gap:.4rem;flex-wrap:wrap}
.chip{font-family:var(--mono);font-size:.67rem;letter-spacing:.1em;text-transform:uppercase;padding:.55rem .9rem;border:1px solid var(--rule-2);border-radius:var(--r);color:var(--ink-2);background:#fff;transition:all .16s ease-out}
.chip:hover{border-color:var(--accent);color:var(--accent)}
.chip.on{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 0 0 1px var(--neon),0 6px 16px -8px rgba(10,91,255,.6)}
.sortsel{margin-left:auto;display:flex;align-items:center;gap:.5rem;font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.sortsel select{font-family:var(--mono);font-size:.7rem;border:1px solid var(--rule-2);border-radius:var(--r);padding:.5rem .6rem;background:#fff;color:var(--ink);cursor:pointer}

/* ---------------- catalog cards ----------------
   Each card is a 3D flip: the front sells, the back carries the batch record
   read off that lot's certificate. The container owns the height so both
   faces occupy the same box; only the inner .fl rotates. */
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:clamp(.7rem,1.4vw,1.15rem)}
.card{perspective:1400px;position:relative;height:var(--cardh,452px)}
.fl{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .62s var(--ease-io)}
.card.flipped .fl{transform:rotateY(180deg)}
.face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:#fff;border:1px solid var(--rule);border-radius:var(--r);display:flex;flex-direction:column;padding:1.2rem;transition:box-shadow .25s,border-color .25s}
.face.bk{transform:rotateY(180deg);padding:0;overflow:hidden}
.card:hover .face.fr{border-color:var(--rule-2);box-shadow:var(--e1)}
.card .art{flex:1 1 auto;min-height:110px;display:grid;place-items:center;position:relative;margin-bottom:.55rem}
.card .art::after{content:"";position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:62%;height:13px;border-radius:50%;background:radial-gradient(ellipse,rgba(11,18,32,.16),transparent 70%);filter:blur(6px);opacity:.45;transition:all .3s var(--ease-out)}
.card:hover .art::after{width:50%;opacity:.3}
/* .vial sets height:auto, which beats a percentage max-height here and lets the
   render size off the column width — size it explicitly instead. */
.card .art img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;transition:transform .32s var(--ease-out)}
.card:hover .art img{transform:translateY(-6px) scale(1.04)}
.card .bs{position:absolute;top:.05rem;left:0;font-family:var(--mono);font-size:.56rem;letter-spacing:.12em;color:var(--accent);font-weight:600;text-transform:uppercase;display:flex;align-items:center;gap:.3rem}
.card .bs::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--accent)}
.card .nm{font-weight:640;letter-spacing:-.022em;font-size:1.02rem;line-height:1.22}
.card .st{font-family:var(--mono);font-size:.66rem;color:var(--ink-3);letter-spacing:.04em;margin-top:.2rem}
.card .chipline{display:flex;gap:.32rem;flex-wrap:wrap;margin-top:auto;padding-top:.55rem}
.mini{font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;padding:.25rem .48rem;border-radius:var(--r);background:var(--accent-soft);color:var(--accent);font-weight:600;box-shadow:inset 0 0 0 1px rgba(0,194,255,.34)}
.mini.gray{background:#fff;color:var(--ink-3);box-shadow:inset 0 0 0 1px var(--rule)}
.mini.good{background:rgba(10,124,74,.08);color:var(--good);box-shadow:inset 0 0 0 1px rgba(10,124,74,.22)}
.card .btm{display:flex;align-items:center;gap:.6rem;padding-top:.75rem;margin-top:.6rem;border-top:1px solid var(--rule)}
.card .pr{font-family:var(--mono);font-size:1.04rem;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.card .pr small{display:block;font-size:.58rem;color:var(--ink-3);font-weight:400;letter-spacing:.04em;margin-top:.15rem}
.card .qa{margin-left:auto;position:relative;z-index:2}
/* the whole front is clickable through to the PDP, except the two buttons */
.card .cardhit{position:absolute;inset:0;z-index:1;background:none;border:0;cursor:pointer}
/* flip affordance sits above the hit layer */
.flipb{position:absolute;top:.75rem;right:.75rem;z-index:3;width:27px;height:27px;border-radius:50%;border:1px solid var(--rule);background:#fff;color:var(--ink-3);display:grid;place-items:center;cursor:pointer;transition:all .2s}
.flipb:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.card:hover .flipb{border-color:var(--rule-2)}

/* ---- card back: the batch record ---- */
.bkhd{display:flex;align-items:flex-start;gap:.5rem;padding:.95rem 1.1rem;background:linear-gradient(150deg,var(--accent-soft),#fff 70%);border-bottom:1px solid var(--rule)}
.bkhd b{font-size:.94rem;font-weight:640;letter-spacing:-.02em;line-height:1.25}
.bkhd span{display:block;font-family:var(--mono);font-size:.62rem;color:var(--ink-3);letter-spacing:.05em;margin-top:.15rem}
.bkbody{padding:.85rem 1.1rem;overflow-y:auto;flex:1;-webkit-overflow-scrolling:touch}
.bkbody p{font-size:.78rem;line-height:1.62;color:var(--ink-2);margin:0 0 .75rem;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.bkspec{display:grid;grid-template-columns:1fr;gap:.4rem;margin:0}
.bkspec div{display:flex;justify-content:space-between;gap:.7rem;border-bottom:1px dotted var(--rule);padding-bottom:.32rem;align-items:baseline}
.bkspec dt{font-family:var(--mono);font-size:.6rem;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap}
.bkspec dd{margin:0;font-family:var(--mono);font-size:.68rem;font-weight:600;text-align:right;letter-spacing:-.01em;line-height:1.4}
.bkspec dd.ok{color:var(--good)}
.bkfoot{display:flex;gap:.45rem;padding:.75rem 1.1rem;border-top:1px solid var(--rule);background:#fff}
.bkfoot .btn{flex:1;justify-content:center}

/* ---------------- verify ---------------- */
.verify{background:#fff;border:1px solid var(--rule);border-radius:var(--r);padding:clamp(1.5rem,3.5vw,3rem);box-shadow:var(--e1);position:relative;overflow:hidden}
.verify .gridfield{opacity:.3;mask-image:radial-gradient(ellipse 60% 90% at 96% 10%,#000,transparent 70%);-webkit-mask-image:radial-gradient(ellipse 60% 90% at 96% 10%,#000,transparent 70%)}
.vform{display:flex;gap:.5rem;margin:1.6rem 0 0;max-width:36rem;flex-wrap:wrap;position:relative}
.vinput{flex:1;min-width:15rem;display:flex;align-items:center;gap:.6rem;border:1px solid var(--rule-2);border-radius:var(--r);padding:0 .95rem;background:#fff;transition:border-color .16s,box-shadow .16s}
.vinput:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.vinput .pre{font-family:var(--mono);font-size:.66rem;color:var(--accent);letter-spacing:.13em;font-weight:600;flex:none}
.vinput input{flex:1;border:0;background:none;outline:none;font-family:var(--mono);font-size:.9rem;color:var(--ink);padding:.9rem 0;min-width:0;letter-spacing:.02em}
.vinput input::placeholder{color:var(--ink-3)}
.vhint{font-family:var(--mono);font-size:.68rem;color:var(--ink-3);margin-top:.85rem;position:relative}
.vhint button{color:var(--accent);text-decoration:underline;text-underline-offset:2px;font-family:var(--mono);font-size:.68rem}
.vres{margin-top:1.6rem;position:relative}
.rec{border:1px solid rgba(0,194,255,.55);background:linear-gradient(160deg,var(--accent-soft),#fff 58%);border-radius:var(--r);overflow:hidden;animation:rise .28s var(--ease-out) both;box-shadow:var(--e1)}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.rec .rh{display:flex;align-items:center;gap:.7rem;padding:.9rem 1.15rem;border-bottom:1px solid rgba(10,91,255,.22);flex-wrap:wrap}
.rec .rh .dot{width:7px;height:7px;border-radius:50%;background:var(--good);box-shadow:0 0 0 3px rgba(10,124,74,.15)}
.rec .rh b{font-family:var(--mono);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--good)}
.rec .rh .go{margin-left:auto;font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);text-decoration:underline;text-underline-offset:3px;background:none;border:0;padding:0;cursor:pointer}
.rec .rh .go:hover{color:var(--accent-2)}
.vres .note .lk{background:none;border:0;padding:0;font:inherit;color:var(--accent);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.rgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(142px,1fr));background:#fff}
.rgrid div{padding:.9rem 1.15rem;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.rgrid div:last-child{border-right:0}
.rgrid dt{font-family:var(--mono);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.3rem}
.rgrid dd{margin:0;font-family:var(--mono);font-size:.86rem;font-weight:600;font-variant-numeric:tabular-nums}
.rgrid dd.pend{color:var(--ink-3);font-weight:400}
.miss{border:1px solid var(--rule-2);background:#fff;border-radius:var(--r);padding:1.15rem 1.3rem;animation:rise .28s var(--ease-out) both}
.miss b{font-family:var(--mono);font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;color:var(--warn);display:block;margin-bottom:.45rem}
.miss p{margin:0;font-size:.88rem;color:var(--ink-2)}
.note.info{background:var(--accent-soft);border-left-color:var(--accent)}
.note{margin-top:1.15rem;padding:.75rem .95rem;background:var(--warn-soft);border-left:2px solid var(--warn);font-size:.77rem;color:var(--ink-2);line-height:1.55;border-radius:0 var(--r) var(--r) 0}
.note b{font-family:var(--mono);font-size:.66rem;letter-spacing:.11em;text-transform:uppercase;color:var(--warn)}

/* ---------------- comparison ---------------- */
.scroll{overflow-x:auto;border:1px solid var(--rule);border-radius:var(--r);background:#fff;box-shadow:var(--e1)}
/* The 600px min-width this rule used to carry was for a comparison table the
   approved design no longer uses. Left in place it forced every WooCommerce
   table -- cart, volume pricing, order review -- to overflow on phones.
   Tables that genuinely need width now scroll inside their own container. */
table{border-collapse:collapse;width:100%;font-family:var(--mono);font-size:.8rem;font-variant-numeric:tabular-nums}
th,td{text-align:left;padding:.92rem 1.1rem;border-bottom:1px solid var(--rule);white-space:nowrap}
thead th{font-size:.63rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-weight:600;background:var(--wash);position:sticky;top:0}
th.acc{color:var(--accent);background:var(--accent-soft)}
td.acc{background:rgba(234,242,255,.55)}
td.f{font-family:var(--sans);font-size:.9rem;color:var(--ink-2);white-space:normal;min-width:17rem}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:var(--wash)}
tbody tr:hover td.acc{background:var(--accent-soft)}
.tk{color:var(--good);font-weight:700}
.dash{color:var(--ink-3)}

/* ---------------- FAQ ---------------- */
.faq{border:1px solid var(--rule);border-radius:var(--r);overflow:hidden;background:#fff;max-width:60rem}
.faq details{border-bottom:1px solid var(--rule)}
.faq details:last-child{border-bottom:0}
.faq summary{list-style:none;cursor:pointer;padding:1.15rem 1.4rem;display:flex;align-items:center;gap:1rem;font-weight:580;font-size:1rem;letter-spacing:-.015em;transition:background .16s}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{background:var(--wash)}
.faq summary .pm{margin-left:auto;flex:none;width:22px;height:22px;display:grid;place-items:center;color:var(--accent);transition:transform .28s var(--ease-out)}
.faq details[open] summary{background:var(--wash)}
.faq details[open] summary .pm{transform:rotate(45deg)}
.faq .ans{padding:0 1.4rem 1.35rem;font-family:var(--serif);font-size:.98rem;line-height:1.7;color:var(--ink-2);max-width:70ch;animation:rise .22s var(--ease-out) both}
.faq .ans a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}

/* ---------------- CTA band ---------------- */
.ctaband{position:relative;overflow:hidden;background:var(--ink);color:#fff;border-bottom:0}
.ctaband .gridfield{opacity:.09;background-image:linear-gradient(rgba(255,255,255,.5) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.5) 1px,transparent 1px)}
.ctaband .g1{width:520px;height:420px;background:rgba(10,91,255,.5);top:-160px;left:8%}
.ctaband .g2{width:420px;height:380px;background:rgba(0,194,255,.28);bottom:-200px;right:6%}
.ctain{position:relative;display:grid;grid-template-columns:1.2fr .8fr;gap:2.5rem;align-items:center}
.ctaband h2{color:#fff}
.ctaband p{color:#B9CBE4;font-family:var(--serif);font-size:1.06rem;line-height:1.65;max-width:46ch;margin:1rem 0 0}
.ctaband .eyeb{color:var(--neon)}
.ctaband .eyeb::before{background:linear-gradient(90deg,var(--neon),transparent)}
.emailrow{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1.6rem}
.emailrow .ipt{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.22);flex:1;min-width:14rem}
.emailrow .ipt input{color:#fff}
.emailrow .ipt input::placeholder{color:#7E93B3}
.emailrow .ipt:focus-within{border-color:var(--neon);box-shadow:0 0 0 3px rgba(0,194,255,.14)}
.ctastats{display:grid;gap:1px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.12);border-radius:var(--r);overflow:hidden}
.ctastats div{background:#0B1220;padding:1.1rem 1.25rem}
.ctastats dt{font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:#7E93B3;margin-bottom:.3rem}
.ctastats dd{margin:0;font-family:var(--mono);font-size:1.15rem;font-weight:600;font-variant-numeric:tabular-nums;color:#fff}
@media(max-width:900px){.ctain{grid-template-columns:1fr}}
/* ---------------- product detail ---------------- */
.crumbs{display:flex;align-items:center;gap:.5rem;padding:1.1rem 0;font-family:var(--mono);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);flex-wrap:wrap}
.crumbs a{color:var(--ink-3);transition:color .15s}
.crumbs a:hover{color:var(--accent)}
.crumbs .sep{color:var(--rule-2)}
.crumbs b{color:var(--ink);font-weight:600}
.pdp{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);padding:0 0 clamp(2rem,4vw,3.5rem)}
.pdp-l{position:sticky;top:96px;align-self:start}
.pdpart{background:linear-gradient(168deg,var(--wash),#fff 60%);border:1px solid var(--rule);border-radius:var(--r);display:grid;place-items:center;padding:2rem;min-height:420px;position:relative;overflow:hidden}
.pdpart .gridfield{opacity:.4;mask-image:radial-gradient(ellipse 70% 70% at 50% 40%,#000,transparent 72%);-webkit-mask-image:radial-gradient(ellipse 70% 70% at 50% 40%,#000,transparent 72%)}
.pdpart .halo{width:60%;aspect-ratio:1;background:radial-gradient(circle,rgba(0,194,255,.18),transparent 66%);filter:blur(24px);top:50%;left:50%;transform:translate(-50%,-50%)}
.pdpart img{position:relative;z-index:1}
.thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-top:.5rem}
.thumb{aspect-ratio:1;background:#fff;border:1px solid var(--rule);border-radius:var(--r);display:grid;place-items:center;font-family:var(--mono);font-size:.56rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);transition:border-color .16s,color .16s;overflow:hidden}
.thumb:hover{border-color:var(--accent);color:var(--accent)}
/* size off width, not height: a % height inside the aspect-ratio box resolves
   against an indefinite track and blows the image up to natural size */
.thumb img{width:46%;height:auto}
.thumb.on{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.pdp-r>*{margin-bottom:1.5rem}
.pdpchips{display:flex;gap:.4rem;flex-wrap:wrap}
.pdp-variant{padding:1rem;border:1px solid var(--rule);border-radius:var(--radius-md);background:linear-gradient(145deg,#F8FBFF,#fff)}
.pdp-variant-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.7rem}
.pdp-variant-head .lab{color:var(--ink-2)}
.pdp-variant-head span:last-child{font-family:var(--mono);font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.pdp-variant-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.5rem}
.pdp-variant-options button{min-height:54px;padding:.7rem .8rem;border:1px solid var(--rule-2);border-radius:var(--radius-sm);background:#fff;text-align:left;transition:border-color .16s,background .16s,box-shadow .16s}
.pdp-variant-options button:hover{border-color:var(--accent)}
.pdp-variant-options button.on{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px rgba(10,91,255,.16)}
.pdp-variant-options b{display:block;font-size:.82rem;letter-spacing:-.01em}
.pdp-variant-options small{display:block;margin-top:.12rem;font-family:var(--mono);font-size:.58rem;color:var(--ink-3)}
.price{font-family:var(--mono);font-size:2.15rem;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.035em;display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}
.price .ea{font-size:.78rem;color:var(--ink-3);font-weight:400;letter-spacing:.05em;font-family:var(--mono)}
.tiers{display:grid;gap:.4rem}
.tier{display:flex;align-items:center;gap:.8rem;padding:.8rem .95rem;border:1px solid var(--rule);border-radius:var(--r);font-family:var(--mono);font-size:.78rem;transition:all .16s ease-out;text-align:left;width:100%;background:#fff}
.tier:hover{border-color:var(--rule-2);background:var(--wash)}
.tier.on{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px rgba(0,194,255,.4)}
.tier .q{color:var(--ink-2);min-width:3.4rem;font-weight:500}
.tier .sv{font-size:.6rem;letter-spacing:.11em;text-transform:uppercase;color:var(--good);font-weight:600}
.tier .e{margin-left:auto;font-weight:600;font-variant-numeric:tabular-nums}
.qtyrow{display:flex;gap:.5rem;align-items:stretch}
.stepper{display:flex;align-items:center;border:1px solid var(--rule-2);border-radius:var(--r);background:#fff}
.stepper button{width:44px;align-self:stretch;font-family:var(--mono);font-size:1.05rem;color:var(--ink-2);transition:color .15s,background .15s}
.stepper button:hover{color:var(--accent);background:var(--accent-soft)}
.stepper .v{width:46px;text-align:center;font-family:var(--mono);font-size:.92rem;font-weight:600;font-variant-numeric:tabular-nums}
.lot{display:flex;align-items:center;gap:.7rem;padding:.85rem .95rem;background:linear-gradient(120deg,var(--accent-soft),#fff);border:1px solid rgba(0,194,255,.5);border-radius:var(--r);font-family:var(--mono);font-size:.75rem;flex-wrap:wrap}
.lot .dot{width:7px;height:7px;border-radius:50%;background:var(--good);flex:none;box-shadow:0 0 0 3px rgba(10,124,74,.15)}
.lot .id{font-weight:600;letter-spacing:.03em}
.lot .lk{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;font-size:.63rem;text-decoration:underline;text-underline-offset:3px;background:none;border:0;padding:0;font-family:inherit;cursor:pointer}
/* only the first trailing link takes the free space, so two sit together */
.lot .lk:first-of-type{margin-left:auto}
.lot .lk+.lk{margin-left:.9rem}
.lot .lk:hover{color:var(--accent-2)}
.specs{border:1px solid var(--rule);border-radius:var(--r);overflow:hidden;background:#fff}
.specs .r{display:flex;padding:.75rem 1rem;border-bottom:1px solid var(--rule);font-family:var(--mono);font-size:.78rem;gap:1rem}
.specs .r:nth-child(even){background:var(--wash)}
.specs .r:last-child{border-bottom:0}
.specs dt{color:var(--ink-3);flex:0 0 11rem;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;padding-top:.1rem}
.specs dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}
.pdp h3.sh{font-weight:640;letter-spacing:-.02em;font-size:1.2rem;margin:2.5rem 0 .85rem}
.refs{font-family:var(--sans);font-size:.85rem;color:var(--ink-2);line-height:1.6;padding-left:1.15rem}
.refs li{margin:.5rem 0}
@media(max-width:900px){.pdp{grid-template-columns:1fr}.pdp-l{position:static}}

/* ---------------- sticky buy bar ---------------- */
.buybar{position:fixed;z-index:55;right:clamp(1rem,3vw,2rem);bottom:1.3rem;width:360px;max-width:calc(100vw - 2rem);background:#fff;border:1px solid var(--rule-2);border-radius:var(--r);box-shadow:var(--e2);padding:.85rem;display:flex;align-items:center;gap:.85rem;opacity:0;transform:translateY(14px);pointer-events:none;transition:opacity .26s var(--ease-out),transform .26s var(--ease-out)}
.buybar.show{opacity:1;transform:none;pointer-events:auto}
.buybar .th{width:34px;height:44px;display:grid;place-items:center;flex:none}
.buybar .nm{font-family:var(--mono);font-size:.72rem;line-height:1.4;min-width:0}
.buybar .nm b{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.buybar .nm span{color:var(--ink-3);font-size:.64rem}
.buybar .pr{margin-left:auto;font-family:var(--mono);font-size:.95rem;font-weight:600;font-variant-numeric:tabular-nums}
@media(max-width:600px){.buybar{right:0;left:0;bottom:0;width:auto;max-width:none;border-radius:0;border-left:0;border-right:0;border-bottom:0;padding:.7rem 1rem calc(.7rem + env(safe-area-inset-bottom))}.buybar .nm span,.buybar .th{display:none}}

/* ---------------- cart drawer ---------------- */
.scrim{position:fixed;inset:0;z-index:70;background:rgba(11,18,32,.42);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .34s var(--ease-io)}
.scrim.show{opacity:1;pointer-events:auto}
.drawer{position:fixed;z-index:80;top:0;right:0;bottom:0;width:min(430px,100vw);background:#fff;border-left:1px solid var(--rule);box-shadow:var(--e2);transform:translateX(100%);transition:transform .34s var(--ease-out);display:flex;flex-direction:column}
.drawer.show{transform:none}
.dhead{display:flex;align-items:center;gap:1rem;padding:1.3rem 1.45rem;border-bottom:1px solid var(--rule)}
.dhead b{font-family:var(--mono);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase}
.dhead .x{margin-left:auto;color:var(--ink-3);font-size:1.35rem;line-height:1;width:34px;height:34px;display:grid;place-items:center;border-radius:var(--r)}
.dhead .x:hover{background:var(--wash);color:var(--ink)}
.dbody{flex:1;overflow-y:auto;padding:1.3rem 1.45rem;display:flex;flex-direction:column;gap:1rem}
.line{display:flex;gap:.9rem;padding-bottom:1rem;border-bottom:1px solid var(--rule);animation:rise .26s var(--ease-out) both}
.line .th{width:54px;height:68px;background:var(--wash);border:1px solid var(--rule);border-radius:var(--r);display:grid;place-items:center;flex:none}
.line .info{flex:1;min-width:0}
.line .info b{display:block;font-size:.92rem;font-weight:620;letter-spacing:-.015em}
.line .info .lt{font-family:var(--mono);font-size:.63rem;color:var(--ink-3);letter-spacing:.05em;margin-top:.18rem}
.line .info .ctl{display:flex;align-items:center;gap:.6rem;margin-top:.55rem}
.line .info .ctl .st2{display:flex;border:1px solid var(--rule);border-radius:var(--r);align-items:center}
.line .info .ctl .st2 button{width:27px;height:27px;font-family:var(--mono);font-size:.85rem;color:var(--ink-2)}
.line .info .ctl .st2 button:hover{color:var(--accent)}
.line .info .ctl .st2 span{width:27px;text-align:center;font-family:var(--mono);font-size:.74rem;font-weight:600}
.line .info .ctl .rm{font-family:var(--mono);font-size:.62rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);text-decoration:underline;text-underline-offset:2px}
.line .info .ctl .rm:hover{color:#A32B1C}
.line .amt{font-family:var(--mono);font-size:.88rem;font-weight:600;font-variant-numeric:tabular-nums}
.empty{text-align:center;padding:3rem 1rem;color:var(--ink-3)}
.empty .vial{margin:0 auto 1rem;opacity:.5}
.empty p{font-size:.9rem;margin:.8rem 0 1.5rem}
.dfoot{border-top:1px solid var(--rule);padding:1.3rem 1.45rem;display:flex;flex-direction:column;gap:1rem;background:#fff}
.meter .top{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.72rem;color:var(--ink-2);margin-bottom:.5rem}
.meter .top .won{color:var(--good);font-weight:600}
.meter .track{height:6px;background:var(--wash-2);border-radius:99px;overflow:hidden}
.meter .fill{height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--neon));border-radius:99px;transition:width .55s var(--spring);box-shadow:0 0 10px -2px var(--neon)}
.meter .sub{font-family:var(--mono);font-size:.62rem;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);margin-top:.5rem}
.tot{display:flex;justify-content:space-between;font-family:var(--mono);font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums}
.fbt{border-top:1px solid var(--rule);padding-top:1rem}
.fbt .lab{color:var(--ink-3);margin-bottom:.7rem;display:block}
.fbt .sug{display:flex;align-items:center;gap:.7rem;padding:.55rem 0}
.fbt .sug .nm{font-size:.84rem;font-weight:560}
.fbt .sug .pr{margin-left:auto;font-family:var(--mono);font-size:.78rem;font-variant-numeric:tabular-nums;color:var(--ink-2)}
.fbt .sug .ad{font-family:var(--mono);font-size:.62rem;letter-spacing:.09em;text-transform:uppercase;color:var(--accent);border:1px solid rgba(10,91,255,.3);padding:.32rem .58rem;border-radius:var(--r)}
.fbt .sug .ad:hover{background:var(--accent-soft)}

/* ---- certificate lightbox ---- */
.lbox{position:fixed;inset:0;z-index:190;background:rgba(11,18,32,.72);backdrop-filter:blur(5px);opacity:0;pointer-events:none;transition:opacity .3s var(--ease-io);display:grid;place-items:center;padding:clamp(.7rem,3vw,2rem)}
.lbox.on{opacity:1;pointer-events:auto}
.lbin{background:#fff;border-radius:var(--r);max-width:820px;width:100%;max-height:100%;display:flex;flex-direction:column;box-shadow:var(--e2);overflow:hidden;transform:translateY(12px) scale(.985);transition:transform .3s var(--ease-out)}
.lbox.on .lbin{transform:none}
.lbh{display:flex;align-items:center;gap:.8rem;padding:.9rem 1.1rem;border-bottom:1px solid var(--rule);background:linear-gradient(150deg,var(--accent-soft),#fff 70%)}
.lbh b{font-size:1rem;font-weight:660;letter-spacing:-.022em}
.lbh span{display:block;font-family:var(--mono);font-size:.64rem;color:var(--ink-3);letter-spacing:.05em;margin-top:.12rem}
.lbx{margin-left:auto;width:32px;height:32px;flex:none;border-radius:50%;border:1px solid var(--rule);background:#fff;display:grid;place-items:center;cursor:pointer;color:var(--ink-2);transition:all .2s}
.lbx:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.lbimg{overflow:auto;background:var(--wash);padding:clamp(.5rem,2vw,1.1rem);-webkit-overflow-scrolling:touch}
.lbimg img{width:100%;height:auto;display:block;border:1px solid var(--rule);background:#fff;box-shadow:var(--e1)}
.lbf{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem;padding:.8rem 1.1rem;border-top:1px solid var(--rule);font-family:var(--mono);font-size:.66rem;color:var(--ink-2)}
.lbf b{color:var(--ink);font-weight:600}

/* ---------------- age gate ---------------- */
.gate{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:1.5rem;background:rgba(255,255,255,.6);backdrop-filter:blur(16px) saturate(1.2);transition:opacity .34s var(--ease-io)}
.gate.gone{opacity:0;pointer-events:none}
.gatecard{background:#fff;border:1px solid var(--rule-2);border-radius:var(--r);box-shadow:var(--e2);max-width:420px;padding:2.2rem;position:relative;overflow:hidden}
.gatecard .gridfield{opacity:.34;mask-image:radial-gradient(ellipse 70% 60% at 100% 0%,#000,transparent 70%);-webkit-mask-image:radial-gradient(ellipse 70% 60% at 100% 0%,#000,transparent 70%)}
.gatecard>*{position:relative}
.gatecard .logo{margin-bottom:1.4rem}
.gatecard h2{font-size:1.4rem;font-weight:660;letter-spacing:-.028em;margin:0 0 .8rem;line-height:1.2}
.gatecard p{font-size:.87rem;color:var(--ink-2);line-height:1.6;margin:0 0 1.5rem}
.gatecard .row{display:flex;gap:.5rem}

/* ---------------- footer ---------------- */
footer{padding:clamp(3rem,5vw,4.5rem) 0 3rem;color:var(--ink-3);font-size:.82rem;line-height:1.75;background:var(--wash);border-top:1px solid var(--rule)}
.fgrid{display:grid;grid-template-columns:1.6fr repeat(4,1fr);gap:2rem;margin-bottom:2.5rem}
.fgrid h3{font-family:var(--mono);font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink);margin:0 0 .9rem;font-weight:600}
.fgrid a{display:block;color:var(--ink-3);transition:color .15s,transform .15s}
.fgrid a:hover{color:var(--accent);transform:translateX(2px)}
.fbadge{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem}
.fbadge span{font-family:var(--mono);font-size:.6rem;letter-spacing:.09em;text-transform:uppercase;border:1px solid var(--rule-2);border-radius:var(--r);padding:.32rem .5rem;color:var(--ink-2);background:#fff}
.disc{border-top:1px solid var(--rule-2);padding-top:1.5rem;font-family:var(--mono);font-size:.66rem;letter-spacing:.02em;line-height:1.75;max-width:76ch}
.fbot{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1.5rem;font-family:var(--mono);font-size:.64rem;letter-spacing:.06em;text-transform:uppercase}
@media(max-width:900px){.fgrid{grid-template-columns:1fr 1fr}}

/* ---------------- views + reveal ---------------- */
.view{display:none}
.view.on{display:block;animation:vin .4s var(--ease-io) both}
@keyframes vin{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.rv{opacity:0;transform:translateY(18px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}
.rv.in{opacity:1;transform:none}

.pbadge{position:fixed;left:1rem;bottom:1rem;z-index:50;font-family:var(--mono);font-size:.58rem;letter-spacing:.11em;text-transform:uppercase;background:var(--ink);color:#fff;padding:.45rem .7rem;border-radius:var(--r);opacity:.8}
@media(max-width:700px){.pbadge{display:none}}

/* ---------------- mobile ----------------
   The sticky header overlays anything scrolled to with block:"start", so
   every scroll target reserves its own height. */
section[id],#compounds,#verify,#faq{scroll-margin-top:76px}

@media(max-width:820px){
  /* the ticker must stay on one line — wrapped, it reads as broken copy */
  .tick{font-size:.58rem;letter-spacing:.06em;padding:.5rem 0}
  .tick .wrap{white-space:nowrap;overflow:hidden;justify-content:flex-start}
  .tickslot{min-width:0;overflow:hidden;text-overflow:ellipsis;display:block;white-space:nowrap}
  section[id]{scroll-margin-top:64px}
}

@media(max-width:700px){
  section{padding:clamp(2.6rem,9vw,3.6rem) 0}
  .shead{margin-bottom:1.6rem;gap:.9rem}
  .shead p{font-size:.92rem}
  .hero .eyeb{font-size:.58rem;letter-spacing:.1em}
  .hero p.lede,.hero .lede{font-size:1rem}
  /* full-bleed, equal-width CTAs — mixed widths read as broken alignment */
  .hero .ctas{gap:.55rem}
  .hero .ctas .btn{width:100%;justify-content:center}
  .vform{gap:.5rem}
  .vform .vinput{min-width:0;flex:1 1 100%}
  .vform .btn{width:100%;justify-content:center}
  .hero .under{display:grid;grid-template-columns:1fr 1fr;gap:.55rem .8rem;font-size:.6rem;letter-spacing:.06em}
  .hero .under span:last-child{grid-column:1/-1}

  /* two-up catalog: a single column of 17 full-width cards is an endless scroll */
  .pgrid{grid-template-columns:repeat(2,1fr);gap:.6rem}
  .card{--cardh:480px}
  .face{padding:.7rem}
  .card .art{min-height:90px;margin-bottom:.35rem}
  .card .nm{font-size:.82rem}
  .card .st{font-size:.56rem}
  .card .chipline{gap:.25rem;padding-top:.4rem}
  .mini{font-size:.5rem;padding:.2rem .34rem;letter-spacing:.05em}
  .card .btm{flex-direction:column;align-items:stretch;gap:.45rem;padding-top:.5rem;margin-top:.45rem}
  .card .pr{font-size:.9rem}
  .card .pr small{font-size:.52rem}
  .card .qa{margin-left:0;width:100%;justify-content:center}
  .flipb{top:.45rem;right:.45rem;width:24px;height:24px}
  .bkhd{padding:.6rem .7rem}
  .bkhd b{font-size:.8rem}
  .bkhd span{font-size:.55rem}
  .bkbody{padding:.6rem .7rem}
  /* on a phone the back is the batch record only — the blurb lives on the
     product page and would push the spec rows into an inner scroll */
  .bkbody p{display:none}
  /* a nowrap label beside a long multi-peptide net content overflows the
     card and gets clipped — stack the pair on narrow screens instead */
  .bkspec div{display:block}
  .bkspec dt{font-size:.52rem;white-space:normal;margin-bottom:.1rem}
  .bkspec dd{font-size:.6rem;text-align:left;overflow-wrap:anywhere}
  .bkfoot{padding:.55rem .7rem;flex-direction:column;gap:.35rem}

  /* chips scroll sideways rather than stacking three rows deep */
  .toolbar{gap:.7rem;align-items:stretch;flex-direction:column;min-width:0}
  .chips{flex-wrap:nowrap;min-width:0;max-width:100%;overflow-x:auto;padding-bottom:.3rem;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin-inline:-1rem;padding-inline:1rem}
  .chips::-webkit-scrollbar{display:none}
  .chip{flex:none;font-size:.6rem;padding:.5rem .75rem}
  .sortsel{align-self:flex-start}
}

@media(max-width:420px){
  .card{--cardh:500px}
  .card .art{min-height:80px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.12s !important}
  html{scroll-behavior:auto}
  .hero-art .float,.chipfl{animation:none}
  .rv{opacity:1;transform:none}
}

/* ============================================================
   PRP 2026 art direction — evidence-led research commerce
   ============================================================ */
:root{
  --paper:#fff;--surface:#fff;--wash:#F5F8FC;--wash-2:#EEF4FA;
  --ink:#07111F;--ink-2:#40516A;--ink-3:#7788A0;
  --rule:#DDE5EF;--rule-2:#BAC8D9;
  --accent:#075DFF;--accent-2:#0348C7;--accent-soft:#EAF2FF;
  --neon:#36D5FF;--baby:#C9E6FF;--good:#087A55;
  --sans:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;
  --serif:"Newsreader",Georgia,serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --e1:0 12px 40px -26px rgba(4,25,58,.28);
  --e2:0 34px 90px -34px rgba(4,25,58,.32);
  --e3:0 24px 60px -26px rgba(7,93,255,.38);
  --radius-xs:6px;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:26px;
  --r:var(--radius-sm);
}
[hidden]{display:none!important}
html{scroll-padding-top:76px}
section[id],#compounds,#verify,#faq{scroll-margin-top:0}
body{font-family:var(--sans);font-size:15px;line-height:1.6;background:#fff;color:var(--ink);font-optical-sizing:auto;font-kerning:normal;font-synthesis:none;text-rendering:optimizeLegibility}
body.gate-open,body.layer-open{overflow:hidden}
.wrap{max-width:1380px;padding-inline:clamp(1.15rem,4vw,3.75rem)}
.scroll-progress{position:fixed;z-index:220;left:0;top:0;height:2px;width:0;background:linear-gradient(90deg,var(--accent),var(--neon));box-shadow:0 0 14px rgba(54,213,255,.75);pointer-events:none}
.d0{font-family:var(--sans);font-weight:700;font-size:clamp(3.7rem,7.2vw,6.8rem);line-height:.91;letter-spacing:-.068em}
.d1{font-family:var(--sans);font-weight:700;letter-spacing:-.048em}
.d2{font-family:var(--sans);font-weight:650;font-size:clamp(2.15rem,4.2vw,4rem);line-height:1.02;letter-spacing:-.052em}
.body{font-family:var(--sans);font-size:1rem;line-height:1.75}
.lab{font-family:var(--mono);font-size:.64rem;letter-spacing:.17em;font-weight:500}
.eyeb{gap:.7rem;margin-bottom:1.15rem}
.eyeb::before{width:34px;background:var(--accent)}

/* navigation */
.tick{z-index:121;background:#06101F;color:#BED0E8;padding:.64rem 0;font-size:.61rem;letter-spacing:.16em}
.tick b{color:var(--neon)}
header{z-index:120;background:rgba(255,255,255,.9);border-color:rgba(186,200,217,.65);backdrop-filter:blur(20px) saturate(1.4)}
header.stuck{box-shadow:0 14px 40px -32px rgba(4,25,58,.55);border-color:var(--rule)}
.hbar{min-height:76px;gap:2.5rem}
.logo{gap:.72rem}
.logo img{height:39px}
.logo .wm{gap:.27rem}
.logo .wm .p{font-size:1.22rem;letter-spacing:-.02em;font-weight:800}
.logo .wm .t{font-size:.47rem;letter-spacing:.21em}
.hnav{gap:.3rem;margin-left:1rem}
.hnav a{font-size:.8rem;font-weight:600;padding:.68rem .78rem;border-radius:10px}
.hnav a::after{height:2px;bottom:.12rem;border-radius:3px;background:var(--accent)}
.hact{gap:.2rem}
.icb{width:42px;height:42px;border-radius:12px}
.icb:hover{transform:translateY(-1px)}
.cartb{background:#F4F7FB}
.cartb .n{background:var(--ink)}

/* controls */
.btn{min-height:49px;padding:.87rem 1.4rem;border-radius:12px;font-size:.82rem;font-weight:700;letter-spacing:-.01em;transition:transform .22s var(--ease-out),box-shadow .22s,background .22s,border-color .22s,color .22s}
.btn.pri{background:var(--accent);box-shadow:0 12px 28px -16px rgba(7,93,255,.75),inset 0 0 0 1px rgba(255,255,255,.18)}
.btn.pri:hover{background:var(--accent-2);box-shadow:0 18px 34px -16px rgba(7,93,255,.72);transform:translateY(-2px)}
.btn.pri:disabled{background:#DDE5EF;color:#7E8EA3;box-shadow:none;transform:none}
.btn.added,.btn.added:hover{background:var(--good);border-color:var(--good);color:#fff;box-shadow:0 12px 28px -18px rgba(8,122,85,.65);transform:none}
.btn.dk{background:#07111F}
.btn.dk:hover{background:#14243B;box-shadow:0 14px 30px -18px rgba(4,25,58,.7)}
.btn.gh{border-color:var(--rule-2);border-radius:12px}
.btn.gh:hover{background:#F6F9FD}
.btn.lg{min-height:56px;padding:1rem 1.65rem;font-size:.86rem}
.btn.sm{min-height:39px;padding:.55rem .9rem;border-radius:10px}
.btn.textlink{border:0;padding-inline:0;min-height:auto;color:var(--accent);background:transparent}
.btn.textlink:hover{transform:none;color:var(--accent-2)}
.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#19B77A;box-shadow:0 0 0 5px rgba(25,183,122,.12);flex:none}

/* hero */
.hero{isolation:isolate;background:#fff;border-bottom:0;padding-bottom:0;overflow:hidden}
.hero::before{content:"";position:absolute;width:62vw;height:62vw;right:-24vw;top:-30vw;border-radius:50%;background:radial-gradient(circle,rgba(54,213,255,.13),rgba(7,93,255,.05) 38%,transparent 68%);pointer-events:none}
.hero .gridfield{opacity:.22;background-size:72px 72px;background-image:linear-gradient(rgba(142,174,211,.28) 1px,transparent 1px),linear-gradient(90deg,rgba(142,174,211,.28) 1px,transparent 1px);mask-image:linear-gradient(90deg,transparent 4%,#000 48%,#000 85%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent 4%,#000 48%,#000 85%,transparent)}
.hero-rule{position:absolute;left:50%;top:0;bottom:0;width:1px;background:linear-gradient(transparent,var(--rule),transparent);opacity:.7}
.heroin{grid-template-columns:.88fr 1.12fr;gap:clamp(2.5rem,6vw,7rem);min-height:690px;padding-block:clamp(3.5rem,7vw,6.5rem) 3.5rem}
.hero-copy{position:relative;z-index:2;padding-top:1rem}
.hero-copy .eyeb{color:var(--accent)}
.hero-copy h1 span{font-family:var(--serif);font-style:italic;font-weight:500;color:var(--accent);letter-spacing:-.055em;white-space:nowrap}
.hero .sub{font-family:var(--sans);font-size:clamp(1.05rem,1.55vw,1.24rem);line-height:1.7;max-width:52ch;margin-top:1.75rem;color:var(--ink-2)}
.hero .sub b{color:var(--ink);font-weight:700}
.hero .ctas{margin-top:2rem;gap:.7rem}
.hero .under{margin-top:1.45rem;gap:1rem;font-size:.6rem;letter-spacing:.12em}
.hero .under span{gap:.45rem}
.hero .under svg{color:var(--accent)}
.hero-art{min-height:570px;place-items:stretch}
.hero-art .stage{position:relative;min-height:570px;border:1px solid rgba(174,194,218,.8);border-radius:30px;background:linear-gradient(148deg,#F1F7FD 0%,#E3F0FC 52%,#F8FBFE 100%);overflow:hidden;box-shadow:0 32px 90px -54px rgba(4,25,58,.48);transform-style:preserve-3d;transition:transform .7s var(--ease-out)}
.hero-art .stage::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(7,93,255,.075) 1px,transparent 1px),linear-gradient(90deg,rgba(7,93,255,.075) 1px,transparent 1px);background-size:46px 46px;mask-image:linear-gradient(180deg,#000,transparent 76%);-webkit-mask-image:linear-gradient(180deg,#000,transparent 76%)}
.hero-art .stage::after{content:"";position:absolute;inset:auto 8% 7% 8%;height:20%;background:radial-gradient(ellipse,rgba(1,17,38,.18),transparent 68%);filter:blur(16px);opacity:.5}
.artifact-head,.artifact-foot{position:absolute;z-index:4;left:1.5rem;right:1.5rem;display:flex;align-items:center;justify-content:space-between;font-family:var(--mono);font-size:.55rem;letter-spacing:.13em;text-transform:uppercase;color:#5E7290}
.artifact-head{top:1.35rem;padding-bottom:1rem;border-bottom:1px solid rgba(118,148,185,.28)}
.artifact-foot{bottom:1.25rem;gap:1rem;justify-content:flex-start;color:#66809F}
.artifact-index{position:absolute;z-index:0;right:-.06em;top:10%;font-size:clamp(8rem,14vw,13rem);font-weight:800;letter-spacing:-.1em;line-height:1;color:rgba(7,93,255,.055)}
.hero-vials{position:absolute;z-index:2;inset:10% 6% 16%;display:flex;align-items:flex-end;justify-content:center}
.hero-vials .vial{position:absolute;bottom:0;mix-blend-mode:normal;filter:drop-shadow(0 24px 20px rgba(4,25,58,.11));transition:transform .7s var(--ease-out)}
.hero-vials .vial-main{height:82%;width:auto;z-index:3;transform:translateY(1%)}
.hero-vials .vial-side{height:60%;width:auto;z-index:2;opacity:.82;filter:saturate(.7) drop-shadow(0 18px 16px rgba(4,25,58,.09))}
.hero-vials .vial-left{left:10%;transform:translateY(-1%) rotate(-4deg)}
.hero-vials .vial-right{right:9%;transform:translateY(2%) rotate(4deg)}
.hero-art .stage:hover .vial-main{transform:translateY(-2%)}
.hero-art .stage:hover .vial-left{transform:translate(-6px,-2%) rotate(-6deg)}
.hero-art .stage:hover .vial-right{transform:translate(6px,0) rotate(6deg)}
.batch-stamp{position:absolute;z-index:5;left:1.35rem;right:1.35rem;bottom:3.3rem;display:grid;grid-template-columns:auto 1fr 1fr auto;gap:1rem;align-items:center;padding:1rem 1.1rem;background:rgba(255,255,255,.92);border:1px solid rgba(157,181,209,.75);border-radius:15px;box-shadow:0 18px 45px -26px rgba(4,25,58,.42);backdrop-filter:blur(14px)}
.batch-stamp div{min-width:0}
.batch-stamp small{display:block;font-family:var(--mono);font-size:.5rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.2rem}
.batch-stamp b{display:block;font-family:var(--mono);font-size:.67rem;font-weight:500;white-space:nowrap;color:var(--ink)}
.batch-stamp button{font-family:var(--mono);font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);padding:.55rem .2rem .55rem .75rem;border-left:1px solid var(--rule)}
.batch-stamp button span{margin-left:.25rem}
/* section rhythm */
section{padding:clamp(5.5rem,9vw,9rem) 0;border-bottom:1px solid var(--rule)}
section.washed{background:linear-gradient(180deg,#F7FAFD,#fff 80%)}
section.washed-2{background:#F4F7FB}
.shead{align-items:flex-end;margin-bottom:3rem}
.shead p{font-size:.96rem;line-height:1.75;max-width:60ch;margin-top:1.1rem}
.shead .idx{padding:.55rem .72rem;border:1px solid var(--rule);border-radius:9px;background:#fff;font-size:.58rem}
.rv{opacity:0;transform:translateY(26px) scale(.992);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out)}
.rv.in{opacity:1;transform:none}

/* category index */
.cats{grid-template-columns:repeat(5,1fr);gap:.75rem}
.cat{min-height:210px;padding:1.35rem;border-color:var(--rule);border-radius:18px;background:rgba(255,255,255,.88)}
.cat::before{content:"";position:absolute;right:1.15rem;top:1.05rem;width:7px;height:7px;border:1px solid var(--rule-2);border-radius:50%;transition:background .25s,border-color .25s}
.cat::after{background:linear-gradient(145deg,rgba(7,93,255,.08),transparent 62%)}
.cat:hover{border-color:#9CB9DE;box-shadow:0 22px 54px -34px rgba(4,25,58,.35);transform:translateY(-5px)}
.cat:hover::before{background:var(--accent);border-color:var(--accent)}
.cat .ic{width:43px;height:43px;border-radius:13px;background:#EFF5FC}
.cat b{font-size:1.02rem;margin-top:.25rem}
.cat span{font-size:.56rem}
.cat .go{opacity:1;transform:none;margin-top:auto;font-size:.56rem}

/* catalog toolbar + cards */
.toolbar{position:sticky;top:77px;z-index:20;padding:.8rem;margin:0 -1rem 1.8rem;background:rgba(255,255,255,.9);border:1px solid rgba(221,229,239,.9);border-radius:15px;backdrop-filter:blur(18px)}
.chips{gap:.3rem}
.chip{border:0;border-radius:10px;background:transparent;padding:.7rem .84rem;font-size:.57rem;letter-spacing:.09em}
.chip:hover{background:#F3F7FC}
.chip.on{background:var(--ink);color:#fff;box-shadow:none}
.sortsel select{border-radius:9px;padding:.58rem .7rem}
.catalog-scope{display:flex;align-items:center;gap:.65rem;font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.catalog-scope::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--good);box-shadow:0 0 0 4px rgba(10,124,74,.1)}
.pack-presets{width:100%;justify-content:stretch}
.pack-presets button{flex:1;min-height:52px;font-size:.64rem}
.pdp-pack-selected b{display:block;font:650 .78rem var(--mono);color:var(--ink);padding:.82rem 1rem;border:1px solid var(--rule);border-radius:12px;background:#F7F9FC;white-space:nowrap}
.pgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.15rem}
.card{height:var(--cardh,520px);perspective:1600px}
.fl{transition:transform .72s cubic-bezier(.2,.7,.1,1)}
.face{border-color:var(--rule);border-radius:22px;padding:1rem;background:#fff;box-shadow:0 1px 0 rgba(4,25,58,.03)}
.card:hover .face.fr{border-color:#AFC2D8;box-shadow:0 28px 65px -42px rgba(4,25,58,.44)}
.card .art{flex:0 0 278px;min-height:0;margin:0 0 1.05rem;border-radius:17px;background:linear-gradient(155deg,#F3F8FD,#E9F2FA);overflow:hidden}
.card .art::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(7,93,255,.065) 1px,transparent 1px),linear-gradient(90deg,rgba(7,93,255,.065) 1px,transparent 1px);background-size:38px 38px;mask-image:linear-gradient(#000,transparent 92%);-webkit-mask-image:linear-gradient(#000,transparent 92%)}
.card .art::after{bottom:17px;width:48%;height:18px;opacity:.35}
.card .art img{inset:8% 12% 4%;width:76%;height:88%;object-position:center center;filter:drop-shadow(0 18px 15px rgba(4,25,58,.10))}
.card:hover .art img{transform:translateY(-7px) scale(1.035)}
.card .bs{top:1.75rem;left:1.7rem;z-index:2;padding:.42rem .6rem;border-radius:8px;background:rgba(255,255,255,.86);backdrop-filter:blur(8px);font-size:.5rem}
.card .nm{font-size:1.06rem;font-weight:700;padding-inline:.15rem}
.card .st{font-size:.58rem;padding-inline:.15rem}
.card .chipline{padding:.7rem .15rem 0;margin-top:0}
.mini{font-size:.52rem;border-radius:7px;padding:.28rem .45rem;box-shadow:none;border:1px solid rgba(7,93,255,.18)}
.mini.good{border-color:rgba(8,122,85,.2)}
.card .btm{padding:.8rem .15rem .05rem;margin-top:auto}
.card .pr{font-size:1.02rem}
.card .pr small{font-size:.52rem}
.card .qa{border-color:var(--ink);background:var(--ink);color:#fff;padding-inline:1rem}
.card .qa:hover{border-color:var(--accent);background:var(--accent);color:#fff}
.card .qa.added{background:var(--good);border-color:var(--good);color:#fff}
.flipb{top:1.55rem;right:1.55rem;width:34px;height:34px;border:0;background:rgba(255,255,255,.88);box-shadow:0 8px 24px -16px rgba(4,25,58,.42)}
.face.bk{border-radius:22px;background:#07111F;color:#fff}
.bkhd{padding:1.25rem 1.35rem;background:#0E1D31;border-color:rgba(255,255,255,.11)}
.bkhd b{color:#fff}
.bkhd span{color:#8FA4C0}
.face.bk .flipb{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);color:#fff}
.bkbody{padding:1.25rem 1.35rem}
.bkbody p{color:#B7C6D9;font-size:.8rem}
.bkspec div{border-color:rgba(255,255,255,.12);padding:.42rem 0}
.bkspec dt{color:#8196B3}
.bkspec dd{color:#fff}
.bkspec dd.ok{color:#5DE0AC}
.bkfoot{padding:1rem 1.35rem;background:#0E1D31;border-color:rgba(255,255,255,.12)}
.bkfoot .btn.gh{background:transparent;border-color:rgba(255,255,255,.28);color:#fff}

/* verification */
#verify{background:#fff}
.verify{border:0;border-radius:26px;padding:clamp(2rem,5vw,5rem);background:#07111F;color:#fff;box-shadow:0 38px 90px -48px rgba(4,25,58,.55)}
.verify::after{content:"VERIFY";position:absolute;right:-.02em;top:-.15em;font-size:clamp(7rem,17vw,16rem);font-weight:800;letter-spacing:-.1em;line-height:1;color:rgba(255,255,255,.025)}
.verify .gridfield{opacity:.1;background-image:linear-gradient(rgba(54,213,255,.4) 1px,transparent 1px),linear-gradient(90deg,rgba(54,213,255,.4) 1px,transparent 1px)}
.verify h2,.verify h3{color:#fff}
.verify .eyeb{color:var(--neon)}
.verify>div>p:not(.eyeb):not(.vhint){color:#AFC0D7!important}
.verify .vform{max-width:43rem}
.verify .vinput{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.22);border-radius:12px}
.verify .vinput:focus-within{border-color:var(--neon);box-shadow:0 0 0 4px rgba(54,213,255,.1)}
.verify .vinput input{color:#fff}
.verify .vinput input::placeholder{color:#7287A4}
.verify .vinput .pre{color:var(--neon)}
.verify .btn.pri{background:#fff;color:var(--ink);box-shadow:none}
.verify .vhint{color:#7086A4}
.verify .vhint button{color:var(--neon)}
.rec{border:1px solid rgba(54,213,255,.34);border-radius:16px;background:#fff;color:var(--ink)}
.miss{border-radius:14px;color:var(--ink)}

/* volume order builder — a transactional bridge between the catalog and records */
#bulk{background:linear-gradient(180deg,#F7FAFD 0%,#EEF4FA 100%)}
.bulk-shell{position:relative;display:grid;grid-template-columns:.86fr 1.14fr;overflow:hidden;border:1px solid #CBD8E7;border-radius:28px;background:#fff;box-shadow:0 34px 90px -58px rgba(4,25,58,.48)}
.bulk-shell::before{content:"";position:absolute;inset:0 auto 0 42%;width:1px;background:var(--rule);pointer-events:none}
.bulk-intro{position:relative;padding:clamp(2rem,4vw,4rem);background:#07111F;color:#fff;overflow:hidden}
.bulk-intro::before{content:"";position:absolute;width:430px;height:430px;right:-300px;bottom:-260px;border:1px solid rgba(54,213,255,.2);border-radius:50%;box-shadow:0 0 0 54px rgba(54,213,255,.025),0 0 0 108px rgba(54,213,255,.018)}
.bulk-intro>*{position:relative;z-index:1}
.bulk-kicker{display:block;font-family:var(--mono);font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;color:var(--neon);margin-bottom:1rem}
.bulk-intro h3{font-size:clamp(2rem,3.5vw,3.5rem);line-height:.98;letter-spacing:-.06em;margin:0;max-width:10ch}
.bulk-intro p{font-size:.9rem;line-height:1.75;color:#AFC0D7;max-width:42ch;margin:1.25rem 0 2.4rem}
.bulk-facts{display:grid;gap:.75rem;margin:0}
.bulk-facts div{display:grid;grid-template-columns:3.5rem 1fr;align-items:baseline;padding-top:.75rem;border-top:1px solid rgba(255,255,255,.13)}
.bulk-facts dt{font-family:var(--mono);font-size:.66rem;color:#fff}.bulk-facts dd{margin:0;font-family:var(--mono);font-size:.5rem;letter-spacing:.1em;text-transform:uppercase;color:#7189A8}
.bulk-builder{padding:clamp(2rem,4vw,4rem);display:flex;flex-direction:column;justify-content:center;min-width:0}
.bulk-field>span,.bulk-quantity>span{display:block;font-family:var(--mono);font-size:.53rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.55rem}
.bulk-select{position:relative;display:block}
.bulk-select::after{content:"⌄";position:absolute;right:1rem;top:50%;transform:translateY(-56%);font-size:1.1rem;color:var(--accent);pointer-events:none}
.bulk-select select{width:100%;appearance:none;padding:1rem 3rem 1rem 1rem;border:1px solid var(--rule-2);border-radius:13px;background:#F8FAFD;color:var(--ink);font:650 .92rem var(--sans);outline:0;cursor:pointer}
.bulk-select select:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.bulk-record{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.8rem 0 1.7rem;padding-bottom:1.2rem;border-bottom:1px solid var(--rule);font-family:var(--mono);font-size:.51rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.bulk-record span:last-child{color:var(--good);text-align:right}
.bulk-controls{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:end}
.bulk-stepper{display:flex;align-items:center;width:max-content;border:1px solid var(--rule-2);border-radius:12px;overflow:hidden;background:#fff}
.bulk-stepper button{width:42px;height:44px;color:var(--accent);font-size:1.05rem}.bulk-stepper output{min-width:54px;text-align:center;font:650 .78rem var(--mono)}
.bulk-presets{display:flex;gap:.4rem;justify-content:flex-end}
.bulk-presets button{min-width:66px;padding:.72rem .8rem;border:1px solid var(--rule);border-radius:10px;background:#F7F9FC;font:500 .54rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.bulk-presets button.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.bulk-pricebox{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin:1.5rem 0 1rem;padding:1.1rem;border:1px solid var(--rule);border-radius:15px;background:#F7F9FC}
.bulk-pricebox div{min-width:0}.bulk-pricebox span{display:block;font-family:var(--mono);font-size:.49rem;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.35rem}.bulk-pricebox b{display:block;font-size:1.35rem;letter-spacing:-.04em}.bulk-pricebox div:last-child{text-align:right}.bulk-pricebox small{grid-column:1/-1;padding-top:.75rem;border-top:1px solid var(--rule);font:.55rem/1.6 var(--mono);letter-spacing:.04em;color:var(--good)}
.bulk-builder>.btn{width:100%;justify-content:center}
.bulk-note{font-size:.64rem;line-height:1.6;color:var(--ink-3);margin:.8rem 0 0;text-align:center}

/* Batch search and COAs are one connected destination. */
#lab-reports{background:linear-gradient(180deg,#F4F7FB 0%,#fff 100%)}
#lab-reports #verify{background:transparent}
.lab-system-head{margin-bottom:2.5rem}

/* proof */
.proofgrid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--rule);border-radius:24px;overflow:hidden;background:#fff}
.proofgrid article{position:relative;min-height:370px;padding:clamp(1.6rem,3vw,2.5rem);border-right:1px solid var(--rule);display:flex;flex-direction:column;overflow:hidden}
.proofgrid article:last-child{border-right:0}
.proofgrid article::after{content:"";position:absolute;width:240px;height:240px;border-radius:50%;right:-150px;bottom:-150px;background:rgba(7,93,255,.08);transition:transform .5s var(--ease-out)}
.proofgrid article:hover::after{transform:scale(1.5)}
.proofnum{font-family:var(--mono);font-size:.55rem;letter-spacing:.14em;color:var(--ink-3)}
.prooficon{width:64px;height:64px;margin:3.2rem 0 1.8rem;border-radius:19px;background:#EEF5FD;color:var(--accent);display:grid;place-items:center}
.prooficon svg{width:29px;height:29px}
.proofgrid h3{font-size:1.35rem;letter-spacing:-.035em;margin:0 0 .7rem}
.proofgrid p{font-size:.9rem;line-height:1.7;color:var(--ink-2);margin:0;max-width:31ch}
.proofgrid small{font-family:var(--mono);font-size:.54rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-top:auto}

/* bestseller orbit — a pinned catalog opener with a deliberate final dwell */
.orbit{position:relative;height:460vh;padding:0;background:#06101F;color:#fff;isolation:isolate}
.orbit-sticky{position:sticky;top:76px;height:calc(100svh - 76px);min-height:540px;overflow:hidden;background:
  radial-gradient(circle at 51% 46%,rgba(20,104,255,.20),transparent 30%),
  radial-gradient(circle at 82% 18%,rgba(54,213,255,.08),transparent 24%),#06101F}
.orbit-sticky::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(121,173,234,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(121,173,234,.07) 1px,transparent 1px);background-size:72px 72px;mask-image:radial-gradient(circle at 52% 48%,#000,transparent 74%);-webkit-mask-image:radial-gradient(circle at 52% 48%,#000,transparent 74%)}
.orbit-sticky::after{content:"";position:absolute;left:50%;top:50%;width:min(52vw,720px);aspect-ratio:1;border:1px solid rgba(98,174,255,.14);border-radius:50%;transform:translate(-50%,-50%) rotateX(69deg);box-shadow:0 0 0 70px rgba(98,174,255,.018),0 0 0 140px rgba(98,174,255,.012);pointer-events:none}
.orbit-head{position:absolute;z-index:7;left:clamp(1.25rem,4vw,4.5rem);right:clamp(1.25rem,4vw,4.5rem);top:clamp(1.75rem,4.5vh,3.6rem);display:flex;align-items:flex-start;justify-content:space-between;gap:2rem;pointer-events:none}
.orbit-head .eyeb{color:var(--neon);margin-bottom:.5rem}.orbit-head .eyeb::before{background:var(--neon)}
.orbit-head h2{font-size:clamp(2rem,4vw,4rem);font-weight:650;line-height:.94;letter-spacing:-.055em;margin:0;max-width:12ch}
.orbit-head h2 em{font-family:var(--serif);font-weight:500;color:#9DD6FF}
.orbit-counter{display:flex;align-items:center;gap:.85rem;font-family:var(--mono);font-size:.56rem;letter-spacing:.15em;text-transform:uppercase;color:#6F88A8}
.orbit-counter b{font-weight:500;color:#DCEAFF;font-size:.7rem}.orbit-counter i{display:block;width:70px;height:1px;background:rgba(255,255,255,.16);position:relative;overflow:hidden}.orbit-counter i span{position:absolute;inset:0;background:var(--neon);transform:scaleX(0);transform-origin:left;transition:transform .25s ease-out}
.orbit-stage{position:absolute;z-index:3;inset:0;perspective:1350px;perspective-origin:50% 48%;transform-style:preserve-3d}
.orbit-cards{position:absolute;inset:0;transform-style:preserve-3d}
.orbit-card{--x:0px;--y:0px;--z:0px;--ry:0deg;--rz:0deg;--sc:1;--op:0;position:absolute;left:50%;top:50%;width:clamp(224px,18vw,282px);height:clamp(380px,56vh,500px);padding:0;border:1px solid rgba(183,204,226,.78);border-radius:var(--radius-lg);background:linear-gradient(145deg,#F9FCFF 0%,#E7F1F9 100%);box-shadow:0 42px 90px -45px rgba(0,0,0,.95),inset 0 0 0 1px rgba(255,255,255,.72);overflow:hidden;opacity:var(--op);transform:translate(-50%,-50%) translate3d(var(--x),var(--y),var(--z)) rotateY(var(--ry)) rotateZ(var(--rz)) scale(var(--sc));transform-style:preserve-3d;will-change:transform,opacity;pointer-events:none;transition:box-shadow .25s ease,border-color .25s ease}
.orbit-card.active{pointer-events:auto;box-shadow:0 48px 110px -42px rgba(0,0,0,.98),0 0 0 1px rgba(97,186,255,.48),0 0 80px -30px rgba(24,116,255,.7)}
.orbit-card::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,rgba(255,255,255,.8),transparent 30% 72%,rgba(86,155,226,.12));pointer-events:none;z-index:2}
.orbit-card::after{content:"RESEARCH USE ONLY";position:absolute;z-index:3;left:1.05rem;top:1rem;font-family:var(--mono);font-size:.52rem;line-height:1.3;letter-spacing:.14em;color:#607792}
.orbit-card .oc-art{position:absolute;inset:2.55rem .85rem 7.25rem;display:grid;place-items:center;overflow:hidden}
.orbit-card .oc-art::before{content:"";position:absolute;width:78%;height:74%;border-radius:50%;background:#fff;filter:blur(24px)}
.orbit-card .oc-art img{position:absolute;z-index:1;inset:0;display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;filter:drop-shadow(0 22px 17px rgba(4,25,58,.15))}
.orbit-card .oc-foot{position:absolute;z-index:4;left:0;right:0;bottom:0;min-height:7.05rem;padding:1rem 1.05rem 1.05rem;border-top:1px solid #C8D7E7;background:rgba(249,252,255,.98);box-shadow:0 -12px 26px -24px rgba(4,25,58,.55);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.7rem;text-align:left}
.orbit-card .oc-foot b{display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#07111F;font-size:.92rem;line-height:1.22;letter-spacing:-.02em}
.orbit-card .oc-foot small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);font-size:.51rem;line-height:1.45;letter-spacing:.045em;color:#667B94;margin-top:.22rem}
.orbit-card .oc-foot strong{display:block;margin-top:.2rem;font-family:var(--mono);font-size:.62rem;line-height:1.35;font-weight:600;color:var(--accent)}
.orbit-card .oc-foot .oc-view{grid-column:2;grid-row:1/3;width:30px;height:30px;border-radius:9px;background:#07111F;color:#fff;display:grid;place-items:center;font-size:.85rem}
.orbit-info{position:absolute;z-index:7;left:clamp(1.25rem,4vw,4.5rem);bottom:clamp(1.5rem,4vh,3rem);width:min(29rem,33vw);pointer-events:none}
.orbit-info .oi-cat{color:var(--neon);margin:0 0 .55rem}.orbit-info h3{font-size:clamp(2rem,4vw,4rem);line-height:.95;letter-spacing:-.06em;margin:0}.orbit-info .oi-spec{display:flex;gap:.55rem;flex-wrap:wrap;margin:1rem 0}.orbit-info .oi-spec span{padding:.38rem .55rem;border:1px solid rgba(255,255,255,.17);border-radius:999px;font-family:var(--mono);font-size:.48rem;letter-spacing:.08em;text-transform:uppercase;color:#A8BDD7;background:rgba(255,255,255,.04)}
.orbit-info .oi-price{display:flex;align-items:baseline;gap:.55rem;margin:0 0 1rem}.orbit-info .oi-price b{font-size:1.55rem;letter-spacing:-.04em}.orbit-info .oi-price span{font-family:var(--mono);font-size:.5rem;letter-spacing:.1em;text-transform:uppercase;color:#7189A8}
.orbit-actions{display:flex;gap:.55rem;pointer-events:auto}.orbit-actions .btn.gh{border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.04);color:#fff}.orbit-actions .btn.gh:hover{border-color:var(--neon);background:rgba(54,213,255,.08);color:#fff}
.orbit-nav{position:absolute;z-index:7;right:clamp(1.25rem,4vw,4.5rem);bottom:clamp(1.5rem,4vh,3rem);display:flex;flex-direction:column;align-items:flex-end;gap:.85rem}
.orbit-dots{display:flex;gap:.2rem}.orbit-dots button{position:relative;width:36px;height:32px;padding:0;background:transparent;transition:width .25s}.orbit-dots button::after{content:"";position:absolute;left:4px;right:4px;top:50%;height:3px;border-radius:4px;background:rgba(255,255,255,.18);transform:translateY(-50%);transition:background .25s}.orbit-dots button.on{width:52px;background:transparent}.orbit-dots button.on::after{background:var(--neon)}
.orbit-cue{display:flex;align-items:center;gap:.65rem;font-family:var(--mono);font-size:.5rem;letter-spacing:.14em;text-transform:uppercase;color:#7089A9}.orbit-cue i{position:relative;width:18px;height:29px;border:1px solid rgba(255,255,255,.27);border-radius:12px}.orbit-cue i::after{content:"";position:absolute;left:50%;top:6px;width:2px;height:6px;background:var(--neon);border-radius:2px;transform:translateX(-50%);animation:orbitCue 1.7s ease-in-out infinite}@keyframes orbitCue{0%{opacity:0;transform:translate(-50%,0)}35%{opacity:1}100%{opacity:0;transform:translate(-50%,9px)}}
.orbit-next{max-height:0;opacity:0;overflow:hidden;pointer-events:none;transform:translateY(8px);font-family:var(--mono);font-size:.54rem;letter-spacing:.1em;text-transform:uppercase;color:#fff;border-bottom:1px solid var(--neon);padding:0;transition:opacity .3s,transform .35s var(--ease-out),max-height .35s,padding .35s}
.orbit.at-end .orbit-next{max-height:42px;opacity:1;pointer-events:auto;transform:none;padding:.5rem 0}
.orbit.at-end .orbit-cue{color:#A7BCD5}.orbit.at-end .orbit-cue i::after{animation:none;top:9px;height:7px;transform:translateX(-50%)}

/* FAQ — a two-part information desk, not a flat accordion */
.faq-section{overflow:hidden;background:
  radial-gradient(circle at 7% 8%,rgba(54,213,255,.11),transparent 27rem),
  linear-gradient(180deg,#F6FAFE 0%,#fff 82%)}
.faq-layout{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:clamp(2.5rem,7vw,7.5rem);align-items:start}
.faq-intro{position:sticky;top:112px}
.faq-intro .eyeb{color:var(--accent)}
.faq-intro h2{max-width:10ch}
.faq-lede{max-width:38ch;margin:1.35rem 0 1.5rem;color:var(--ink-2);font-size:1rem;line-height:1.75}
.faq-topics{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}
.faq-topics span{padding:.52rem .72rem;border:1px solid #C9D9EB;border-radius:999px;background:rgba(255,255,255,.8);color:#44556C;font-size:.75rem;font-weight:650;line-height:1}
.faq-support{position:relative;overflow:hidden;padding:1.4rem;border-radius:19px;background:#07111F;color:#fff;box-shadow:0 24px 60px -38px rgba(3,18,39,.65)}
.faq-support::after{content:"";position:absolute;right:-4.5rem;top:-5rem;width:11rem;height:11rem;border:1px solid rgba(54,213,255,.2);border-radius:50%;box-shadow:0 0 0 28px rgba(54,213,255,.035)}
.faq-support>*{position:relative;z-index:1}
.faq-support .lab{margin:0 0 .85rem;color:var(--neon)}
.faq-support h3{margin:0;font-size:1.25rem;letter-spacing:-.035em}
.faq-support>p:not(.lab){margin:.65rem 0 1.15rem;color:#AEC0D7;font-size:.88rem;line-height:1.65}
.faq-support a{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.15);color:#fff;font-size:.84rem;font-weight:700}
.faq-support a span{color:var(--neon);font-size:1rem}
.faq{max-width:none;margin:0;border:0;border-radius:0;background:transparent;overflow:visible}
.faq details,.faq details:last-child{margin:0 0 .75rem;padding:0;border:1px solid var(--rule);border-radius:18px;background:rgba(255,255,255,.9);overflow:hidden;box-shadow:0 12px 38px -34px rgba(4,25,58,.35);transition:border-color .25s,box-shadow .25s,background .25s}
.faq details:last-child{margin-bottom:0}
.faq details[open]{border-color:#A7C7EE;background:#fff;box-shadow:0 24px 55px -38px rgba(7,93,255,.38)}
.faq summary{min-height:94px;display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;gap:1rem;padding:1rem 1.15rem;list-style:none;cursor:pointer;background:transparent!important;color:var(--ink);font-size:1rem;font-weight:700;line-height:1.4;letter-spacing:-.02em;transition:color .2s}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--accent)}
.faq-num{width:40px;height:40px;display:grid;place-items:center;border:1px solid #CCDAEA;border-radius:12px;background:#F5F8FC;color:#60738B;font:500 .7rem var(--mono);letter-spacing:.05em;transition:background .25s,border-color .25s,color .25s}
.faq-question{min-width:0}
.faq-question small{display:block;margin-bottom:.27rem;color:var(--accent);font:500 .65rem/1.3 var(--mono);letter-spacing:.11em;text-transform:uppercase}
.faq .pm{width:40px;height:40px;margin-left:0;display:grid;place-items:center;border:1px solid var(--rule);border-radius:12px;background:#fff;color:var(--accent);transition:transform .3s var(--ease-out),background .25s,color .25s}
.faq details[open] .faq-num{border-color:var(--accent);background:var(--accent);color:#fff}
.faq details[open] .pm{transform:rotate(45deg);background:var(--accent);color:#fff;border-color:var(--accent)}
.faq .ans{max-width:none;padding:0 4.9rem 1.45rem;font-family:var(--sans);font-size:1rem;line-height:1.75;color:var(--ink-2);animation:rise .25s var(--ease-out) both}
.faq .ans p{margin:0;padding-top:1.15rem;border-top:1px solid var(--rule)}
.faq .ans a{color:var(--accent);font-weight:700;text-decoration-thickness:1px;text-underline-offset:3px;overflow-wrap:anywhere}

/* CTA + footer */
.ctaband{background:#07111F;border-radius:0;color:#fff}
.ctaband::before{content:"";position:absolute;right:-12%;top:-45%;width:650px;height:650px;border-radius:50%;border:1px solid rgba(54,213,255,.16);box-shadow:0 0 0 70px rgba(54,213,255,.025),0 0 0 140px rgba(54,213,255,.018)}
.ctaband .gridfield{opacity:.055;background-size:58px 58px}
.ctain{grid-template-columns:1.1fr .9fr}
.ctaband p{font-family:var(--sans);font-size:1rem;line-height:1.75}
.ctaband .ctas{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.7rem}
.btn.gate-ghost{border:1px solid rgba(255,255,255,.28);color:#fff;background:rgba(255,255,255,.04)}
.btn.gate-ghost:hover{border-color:var(--neon);background:rgba(54,213,255,.08);transform:translateY(-2px)}
.ctastats{border-radius:18px;background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.12)}
.ctastats div{background:#0B1728;padding:1.35rem 1.5rem}
footer{padding-top:5rem;background:#F4F7FA}
.fgrid{grid-template-columns:1.6fr repeat(3,1fr);gap:clamp(2rem,5vw,5rem)}
.fgrid h3{font-size:.57rem}
.fgrid a{padding:.14rem 0}
.disc{max-width:108ch;font-size:.59rem;line-height:1.85;color:#687990}
.disc b{color:var(--ink);font-weight:500}

/* product detail */
.crumbs{padding:1.5rem 0;font-size:.58rem}
.pdp{grid-template-columns:1.08fr .92fr;gap:clamp(2.5rem,6vw,6rem);padding-bottom:6rem}
.pdp-l{top:110px}
.pdpart{min-height:590px;border-radius:25px;border-color:var(--rule);background:linear-gradient(145deg,#F2F7FC,#E7F1FA);box-shadow:0 24px 70px -52px rgba(4,25,58,.4)}
.pdpart::after{content:"RESEARCH USE ONLY";position:absolute;right:1.25rem;bottom:1.2rem;font-family:var(--mono);font-size:.51rem;letter-spacing:.16em;color:#6F85A0}
.pdpart img{max-height:470px;filter:drop-shadow(0 25px 20px rgba(4,25,58,.12))}
.pdpart .vwrap{padding:.75rem;background:#fff;border:1px solid rgba(174,194,218,.72);border-radius:19px;box-shadow:0 24px 58px -38px rgba(4,25,58,.5);overflow:hidden}
.pdpart .vwrap .plate{display:none}
.thumbs{grid-template-columns:1fr 1fr 1fr;gap:.65rem}
.thumb{aspect-ratio:auto;min-height:64px;border-radius:13px;font-size:.52rem;background:#F8FAFD}
.thumb.on{box-shadow:none;background:#EEF5FD}
.pdp-r{padding-top:1rem}
.pdp-r>*{margin-bottom:1.75rem}
.price{font-family:var(--sans);font-size:2.4rem;font-weight:700;letter-spacing:-.055em}
.pdp-bulk-entry{width:100%;min-height:82px;display:grid;grid-template-columns:50px minmax(0,1fr) 34px;align-items:center;gap:1rem;padding:.85rem 1rem;border:1px solid #9FC4F3;border-radius:16px;background:linear-gradient(110deg,#EDF5FF,#fff 72%);text-align:left;box-shadow:0 16px 38px -32px rgba(7,93,255,.5);transition:transform .22s var(--ease-out),border-color .22s,box-shadow .22s,background .22s}
.pdp-bulk-entry:hover{transform:translateY(-2px);border-color:var(--accent);background:#F4F8FF;box-shadow:0 20px 42px -30px rgba(7,93,255,.58)}
.pdp-bulk-entry-badge{width:50px;height:50px;display:grid;place-items:center;border-radius:13px;background:var(--accent);color:#fff;font-size:1rem;font-weight:800;letter-spacing:-.03em;box-shadow:0 12px 22px -14px rgba(7,93,255,.8)}
.pdp-bulk-entry-copy{min-width:0}.pdp-bulk-entry-copy strong{display:block;color:var(--ink);font-size:.94rem;line-height:1.3;letter-spacing:-.02em}.pdp-bulk-entry-copy small{display:block;margin-top:.2rem;color:#586B83;font-size:.76rem;line-height:1.45}
.pdp-bulk-entry-arrow{width:34px;height:34px;display:grid;place-items:center;border:1px solid #B9D2F1;border-radius:50%;background:#fff;color:var(--accent);font-size:1rem;transition:transform .22s var(--ease-out),background .22s,color .22s}
.pdp-bulk-entry:hover .pdp-bulk-entry-arrow{transform:translateX(3px);background:var(--accent);color:#fff}
.pdp-tier-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 .7rem}.pdp-tier-head .lab{color:var(--ink-3);margin:0}.pdp-tier-head>span{color:#66788F;font:500 .65rem var(--mono);letter-spacing:.05em;text-transform:uppercase}
.tiers{grid-template-columns:repeat(3,1fr);gap:.55rem}
.tiers.single{grid-template-columns:1fr}.tiers.two{grid-template-columns:repeat(2,1fr)}
.tier{min-height:92px;display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;border-radius:14px;padding:.9rem;background:#fff}
.tier .q{min-width:0;font-size:.66rem}
.tier .e{margin-left:0;margin-top:auto;font-size:.75rem}
.tier.on{background:#EDF4FF;box-shadow:inset 0 0 0 1px var(--accent)}
.stepper{border-radius:12px}
.lot{border-radius:14px;background:#F2F7FD;border-color:#B8D0EE}
.specs{border-radius:16px}
.specs .r{padding:.85rem 1rem}
.specs .r:nth-child(even){background:#F8FAFC}
.pdp-policy{display:flex;gap:.65rem;align-items:flex-start;margin-top:-.9rem!important;font-size:.75rem;line-height:1.55;color:var(--ink-3)}
.pdp-policy span{width:18px;height:18px;border:1px solid var(--rule-2);border-radius:50%;display:grid;place-items:center;flex:none;font-family:var(--mono);font-size:.55rem;color:var(--accent)}
.pdp-context-note{padding:.8rem 1rem;border-left:2px solid var(--accent);background:#F5F8FC;color:var(--ink-3);font-size:.7rem;line-height:1.65}
.pdp-tabshell{margin:0 0 clamp(4rem,8vw,7rem);border:1px solid #CEDAE8;border-radius:25px;overflow:hidden;background:#fff;box-shadow:0 26px 75px -56px rgba(4,25,58,.4)}
.pdp-tabbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;border-bottom:1px solid var(--rule);background:#F1F5FA;padding:.65rem;gap:.55rem}
.pdp-tabbar button{min-width:0;min-height:60px;display:flex;align-items:center;justify-content:center;gap:.55rem;padding:.8rem 1rem;border:1px solid transparent;border-radius:13px;background:transparent;color:#52657D;font-family:var(--sans);font-size:.88rem;font-weight:750;line-height:1.2;letter-spacing:-.015em;text-transform:none;transition:color .2s,background .2s,border-color .2s,box-shadow .2s,transform .2s var(--ease-out)}
.pdp-tabbar button::after{display:none}
.pdp-tabbar button:hover{border-color:#C7D5E5;background:#fff;color:var(--ink);transform:translateY(-1px)}
.pdp-tabbar button.on{border-color:#07111F;background:#07111F;color:#fff;box-shadow:0 12px 24px -18px rgba(4,20,42,.75)}
.pdp-tabbar #pdpBulkTab:not(.on){border-color:#9FC4F3;background:#fff;color:var(--accent);box-shadow:0 10px 22px -20px rgba(7,93,255,.6)}
.pdp-tabbar button span{margin-left:0;padding:.3rem .48rem;border:1px solid #C7D6E7;border-radius:999px;background:#fff;color:var(--good);font:600 .59rem/1 var(--mono);letter-spacing:.02em;white-space:nowrap}
.pdp-tabbar button.on span{border-color:rgba(255,255,255,.23);background:rgba(255,255,255,.1);color:#fff}
.pdp-tabpanel{padding:clamp(1.5rem,4vw,3.5rem)}
.pdp-detail-grid{display:grid;grid-template-columns:1.35fr .82fr .82fr;gap:0}
.pdp-detail-grid article{padding:0 clamp(1.2rem,3vw,2.5rem);border-right:1px solid var(--rule)}
.pdp-detail-grid article:first-child{padding-left:0}.pdp-detail-grid article:last-child{padding-right:0;border-right:0}
.pdp-detail-grid .lab{color:var(--accent);margin:0 0 .8rem}.pdp-detail-grid .sh{font-size:1.15rem;margin:0 0 1rem}.pdp-detail-grid .body{font-size:.86rem;color:var(--ink-2)}
.pdp-detail-grid .refs{font-size:.66rem;line-height:1.65;color:var(--ink-3);padding-left:1.1rem}
.pdp-bulk-panel{background:linear-gradient(135deg,#F4F8FC,#fff 65%)}
.pdp-bulk-layout{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(1.5rem,4vw,4rem);align-items:stretch}
.pdp-bulk-product{position:relative;min-height:560px;padding:1.3rem;border-radius:20px;background:
  radial-gradient(circle at 50% 42%,rgba(32,115,255,.22),transparent 33%),
  linear-gradient(145deg,#0A1728,#06101F);color:#fff;overflow:hidden;display:flex;flex-direction:column}
.pdp-bulk-product::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(121,173,234,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(121,173,234,.07) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(#000,transparent 84%);-webkit-mask-image:linear-gradient(#000,transparent 84%)}
.pdp-bulk-head,.pdp-bulk-identity,.pdp-bulk-art{position:relative;z-index:1}
.pdp-bulk-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.13)}
.pdp-bulk-head .lab{color:var(--neon);margin:0}.pdp-bulk-head>span{font-family:var(--mono);font-size:.46rem;letter-spacing:.13em;text-transform:uppercase;color:#7189A8}
.pdp-bulk-art{flex:1;width:min(78%,340px);min-height:360px;margin:1rem auto;display:grid;place-items:center;padding:1rem;border:1px solid rgba(166,190,218,.7);border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 28px 60px -38px rgba(0,0,0,.72)}
.pdp-bulk-art img{max-height:350px;width:auto;filter:drop-shadow(0 20px 18px rgba(4,25,58,.14))}
.pdp-bulk-identity{display:flex;align-items:end;justify-content:space-between;gap:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.13)}
.pdp-bulk-identity h2{font-size:1.25rem;line-height:1.1;letter-spacing:-.04em;margin:0}.pdp-bulk-identity p{margin:.35rem 0 0;font-family:var(--mono);font-size:.5rem;letter-spacing:.06em;color:#7F95B2;text-transform:uppercase}.pdp-bulk-identity strong{font-family:var(--mono);font-size:.57rem;color:var(--neon);font-weight:500;text-align:right}
.pdp-bulk-order{display:flex;flex-direction:column;justify-content:center;padding:clamp(.5rem,2vw,1.5rem) 0}.pdp-bulk-order .eyeb{color:var(--accent)}
.pdp-bulk-order>h2{font-size:clamp(2.1rem,3.8vw,3.8rem);line-height:.98;letter-spacing:-.06em;margin:0}.pdp-bulk-order>p:not(.lab):not(.bulk-note):not(.pdp-bulk-saving){font-size:.9rem;line-height:1.7;color:var(--ink-2);max-width:46ch;margin:1rem 0 1.5rem}
.pdp-bulk-breaks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin:0 0 1.5rem}
.pdp-bulk-breaks button{min-height:90px;display:flex;flex-direction:column;align-items:flex-start;padding:.85rem;border:1px solid var(--rule);border-radius:13px;background:#fff;text-align:left;transition:border-color .2s,background .2s,transform .2s var(--ease-out)}
.pdp-bulk-breaks button:hover{transform:translateY(-2px);border-color:var(--rule-2)}.pdp-bulk-breaks button.on{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px rgba(7,93,255,.12)}
.pdp-bulk-breaks b{font:600 .64rem var(--mono);color:var(--ink)}.pdp-bulk-breaks span{margin-top:auto;font:500 .72rem var(--mono);color:var(--accent)}.pdp-bulk-breaks small{margin-top:.2rem;font:.46rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--good)}
.pdp-bulk-controls{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:end;padding-top:1.2rem;border-top:1px solid var(--rule)}
.pdp-bulk-controls>div>span{display:block;margin-bottom:.5rem;font-family:var(--mono);font-size:.51rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.pdp-bulk-totals{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;padding:.85rem 1rem;border:1px solid var(--rule);border-radius:13px;background:#F7F9FC}
.pdp-bulk-totals>span{margin:0!important}.pdp-bulk-totals span:last-child{text-align:right}.pdp-bulk-totals small{display:block;font:500 .47rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.3rem}.pdp-bulk-totals b{display:block;font-size:1.2rem;line-height:1;letter-spacing:-.04em}
.pdp-bulk-saving{margin:.8rem 0 1rem;padding:.65rem .75rem;border-left:2px solid var(--good);background:#F1F8F5;color:var(--good);font:.55rem/1.55 var(--mono);letter-spacing:.03em}
.pdp-bulk-order>.btn{width:100%;justify-content:center}
.pdp-coa-panel{background:linear-gradient(135deg,#F5F8FC,#fff 62%)}
.pdp-coa-layout{display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(2rem,5vw,5rem);align-items:start}
.pdp-coa-copy{position:sticky;top:110px;padding-top:.5rem}.pdp-coa-copy .eyeb{color:var(--accent)}
.pdp-coa-copy h2{font-size:clamp(2rem,3.7vw,3.7rem);line-height:.98;letter-spacing:-.06em;margin:0}
.pdp-coa-copy>p:not(.lab){font-size:.9rem;line-height:1.7;color:var(--ink-2);margin:1rem 0 1.5rem;max-width:42ch}
.pdp-coa-lots{display:flex;gap:.45rem;flex-wrap:wrap;margin-bottom:1.5rem}
.pdp-coa-lots button{padding:.55rem .7rem;border:1px solid var(--rule);border-radius:9px;background:#fff;font-family:var(--mono);font-size:.5rem;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}
.pdp-coa-lots button.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.pdp-coa-meta{margin:0 0 1.5rem;border-top:1px solid var(--rule)}
.pdp-coa-meta div{display:flex;justify-content:space-between;gap:1rem;padding:.72rem 0;border-bottom:1px solid var(--rule);font-family:var(--mono);font-size:.58rem}
.pdp-coa-meta dt{color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em}.pdp-coa-meta dd{margin:0;text-align:right;color:var(--ink);overflow-wrap:anywhere}.pdp-coa-meta dd.ok{color:var(--good)}
.pdp-coa-sheet{position:relative;width:100%;padding:1rem 1rem 0;border:1px solid #CBD8E6;border-radius:19px;background:#E9EEF5;overflow:hidden;box-shadow:0 28px 75px -48px rgba(4,25,58,.48);text-align:center;transition:transform .3s var(--ease-out),box-shadow .3s}
.pdp-coa-sheet:hover{transform:translateY(-4px);box-shadow:0 34px 80px -44px rgba(4,25,58,.55)}
.pdp-coa-sheet img{display:block;width:100%;height:auto;border-radius:8px 8px 0 0;box-shadow:0 8px 30px -18px rgba(4,25,58,.35)}
.pdp-coa-sheet>span{display:flex;align-items:center;justify-content:space-between;padding:1rem .15rem;font-family:var(--mono);font-size:.54rem;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-2)}
.pdp-coa-sheet>span b{color:var(--accent);font-size:.8rem}

/* cart */
.scrim{z-index:130;background:rgba(3,12,25,.55);backdrop-filter:blur(8px)}
.drawer{z-index:140;width:min(480px,100vw);border-left:0;border-radius:24px 0 0 24px;box-shadow:-30px 0 80px -45px rgba(3,12,25,.58)}
.dhead{padding:1.35rem 1.5rem}
.dhead>div{display:flex;flex-direction:column;gap:.18rem}
.dhead .lab{color:var(--accent);font-size:.5rem}
.dhead b{font-family:var(--sans);font-size:1.13rem;letter-spacing:-.035em;text-transform:none}
.dhead .x{border-radius:10px}
.dbody{padding:1.35rem 1.5rem}
.line{padding:1rem;border:1px solid var(--rule);border-radius:15px;animation:lineIn .35s var(--ease-out) both}
@keyframes lineIn{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
.line .th{width:62px;height:76px;border-radius:12px;background:#F0F5FA}
.line .info b{font-weight:700}
.dfoot{padding:1.25rem 1.5rem;border-radius:18px 0 0 0;box-shadow:0 -20px 45px -38px rgba(4,25,58,.4)}
.meter .track{height:7px}
.tot{font-family:var(--sans);font-size:1.05rem}
.fbt .sug .ad{border-radius:8px}
.cart-toast{position:fixed;z-index:155;right:1.5rem;bottom:1.5rem;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.85rem;width:min(390px,calc(100vw - 2rem));padding:.85rem 1rem;background:#07111F;color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:15px;box-shadow:0 24px 65px -24px rgba(3,12,25,.65);opacity:0;transform:translateY(18px);pointer-events:none;transition:opacity .3s,transform .3s var(--ease-out)}
.cart-toast.show{opacity:1;transform:none;pointer-events:auto}
.toast-check{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#0C8B62;color:#fff;font-weight:800}
.cart-toast b{display:block;font-size:.78rem}
.cart-toast span{display:block;font-size:.68rem;color:#94A9C5;margin-top:.08rem}
.cart-toast button{font-family:var(--mono);font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;color:var(--neon);padding:.5rem}

/* search layer */
.search-layer{position:fixed;z-index:170;inset:0;background:rgba(3,12,25,.78);backdrop-filter:blur(18px);padding:clamp(.8rem,4vw,3rem);animation:layerFade .25s ease-out both}
.search-shell{width:min(980px,100%);max-height:calc(100vh - 2rem);margin:0 auto;background:#fff;border-radius:25px;overflow:auto;box-shadow:0 40px 120px -38px rgba(0,0,0,.62);animation:layerRise .38s var(--ease-out) both}
.search-head{display:flex;align-items:center;padding:1.2rem 1.5rem;border-bottom:1px solid var(--rule)}
.search-close,.checkout-close{margin-left:auto;width:38px;height:38px;border-radius:11px;background:#F3F6FA;color:var(--ink-2);font-size:1.35rem;display:grid;place-items:center}
.search-input{display:flex;align-items:center;gap:1rem;margin:2rem 2rem 0;padding:1rem 1.1rem;border:1px solid var(--rule-2);border-radius:14px;background:#F8FAFC;color:var(--accent)}
.search-input:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.search-input input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-family:var(--sans);font-size:1.2rem;font-weight:600;color:var(--ink)}
.search-input kbd{font-family:var(--mono);font-size:.52rem;color:var(--ink-3);padding:.25rem .38rem;border:1px solid var(--rule);border-radius:6px;background:#fff}
.search-meta{display:flex;justify-content:space-between;gap:1rem;padding:.85rem 2rem 1.25rem;font-family:var(--mono);font-size:.53rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3)}
.search-results{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem;padding:0 2rem 2rem}
.search-item{display:grid;grid-template-columns:68px 1fr auto;align-items:center;gap:1rem;text-align:left;padding:.8rem;border:1px solid var(--rule);border-radius:14px;background:#fff;transition:border-color .2s,transform .2s var(--ease-out),box-shadow .2s}
.search-item:hover{border-color:#9CB9DE;transform:translateY(-2px);box-shadow:var(--e1)}
.search-item .si-art{height:72px;border-radius:10px;background:#EFF5FA;display:grid;place-items:center;overflow:hidden}
.search-item .si-art img{height:66px;width:auto}
.search-item b{display:block;font-size:.85rem}
.search-item small{display:block;font-family:var(--mono);font-size:.54rem;color:var(--ink-3);margin-top:.2rem}
.search-item .si-go{color:var(--accent);font-size:1.1rem;padding-right:.3rem}
.search-empty{grid-column:1/-1;padding:4rem 1rem;text-align:center;color:var(--ink-3)}

/* checkout */
.checkout-layer{position:fixed;z-index:180;inset:0;padding:clamp(.5rem,2vw,1.4rem);background:rgba(3,12,25,.78);backdrop-filter:blur(14px);animation:layerFade .25s ease-out both}
.checkout-shell{position:relative;display:flex;flex-direction:column;width:min(1260px,100%);height:min(900px,calc(100vh - 1rem));margin:auto;background:#fff;border-radius:26px;overflow:hidden;box-shadow:0 45px 130px -42px rgba(0,0,0,.65);animation:layerRise .38s var(--ease-out) both}
@keyframes layerFade{from{opacity:0}to{opacity:1}}
@keyframes layerRise{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}
.checkout-head{position:static;display:flex;align-items:center;gap:1.5rem;padding:1rem 1.5rem;border-bottom:1px solid var(--rule);background:#fff;backdrop-filter:none}
.secure-note{margin-left:auto;display:flex;align-items:center;gap:.4rem;font-family:var(--mono);font-size:.54rem;letter-spacing:.09em;text-transform:uppercase;color:var(--good)}
.checkout-close{margin-left:0}
.checkout-steps{display:grid;grid-template-columns:auto 1fr auto 1fr auto;align-items:center;gap:1rem;padding:1rem 1.7rem;border-bottom:1px solid var(--rule);background:#F8FAFC}
.checkout-steps span{display:flex;align-items:center;gap:.5rem;font-size:.68rem;font-weight:700;color:var(--ink-3)}
.checkout-steps span b{font-family:var(--mono);font-size:.52rem;font-weight:500}
.checkout-steps span.on{color:var(--accent)}
.checkout-steps i{height:1px;background:var(--rule)}
.checkout-grid{min-height:0;flex:1;display:grid;grid-template-columns:minmax(0,1fr) 340px;overflow:auto}
.checkout-panel{padding:clamp(2rem,4vw,3.75rem);animation:panelIn .35s var(--ease-out) both}
@keyframes panelIn{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
.checkout-panel h2{font-size:clamp(1.7rem,3vw,2.75rem);letter-spacing:-.052em;line-height:1.05;margin:0}
.checkout-lede{max-width:58ch;color:var(--ink-2);font-size:.88rem;line-height:1.7;margin:1rem 0 1.7rem}
.checkout-lines{display:grid;gap:.65rem}
.checkout-line{display:grid;grid-template-columns:54px 1fr auto;align-items:center;gap:1rem;padding:.72rem .85rem;border:1px solid var(--rule);border-radius:13px}
.checkout-line .cl-art{height:58px;border-radius:9px;background:#EFF4F9;display:grid;place-items:center;overflow:hidden}
.checkout-line img{height:54px;width:auto}
.checkout-line b{display:block;font-size:.82rem}
.checkout-line small{display:block;font-family:var(--mono);font-size:.52rem;color:var(--ink-3);margin-top:.15rem}
.checkout-line strong{font-family:var(--mono);font-size:.68rem;font-weight:500}
.checkout-ship{display:flex;gap:1rem;margin-top:1rem;padding:1rem;border-radius:13px;background:#EFF5FC}
.ship-icon{width:34px;height:34px;border-radius:10px;background:#fff;color:var(--accent);display:grid;place-items:center;flex:none}
.checkout-ship b{font-size:.76rem}
.checkout-ship p{font-size:.7rem;line-height:1.55;color:var(--ink-3);margin:.15rem 0 0}
.ack-card{display:grid;grid-template-columns:auto 1fr;gap:1rem;padding:1.25rem;border:1px solid var(--rule-2);border-radius:16px;cursor:pointer;background:#F8FAFC;transition:border-color .2s,background .2s}
.ack-card:has(input:checked){border-color:var(--accent);background:#EFF5FF}
.ack-card input{position:absolute;opacity:0;pointer-events:none}
.ack-box{width:24px;height:24px;border:1px solid var(--rule-2);border-radius:7px;background:#fff;position:relative}
.ack-card input:checked+.ack-box{background:var(--accent);border-color:var(--accent)}
.ack-card input:checked+.ack-box::after{content:"";position:absolute;left:7px;top:3px;width:6px;height:11px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.ack-card b{display:block;font-size:.83rem;line-height:1.4}
.ack-card small{display:block;font-size:.72rem;line-height:1.7;color:var(--ink-2);margin-top:.45rem}
.checkout-legal{font-size:.66rem;line-height:1.7;color:var(--ink-3);margin-top:1rem}
.checkout-legal a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.checkout-summary{padding:2rem 1.7rem;background:#07111F;color:#fff}
.checkout-summary>.lab{color:var(--neon)}
.checkout-summary dl{margin:2rem 0;border-top:1px solid rgba(255,255,255,.13)}
.checkout-summary dl div{display:flex;justify-content:space-between;gap:1rem;padding:.85rem 0;border-bottom:1px solid rgba(255,255,255,.13);font-size:.72rem}
.checkout-summary dt{color:#90A5C1}.checkout-summary dd{margin:0;font-family:var(--mono);font-size:.65rem}
.summary-total{padding:1.2rem 0}
.summary-total span{font-size:.72rem;color:#90A5C1}
.summary-total b{display:block;font-size:2rem;letter-spacing:-.045em;margin:.25rem 0}
.summary-total small{font-size:.61rem;line-height:1.55;color:#7188A7}
.payment-marks{display:flex;gap:.35rem;margin:1.5rem 0}
.payment-marks span{padding:.3rem .4rem;border:1px solid rgba(255,255,255,.2);border-radius:5px;font-family:var(--mono);font-size:.45rem;color:#C3D2E5}
.checkout-summary>p{display:flex;align-items:flex-start;gap:.5rem;font-size:.6rem;line-height:1.5;color:#7188A7}
.checkout-summary>p svg{flex:none;color:#59DDAE}
.checkout-actions{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;border-top:1px solid var(--rule);background:#fff}
.checkout-help{margin-left:auto;font-size:.66rem;color:var(--ink-3)}
.checkout-help a{color:var(--accent)}
.checkout-transfer{position:absolute;z-index:4;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;background:#fff}
.transfer-ring{width:76px;height:76px;border:1px solid var(--rule);border-radius:50%;display:grid;place-items:center;margin-bottom:1.5rem}
.transfer-ring span{width:50px;height:50px;border:2px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.checkout-transfer .lab{color:var(--accent)}
.checkout-transfer h2{font-size:2rem;letter-spacing:-.045em;margin:.8rem 0}
.checkout-transfer p:not(.lab){font-size:.8rem;color:var(--ink-2)}
.transfer-track{width:min(380px,80%);height:6px;border-radius:8px;background:#EAF0F6;overflow:hidden;margin:1.4rem 0 .65rem}
.transfer-track span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--accent),var(--neon));transition:width .45s var(--ease-out)}
.checkout-transfer small{font-family:var(--mono);font-size:.55rem;color:var(--ink-3)}
.checkout-transfer #transferClose{margin-top:1.25rem}

/* full-viewport access gate */
.gate{position:fixed;z-index:210;inset:0;display:grid;place-items:stretch;grid-template-columns:minmax(360px,.8fr) minmax(520px,1.2fr);padding:0;background:#fff;opacity:1;transition:opacity .5s ease,visibility .5s;overflow:hidden}
.gate.gone{opacity:0;visibility:hidden;pointer-events:none}
.gate-brand{position:relative;overflow:hidden;display:flex;flex-direction:column;padding:clamp(1.5rem,4vw,4rem);background:#06101F;color:#fff}
.gate-brand::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(54,213,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(54,213,255,.09) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(135deg,#000,transparent 72%);-webkit-mask-image:linear-gradient(135deg,#000,transparent 72%)}
.gate-brand::after{content:"";position:absolute;width:650px;height:650px;border-radius:50%;left:-380px;bottom:-390px;border:1px solid rgba(54,213,255,.28);box-shadow:0 0 0 75px rgba(54,213,255,.035),0 0 0 150px rgba(54,213,255,.022)}
.gate-logo{position:relative;z-index:2;display:inline-flex;align-items:center;align-self:flex-start;padding:.6rem .85rem;border-radius:12px;background:rgba(255,255,255,.97);box-shadow:0 10px 35px rgba(0,0,0,.14)}
.gate-logo img{height:50px;width:auto}
.gate-logo b{display:block;font-size:1.5rem;line-height:1;letter-spacing:-.04em}.gate-logo b span{color:var(--neon)}
.gate-logo small{display:block;font-family:var(--mono);font-size:.47rem;letter-spacing:.19em;text-transform:uppercase;color:#7F95B2;margin-top:.32rem}
.gate-display{position:relative;z-index:2;margin:auto 0;display:flex;flex-direction:column;align-items:flex-start}
.gate-kicker{font-family:var(--mono);font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--neon)}
.gate-display strong{display:block;font-size:clamp(8rem,18vw,17rem);font-weight:700;letter-spacing:-.11em;line-height:.78;margin:1rem 0 1.3rem;color:transparent;-webkit-text-stroke:1px rgba(158,207,255,.38)}
.gate-display strong span{color:var(--neon);-webkit-text-stroke:0;font-family:var(--serif);font-style:italic;font-weight:500}
.gate-display p{font-size:clamp(1.1rem,1.6vw,1.45rem);line-height:1.4;max-width:18ch;color:#C7D6E9;margin:0}
.gate-facts{position:relative;z-index:2;display:grid;gap:.45rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.15)}
.gate-facts span{font-family:var(--mono);font-size:.54rem;letter-spacing:.12em;text-transform:uppercase;color:#8CA2BF}
.gate-facts i{font-style:normal;color:var(--neon);margin-right:.7rem}
.gate-panel{position:relative;display:flex;flex-direction:column;padding:clamp(1.5rem,4vw,4rem) clamp(1.5rem,6vw,7rem);background:#fff;overflow:auto}
.gate-panel::after{content:"PRP";position:absolute;right:-.08em;bottom:-.2em;font-size:clamp(10rem,20vw,20rem);font-weight:800;letter-spacing:-.12em;color:#F5F8FC;pointer-events:none}
.gate-step,.gate-foot{position:relative;z-index:2;display:flex;justify-content:space-between;gap:1rem;font-family:var(--mono);font-size:.52rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-3)}
.gate-step b{color:var(--accent);font-weight:500}
.gate-content{position:relative;z-index:2;width:min(610px,100%);margin:auto 0;padding:2rem 0}
.gate-content .gate-h{font-size:clamp(3rem,5.5vw,5.6rem);line-height:.94;letter-spacing:-.066em;margin:0;font-weight:700}
.gate-content .gate-h em{font-family:var(--serif);font-weight:500;color:var(--accent)}
.gate-lede{font-size:clamp(1rem,1.3vw,1.16rem);line-height:1.7;color:var(--ink-2);max-width:52ch;margin:1.5rem 0}
.gate-disclosure{display:flex;align-items:flex-start;gap:1rem;padding:1.1rem 1.15rem;border:1px solid var(--rule);border-left:3px solid var(--accent);border-radius:0 13px 13px 0;background:#F7F9FC}
.gate-disclosure svg{flex:none;color:var(--accent);margin-top:.08rem}
.gate-disclosure p{font-size:.76rem;line-height:1.65;color:var(--ink-2);margin:0}
.gate-disclosure b{color:var(--ink)}
.remember{display:flex;align-items:center;gap:.7rem;margin:1.2rem 0;font-size:.72rem;color:var(--ink-2);cursor:pointer}
.remember input{position:absolute;opacity:0}
.remember span{width:20px;height:20px;border:1px solid var(--rule-2);border-radius:6px;background:#fff;position:relative;flex:none}
.remember input:checked+span{background:var(--accent);border-color:var(--accent)}
.remember input:checked+span::after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.gate-actions{display:flex;gap:.65rem;flex-wrap:wrap}
.gate-actions .btn.pri{min-width:230px}
.btn.gate-leave{border:1px solid var(--rule);background:#fff;color:var(--ink-2)}
.btn.gate-leave:hover{border-color:var(--ink);color:var(--ink);transform:translateY(-2px)}
.gate-policies{font-size:.62rem;line-height:1.7;color:var(--ink-3);margin:1.1rem 0 0}
.gate-policies a{color:var(--ink-2);text-decoration:underline;text-underline-offset:2px}

/* legibility pass — functional copy never relies on decorative micro type */
body{font-size:16px;line-height:1.65}
.lab{font-size:.7rem;line-height:1.5}
.tick{font-size:.66rem;line-height:1.45}
.hnav a{font-size:.84rem}
.hero .under{font-size:.67rem;line-height:1.45}
.batch-stamp small{font-size:.59rem}.batch-stamp b{font-size:.72rem}.batch-stamp button{font-size:.64rem}
.cat span,.cat .go{font-size:.64rem;line-height:1.4}
.card .bs{font-size:.61rem}.card .st{font-size:.68rem}.mini{font-size:.6rem}.card .pr small{font-size:.65rem}
.bulk-kicker{font-size:.66rem}.bulk-intro p{font-size:.98rem}.bulk-facts dt{font-size:.72rem}.bulk-facts dd{font-size:.62rem;line-height:1.5}
.bulk-field>span,.bulk-quantity>span{font-size:.66rem}.bulk-record{font-size:.64rem;line-height:1.5}.bulk-presets button{font-size:.65rem}
.bulk-pricebox span{font-size:.61rem}.bulk-pricebox small{font-size:.66rem}.bulk-note{font-size:.72rem}
.proofnum,.proofgrid small{font-size:.64rem}.proofgrid p{font-size:.98rem}
.thumb{font-size:.66rem}.pdp-policy{font-size:.82rem;color:#62738A}.pdp-context-note{font-size:.81rem}.pdp-detail-grid .body{font-size:.94rem}.pdp-detail-grid .refs{font-size:.76rem}
.pdp-bulk-head>span{font-size:.58rem}.pdp-bulk-identity p{font-size:.63rem}.pdp-bulk-identity strong{font-size:.68rem}
.pdp-bulk-order>p:not(.lab):not(.bulk-note):not(.pdp-bulk-saving){font-size:.98rem}.pdp-bulk-breaks b{font-size:.72rem}.pdp-bulk-breaks span{font-size:.8rem}.pdp-bulk-breaks small{font-size:.61rem;line-height:1.4}
.pdp-bulk-controls>div>span{font-size:.65rem}.pdp-bulk-totals small{font-size:.61rem}.pdp-bulk-saving{font-size:.67rem}.pdp-bulk-order .bulk-note{font-size:.72rem}
.pdp-coa-copy>p:not(.lab){font-size:.98rem}.pdp-coa-lots button{font-size:.64rem}.pdp-coa-meta div{font-size:.7rem}.pdp-coa-sheet>span{font-size:.65rem}
.line .info .lt,.line .info .ctl .rm{font-size:.69rem}.lbh span,.lbf{font-size:.7rem}
.buybar .nm{font-size:.8rem}.buybar .pr{font-size:1rem}
.cart-toast b{font-size:.86rem}.cart-toast span{font-size:.76rem}.cart-toast button{font-size:.66rem}
.search-input kbd,.search-meta{font-size:.65rem}.search-item small{font-size:.68rem}
.secure-note{font-size:.65rem}.checkout-steps span{font-size:.74rem}.checkout-steps span b{font-size:.62rem}.checkout-lede{font-size:.96rem}
.checkout-line small{font-size:.66rem}.checkout-line strong{font-size:.76rem}.checkout-ship b{font-size:.84rem}.checkout-ship p{font-size:.8rem}.ack-card small{font-size:.8rem}.checkout-legal{font-size:.76rem}.checkout-help{font-size:.76rem}.checkout-transfer small{font-size:.68rem}
.checkout-summary dl div{font-size:.78rem}.checkout-summary dd{font-size:.72rem}.summary-total span{font-size:.76rem}.summary-total small{font-size:.7rem}.payment-marks span{font-size:.58rem}.checkout-summary>p{font-size:.68rem}
.fgrid h3{font-size:.67rem}.disc{font-size:.7rem}.fgrid a{line-height:1.6}
.gate-logo small,.gate-kicker,.gate-facts span,.gate-step,.gate-foot{font-size:.63rem}.gate-disclosure p{font-size:.85rem}.remember{font-size:.82rem}.gate-policies{font-size:.72rem}

@media(max-width:1120px){
  .heroin{grid-template-columns:1fr 1fr;gap:2.5rem}
  .hero-art .stage{min-height:530px}.hero-art{min-height:530px}
  .cats{grid-template-columns:repeat(3,1fr)}
  .pgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bulk-shell{grid-template-columns:.8fr 1.2fr}.bulk-shell::before{left:40%}
  .gate{grid-template-columns:.72fr 1.28fr}
}
@media(max-width:900px){
  .hbar{min-height:68px}.logo .wm .t{display:none}
  .heroin{grid-template-columns:1fr;min-height:auto;padding-top:4rem}.hero-rule{display:none}
  .hero-copy{max-width:740px}.hero-copy h1 span{white-space:normal}
  .hero-art{min-height:520px}.hero-art .stage{min-height:520px}
  .cats{grid-template-columns:repeat(2,1fr)}
  .proofgrid{grid-template-columns:1fr}.proofgrid article{min-height:280px;border-right:0;border-bottom:1px solid var(--rule)}.proofgrid article:last-child{border-bottom:0}.prooficon{margin:2rem 0 1.2rem}
  .faq-layout{grid-template-columns:1fr;gap:2.5rem}.faq-intro{position:static;display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.72fr);gap:1rem 2rem;align-items:start}.faq-intro>.eyeb,.faq-intro>h2,.faq-intro>.faq-lede,.faq-intro>.faq-topics{grid-column:1}.faq-intro h2{max-width:13ch}.faq-support{grid-column:2;grid-row:1/5}
  .orbit{height:auto;padding:5.5rem 0 4rem;overflow:hidden}.orbit-sticky{position:relative;top:auto;height:auto;min-height:0;overflow:visible;background:transparent}.orbit-sticky::after{display:none}.orbit-head{position:relative;inset:auto;padding:0 1.25rem;display:block}.orbit-head h2{max-width:13ch}.orbit-counter{margin-top:1.2rem}.orbit-stage{position:relative;inset:auto;height:auto;margin-top:2.5rem;perspective:none}.orbit-cards{position:relative;inset:auto;display:flex;gap:1rem;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;padding:1rem 10vw 2rem;scrollbar-width:none}.orbit-cards::-webkit-scrollbar{display:none}.orbit-card{position:relative;left:auto;top:auto;flex:0 0 min(78vw,310px);width:min(78vw,310px);height:455px;opacity:1!important;transform:none!important;pointer-events:auto;scroll-snap-align:center}.orbit-info,.orbit-nav{display:none}
  .bulk-shell{grid-template-columns:1fr}.bulk-shell::before{display:none}.bulk-intro h3{max-width:14ch}.bulk-intro p{max-width:58ch}.bulk-facts{grid-template-columns:repeat(3,1fr);gap:1rem}.bulk-facts div{display:block}.bulk-facts dd{margin-top:.3rem;line-height:1.5}
  .pdp{grid-template-columns:1fr}.pdp-l{position:static}.pdpart{min-height:500px}
  .pdp-detail-grid{grid-template-columns:1fr}.pdp-detail-grid article{padding:1.5rem 0;border-right:0;border-bottom:1px solid var(--rule)}.pdp-detail-grid article:first-child{padding-top:0}.pdp-detail-grid article:last-child{padding-bottom:0;border-bottom:0}
  .pdp-bulk-layout{grid-template-columns:1fr}.pdp-bulk-product{min-height:500px}.pdp-bulk-art{min-height:310px}.pdp-bulk-art img{max-height:310px}.pdp-bulk-order{padding-top:1rem}
  .pdp-coa-layout{grid-template-columns:1fr}.pdp-coa-copy{position:static}.pdp-coa-sheet{max-width:680px;margin:auto}
  .checkout-grid{grid-template-columns:1fr}.checkout-summary{display:block;margin:0 clamp(2rem,4vw,3.75rem) clamp(2rem,4vw,3.75rem);border-radius:var(--radius-lg)}
  .gate{grid-template-columns:1fr}.gate-brand{display:none}.gate-panel{padding:1.5rem clamp(1.25rem,7vw,5rem)}
  .fgrid{grid-template-columns:1fr 1fr}
}
@media(max-width:680px){
  html{scroll-padding-top:68px}
  #v-pdp{padding-bottom:calc(5.25rem + env(safe-area-inset-bottom))}
  .tick{font-size:.62rem;letter-spacing:.11em}.tick .wrap{justify-content:flex-start;overflow:hidden}.tickslot{white-space:nowrap}
  .hbar{gap:.7rem}.hact{margin-left:auto}.hact>a.icb{display:none}
  .d0{font-size:clamp(3.15rem,15vw,4.7rem)}
  .heroin{padding-block:3.2rem 2rem}.hero .sub{font-size:1rem}.hero .ctas{display:grid}.hero .ctas .btn{width:100%}
  .hero .under{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.hero .under span:last-child{grid-column:1/-1}
  .hero-art,.hero-art .stage{min-height:440px}.hero-art .stage{border-radius:22px}
  /* Mobile hero.
     The side vials used to be pushed OUT to 2%, which ran them under the
     stage's rounded corners — on a phone you saw a tall centre vial and two
     clipped slivers. They come inward into a tight overlapping cluster
     instead, are scaled up so they read as vials rather than slivers, and the
     group is lifted clear of the batch stamp so nothing overlaps. */
  .hero-vials{inset:9% 4% 27%;justify-content:center}
  .hero-vials .vial-main{height:86%;z-index:3}
  .hero-vials .vial-side{height:66%;opacity:.9}
  .hero-vials .vial-left{left:6%;transform:translateY(-1%) rotate(-5deg)}
  .hero-vials .vial-right{right:5%;transform:translateY(1%) rotate(5deg)}
  .artifact-head{left:1rem;right:1rem}.artifact-foot{display:none}
  .batch-stamp{left:.7rem;right:.7rem;bottom:.8rem;grid-template-columns:auto 1fr auto;padding:.75rem .8rem;gap:.6rem}.batch-stamp div:nth-of-type(2){display:none}.batch-stamp button{padding-left:.55rem}.batch-stamp b{font-size:.66rem}
  section{padding:4.8rem 0}.shead{margin-bottom:2rem}.shead .idx{display:none}
  .cats{grid-template-columns:1fr}.cat{min-height:160px}
  .toolbar{top:67px;margin-inline:-.6rem;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.65rem;padding:.62rem .7rem}.catalog-scope{min-width:0;font-size:.58rem;letter-spacing:.07em;white-space:nowrap}.sortsel{width:auto;justify-content:flex-end;gap:.35rem}.sortsel select{flex:0 0 auto;width:106px;min-height:40px}
  .pgrid{grid-template-columns:1fr;gap:.9rem}.card{height:500px}.face{padding:.8rem}.card .art{flex-basis:270px}.card .bs{top:1.45rem;left:1.4rem}.flipb{top:1.25rem;right:1.25rem}
  .bulk-intro,.bulk-builder{padding:1.5rem}.bulk-facts{grid-template-columns:1fr}.bulk-controls{grid-template-columns:1fr}.bulk-presets{justify-content:flex-start}.bulk-presets button{flex:1}.bulk-pricebox{margin-top:1.2rem}.bulk-record{display:grid;grid-template-columns:1fr;gap:.3rem}.bulk-record span:last-child{text-align:left}
  .verify{padding:2rem 1.15rem;border-radius:20px}.verify .vform{display:grid}.verify .vinput{min-width:0}.verify .btn{width:100%}.rgrid{grid-template-columns:repeat(2,1fr)}
  .faq-intro{display:block}.faq-intro h2{font-size:2.45rem;max-width:11ch}.faq-lede{font-size:.98rem}.faq-topics{margin-bottom:1.35rem}.faq-support{padding:1.2rem;margin-bottom:.25rem}
  .faq details,.faq details:last-child{border-radius:15px;margin-bottom:.65rem}.faq summary{min-height:88px;grid-template-columns:38px minmax(0,1fr) 38px;gap:.75rem;padding:.85rem}.faq-num,.faq .pm{width:38px;height:38px;border-radius:11px}.faq-question{font-size:.97rem}.faq-question small{font-size:.62rem}.faq .ans{padding:0 1rem 1.15rem;font-size:.96rem;line-height:1.72}.faq .ans p{padding-top:1rem}
  .ctain{grid-template-columns:1fr}.ctaband .ctas{display:grid}.ctaband .ctas .btn{width:100%}
  .fgrid{grid-template-columns:1fr 1fr;gap:2rem 1rem}.fgrid>div:first-child{grid-column:1/-1}
  .pdpart{min-height:420px}.pdpart img{max-height:340px}.tiers{grid-template-columns:1fr}.tier{min-height:68px;display:grid;grid-template-columns:1fr auto;align-items:center}.tier .e{grid-column:2;grid-row:1/3;margin:0}.qtyrow{position:static;padding:0;background:transparent;backdrop-filter:none;margin-inline:0}
  .pdp-bulk-entry{min-height:78px;grid-template-columns:46px minmax(0,1fr) 32px;gap:.8rem;padding:.75rem}.pdp-bulk-entry-badge{width:46px;height:46px}.pdp-bulk-entry-copy strong{font-size:.9rem}.pdp-bulk-entry-copy small{font-size:.72rem}
  .pdp-tier-head{align-items:flex-end}.pdp-tier-head>span{font-size:.58rem;text-align:right}
  .pdp-tabshell{border-radius:19px}.pdp-tabbar{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;padding:.5rem;overflow:visible}.pdp-tabbar button{min-height:64px;flex:none;flex-direction:column;gap:.3rem;padding:.6rem .3rem;font-size:.76rem;white-space:normal}.pdp-tabbar button span{margin:0;padding:.24rem .35rem;font-size:.54rem}.pdp-tabpanel{padding:1.25rem}.pdp-coa-copy h2{font-size:2.25rem}.pdp-coa-sheet{padding:.6rem .6rem 0;border-radius:14px}
  .pdp-bulk-product{min-height:430px;padding:1rem}.pdp-bulk-art{min-height:255px}.pdp-bulk-art img{max-height:255px}.pdp-bulk-order>h2{font-size:2.25rem}.pdp-bulk-breaks{grid-template-columns:1fr 1fr}.pdp-bulk-breaks button{min-height:78px}.pdp-bulk-controls{grid-template-columns:1fr}.pdp-bulk-totals{width:100%}
  .drawer{border-radius:var(--radius-lg) var(--radius-lg) 0 0;top:auto;height:min(88dvh,760px);width:100%;transform:translateY(100%)}.drawer.show{transform:none}.dhead{padding:1.05rem 1.15rem}.dbody{padding:1rem 1.15rem}.line{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:.75rem;padding:.8rem}.line .th{width:56px;height:68px}.line .info{min-width:0}.line .info .lt{font-size:.62rem;letter-spacing:.015em;white-space:nowrap}.line .amt{font-size:.82rem}.dfoot{padding:1rem 1.15rem calc(1rem + env(safe-area-inset-bottom));border-radius:var(--radius-lg) var(--radius-lg) 0 0}.fbt{display:none}
  .cart-toast{left:1rem;right:1rem;bottom:1rem;width:auto}
  .search-layer{padding:.5rem}.search-shell{border-radius:20px}.search-input{margin:1rem 1rem 0}.search-meta{padding-inline:1rem}.search-meta span:last-child{display:none}.search-results{grid-template-columns:1fr;padding:0 1rem 1rem}
  .checkout-layer{padding:0}.checkout-shell{height:100dvh;border-radius:0}.checkout-head{padding:.8rem 1rem}.checkout-close{margin-left:auto}.secure-note{display:none}.checkout-steps{gap:.4rem;padding:.8rem 1rem}.checkout-steps span{font-size:.68rem}.checkout-steps span b{display:none}.checkout-panel{padding:1.5rem 1rem}.checkout-summary{display:block;margin:0 1rem 1rem;padding:1.25rem;border-radius:var(--radius-md)}.checkout-summary dl{margin:1rem 0}.summary-total{padding:.75rem 0}.summary-total b{font-size:1.7rem}.payment-marks{margin:1rem 0}.checkout-actions{padding:.8rem 1rem calc(.8rem + env(safe-area-inset-bottom));flex-wrap:wrap;box-shadow:0 -18px 40px -34px rgba(4,25,58,.7)}.checkout-help{display:none}.checkout-actions .btn.pri{width:100%;order:-1}.checkout-actions .btn.textlink{margin:auto}
  .gate-panel{padding:1.15rem}.gate-content{padding:1.5rem 0}.gate-content .gate-h{font-size:clamp(2.7rem,14vw,4rem)}.gate-lede{font-size:.98rem;margin:1rem 0}.gate-disclosure{padding:.85rem}.gate-actions{display:grid}.gate-actions .btn{width:100%;min-width:0}.gate-step,.gate-foot{font-size:.58rem;letter-spacing:.1em}.gate-policies{font-size:.7rem}
}
@media(max-width:390px){
  .hero-art,.hero-art .stage{min-height:430px}.hero-vials{inset:8% 5% 28%}.hero-vials .vial-side{height:62%}.hero-vials .vial-left{left:5%}.hero-vials .vial-right{right:4%}.card{height:475px}.card .art{flex-basis:245px}
  .faq summary{grid-template-columns:minmax(0,1fr) 38px}.faq-num{display:none}.faq .ans{font-size:.94rem}
  .pdp-bulk-entry{grid-template-columns:44px minmax(0,1fr);gap:.7rem}.pdp-bulk-entry-badge{width:44px;height:44px}.pdp-bulk-entry-arrow{display:none}.pdp-tabbar button{font-size:.71rem}.pdp-tabbar button span{font-size:.5rem}
  .gate-content .gate-h{font-size:2.6rem}.gate-disclosure p{font-size:.8rem}
}
@media(prefers-reduced-motion:reduce){
  .transfer-ring span,.orbit-cue i::after{animation:none}.hero-art .stage,.hero-vials .vial{transition:none}.rv{opacity:1;transform:none}.scroll-progress{display:none}
  .orbit{height:auto;padding:5.5rem 0 4rem;overflow:hidden}.orbit-sticky{position:relative;top:auto;height:auto;min-height:0;overflow:visible;background:transparent}.orbit-sticky::after{display:none}.orbit-head{position:relative;inset:auto;padding:0 1.25rem;display:block}.orbit-head h2{max-width:13ch}.orbit-counter{margin-top:1.2rem}.orbit-stage{position:relative;inset:auto;height:auto;margin-top:2.5rem;perspective:none}.orbit-cards{position:relative;inset:auto;display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:1rem 10vw 2rem}.orbit-card{position:relative;left:auto;top:auto;flex:0 0 min(78vw,310px);width:min(78vw,310px);height:455px;opacity:1!important;transform:none!important;pointer-events:auto;scroll-snap-align:center}.orbit-info,.orbit-nav{display:none}
}

/* ---------------- service standard ---------------- */
.svc-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--rule);
  border:1px solid var(--rule);border-radius:2px;margin-top:2.4rem}
.svc{background:var(--paper);padding:1.7rem 1.5rem 1.6rem;display:flex;flex-direction:column;gap:.65rem}
.svcicon{width:34px;height:34px;color:var(--accent)}
.svcicon svg{width:100%;height:100%}
.svc h3{margin:.25rem 0 0;font-size:1.02rem;letter-spacing:-.015em}
.svc p{margin:0;font-size:.9rem;line-height:1.62;color:var(--ink-2)}
.svc-contact{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.5fr);gap:1px;
  background:var(--rule);border:1px solid var(--rule);border-top:0;border-radius:2px}
.svc-rating{background:var(--ink);color:#fff;padding:1.7rem 1.6rem;display:flex;flex-direction:column;
  justify-content:center;gap:.7rem}
.stars{display:flex;gap:.25rem}
.stars svg{width:19px;height:19px;fill:var(--neon)}
.svc-rating p{margin:0;display:flex;flex-direction:column;gap:.28rem}
.svc-rating b{font-size:1.02rem;letter-spacing:-.015em}
.svc-rating span{font-size:.86rem;line-height:1.55;color:rgba(255,255,255,.72)}
/* auto-fit, not a fixed 3: the phone tile only exists once a number is set,
   and a fixed grid left a dead column until then */
.svc-channels{background:var(--paper);display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1px}
.svc-ch{background:var(--paper);padding:1.5rem 1.3rem;display:flex;flex-direction:column;gap:.3rem;
  text-decoration:none;color:inherit;border:0;border-left:1px solid var(--rule);text-align:left;
  font:inherit;cursor:pointer;transition:background .18s var(--ease-out)}
.svc-channels>:first-child{border-left:0}
.svc-ch:hover{background:var(--wash)}
.svc-ch b{font-size:.98rem;letter-spacing:-.01em;word-break:break-word}
.svc-ch small{font-size:.78rem;color:var(--ink-3);font-family:var(--mono);letter-spacing:.02em}
@media(max-width:1000px){.svc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .svc-contact{grid-template-columns:minmax(0,1fr)}}
@media(max-width:620px){.svc-grid{grid-template-columns:minmax(0,1fr)}
  .svc-channels{grid-template-columns:minmax(0,1fr)}
  .svc-ch{border-left:0;border-top:1px solid var(--rule)}
  .svc-channels>:first-child{border-top:0}}

/* shipping rates inside an FAQ answer */
.ship-rates{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:.5rem}
.ship-rates li{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .9rem;padding:.62rem .85rem;
  border:1px solid var(--rule);border-radius:2px;background:var(--wash)}
.ship-rates b{font-family:var(--sans);font-size:.9rem;font-weight:650;letter-spacing:-.01em}
.ship-rates span{font-family:var(--mono);font-size:.76rem;letter-spacing:.02em;color:var(--ink-3);margin-left:auto}

/* ---------------- assistant ---------------- */
.chat-fab{position:fixed;right:1.25rem;bottom:1.25rem;z-index:70;display:inline-flex;align-items:center;
  gap:.5rem;padding:.78rem 1.05rem;border:1px solid var(--accent);border-radius:2px;background:var(--accent);
  color:#fff;font:inherit;font-size:.88rem;font-weight:600;letter-spacing:-.01em;cursor:pointer;
  box-shadow:var(--e3);transition:background .18s var(--ease-out),transform .18s var(--ease-out)}
.chat-fab:hover{background:var(--accent-2);transform:translateY(-1px)}
.chat-fab svg{width:17px;height:17px}
.chat-fab[hidden]{display:none}
.chat-panel{position:fixed;right:1.25rem;bottom:1.25rem;z-index:71;width:min(378px,calc(100vw - 2rem));
  max-height:min(620px,calc(100vh - 2.5rem));display:flex;flex-direction:column;background:var(--paper);
  border:1px solid var(--rule-2);border-radius:2px;box-shadow:var(--e2)}
.chat-panel[hidden]{display:none}
.chat-head{display:flex;align-items:flex-start;gap:1rem;padding:1.05rem 1.1rem;
  border-bottom:1px solid var(--rule);background:var(--ink);color:#fff}
.chat-head .lab{margin:0 0 .2rem;color:var(--neon)}
.chat-head .chat-h{display:block;font-size:1rem;letter-spacing:-.015em;font-weight:650}
.chat-x{margin-left:auto;background:none;border:0;color:rgba(255,255,255,.66);cursor:pointer;padding:.15rem;line-height:0}
.chat-x:hover{color:#fff}
.chat-x svg{width:18px;height:18px}
.chat-log{flex:1;overflow-y:auto;padding:1.1rem;display:flex;flex-direction:column;gap:.7rem}
.msg{max-width:88%;padding:.68rem .85rem;border-radius:2px;font-size:.9rem;line-height:1.6}
.msg.bot{background:var(--wash);border:1px solid var(--rule);color:var(--ink)}
.msg.you{align-self:flex-end;background:var(--accent);border:1px solid var(--accent);color:#fff}
.msg a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.msg.you a{color:#fff}
.chat-chips{display:flex;flex-wrap:wrap;gap:.35rem;padding:0 1.1rem .8rem}
.chat-chips button{font:inherit;font-size:.78rem;padding:.36rem .68rem;border:1px solid var(--rule-2);
  border-radius:99px;background:var(--paper);color:var(--ink-2);cursor:pointer;
  transition:border-color .16s var(--ease-out),color .16s var(--ease-out)}
.chat-chips button:hover{border-color:var(--accent);color:var(--accent)}
.chat-form{display:flex;gap:.45rem;padding:.8rem 1.1rem;border-top:1px solid var(--rule)}
.chat-form input{flex:1;min-width:0;padding:.6rem .7rem;border:1px solid var(--rule-2);border-radius:2px;
  font:inherit;font-size:.9rem;background:var(--paper);color:var(--ink)}
.chat-form input:focus{outline:none;border-color:var(--accent)}
.chat-form .btn{padding:.6rem .8rem}
.chat-foot{margin:0;padding:0 1.1rem .95rem;font-size:.72rem;line-height:1.5;color:var(--ink-3)}
@media(max-width:520px){.chat-panel{right:.6rem;left:.6rem;bottom:.6rem;width:auto;
  max-height:min(560px,calc(100vh - 1.4rem))}.chat-fab{right:.75rem;bottom:.75rem}}

/* The chat launcher shares the bottom-right corner with the sticky buy bar.
   On a product page the bar wins that corner, so the launcher lifts above it:
   on desktop the bar is a 360px card, on mobile it is a full-width bottom
   bar, and the launcher clears both. */
body.buybar-on .chat-fab{bottom:6.1rem}
body.buybar-on .chat-panel{bottom:6.1rem;max-height:min(620px,calc(100vh - 8rem))}
@media(max-width:600px){
  body.buybar-on .chat-fab{bottom:calc(4.6rem + env(safe-area-inset-bottom))}
  body.buybar-on .chat-panel{bottom:calc(4.6rem + env(safe-area-inset-bottom));
    max-height:min(560px,calc(100vh - 7rem))}
}
/* When the chat is open it owns the corner, so the bar steps aside rather
   than sitting under a panel the reader is typing into. */
body.chat-open .buybar{opacity:0;pointer-events:none;transform:translateY(14px)}

/* ── Trust signals ──────────────────────────────────────────────────
   Two jobs. The strip has to register on every page without competing
   with the product, so it stays a hairline bar. The block has to carry
   the premium claim on the page where money changes hands, so it gets
   real scale, real weight, and the one warm colour on the site. */

.trust-strip{
  border-bottom:1px solid var(--rule);
  background:var(--surface);
  font-size:12px;
}
.trust-strip-in{
  display:flex; align-items:center; justify-content:center;
  gap:0; padding:0; flex-wrap:wrap;
}
.ts-item{
  display:inline-flex; align-items:center; gap:8px;
  padding:11px 22px;
  color:var(--ink);
  white-space:nowrap;
  font-weight:530;
  letter-spacing:.005em;
  /* Hairline separators instead of gaps: reads as one instrument panel
     rather than four loose labels. */
  border-left:1px solid var(--rule);
}
.ts-item:first-child{ border-left:0; }
.ts-ico{ display:inline-flex; align-items:center; color:var(--accent); }
.ts-ico .usflag{ border:1px solid var(--rule-2); border-radius:1px; display:block; }

.prp-stars{ display:inline-flex; gap:1.5px; align-items:center; }
/* Amber is the only warm colour in the system and it is spent here on
   purpose — a five-star claim rendered in the same blue as everything
   else does not read as a rating at all. */
.prp-stars svg{ fill:#F5A524; display:block; }

@media (max-width:900px){
  .trust-strip-in{
    justify-content:flex-start;
    flex-wrap:nowrap;              /* or four signals stack three lines deep */
    overflow-x:auto;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .trust-strip-in::-webkit-scrollbar{ display:none; }
  .ts-item{ padding:10px 16px; }
}

/* ── Product-page block ─────────────────────────────────────────── */

.trust-block{ margin-top:44px; }
.tb-head{ margin-bottom:20px; }
.tb-eyebrow{
  margin:0 0 8px;
  font-size:10.5px; font-weight:700;
  letter-spacing:.13em; text-transform:uppercase;
  color:var(--accent);
}
.tb-title{
  margin:0 0 6px;
  font-size:clamp(22px,2.4vw,29px);
  line-height:1.12;
  letter-spacing:-.021em;
  color:var(--ink);
}
.tb-sub{ margin:0; font-size:14.5px; line-height:1.5; color:var(--ink-2); max-width:52ch; }

.tb-grid{
  display:grid;
  /* min() not a bare minimum, or a 250px track overflows a 320px phone
     instead of shrinking to fit it. */
  grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));
  gap:1px;
  background:var(--rule);
  border:1px solid var(--rule);
  border-radius:3px;
  overflow:hidden;
}
.tb-card{
  background:var(--surface);
  padding:20px 20px 22px;
  min-width:0;
  position:relative;
  transition:background .18s ease;
}
.tb-card:hover{ background:var(--wash); }
/* Neon as trim only — a top edge, never a fill and never type. */
.tb-card::before{
  content:""; position:absolute; inset:0 0 auto 0; height:2px;
  background:linear-gradient(90deg,var(--accent),var(--neon));
  opacity:0; transition:opacity .18s ease;
}
.tb-card:hover::before{ opacity:1; }

.tb-top{
  display:flex; align-items:center; justify-content:space-between;
  gap:10px; margin-bottom:14px;
}
.tb-mark{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:40px; height:40px; padding:0 9px;
  border:1px solid var(--rule-2); border-radius:3px;
  background:var(--wash);
  color:var(--accent);
}
.tb-mark .usflag{ border:1px solid var(--rule-2); border-radius:1px; }
.tb-stat{
  font-size:10.5px; font-weight:700;
  letter-spacing:.09em; text-transform:uppercase;
  color:var(--ink-3);
  white-space:nowrap;
}
.tb-card h3{
  margin:0 0 7px;
  font-size:15.5px; line-height:1.25;
  letter-spacing:-.011em;
  color:var(--ink);
}
.tb-card p{ margin:0; font-size:13.2px; line-height:1.6; color:var(--ink-2); }
