/* ============================================================
   FRS · DESIGN SYSTEM — shared across every page.
   Content lives in data.js. Behavior lives in site.js.
   Edit colors in :root (the brand accent is --accent).
   ============================================================ */
:root{
  --accent:#e9e3d8;                 /* warm off-white */
  --bg:#0a0908;--surface:#100e0c;--surface-2:#16130f;--paper:#e8e1d4;
  --text:#e7e1d6;--muted:#928b7e;--faint:#5b554c;
  --line:rgba(231,225,214,.08);--line-strong:rgba(231,225,214,.17);
  --ink:#0a0908;--max:1240px;
  --fdisp:'Cormorant Garamond',serif;--fbody:'Archivo','Helvetica Neue',system-ui,sans-serif;
  --crest-url:url('assets/frs-crest-light.png');   /* swap this one line to version the crest */
  --crest-mask:url('assets/frs-crest-light.png');  /* silhouette used by the holographic sheen */
  --ease:cubic-bezier(.2,.7,.2,1);
  --sheen-a:rgba(255,206,232,.55);--sheen-b:rgba(193,236,255,.62);--sheen-c:rgba(255,243,206,.55);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scrollbar-gutter:stable both-edges}
body{background:var(--bg);color:var(--text);font-family:var(--fbody);font-weight:300;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;min-height:100vh;font-feature-settings:"kern","liga","calt";
  background-image:radial-gradient(150% 90% at 50% -8%,rgba(231,225,214,.045),transparent 55%),linear-gradient(180deg,#0c0a09 0%,#0a0908 40%,#090807 100%);
  background-attachment:fixed}
body.locked{overflow:hidden}
.wrap{max-width:var(--max);margin:0 auto;padding:0 34px;position:relative}
.wrap.narrow{max-width:920px}
.serif{font-family:var(--fdisp);font-feature-settings:"liga","dlig","onum","swsh"}
h1,h2{text-wrap:pretty}
.label{font-size:10px;letter-spacing:.42em;text-transform:uppercase;color:var(--muted);font-weight:500}
a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}
::selection{background:var(--accent);color:var(--ink)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:1px solid var(--accent);outline-offset:3px}
::-webkit-scrollbar{width:11px}::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:#26262b;border:3px solid var(--bg);border-radius:10px}
::-webkit-scrollbar-thumb:hover{background:#36363c}

/* texture + frame */
.grain{position:fixed;inset:0;z-index:600;pointer-events:none;opacity:.028;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.vig{position:fixed;inset:0;z-index:1;pointer-events:none;background:radial-gradient(125% 95% at 50% 38%,transparent 56%,rgba(0,0,0,.5) 100%)}
.frame{position:fixed;inset:16px;border:1px solid rgba(231,225,214,.05);pointer-events:none;z-index:45}
.fc{display:none}
.fc.tl{top:6px;left:6px;border-top:1px solid var(--line-strong);border-left:1px solid var(--line-strong)}
.fc.tr{top:6px;right:6px;border-top:1px solid var(--line-strong);border-right:1px solid var(--line-strong)}
.fc.bl{bottom:6px;left:6px;border-bottom:1px solid var(--line-strong);border-left:1px solid var(--line-strong)}
.fc.br{bottom:6px;right:6px;border-bottom:1px solid var(--line-strong);border-right:1px solid var(--line-strong)}
@media(max-width:600px){.frame{inset:8px}.fc.tl,.fc.tr{top:3px}.fc.bl,.fc.br{bottom:3px}.fc.tl,.fc.bl{left:3px}.fc.tr,.fc.br{right:3px}}

.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line-strong);background:transparent;color:var(--text);padding:17px 42px;font-size:10px;letter-spacing:.3em;text-transform:uppercase;transition:border-color .45s,color .45s,background .45s;overflow:hidden;isolation:isolate}
.btn::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(120deg,transparent 30%,rgba(231,225,214,.10) 50%,transparent 70%);transform:translateX(-130%);transition:transform .85s var(--ease)}
.btn::after{display:none}
.btn:hover::before{transform:translateX(130%)}
.btn:hover{border-color:var(--accent);color:var(--accent)}
.btn.solid{background:var(--accent);color:var(--ink);border-color:var(--accent)}
.btn.solid:hover{background:#fbf7f0;border-color:#fbf7f0;color:var(--ink)}
.btn.full{width:100%;text-align:center}
.btn.ghost{color:var(--muted);border-color:transparent}.btn.ghost:hover{color:var(--text)}

.reveal{opacity:0;transform:translateY(20px);transition:opacity 1.05s ease,transform 1.05s var(--ease)}
.reveal.in{opacity:1;transform:none}
.orn{display:flex;align-items:center;justify-content:center;gap:18px;color:var(--faint);font-size:11px}
.orn span{width:74px;height:1px;background:linear-gradient(90deg,transparent,var(--line-strong),transparent)}

/* ===== holographic crest engine (hero + gate) ===== */
.crestwrap{position:relative;display:inline-block;filter:drop-shadow(0 10px 52px rgba(0,0,0,.7))}
.crestwrap .crest{position:relative;display:block;z-index:1}
.crestwrap .sheen{position:absolute;inset:0;pointer-events:none;z-index:2;
  -webkit-mask:var(--crest-mask) center/contain no-repeat;mask:var(--crest-mask) center/contain no-repeat}
.crestwrap .sheen::before{content:'';position:absolute;inset:0;
  background:linear-gradient(125deg,var(--sheen-a),var(--sheen-b),var(--sheen-c),var(--sheen-a));
  background-size:300% 100%;mix-blend-mode:screen;opacity:.14;animation:drift 14s linear infinite}
.crestwrap .sheen::after{content:'';position:absolute;inset:0;
  background:linear-gradient(115deg,transparent 41%,var(--sheen-a) 47%,var(--sheen-b) 51%,var(--sheen-c) 55%,transparent 61%);
  background-size:260% 100%;background-position:165% 0;mix-blend-mode:screen;animation:sweep 8.5s ease-in-out 1.8s infinite}
@keyframes drift{0%{background-position:0 0}100%{background-position:300% 0}}
@keyframes sweep{0%{background-position:165% 0}46%{background-position:-65% 0}100%{background-position:-65% 0}}

/* age gate */
#gate{position:fixed;inset:0;z-index:1000;background:radial-gradient(120% 90% at 50% 32%,#0d0d10,#060607 70%);display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;transition:opacity .9s ease,visibility .9s}
#gate.go{opacity:0;visibility:hidden}
.gate-inner{position:relative}
#gate .crestwrap{margin:0 auto 26px}
#gateImg{height:118px;width:auto;display:block}
#gate .gate-crest{animation:gateCrest 1.4s .15s var(--ease) both}
@keyframes gateCrest{0%{transform:scale(.92);filter:blur(7px)}100%{transform:none;filter:none}}
#gate .mark{font-size:30px;letter-spacing:.05em;margin-bottom:9px;line-height:1}
#gate .el{margin-bottom:24px}
#gate p{color:var(--muted);font-size:13.5px;margin:0 auto 30px;max-width:340px;line-height:1.7}
.gate-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
#gate .mark,#gate .el,#gate p,#gate .gate-actions{animation:hUp 1s both}
#gate .mark{animation-delay:.5s}#gate .el{animation-delay:.62s}#gate p{animation-delay:.74s}#gate .gate-actions{animation-delay:.86s}

/* header */
header{position:sticky;top:0;z-index:50;background:rgba(8,8,10,.55);backdrop-filter:blur(16px);border-bottom:1px solid transparent;transition:background .4s,border-color .4s}
header.scrolled{background:rgba(8,8,10,.88);border-bottom-color:var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:72px;gap:20px}
.nav .brand{font-size:15px;letter-spacing:.4em;text-transform:uppercase;font-weight:500;padding-left:.4em}
.nav .brand b{color:var(--accent);font-weight:500}
.nav ul{display:flex;gap:34px;list-style:none}
.nav ul a{position:relative;white-space:nowrap;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);transition:color .25s}
.nav ul a::after{content:'';position:absolute;left:0;right:100%;bottom:-7px;height:1px;background:var(--accent);transition:right .35s var(--ease)}
.nav ul a:hover{color:var(--text)}
.nav ul a.active{color:var(--text)}.nav ul a.active::after{right:0}
.nav-right{display:flex;align-items:center;gap:22px}
.reserve-btn{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--text);background:none;border:none;display:flex;align-items:center;gap:9px}
.reserve-btn .count{min-width:20px;height:20px;padding:0 5px;box-sizing:border-box;border-radius:100px;background:var(--accent);color:var(--ink);font-size:10.5px;letter-spacing:0;line-height:1;font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;justify-content:center;font-weight:600;transition:transform .3s var(--ease),background .3s}
.reserve-btn .count.bump{animation:countpop .42s var(--ease)}
@keyframes countpop{0%{transform:scale(1)}40%{transform:scale(1.45)}100%{transform:scale(1)}}0;transition:background .3s,color .3s}
.reserve-btn .count.empty{background:transparent;color:var(--faint);border:1px solid var(--line-strong)}
.menu-toggle{display:none;background:none;border:none;color:var(--text);font-size:22px}

