/* shop.css — fast, no-WebGL conversion path (homepage + PDP).
   EXTENDS site.css (tokens, .site-head, .btn, .mono, .display, .site-foot).
   Built from PDP_BLUEPRINT.md. Mobile-first; one brass accent; reserve space → no CLS. */
:root{
  --surface-1:#0e0f12; --surface-2:#121419; --surface-3:#17191e;
  --cta-ink:#120d04; --ok:#9bbf8f; --disabled:#3a3a40;
  --scrim:linear-gradient(180deg,transparent 0%,rgba(5,5,6,.5) 55%,rgba(5,5,6,.92) 100%);
  --glow:radial-gradient(58% 56% at 50% 42%,rgba(201,161,90,.12),transparent 70%);
  --wrap:1180px;
}
img,video{display:block;max-width:100%}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 clamp(16px,5vw,40px)}
.sect{padding:clamp(56px,9vh,96px) 0}
@media(min-width:960px){ .sect{padding:clamp(80px,12vh,140px) 0} }
.eyebrow{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--brass);font-weight:500}
.center{text-align:center}

/* reveal-on-scroll (transform/opacity only). Gated behind html.jsr so content is
   VISIBLE without JS / if IntersectionObserver never fires (no blank sections). */
html.jsr .reveal{opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
html.jsr .reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){ html.jsr .reveal{opacity:1;transform:none;transition:none} *{animation:none!important} }

/* ============ HEADER cart glyph ============ */
.site-head .bag{position:relative;display:inline-flex;align-items:center;gap:8px;font-family:'JetBrains Mono',monospace;
  font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--text);border:none;cursor:pointer;background:none}
.site-head .bag b{color:var(--brass);font-weight:700}
.headnav{display:flex;align-items:center;gap:clamp(14px,3vw,28px)}
.headnav a{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);border:none}
.headnav a:hover{color:var(--text)}
@media(max-width:600px){ .headnav .hn-hide{display:none} }

/* ============ HOMEPAGE ============ */
/* H1 hero */
.hero{position:relative;min-height:clamp(78vh,86vh,820px);display:flex;align-items:flex-end;overflow:hidden;background:var(--void)}
.hero-media{position:absolute;inset:0;overflow:hidden}
@keyframes heroDrift{from{transform:scale(1.02)}to{transform:scale(1.09)}}
.hero-media img{width:100%;height:100%;object-fit:cover;opacity:.92;transform-origin:64% 46%;animation:heroDrift 26s var(--ease) infinite alternate}  /* one signature "alive" moment — slow GPU-cheap drift; killed under prefers-reduced-motion by the * rule above */
.hero-media::after{content:"";position:absolute;inset:0;background:var(--scrim)}
.hero-glow{position:absolute;inset:0;background:var(--glow);pointer-events:none}
.hero-copy{position:relative;z-index:2;width:100%;max-width:var(--wrap);margin:0 auto;padding:0 clamp(18px,5vw,40px) clamp(40px,8vh,80px)}
.hero h1{font-family:'Fraunces',Georgia,serif;font-variation-settings:"opsz" 100,"wght" 430;letter-spacing:-.025em;line-height:1.02;
  font-size:clamp(40px,11vw,112px);color:#f4efe2;margin:14px 0 16px;max-width:15ch}
.hero h1 em{font-style:italic;color:var(--brass-hi)}
.hero .lede{font-family:'Newsreader',Georgia,serif;font-style:italic;font-size:clamp(17px,2.4vw,22px);color:var(--text);max-width:46ch;margin-bottom:26px;line-height:1.5}
.hero-cta{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--brass);
  border:none;display:inline-flex;align-items:center;gap:9px}
.hero-cta:hover{color:var(--brass-hi);border:none}
.hero-cta .ar{transition:transform .3s var(--ease)} .hero-cta:hover .ar{transform:translateY(3px)}