/* dpill */
.dpill{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--line-strong);border-radius:100px;padding:8px 17px;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);background:rgba(255,255,255,.014)}
.dpill .dot{position:relative;width:7px;height:7px;border-radius:50%;background:var(--accent)}
.dpill .dot::after{content:'';position:absolute;inset:0;border-radius:50%;background:var(--accent);animation:pulse 2.6s ease-out infinite}
.dpill.tone-off{color:var(--faint)}.dpill.tone-off .dot{background:var(--faint)}.dpill.tone-off .dot::after{display:none}
.dpill.tone-warn{color:#caa07e}.dpill.tone-warn .dot,.dpill.tone-warn .dot::after{background:#cf9b6a}
.dpill.tone-soon{color:var(--muted)}.dpill.tone-soon .dot::after{animation-duration:4.2s}
@keyframes pulse{0%{transform:scale(1);opacity:.55}70%,100%{transform:scale(3.4);opacity:0}}

/* hero (home) */
.hero{position:relative;padding:clamp(108px,13vh,150px) 0 clamp(80px,9vw,104px);text-align:center;border-bottom:1px solid var(--line);overflow:hidden}
.hero .glow{position:absolute;top:40px;left:50%;width:660px;height:660px;max-width:130vw;transform:translateX(-50%);background:radial-gradient(circle,rgba(255,255,255,.06),transparent 60%);pointer-events:none;animation:breathe 9s ease-in-out infinite}
@keyframes breathe{0%,100%{opacity:.65;transform:translateX(-50%) scale(1)}50%{opacity:1;transform:translateX(-50%) scale(1.09)}}
.hero .crestwrap{display:block;width:max-content;max-width:100%;margin:0 auto 34px}
.hero .crest{height:clamp(158px,27vw,266px);width:auto;max-width:86vw}
.hero .el{margin-bottom:22px}
.hero h1{font-family:var(--fdisp);font-weight:500;font-size:clamp(46px,8vw,104px);line-height:.98;letter-spacing:.015em;margin-bottom:20px;max-width:13ch;margin-left:auto;margin-right:auto}
.hero .tag{font-family:var(--fdisp);font-style:italic;font-weight:400;font-size:clamp(18px,2.8vw,25px);color:var(--text);margin-bottom:34px;opacity:.92}
.hero .dpill{margin:0 auto 26px}
.hero-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:48px}
body.entered .hero .crestwrap{animation:hUp 1.2s .04s var(--ease) both}
body.entered .hero .dpill{animation:hUp 1s .26s var(--ease) both}
body.entered .hero .el{animation:hUp 1s .36s var(--ease) both}
body.entered .hero h1{animation:hUp 1.05s .46s var(--ease) both}
body.entered .hero .tag{animation:hUp 1s .62s var(--ease) both}
body.entered .hero-actions{animation:hUp 1s .78s var(--ease) both}
body.entered .hero .orn{animation:hUp 1s .94s var(--ease) both}
@keyframes hUp{from{transform:translateY(26px)}to{transform:translateY(0)}}

/* page hero (subpages) */
.phero{padding:clamp(56px,7vw,92px) 0 clamp(28px,4vw,42px);border-bottom:1px solid var(--line)}
.phero .el{margin-bottom:20px}
.phero h1{font-family:var(--fdisp);font-weight:500;font-size:clamp(42px,7vw,86px);line-height:1;letter-spacing:.01em;margin-bottom:22px}
.phero p{color:var(--muted);max-width:620px;font-size:15.5px;line-height:1.85}

section{padding:clamp(88px,10vw,124px) 0;position:relative}
section.tight{padding:clamp(36px,5vw,56px) 0}
.sec-head{display:flex;align-items:baseline;gap:26px;margin-bottom:48px;border-bottom:1px solid var(--line);padding-bottom:26px}
.sec-head .no{font-family:var(--fdisp);font-weight:500;font-style:italic;font-size:clamp(30px,4vw,46px);line-height:1;color:transparent;-webkit-text-stroke:1px var(--line-strong);flex:none;align-self:center}
.sec-head h2{font-family:var(--fdisp);font-weight:500;font-size:clamp(30px,4.4vw,48px);flex:1;line-height:1}
.sec-head .label{white-space:nowrap;align-self:center}

/* home hub: editorial index rows */
.idx{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.idxrow{display:flex;align-items:center;gap:30px;padding:34px 6px;border-bottom:1px solid var(--line);transition:padding-left .4s var(--ease),background .4s}
.idxrow:hover{padding-left:20px;background:linear-gradient(90deg,rgba(255,255,255,.02),transparent 60%)}
.idxrow .ino{font-family:var(--fdisp);font-style:italic;font-size:clamp(22px,3vw,34px);color:transparent;-webkit-text-stroke:1px var(--line-strong);flex:none;width:54px}
.idxrow .imid{flex:1;min-width:0}
.idxrow .it{font-family:var(--fdisp);font-size:clamp(26px,3.4vw,40px);line-height:1.04;margin-bottom:8px;transition:color .3s}
.idxrow .ib{color:var(--muted);font-size:13.5px;line-height:1.7;max-width:60ch}
.idxrow .imeta{flex:none;display:flex;align-items:center;gap:18px;color:var(--muted);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase}
.idxrow .iar{font-size:18px;color:var(--muted);transition:transform .35s var(--ease),color .35s}
.idxrow:hover .iar{transform:translateX(6px);color:var(--accent)}
.idxrow:hover .it{color:var(--accent)}
@media(max-width:680px){.idxrow{gap:18px;padding:26px 4px}.idxrow .imeta .mtag{display:none}}

/* filters */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px}
.chip{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);padding:10px 19px;background:transparent;transition:.3s}
.chip:hover{color:var(--text);border-color:var(--line-strong)}
.chip.active{color:var(--ink);background:var(--accent);border-color:var(--accent)}