/* H2 mechanic / morph */
.mechanic{text-align:center}
.mechanic .frame{position:relative;max-width:560px;margin:24px auto 0;border:1px solid var(--rule);border-radius:5px;overflow:hidden;background:#000;aspect-ratio:4/5}
.mechanic video,.mechanic .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mechanic .playcue{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:2}
.mechanic .playcue span{width:62px;height:62px;border-radius:50%;border:1px solid var(--rule);background:rgba(6,6,7,.5);backdrop-filter:blur(6px);
  display:flex;align-items:center;justify-content:center;color:var(--brass-hi);font-size:16px;padding-left:4px}
.cap{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);margin-top:16px}
/* on-the-wall montage — TRUE cross-dissolve (opaque incoming UNDER a fading outgoing → no midpoint grey pulse) */
.mechanic .frame.showcase{aspect-ratio:1/1;max-width:560px;background:#000}
.showcase .sc{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%;
  opacity:0;z-index:0;transform:scale(1.035);backface-visibility:hidden}   /* anchor high: paintings hang in the upper wall, so crop the floor not the art */
.showcase .sc.on{opacity:1;z-index:1;animation:scKen 10s linear forwards;will-change:opacity,transform}   /* current: instant-opaque, below, one-direction slow zoom */
.showcase .sc.leaving{opacity:0;z-index:2;animation:scKen 10s linear forwards;transition:opacity 1.1s cubic-bezier(.37,0,.34,1);will-change:opacity,transform}  /* outgoing: dissolves 1→0 on top; identical anim → zoom continues, no restart */
@keyframes scKen{from{transform:scale(1.035)}to{transform:scale(1.09)}}
@media(prefers-reduced-motion:reduce){ .showcase .sc,.showcase .sc.on,.showcase .sc.leaving{animation:none;transition:none;transform:none} }
/* manual prev/next arrows — subtle (fade in on hover; always visible on touch) */
.showcase .scnav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:1px solid var(--rule);
  background:rgba(6,6,7,.5);backdrop-filter:blur(6px);color:var(--bone);font-size:16px;display:flex;align-items:center;justify-content:center;
  cursor:pointer;z-index:5;opacity:0;transition:opacity .25s,background .2s}
.showcase:hover .scnav{opacity:1}
.showcase .scnav:hover{background:rgba(6,6,7,.72);color:var(--brass-hi)}
.showcase .scnav.pv{left:10px} .showcase .scnav.nx{right:10px}
@media(hover:none){ .showcase .scnav{opacity:.82} }