/* catalog */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(190px,100%),1fr));gap:30px 20px}
.grid>*{min-width:0}
.card .ph{max-width:100%}
.card h3,.card .meta{overflow-wrap:anywhere}
.grid.two{grid-template-columns:repeat(3,1fr)}
.card{position:relative;background:var(--surface);border:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column;opacity:0;transform:translateY(22px);transition:border-color .4s,background .4s,box-shadow .4s,transform .65s var(--ease),opacity .65s ease}
.card.in{opacity:1;transform:none}
.card.in:hover{border-color:var(--line-strong);transform:translateY(-6px);background:var(--surface-2);box-shadow:0 30px 70px -30px rgba(0,0,0,.9),inset 0 0 0 1px rgba(255,255,255,.05)}
.card .ph{position:relative;aspect-ratio:4/3;background-size:cover;background-position:center;background-color:#0d0d0f;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--line);overflow:hidden;transition:transform .8s var(--ease)}
.card.in:hover .ph{transform:scale(1.04)}
.card .ph .status,.card .ph .ed{transition:transform .8s var(--ease)}
.card.in:hover .ph .status,.card.in:hover .ph .ed{transform:scale(.962)}
.card .ph.empty{background-image:radial-gradient(circle at 50% 40%,rgba(255,255,255,.025),transparent 60%),repeating-linear-gradient(135deg,rgba(255,255,255,.013) 0 11px,transparent 11px 22px)}
.card .ph .crestph{height:56%;opacity:.5}
.card .status{position:absolute;top:15px;right:15px;font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;background:rgba(8,8,10,.82);padding:6px 11px;backdrop-filter:blur(4px)}
.status.available{color:var(--accent)}.status.limited{color:#cf9b6a}.status.reserved,.status.soldout{color:var(--faint)}.status.soon{color:var(--muted)}
.card .ed{position:absolute;top:15px;left:15px;font-size:9px;letter-spacing:.26em;text-transform:uppercase;color:var(--muted);background:rgba(8,8,10,.82);padding:6px 10px;backdrop-filter:blur(4px)}
.card .body{padding:26px 26px 28px;flex:1;display:flex;flex-direction:column}
.card .cat{margin-bottom:14px}
.card h3{font-family:var(--fdisp);font-weight:500;font-size:26px;margin-bottom:15px;line-height:1.05}
.card .meta{font-size:12.5px;color:var(--muted);margin-bottom:22px;flex:1;line-height:1.75}
.card .meta b{color:var(--text);font-weight:400}
.card .open{font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line-strong);padding-bottom:5px;align-self:flex-start;transition:.3s}
.card .open:hover{color:var(--accent);border-color:var(--accent)}
.card.bl{background:#060607;border-color:rgba(255,255,255,.2);box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}
.card.bl .ph{background-color:#070709;background-image:radial-gradient(circle at 50% 38%,rgba(255,255,255,.03),transparent 62%)}
.card.bl .ed{color:var(--text);border:1px solid var(--line-strong);background:rgba(0,0,0,.6);letter-spacing:.28em}
.card.bl::after{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--sheen-a),var(--sheen-b),var(--sheen-c),transparent);background-size:220% 100%;z-index:3;pointer-events:none;animation:seam 7s ease-in-out infinite}
@keyframes seam{0%,100%{background-position:160% 0;opacity:.5}50%{background-position:-60% 0;opacity:1}}
.card.bl.in:hover{border-color:rgba(255,255,255,.34);box-shadow:0 28px 64px -28px rgba(0,0,0,.9),inset 0 0 0 1px rgba(255,255,255,.07)}
/* ---- product-state mechanic: stamp on the artwork ---- */
.card.is-soldout .crestph,.card.is-soon .crestph{opacity:.26;filter:grayscale(1)}
.card .stamp{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;display:flex;align-items:center;gap:11px;font-size:9.5px;letter-spacing:.34em;text-transform:uppercase;color:var(--muted);background:rgba(8,8,10,.5);backdrop-filter:blur(3px);border:1px solid var(--line-strong);padding:11px 17px;white-space:nowrap}
.card .stamp::before,.card .stamp::after{content:'';width:13px;height:1px;background:currentColor;opacity:.6}
.card .stamp.premium{color:var(--text);border-color:transparent;background:rgba(0,0,0,.62);box-shadow:0 0 0 1px rgba(255,255,255,.2);overflow:hidden}
.card .stamp.premium .sx{position:absolute;inset:0;background:linear-gradient(115deg,transparent 40%,var(--sheen-a) 47%,var(--sheen-b) 51%,var(--sheen-c) 55%,transparent 62%);background-size:240% 100%;mix-blend-mode:screen;animation:sweep 7s ease-in-out 1s infinite;pointer-events:none}
.card .stamp.soon{color:var(--muted)}

/* lab rows (compact, used on home preview) */
.lab-intro{color:var(--muted);max-width:640px;margin-bottom:42px;font-size:15px;line-height:1.8}
.lab-row{display:grid;grid-template-columns:130px 1.4fr 1fr auto;gap:20px;align-items:center;padding:21px 0;border-top:1px solid var(--line);transition:padding-left .35s var(--ease)}
.lab-row:last-child{border-bottom:1px solid var(--line)}
.lab-row:hover{padding-left:6px}
.lab-row .bid{font-size:11.5px;letter-spacing:.16em;color:var(--accent)}
.lab-row .lp{font-family:var(--fdisp);font-size:21px}
.lab-row .ld{font-size:12.5px;color:var(--muted)}
.lab-row .lc{font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line-strong);padding-bottom:3px;white-space:nowrap}
.lab-row .lc:hover{color:var(--text)}

/* faq */
.faq-item{border-top:1px solid var(--line)}.faq-item:last-child{border-bottom:1px solid var(--line)}
.faq-q{display:flex;align-items:center;gap:20px;width:100%;text-align:left;background:none;border:none;color:var(--muted);padding:27px 0;font-size:20px;font-family:var(--fdisp);transition:color .3s}
.faq-q:hover,.faq-item.open .faq-q{color:var(--text)}
.faq-q .fno{font-family:var(--fbody);font-size:10.5px;letter-spacing:.12em;color:var(--faint);width:24px;flex:none}
.faq-q .qt{flex:1}
.faq-q .pm{color:var(--accent);font-size:20px;flex:none;transition:transform .35s var(--ease)}
.faq-item.open .faq-q .pm{transform:rotate(45deg)}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .42s var(--ease)}
.faq-item.open .faq-a{grid-template-rows:1fr}
.faq-a .inner{overflow:hidden}
.faq-a p{color:var(--muted);font-size:15px;line-height:1.85;padding:0 30px 30px 44px;max-width:none;margin:0}
.dropcap::first-letter{font-family:var(--fdisp);font-weight:500;font-size:3.5em;line-height:.74;float:left;padding:8px 14px 0 0;color:var(--text)}

/* standard / story */
.swm{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(80vw,780px);aspect-ratio:760/830;background:var(--crest-url) center/contain no-repeat;opacity:.06;pointer-events:none;z-index:0;user-select:none}
.about{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.about .big{font-family:var(--fdisp);font-size:clamp(26px,3.2vw,37px);line-height:1.3}
.about p{color:var(--muted);font-size:15px;margin-bottom:17px;line-height:1.8}
.pillars{display:flex;gap:42px;margin-top:36px;flex-wrap:wrap}
.pillars div .label{display:block;margin-bottom:8px}
.pillars div span:last-child{font-family:var(--fdisp);font-size:22px}

/* drop signup */
.drop{text-align:center;background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.drop h2{font-family:var(--fdisp);font-size:clamp(30px,4vw,44px);margin-bottom:16px;line-height:1.05}
.drop p{color:var(--muted);max-width:460px;margin:0 auto 34px;line-height:1.75}
.drop form{display:flex;gap:10px;max-width:480px;margin:0 auto;flex-wrap:wrap;justify-content:center}
.drop input{flex:1;min-width:230px;background:var(--bg);border:1px solid var(--line);color:var(--text);padding:15px 17px;font-family:inherit;font-size:14px;transition:border-color .3s}
.drop input:focus{outline:none;border-color:var(--accent)}
.dropMsg{display:none;color:var(--accent);font-size:13px;margin-top:18px}

/* footer */
footer{border-top:1px solid var(--line);padding:72px 0 48px;text-align:center}
footer .fcrest{height:70px;margin:0 auto 26px;display:block;opacity:.85}
.foot-brand{font-family:var(--fdisp);font-size:28px;letter-spacing:.04em;margin-bottom:9px}
.foot-nav{display:flex;gap:28px;flex-wrap:wrap;justify-content:center;margin:28px 0 38px}
.foot-nav a{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.foot-nav a:hover{color:var(--text)}
.disclaimer{font-size:10.5px;line-height:1.85;color:var(--faint);max-width:740px;margin:0 auto;border-top:1px solid var(--line);padding-top:28px}
.copy{margin-top:24px;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}

/* drawers */
.scrim{position:fixed;inset:0;background:rgba(0,0,0,.66);backdrop-filter:blur(2px);z-index:200;opacity:0;pointer-events:none;transition:.35s}
.scrim.show{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;height:100%;width:466px;max-width:92vw;background:var(--bg);border-left:1px solid var(--line-strong);z-index:300;transform:translateX(100%);transition:transform .42s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;box-shadow:-40px 0 80px -40px rgba(0,0,0,.9)}
.drawer.show{transform:translateX(0)}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:24px 30px;border-bottom:1px solid var(--line)}
.drawer-close{background:none;border:none;color:var(--muted);font-size:20px}.drawer-close:hover{color:var(--text)}
.drawer-body{flex:1;overflow-y:auto;padding:30px}
.drawer-foot{border-top:1px solid var(--line);padding:24px 30px}
.pd-img{position:relative;aspect-ratio:4/3;background-size:cover;background-position:center;background-color:#0d0d0f;margin-bottom:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);overflow:hidden}
.pd-img.empty{background-image:radial-gradient(circle at 50% 40%,rgba(255,255,255,.025),transparent 60%),repeating-linear-gradient(135deg,rgba(255,255,255,.013) 0 11px,transparent 11px 22px)}
.pd-img .crestph{height:50%;opacity:.5}
.pd-el{margin-bottom:10px;color:var(--faint);letter-spacing:.26em}
.pd-name{font-family:var(--fdisp);font-size:36px;margin-bottom:11px;line-height:1.04}
.pd-cat{margin-bottom:22px}
.pd-desc{color:var(--text);margin-bottom:26px;font-style:italic;font-family:var(--fdisp);font-size:17px;line-height:1.5;opacity:.9}
.pd-row{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;font-size:12.5px;padding:12px 0}
.pd-row + .pd-row{border-top:1px dotted rgba(255,255,255,.13)}
.pd-row .k{color:var(--faint);letter-spacing:.16em;text-transform:uppercase;font-size:10px;white-space:nowrap}
.pd-row .v{color:var(--text);text-align:right}
.pd-row .v a{color:var(--accent);border-bottom:1px solid var(--line-strong)}
.res-item{display:flex;gap:15px;align-items:flex-start;padding:17px 0;border-bottom:1px solid var(--line)}
.res-item .ri-img{width:62px;height:62px;flex:none;background-size:cover;background-position:center;background-color:#0d0d0f;border:1px solid var(--line)}
.res-item .ri-name{font-family:var(--fdisp);font-size:19px}
.res-item .ri-cat{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);margin-top:3px}
.res-item .ri-x{margin-left:auto;background:none;border:none;color:var(--faint);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase}.res-item .ri-x:hover{color:var(--text)}
.res-empty{color:var(--muted);font-size:14px;text-align:center;padding:44px 0;line-height:1.7}
.fulfil{display:flex;gap:10px;margin:24px 0 20px}
.fulfil button{flex:1;padding:13px;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;background:transparent;border:1px solid var(--line);color:var(--muted);transition:.3s}
.fulfil button.active{background:var(--accent);color:var(--ink);border-color:var(--accent)}
.field{margin-bottom:15px}
.field label{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:8px}
.field input,.field textarea{width:100%;background:var(--surface);border:1px solid var(--line);color:var(--text);padding:13px 15px;font-family:inherit;font-size:14px;font-weight:300;transition:border-color .3s}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--accent)}
.field select{width:100%;background:var(--surface);border:1px solid var(--line);color:var(--text);padding:13px 15px;font-family:inherit;font-size:14px;font-weight:300;transition:border-color .3s;-webkit-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 18px) 19px,calc(100% - 13px) 19px;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.field select:focus{outline:none;border-color:var(--accent)}
.zone-note{font-size:12px;color:#caa07e;line-height:1.65;margin-top:10px}
.res-note{font-size:11.5px;color:var(--faint);margin-top:16px;line-height:1.7}
#resSent{display:none;text-align:center;padding:34px 0}
#resSent .ok{font-family:var(--fdisp);font-size:28px;margin-bottom:11px;color:var(--text)}#resSent p{color:var(--muted);font-size:14px;line-height:1.7}

/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.ch{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.chrow{display:flex;align-items:baseline;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}
.chrow .ck{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--faint);width:96px;flex:none}
.chrow .cv{font-family:var(--fdisp);font-size:21px;color:var(--text)}
.chrow a.cv{border-bottom:1px solid var(--line-strong);transition:.3s}.chrow a.cv:hover{color:var(--accent);border-color:var(--accent)}
.chrow .cv.empty{font-family:var(--fbody);font-size:12.5px;color:var(--faint);font-style:normal;letter-spacing:.04em}
.cnote{color:var(--muted);font-size:13.5px;line-height:1.8;margin-top:26px;max-width:46ch}

/* ---- lab results page ---- */
.sec-sub{color:var(--muted);font-size:14px;line-height:1.8;max-width:600px;margin-bottom:40px}
.seal{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.seal span{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);padding:9px 15px}
.seal span b{color:var(--text);font-weight:500}
.cur-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.cur{position:relative;background:var(--surface);border:1px solid var(--line);padding:26px 24px 24px;display:flex;flex-direction:column;transition:border-color .4s,background .4s,transform .5s var(--ease),box-shadow .4s}
.cur:hover{border-color:var(--line-strong);background:var(--surface-2);transform:translateY(-4px);box-shadow:0 24px 56px -30px rgba(0,0,0,.85)}
.cur .tag{position:absolute;top:18px;right:18px;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:7px}
.cur .tag .d{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 rgba(236,235,232,.5);animation:tp 2.6s ease-out infinite}
@keyframes tp{0%{box-shadow:0 0 0 0 rgba(236,235,232,.4)}70%,100%{box-shadow:0 0 0 9px rgba(236,235,232,0)}}
.cur .bid{font-size:11px;letter-spacing:.18em;color:var(--muted);margin-bottom:16px}
.cur .bid:hover{color:var(--text)}
.cur h3{font-family:var(--fdisp);font-weight:500;font-size:25px;line-height:1.05;margin-bottom:4px}
.cur .cat{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);margin-bottom:22px}
.cur .read{border-top:1px solid var(--line);padding-top:16px;margin-top:auto;display:flex;flex-direction:column;gap:10px}
.cur .rr{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.cur .rr .k{font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}
.cur .rr .v{font-family:var(--fdisp);font-size:19px;color:var(--text)}
.cur .coa{margin-top:18px;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line-strong);padding-bottom:5px;align-self:flex-start;transition:.3s}
.cur .coa:hover{color:var(--accent);border-color:var(--accent)}
.yearbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:28px}
.arow{display:grid;grid-template-columns:118px 1.5fr 1fr 1fr auto;gap:22px;align-items:center;padding:20px 0;border-top:1px solid var(--line);transition:padding-left .35s var(--ease)}
.arow:last-child{border-bottom:1px solid var(--line)}
.arow:hover{padding-left:8px}
.arow .bid{font-size:11.5px;letter-spacing:.14em;color:var(--accent)}
.arow .ap{font-family:var(--fdisp);font-size:20px;line-height:1.1}
.arow .ap small{display:block;font-family:var(--fbody);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);margin-top:5px}
.arow .ad{font-size:12.5px;color:var(--muted)}
.arow .ac{font-size:12.5px;color:var(--text)}
.arow .ac small{display:block;color:var(--faint);font-size:11px;margin-top:3px}
.arow .lc{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line-strong);padding-bottom:3px;white-space:nowrap;justify-self:end;transition:.3s}
.arow .lc:hover{color:var(--accent);border-color:var(--accent)}
.arow .lc.na{color:var(--faint);border-color:transparent;pointer-events:none}
.yhead{font-family:var(--fdisp);font-size:15px;color:var(--faint);letter-spacing:.1em;padding:30px 0 6px}
.howto{background:var(--surface);border:1px solid var(--line);padding:clamp(28px,4vw,44px)}
.howto h2{font-family:var(--fdisp);font-weight:500;font-size:clamp(24px,3vw,32px);margin-bottom:24px}
.htgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.htgrid div .label{display:block;margin-bottom:10px;color:var(--accent)}
.htgrid div p{color:var(--muted);font-size:13.5px;line-height:1.75}
@media(max-width:760px){.cur-grid{grid-template-columns:1fr}.arow{grid-template-columns:90px 1fr auto;gap:14px}.arow .ad,.arow .ac{display:none}.htgrid{grid-template-columns:1fr;gap:24px}}