/* H3 collection grid */
.sect-head{text-align:center;margin-bottom:clamp(30px,5vh,52px)}
.sect-head h2{font-family:'Fraunces',serif;font-weight:500;font-size:clamp(30px,5vw,56px);color:#efe9db;margin:12px 0 0;letter-spacing:-.01em}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media(min-width:760px){ .grid{grid-template-columns:repeat(3,1fr);gap:20px} }
.tile{position:relative;display:block;border:none;background:var(--surface-1);border-radius:4px;overflow:hidden;color:inherit}
.tile .ph{position:relative;aspect-ratio:4/5;overflow:hidden;background:#0b0b0d}
.tile .ph::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 60px 8px rgba(0,0,0,.55);pointer-events:none}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.tile:hover img{transform:scale(1.035)}
.tile .m{padding:13px 14px 16px}
.tile .t{font-family:'Fraunces',serif;font-weight:500;font-size:clamp(16px,2.3vw,20px);color:#efe9db;letter-spacing:-.01em}
.tile .p{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-top:5px}
.tile .soon{color:var(--brass)}

/* H4 on-your-wall band */
.band{position:relative}
.band img{width:100%;height:clamp(280px,52vh,560px);object-fit:cover;border-radius:5px}
.band .cap{position:absolute;left:16px;bottom:14px;margin:0;background:rgba(6,6,7,.55);backdrop-filter:blur(6px);padding:6px 10px;border-radius:3px}

/* H5 curator */
.curator{display:grid;gap:26px;align-items:center;max-width:880px;margin:0 auto;text-align:center}
.curator blockquote{font-family:'Newsreader',serif;font-style:italic;font-size:clamp(20px,3vw,30px);line-height:1.45;color:#e7e1d4;max-width:24ch;margin:0 auto}
.curator .by{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);margin-top:20px}

/* H6 craft strip */
.craft{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media(min-width:760px){ .craft{grid-template-columns:repeat(4,1fr)} }
.craft .c{border:1px solid var(--rule-soft);border-radius:5px;background:var(--surface);padding:20px 16px;text-align:center}
.craft .c .ic{color:var(--brass);font-size:18px;margin-bottom:10px}
.craft .c b{display:block;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text);font-weight:500;line-height:1.5}

/* H7 spotlight */
.spotlight{display:grid;gap:26px;align-items:center}
@media(min-width:860px){ .spotlight{grid-template-columns:1.05fr .95fr;gap:48px} }
.spotlight .art{position:relative;border-radius:5px;overflow:hidden;background:#0b0b0d}
.spotlight .art::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 80px 12px rgba(0,0,0,.5)}
.spotlight h3{font-family:'Fraunces',serif;font-weight:500;font-size:clamp(28px,4vw,46px);color:#efe9db;margin:14px 0 12px;letter-spacing:-.01em}
.spotlight p{color:var(--text);margin-bottom:22px;max-width:42ch}

/* footer trust row */
.foot-trust{border-top:1px solid var(--rule-soft);margin-top:30px}
.foot-trust .row{max-width:var(--wrap);margin:0 auto;padding:18px clamp(16px,5vw,40px);display:flex;flex-wrap:wrap;gap:10px 22px;justify-content:center;
  font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute-2)}
.foot-trust .row .dot{color:var(--brass)}

/* ============ PDP ============ */
.pdp{max-width:var(--wrap);margin:0 auto;padding:clamp(14px,3vw,26px) clamp(16px,5vw,40px) 60px}
@media(min-width:960px){ .pdp{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,56px);align-items:start} }
@media(min-width:960px){ .pdp-gallery{position:sticky;top:76px} }

/* gallery carousel */
.gal{position:relative}
.gal .stage{position:relative;aspect-ratio:4/5;border-radius:5px;overflow:hidden;background:var(--surface-1)}
.gal .stage::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 90px 14px rgba(0,0,0,.45);pointer-events:none}
.gal .slide{position:absolute;inset:0;opacity:0;transition:opacity .35s var(--ease)}
.gal .slide.on{opacity:1}
.gal .slide img,.gal .slide video{width:100%;height:100%;object-fit:cover}
.gal .slide.contain img,.gal .slide.gv-art img{object-fit:contain;background:#0a0a0c}
.gal .slide.gv-wall img{object-fit:cover;background:#0a0a0c}   /* real in-situ room photo — fill the frame */
.gal .slide.gv-wall canvas{width:100%;height:100%;object-fit:cover;display:block;background:#0a0a0c}   /* to-scale composite */
/* scale-guide slide (code SVG — artwork drawn to scale in a room) */
.gal .slide.gv-size{background:#101318}
.scalebox{position:absolute;inset:0}
.scalebox svg{display:block;width:100%;height:100%}
.gal .nav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;border:1px solid var(--rule);
  background:rgba(6,6,7,.5);backdrop-filter:blur(6px);color:var(--bone);font-size:16px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:3}
.gal .nav.prev{left:10px} .gal .nav.next{right:10px}
.gal .dots{display:flex;gap:7px;justify-content:center;margin-top:12px}
.gal .dots i{width:7px;height:7px;border-radius:50%;background:var(--disabled);cursor:pointer;transition:background .2s}
.gal .dots i.on{background:var(--brass)}
.gal .play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:2}
.gal .play span{width:58px;height:58px;border-radius:50%;border:1px solid var(--rule);background:rgba(6,6,7,.5);backdrop-filter:blur(6px);
  display:flex;align-items:center;justify-content:center;color:var(--brass-hi);font-size:15px;padding-left:4px}
/* two-track gallery: slide label + frame-colour disclosure */
.slbl{position:absolute;left:12px;bottom:12px;z-index:4;font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--bone);background:rgba(6,6,7,.55);backdrop-filter:blur(6px);padding:5px 9px;border-radius:3px}
.frame-note{margin-top:12px;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.04em;line-height:1.6;color:var(--mute);
  border-left:2px solid var(--brass);padding:6px 0 6px 12px;text-transform:none}
/* gallery view toggle — Artwork / On the wall / Size */
.galtoggle{display:flex;gap:8px;margin-bottom:12px;max-width:440px}
.galtoggle .gt-b{flex:1;min-height:40px;padding:9px 8px;background:var(--surface-2);border:1px solid var(--rule-soft);border-radius:4px;cursor:pointer;white-space:nowrap;
  font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--mute);transition:border-color .2s,color .2s}