/* ---- price + add on cards ---- */
.card .cardfoot{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:auto}
.card .price{font-family:var(--fdisp);font-size:23px;color:var(--text);line-height:1}
.card .price.tba{font-family:var(--fbody);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--faint)}
.card .cardacts{display:flex;align-items:center;gap:16px}
.card .open{margin:0}
.card .add{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);background:var(--accent);border:1px solid var(--accent);padding:11px 17px;transition:background .3s,color .3s}
.card .add:hover{background:transparent;color:var(--accent)}

/* ---- add-to-cart toast ---- */
.toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%) translateY(22px);z-index:800;background:var(--surface-2);border:1px solid var(--line-strong);color:var(--text);padding:14px 16px 14px 22px;display:flex;align-items:center;gap:20px;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;opacity:0;pointer-events:none;transition:opacity .3s,transform .35s var(--ease);box-shadow:0 22px 54px -22px rgba(0,0,0,.85)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}
.toast a{color:var(--accent);border-bottom:1px solid var(--line-strong);padding-bottom:3px}

/* ---- cart page ---- */
.cart-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:54px;align-items:start}
.citem{display:flex;gap:18px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}
.citem:first-child{border-top:1px solid var(--line)}
.citem .ci-img{width:78px;height:78px;flex:none;background-size:cover;background-position:center;background-color:#0d0d0f;border:1px solid var(--line);display:flex;align-items:center;justify-content:center}
.citem .ci-img img{height:58%;opacity:.5}
.citem .ci-main{flex:1;min-width:0}
.citem .ci-name{font-family:var(--fdisp);font-size:22px;line-height:1.08}
.citem .ci-cat{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);margin-top:6px}
.citem .ci-unit{font-size:12px;color:var(--muted);margin-top:7px}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line-strong)}
.qty button{width:34px;height:34px;background:none;border:none;color:var(--muted);font-size:15px;transition:color .25s}.qty button:hover{color:var(--text)}
.qty span{min-width:30px;text-align:center;font-size:13px;color:var(--text)}
.citem .ci-line{font-family:var(--fdisp);font-size:22px;width:82px;text-align:right;flex:none}
.citem .ci-x{background:none;border:none;color:var(--faint);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;flex:none;margin-left:4px}.citem .ci-x:hover{color:var(--text)}
.csum{background:var(--surface);border:1px solid var(--line);padding:30px;position:sticky;top:96px}
.csum h2{font-family:var(--fdisp);font-weight:500;font-size:24px;margin-bottom:18px}
#cartSummary .row{display:flex;justify-content:space-between;align-items:baseline;padding:10px 0;font-size:13px;color:var(--muted)}
#cartSummary .row .v{color:var(--text)}
#cartSummary .row.total{border-top:1px solid var(--line);margin-top:8px;padding-top:18px;color:var(--text);font-size:12px;letter-spacing:.16em;text-transform:uppercase}
#cartSummary .row.total .v{font-family:var(--fdisp);font-size:30px;letter-spacing:0;text-transform:none}
.csum .fulfil{margin:18px 0 8px}
.pay{margin-top:20px;border-top:1px solid var(--line);padding-top:22px}
.pay .label{display:block;margin-bottom:12px;color:var(--accent)}
.pay .methods{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.pay .pm-chip{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--text);border:1px solid var(--line-strong);padding:9px 14px;background:rgba(255,255,255,.014)}
.pay .remit{font-size:12.5px;color:var(--muted);line-height:1.75}
.pay .remit b{color:var(--text)}
.pay .card-soon{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px;border:1px dashed var(--line-strong);padding:13px 15px;color:var(--faint);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase}
.pay .card-soon .tag{color:var(--muted)}
.cart-empty{text-align:center;padding:74px 0;color:var(--muted);line-height:1.8}
.cart-empty .ce-h{font-family:var(--fdisp);font-size:30px;color:var(--text);margin-bottom:14px}
@media(max-width:820px){.cart-grid{grid-template-columns:1fr;gap:34px}.csum{position:static}}
@media(max-width:560px){.citem{flex-wrap:wrap}.citem .ci-line{width:auto;margin-left:auto}}