.galtoggle .gt-b.on{border-color:var(--brass);color:var(--brass-hi);box-shadow:inset 0 0 0 1px var(--brass)}
.galtoggle .gt-b:hover{color:var(--text)}
/* room-switcher — "different places" pills over the wall image */
.gal .slide.gv-wall .galrooms{position:absolute;left:0;right:0;bottom:13px;display:flex;gap:7px;justify-content:center;z-index:3}
.galrooms .rmpill{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.06em;padding:7px 14px;border-radius:20px;
  background:rgba(9,9,11,.52);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);border:1px solid var(--rule-soft);color:var(--mute);cursor:pointer;transition:border-color .2s,color .2s}
.galrooms .rmpill.on{border-color:var(--brass);color:var(--brass-hi)}
.galrooms .rmpill:hover{color:var(--text)}

/* buy column */
.buy{max-width:520px}
@media(max-width:959px){ .buy{margin-top:24px} }
.pdp .eyebrow{display:block;margin-bottom:10px}
.pdp-title{font-family:'Fraunces',serif;font-weight:460;font-size:clamp(28px,7vw,46px);color:#f1ebdd;letter-spacing:-.02em;line-height:1.05;margin-bottom:12px}
.cnote{font-family:'Newsreader',serif;font-style:italic;font-size:clamp(16px,2vw,18px);line-height:1.55;color:var(--text);margin-bottom:8px}
.cnote-by{font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute-2);margin-bottom:22px}
.proof{display:flex;flex-wrap:wrap;gap:6px 14px;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--mute);padding:13px 0;border-top:1px solid var(--rule-soft);border-bottom:1px solid var(--rule-soft)}
.proof .dot{color:var(--brass)}
.price{font-family:'Fraunces',serif;font-weight:500;font-size:clamp(24px,5vw,32px);color:#f1ebdd;margin:20px 0 2px;min-height:1.1em}
.price .sub{display:block;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);font-weight:400;margin-top:5px}

/* variant chips */
.vgroup{margin-top:18px}
.vgroup>label{display:flex;justify-content:space-between;align-items:baseline;font-family:'JetBrains Mono',monospace;font-size:10px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-bottom:9px}
.vgroup>label .help{color:var(--brass);cursor:pointer}
.chips{display:flex;flex-wrap:wrap;gap:9px}
/* size-band sub-headers (S/M/L/XL) — keeps a long size list tidy */
.vgroup .subhead{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--mute-2);margin:12px 0 7px}
.vgroup .subhead:first-of-type{margin-top:2px}
.vgroup .subhead + .chips{margin-bottom:2px}
.chip{position:relative;min-height:44px;display:flex;flex-direction:column;justify-content:center;gap:2px;flex:1 1 auto;
  background:var(--surface-2);border:1px solid var(--rule-soft);border-radius:4px;padding:8px 13px;cursor:pointer;transition:border-color .2s,background .2s}