/* ============================================================
   REFINEMENT LAYER — tier sections, de-boxed cards, size + pay UI
   ============================================================ */
/* tier-grouped selection */
.tiersec{margin-bottom:clamp(56px,7vw,84px)}
.tiersec:last-child{margin-bottom:0}
.tier-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line-strong);padding-bottom:18px;margin-bottom:36px}
.tier-name{font-family:var(--fdisp);font-weight:500;font-size:clamp(26px,3.6vw,42px);line-height:1}
.tier-sub{margin-top:11px}
.tier-price{font-family:var(--fdisp);font-size:19px;color:var(--muted);white-space:nowrap;letter-spacing:.01em}
.tiersec.is-black .tier-head{border-bottom-color:rgba(231,225,214,.28)}
@media(max-width:600px){.tier-head{flex-direction:column;align-items:flex-start;gap:10px}.tier-price{font-size:16px}}

/* de-boxed editorial cards (override the boxed defaults) */
.card{background:transparent;border:none;overflow:visible;box-shadow:none}
.card .ph{border:1px solid var(--line);border-bottom:1px solid var(--line)}
.card.in:hover{transform:translateY(-5px);background:transparent;box-shadow:none}
.card.in:hover .ph{border-color:var(--line-strong)}
.card .body{padding:18px 0 2px}
.card h3{font-size:28px;margin-bottom:12px}
.card .meta{font-size:12.5px;margin-bottom:0}
.card .cardfoot{padding-top:15px;margin-top:15px;border-top:1px solid var(--line)}
.card.bl{background:transparent;border:none;box-shadow:none}
.card.bl .ph{border-color:rgba(231,225,214,.24)}
.card.bl.in:hover{box-shadow:none}
.card.bl.in:hover .ph{border-color:rgba(231,225,214,.4)}
.card.bl::after{top:0;height:1px}

/* product drawer: size selector */
.pd-sizes{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 24px}
.pd-size{flex:1;min-width:84px;display:flex;flex-direction:column;gap:6px;align-items:center;padding:14px 10px;background:transparent;border:1px solid var(--line-strong);color:var(--muted);font-size:12px;letter-spacing:.16em;text-transform:uppercase;transition:.3s}
.pd-size b{font-family:var(--fdisp);font-size:18px;font-weight:500;letter-spacing:0;color:inherit}
.pd-size:hover{color:var(--text)}
.pd-size.active{background:var(--accent);color:var(--ink);border-color:var(--accent)}
.pd-size-one{margin:0 0 24px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}