.chip b{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.04em;color:var(--text);font-weight:500}
.chip span{font-family:'Newsreader',serif;font-size:11.5px;font-style:italic;color:var(--mute)}
.chip:hover{border-color:var(--rule)}
.chip.sel{border-color:var(--brass);box-shadow:inset 0 0 0 1px var(--brass)}
.chip.sel b{color:var(--brass-hi)}
.chip.dis{opacity:.4;cursor:not-allowed;text-decoration:line-through}
.chip.dis:hover{border-color:var(--rule-soft)}
.chip .sw{width:18px;height:18px;border-radius:3px;border:1px solid rgba(255,255,255,.14);display:inline-block;margin-bottom:3px}
.chips.swrow .chip{flex-direction:row;align-items:center;gap:9px}
.chips.swrow .chip span{font-style:normal;font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase}

/* buy button + reassurance */
.buy-btn{width:100%;justify-content:center;margin-top:24px;min-height:52px;font-size:12.5px}
.reassure{font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);text-align:center;margin-top:11px}
.reassure .dot{color:var(--brass)}

/* trust row under ATC */
.trust{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px}
.trust .cell{border:1px solid var(--rule-soft);border-radius:5px;background:var(--surface);padding:13px 14px}
.trust .cell .ic{color:var(--brass);font-size:14px;margin-bottom:6px}
.trust .cell b{display:block;font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text);font-weight:500;line-height:1.55}
.pays{display:flex;gap:8px;align-items:center;justify-content:center;margin-top:14px;color:var(--mute-2);font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;flex-wrap:wrap}
.pays .pl{padding:3px 7px;border:1px solid var(--rule-soft);border-radius:3px}

/* PDP lower sections */
.pdp-lower{max-width:var(--wrap);margin:0 auto;padding:0 clamp(16px,5vw,40px)}
.block{max-width:680px;margin:0 auto;padding:clamp(40px,7vh,72px) 0;border-top:1px solid var(--rule-soft)}
.block h2{font-family:'Fraunces',serif;font-weight:500;font-size:clamp(24px,3.4vw,32px);color:#efe9db;margin:0 0 16px;letter-spacing:-.01em}
.block h3{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--brass);margin:26px 0 8px}
.block p{color:var(--text);margin:0 0 16px;line-height:1.7}
.block .size-read{font-family:'JetBrains Mono',monospace;font-size:13px;letter-spacing:.06em;color:var(--brass-hi);margin:8px 0 18px}
.block .size-room{position:relative;border-radius:5px;overflow:hidden;background:#101318;max-width:440px;margin:0 auto;aspect-ratio:4/5;border:1px solid var(--rule-soft)}
.block .size-room svg{display:block;width:100%;height:100%}
.block .size-room img{display:block;width:100%;height:100%;object-fit:cover}   /* real room photo */
.block .size-room canvas{display:block;width:100%;height:100%;object-fit:cover}   /* to-scale composite */
.acc{border-top:1px solid var(--rule-soft)}
.acc details{border-bottom:1px solid var(--rule-soft)}
.acc summary{cursor:pointer;list-style:none;padding:16px 0;font-family:'Newsreader',serif;font-size:17px;color:#e7e1d4;display:flex;justify-content:space-between;align-items:center}
.acc summary::-webkit-details-marker{display:none}
.acc summary .pm{color:var(--brass);font-family:'JetBrains Mono',monospace;font-size:16px}
.acc details[open] summary .pm{transform:rotate(45deg)}
.acc p{padding:0 0 16px;font-size:15.5px;color:var(--mute)}
.crosssell{display:flex;gap:16px;align-items:center;border:1px solid var(--rule-soft);border-radius:6px;background:var(--surface-1);padding:14px;max-width:480px}
.crosssell img{width:84px;height:104px;object-fit:cover;border-radius:3px;flex:0 0 auto}
.crosssell .x b{font-family:'Fraunces',serif;font-size:19px;color:#efe9db;display:block}
.crosssell .x .px{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin:4px 0 8px}

/* email capture inline */
.ecap{border:1px solid var(--rule);border-radius:6px;background:var(--surface-1);padding:26px 22px;text-align:center;max-width:520px;margin:0 auto}
.ecap h3{font-family:'Fraunces',serif;font-weight:500;font-size:clamp(20px,3vw,26px);color:#efe9db;margin:0 0 8px}
.ecap p{color:var(--mute);font-size:15px;margin:0 0 16px}
.ecap form{display:flex;gap:9px;flex-wrap:wrap}
.ecap input{flex:1 1 180px}
.ecap .btn{flex:0 0 auto}
.ecap .decline{display:block;margin-top:12px;font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute-2);background:none;border:none;cursor:pointer}
.gallink{display:block;text-align:center;margin-top:28px;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute)}
.gallink:hover{color:var(--brass);border:none}

/* ============ STICKY MOBILE BUY BAR ============ */
.sticky{position:fixed;left:0;right:0;bottom:0;z-index:40;background:rgba(18,20,25,.86);backdrop-filter:blur(14px);
  border-top:1px solid var(--rule);transform:translateY(110%);transition:transform .26s var(--ease);
  padding:10px clamp(12px,4vw,20px) calc(10px + env(safe-area-inset-bottom))}
.sticky.show{transform:none}
.sticky .in{max-width:var(--wrap);margin:0 auto;display:flex;align-items:center;gap:12px}
.sticky img{width:42px;height:52px;object-fit:cover;border-radius:3px;flex:0 0 auto}
.sticky .info{flex:1 1 auto;min-width:0}
.sticky .info b{display:block;font-family:'Fraunces',serif;font-size:16px;color:#f1ebdd;line-height:1.1}
.sticky .info small{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.sticky .btn{flex:0 0 auto;padding:13px 20px;min-height:46px}
@media(min-width:960px){ .sticky{display:none} }

/* ============ CART DRAWER ============ */
.scrim-bg{position:fixed;inset:0;background:rgba(3,3,4,.66);backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:opacity .25s;z-index:50}
.scrim-bg.show{opacity:1;visibility:visible}
.drawer{position:fixed;top:0;right:0;height:100%;width:min(420px,92vw);background:var(--surface-2);border-left:1px solid var(--rule);
  z-index:55;transform:translateX(100%);transition:transform .3s var(--ease);display:flex;flex-direction:column}
.drawer.show{transform:none}
.drawer .dh{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--rule-soft)}
.drawer .dh b{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--text)}
.drawer .dh .x{background:none;border:none;color:var(--mute);font-size:20px;cursor:pointer}
.drawer .items{flex:1 1 auto;overflow-y:auto;padding:8px 20px}
.drawer .empty{color:var(--mute);text-align:center;padding:60px 20px;font-family:'Newsreader',serif;font-style:italic}
.citem{display:flex;gap:13px;padding:16px 0;border-bottom:1px solid var(--rule-soft)}
.citem img{width:60px;height:76px;object-fit:cover;border-radius:3px;flex:0 0 auto}
.citem .ci{flex:1 1 auto;min-width:0}
.citem .ci b{font-family:'Fraunces',serif;font-size:17px;color:#efe9db;display:block}
.citem .ci small{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);display:block;margin:3px 0 6px}
.citem .ci .rm{background:none;border:none;color:var(--mute-2);font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;padding:0}
.citem .ci .rm:hover{color:var(--brass)}
.citem .pq{text-align:right;font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--text)}
.drawer .df{padding:18px 20px calc(20px + env(safe-area-inset-bottom));border-top:1px solid var(--rule)}
.drawer .df .tot{display:flex;justify-content:space-between;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text);margin-bottom:14px}
.drawer .df .tot b{color:#f1ebdd}
.drawer .df .btn{width:100%;justify-content:center}
.drawer .df .note{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute-2);text-align:center;margin-top:10px}