/* payment funnel */
.pay-intro{font-size:12.5px;color:var(--muted);line-height:1.7;margin-bottom:16px}
.paybtns{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.paybtn{flex:1;min-width:88px;padding:13px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;background:transparent;border:1px solid var(--line-strong);color:var(--muted);transition:.3s}
.paybtn:hover{color:var(--text)}
.paybtn.active{background:var(--accent);color:var(--ink);border-color:var(--accent)}
.pay-detail{border:1px solid var(--line);padding:17px;margin-bottom:14px;background:rgba(231,225,214,.02)}
.pay-handle{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ph-k{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint)}
.ph-v{font-family:var(--fdisp);font-size:22px;color:var(--text)}
.ph-v.faint{font-family:var(--fbody);font-size:12.5px;color:var(--faint)}
.ph-copy{margin-left:auto;background:none;border:1px solid var(--line-strong);color:var(--muted);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;padding:8px 13px;transition:.3s}.ph-copy:hover{color:var(--text);border-color:var(--accent)}
.pay-note{font-size:12px;color:var(--muted);line-height:1.65;margin-top:11px}

/* category-grouped selection + buttery inline buy */
.catsec{margin-bottom:clamp(34px,4vw,48px);padding:0}.catsec:last-child{margin-bottom:0}
.cat-h{font-family:var(--fdisp);font-weight:500;font-size:clamp(26px,3.4vw,40px);line-height:.97;margin-bottom:20px;border-bottom:1px solid var(--line-strong);padding-bottom:14px}
.tiersub{margin-bottom:clamp(40px,5vw,58px)}.tiersub:last-child{margin-bottom:0}
.tiersub .tier-head{border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:30px}
.tiersub .tier-name{font-size:clamp(21px,2.6vw,30px)}
.tier-name .ly{font-family:var(--fdisp);font-style:italic;font-size:15px;letter-spacing:.01em;text-transform:lowercase;color:var(--faint);margin-left:14px;vertical-align:baseline;white-space:nowrap}
.tiersub.is-black .tier-head{border-bottom-color:rgba(231,225,214,.26)}
.szrow{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.szp{font-size:10.5px;letter-spacing:.05em;color:var(--muted);border:1px solid var(--line-strong);background:transparent;padding:9px 12px;transition:background .25s,color .25s,border-color .25s;white-space:nowrap}
.szp:hover{color:var(--text);border-color:var(--text)}
.szp.active{background:var(--accent);color:var(--ink);border-color:var(--accent)}
.card .cardfoot{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:none!important;padding-top:0;margin-top:0}
.card .add.full{flex:1;background:var(--accent);color:var(--ink);border:1px solid var(--accent);padding:12px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;transition:background .25s,transform .12s}
.card .add.full:hover{background:#fbf7f0}.card .add.full:active{transform:scale(.985)}
.card .open.mini{flex:none;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line-strong);padding-bottom:3px}
.card .open.mini:hover{color:var(--text)}

/* clean gallery card */
.card{cursor:pointer;display:flex;flex-direction:column}
.card .body{padding:16px 0 2px;flex:1;display:flex;flex-direction:column}
.card .cardfoot{margin-top:auto}
.card .ph{aspect-ratio:1/1;position:relative;overflow:hidden}
.card .ph::after{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(115deg,transparent 38%,rgba(231,225,214,.10) 48%,rgba(231,225,214,.16) 50%,rgba(231,225,214,.10) 52%,transparent 62%);background-size:260% 100%;background-position:170% 0;opacity:0;transition:opacity .3s}
.card:hover .ph::after{opacity:1;animation:cardsheen .85s var(--ease)}
@keyframes cardsheen{0%{background-position:170% 0}100%{background-position:-70% 0}}
.ptier{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.card .body{padding:16px 0 2px}
.card h3{font-size:23px;margin-bottom:0;line-height:1.12;min-height:2.24em;display:flex;align-items:flex-start}
.card .cardfoot{display:flex!important;align-items:baseline;justify-content:space-between;gap:10px 12px;flex-wrap:wrap;border-top:none!important;padding-top:13px;margin-top:13px}
.card .price{font-family:var(--fdisp);font-size:20px;color:var(--text);white-space:nowrap}
.card .price.tba{font-family:var(--fbody);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint)}
.addcue{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);transition:letter-spacing .25s,opacity .25s;opacity:.85;white-space:nowrap}
.card:hover .addcue{letter-spacing:.26em;opacity:1}
.card .crestph{transition:transform .9s var(--ease),opacity .4s}
.card:hover .crestph{transform:scale(1.05)}
.addcue.muted{color:var(--faint)}

/* featured carousel (home) */
.carwrap{position:relative}
.carousel{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:4px 2px 14px}
.carousel::-webkit-scrollbar{display:none}
.carousel>.card{flex:0 0 clamp(216px,38vw,264px);min-width:0;scroll-snap-align:start}
.cbtn{position:absolute;top:34%;transform:translateY(-50%);width:46px;height:46px;border:1px solid var(--line-strong);background:rgba(10,9,8,.72);backdrop-filter:blur(6px);color:var(--text);z-index:3;font-size:15px;transition:opacity .3s,border-color .3s,color .3s;display:flex;align-items:center;justify-content:center}
.cbtn:hover{border-color:var(--accent);color:var(--accent)}
.cbtn.prev{left:-14px}.cbtn.next{right:-14px}
@media(max-width:680px){.cbtn{display:none}.carousel>.card{flex:0 0 76%}}

@media(max-width:900px){.grid,.grid.two{grid-template-columns:1fr 1fr}.about{grid-template-columns:1fr;gap:48px}.contact-grid{grid-template-columns:1fr;gap:40px}.lab-row{grid-template-columns:96px 1fr auto;gap:14px}.lab-row .ld{display:none}}
@media(max-width:600px){
  .nav ul{display:none}.menu-toggle{display:block}.grid,.grid.two{grid-template-columns:1fr}
  .nav ul.open{display:flex;flex-direction:column;position:absolute;top:72px;left:0;right:0;background:var(--bg);border-bottom:1px solid var(--line);padding:22px 34px;gap:22px}
  section{padding:84px 0}.hero{padding:84px 0 64px}.sec-head{gap:18px}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .reveal,.card,.crestwrap,.hero .dpill,.hero .el,.hero h1,.hero .tag,.hero-actions,.hero .orn,
  #gate .gate-crest,#gate .mark,#gate .el,#gate p,#gate .gate-actions{opacity:1!important;transform:none!important;filter:none!important}
  .sheen,.hero .glow,.card.bl::after{display:none}
}