/* toast */
.toast{position:fixed;left:50%;bottom:84px;transform:translateX(-50%) translateY(20px);opacity:0;z-index:60;
  background:var(--surface-3);border:1px solid var(--rule);border-radius:4px;padding:11px 18px;
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text);transition:opacity .25s,transform .25s;pointer-events:none}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ============ HEADER: country switcher ============ */
.headnav .loc-switch{position:relative;display:inline-flex}
.loc-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:none;cursor:pointer;
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);transition:color .2s}
.loc-btn:hover{color:var(--text)}
.loc-btn .cy{color:var(--brass)}
.loc-menu{position:absolute;top:calc(100% + 14px);right:0;min-width:216px;background:var(--surface-2);border:1px solid var(--rule);
  border-radius:6px;box-shadow:0 18px 44px rgba(0,0,0,.55);padding:6px;opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .18s var(--ease),transform .18s var(--ease);z-index:60}
.loc-menu.show{opacity:1;visibility:visible;transform:none}
.loc-opt{display:flex;align-items:center;gap:10px;width:100%;background:none;border:none;cursor:pointer;padding:9px 10px;border-radius:4px;
  text-align:left;transition:background .15s}
.loc-opt:hover{background:var(--surface-3)}
.loc-opt .fl{font-size:15px;line-height:1}
.loc-opt .nm{flex:1 1 auto;font-family:'Newsreader',serif;font-size:14px;font-style:normal;color:var(--text)}
.loc-opt .cur{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.1em;color:var(--mute)}
.loc-opt.on{background:var(--surface-3)}
.loc-opt.on .nm{color:var(--brass-hi)}
.loc-opt.on .cur{color:var(--brass)}

/* ============ HEADER: account button ============ */
.acct-btn{background:none;border:none;cursor:pointer;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--mute);transition:color .2s}
.acct-btn:hover{color:var(--text)}

/* ============ ACCOUNT MODAL ============ */
.acct-scrim{position:fixed;inset:0;background:rgba(3,3,4,.66);backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:opacity .25s;z-index:65}
.acct-scrim.show{opacity:1;visibility:visible}
.acct-modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-46%);width:min(400px,92vw);background:var(--surface-2);
  border:1px solid var(--rule);border-radius:8px;z-index:70;padding:30px 26px 26px;opacity:0;visibility:hidden;
  box-shadow:0 30px 70px rgba(0,0,0,.6);transition:opacity .22s var(--ease),transform .22s var(--ease)}
.acct-modal.show{opacity:1;visibility:visible;transform:translate(-50%,-50%)}
.acct-modal .ax{position:absolute;top:11px;right:14px;background:none;border:none;color:var(--mute);font-size:22px;line-height:1;cursor:pointer}
.acct-modal .ax:hover{color:var(--text)}
.acct-tabs{display:flex;gap:8px;margin-bottom:20px}
.acct-tabs .at-b{flex:1;min-height:40px;background:var(--surface);border:1px solid var(--rule-soft);border-radius:4px;cursor:pointer;
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);transition:border-color .2s,color .2s}
.acct-tabs .at-b.on{border-color:var(--brass);color:var(--brass-hi);box-shadow:inset 0 0 0 1px var(--brass)}
.acct-form{display:flex;flex-direction:column;gap:13px}
.acct-form .af-row{display:flex;flex-direction:column;gap:6px;margin:0}
.acct-form .af-row span{font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.acct-form .btn{width:100%;justify-content:center;margin-top:4px}
.af-err{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.03em;color:#d98a6a;text-align:center;margin:0}
.af-guest{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute-2);text-align:center;margin-top:18px}
.acct-hi{font-family:'Newsreader',serif;font-size:16px;color:var(--text);text-align:center;line-height:1.7;margin-bottom:20px}
.acct-hi b{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.06em;color:var(--brass-hi)}
.btn.ghost{background:none;border:1px solid var(--rule);color:var(--text);width:100%;justify-content:center}
.btn.ghost:hover{border-color:var(--brass);color:var(--brass-hi)}
