/* ===========================================================
   GRYM — shared design system
   Type:  Syne (display) · Archivo (body) · DM Mono (labels)
   Colour: paper #ECECE8 · ink #0A0A0A · acid-lime #C8FF1E
   =========================================================== */

:root{
  --paper:#ECECE8;
  --ink:#0A0A0A;
  --concrete:#B9B9B2;
  --concrete-soft:#D5D5CE;
  --lime:#C8FF1E;
  --grid:rgba(10,10,10,0.055);
  --grid-strong:rgba(10,10,10,0.10);
  --grid-paper:rgba(236,236,232,0.06);
  --hair:#0A0A0A;
  --syne:'Syne',sans-serif;
  --body:'Archivo',sans-serif;
  --mono:'DM Mono','ui-monospace',monospace;
  --ease:cubic-bezier(0.22,1,0.36,1);
}

*{margin:0;padding:0;box-sizing:border-box;}
/* clip (not hidden) keeps position:sticky working while guaranteeing no page
   can be dragged sideways once the real width offenders below are fixed */
html{scroll-behavior:smooth;overflow-x:clip;}
body{
  font-family:var(--body);
  background:var(--paper);
  color:var(--ink);
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{display:block;}
a{color:inherit;}
::selection{background:var(--lime);color:var(--ink);}

/* graph-paper grid texture */
.grid-bg{
  background-image:
    linear-gradient(to right, var(--grid) 1px, transparent 1px),
    linear-gradient(to bottom, var(--grid) 1px, transparent 1px);
  background-size:30px 30px;
}
.grid-bg-dark{
  background-image:
    linear-gradient(to right, var(--grid-paper) 1px, transparent 1px),
    linear-gradient(to bottom, var(--grid-paper) 1px, transparent 1px);
  background-size:30px 30px;
}

.mono{font-family:var(--mono);}
.syne{font-family:var(--syne);}
.label{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.18em;
  text-transform:uppercase;
}
.wrap{max-width:1600px;margin:0 auto;padding:0 40px;}
.lime-mark{background:var(--lime);padding:0 6px;}

/* ===== TOP UTILITY BAR ===== */
.topbar{border-bottom:1.5px solid var(--ink);background:var(--paper);}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;height:46px;}
.topbar .label{font-size:10.5px;letter-spacing:0.16em;}
.topbar .ticker{display:flex;gap:28px;align-items:center;}
.topbar .ticker span{display:flex;align-items:center;gap:8px;}
.dot-live{width:7px;height:7px;background:var(--lime);border:1px solid var(--ink);display:inline-block;animation:blink 2.4s steps(1) infinite;}
@keyframes blink{0%,70%{opacity:1;}71%,100%{opacity:.25;}}

/* ===== NAV ===== */
.gnav{border-bottom:1.5px solid var(--ink);position:sticky;top:0;z-index:60;background:var(--paper);}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:64px;}
.nav-mark{font-family:var(--syne);font-weight:800;font-size:24px;letter-spacing:-0.02em;text-decoration:none;color:var(--ink);}
.nav-links{display:flex;gap:34px;}
.nav-links a{
  font-family:var(--mono);font-size:12px;letter-spacing:0.08em;
  text-transform:uppercase;color:var(--ink);text-decoration:none;
  position:relative;padding-bottom:2px;
}
.nav-links a::after{
  content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;background:var(--lime);
  transition:width .28s var(--ease);
}
.nav-links a:hover::after,.nav-links a[aria-current="page"]::after{width:100%;}
.nav-links a[aria-current="page"]{font-weight:500;}
.nav-right{display:flex;align-items:center;gap:18px;}
.nav-cta{
  font-family:var(--mono);font-size:12px;letter-spacing:0.08em;text-transform:uppercase;
  background:var(--ink);color:var(--paper);padding:11px 18px;text-decoration:none;
  border:1.5px solid var(--ink);transition:background .2s ease,color .2s ease;
}
.nav-cta:hover{background:var(--lime);color:var(--ink);}
.nav-cart{
  font-family:var(--mono);font-size:12px;letter-spacing:0.08em;text-transform:uppercase;
  background:none;border:1.5px solid var(--ink);color:var(--ink);padding:11px 14px;cursor:pointer;
  display:flex;align-items:center;gap:8px;transition:background .2s,color .2s;
}
.nav-cart:hover{background:var(--ink);color:var(--paper);}
.nav-cart .count{background:var(--lime);color:var(--ink);min-width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;border:1px solid var(--ink);}
.nav-burger{display:none;background:none;border:1.5px solid var(--ink);width:42px;height:42px;cursor:pointer;flex-direction:column;gap:5px;align-items:center;justify-content:center;}
.nav-burger span{width:18px;height:1.5px;background:var(--ink);display:block;}

/* ===== BUTTONS ===== */
.btn-lime{
  display:block;width:100%;text-align:center;
  background:var(--lime);color:var(--ink);border:1.5px solid var(--ink);
  font-family:var(--mono);font-size:14px;letter-spacing:0.14em;text-transform:uppercase;
  padding:20px;text-decoration:none;cursor:pointer;
  box-shadow:6px 6px 0 var(--ink);
  transition:transform .14s ease,box-shadow .14s ease,background .2s ease;
}
.btn-lime:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--ink);}
.btn-lime:active{transform:translate(3px,3px);box-shadow:2px 2px 0 var(--ink);}
.btn-lime.is-done{background:var(--ink);color:var(--lime);}
.btn-ghost{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:12px;letter-spacing:0.12em;text-transform:uppercase;
  background:none;border:1.5px solid var(--ink);color:var(--ink);
  padding:14px 22px;text-decoration:none;cursor:pointer;
  transition:background .2s ease,color .2s ease;
}
.btn-ghost:hover{background:var(--lime);}
.btn-sub{font-family:var(--mono);font-size:11px;letter-spacing:0.1em;text-transform:uppercase;text-align:center;margin-top:14px;opacity:.55;}

/* underline-draw text link */
.tlink{
  font-family:var(--mono);font-size:12px;letter-spacing:0.1em;text-transform:uppercase;
  text-decoration:none;color:var(--ink);position:relative;padding-bottom:3px;display:inline-block;
}
.tlink::after{content:"";position:absolute;left:0;bottom:0;height:1.5px;width:0;background:var(--ink);transition:width .3s var(--ease);}
.tlink:hover::after{width:100%;}

/* ===== CHIPS (size / filter) ===== */
.chip{
  font-family:var(--mono);font-size:13px;letter-spacing:0.06em;
  background:var(--paper);border:1.5px solid var(--ink);color:var(--ink);
  padding:12px 16px;cursor:pointer;position:relative;
  transition:background .16s ease,color .16s ease,transform .12s ease;
  text-transform:uppercase;
}
.chip:hover{background:var(--ink);color:var(--paper);}
.chip[aria-pressed="true"],.chip.selected{background:var(--lime);color:var(--ink);}
.chip[aria-pressed="true"]:hover,.chip.selected:hover{background:var(--lime);color:var(--ink);}
.chip:disabled,.chip.soldout{
  background:repeating-linear-gradient(135deg,transparent 0 5px,rgba(10,10,10,0.10) 5px 6px);
  color:var(--concrete);border-color:var(--concrete);cursor:not-allowed;text-decoration:line-through;
}
.chip:disabled:hover,.chip.soldout:hover{background:repeating-linear-gradient(135deg,transparent 0 5px,rgba(10,10,10,0.10) 5px 6px);color:var(--concrete);}

/* badges */
.badge-sold{
  font-family:var(--mono);font-size:10px;letter-spacing:0.16em;text-transform:uppercase;
  background:var(--ink);color:var(--paper);padding:5px 10px;display:inline-block;
}
.badge-low{
  font-family:var(--mono);font-size:10px;letter-spacing:0.16em;text-transform:uppercase;
  background:var(--lime);color:var(--ink);border:1px solid var(--ink);padding:4px 9px;display:inline-block;
}

/* ===== COUNTDOWN ===== */
.countdown{display:flex;gap:0;font-family:var(--syne);}
.cd-cell{display:flex;flex-direction:column;align-items:center;min-width:74px;padding:0 4px;}
.cd-cell .n{font-weight:800;font-size:clamp(30px,3vw,52px);line-height:1;letter-spacing:-0.03em;font-variant-numeric:tabular-nums;}
.cd-cell .u{font-family:var(--mono);font-size:10px;letter-spacing:0.16em;text-transform:uppercase;opacity:.55;margin-top:8px;}
.cd-sep{font-family:var(--syne);font-weight:800;font-size:clamp(30px,3vw,52px);line-height:1;opacity:.3;align-self:flex-start;}

/* ===== MARQUEE ===== */
.marquee{border-bottom:1.5px solid var(--ink);background:var(--ink);color:var(--paper);overflow:hidden;}
.marquee.lime{background:var(--lime);color:var(--ink);border-top:1.5px solid var(--ink);}
.marquee-track{display:flex;width:max-content;animation:marq 40s linear infinite;}
.marquee.fast .marquee-track{animation-duration:26s;}
.marquee:hover .marquee-track{animation-play-state:paused;}
.marquee-row{
  display:flex;align-items:center;white-space:nowrap;
  font-family:var(--mono);font-size:13px;letter-spacing:0.14em;text-transform:uppercase;height:52px;
}
.marquee-row .item{padding:0 30px;display:flex;align-items:center;gap:30px;}
.marquee-row .sep{color:var(--lime);}
.marquee.lime .marquee-row .sep{color:var(--ink);}
.marquee-word{
  font-family:var(--syne);font-weight:800;font-size:64px;letter-spacing:-0.04em;line-height:1;
  padding:18px 0;display:flex;align-items:center;
}
.marquee-word .item{padding:0 34px;display:flex;align-items:center;gap:34px;}
.marquee-word .dot{width:14px;height:14px;background:var(--lime);border-radius:999px;}
.marquee.lime .marquee-word .dot{background:var(--ink);}
@keyframes marq{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ===== FOOTER ===== */
.gfoot{background:var(--ink);color:var(--paper);}
.foot-top{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid #23231c;}
.foot-col{padding:48px 40px;border-right:1px solid #23231c;}
.foot-col:last-child{border-right:none;}
.foot-col h4{font-family:var(--mono);font-size:11px;letter-spacing:0.16em;text-transform:uppercase;opacity:.5;margin-bottom:20px;}
.foot-col a{display:block;color:var(--paper);text-decoration:none;font-family:var(--body);font-size:16px;margin-bottom:11px;opacity:.85;transition:color .2s,opacity .2s,padding-left .2s;}
.foot-col a:hover{color:var(--lime);opacity:1;padding-left:6px;}
.foot-note{font-family:var(--mono);font-size:12px;line-height:1.6;opacity:.7;margin-bottom:14px;}
.foot-news{display:flex;border:1.5px solid var(--paper);margin-top:6px;}
.foot-news input{flex:1;background:none;border:none;color:var(--paper);font-family:var(--mono);font-size:12px;padding:13px;letter-spacing:0.06em;}
.foot-news input::placeholder{color:rgba(236,236,232,.4);}
.foot-news input:focus{outline:none;}
.foot-news button{background:var(--lime);color:var(--ink);border:none;font-family:var(--mono);font-size:14px;padding:0 18px;cursor:pointer;font-weight:500;transition:filter .2s;}
.foot-news button:hover{filter:brightness(.92);}
.foot-word{
  font-family:var(--syne);font-weight:800;
  font-size:clamp(120px,30vw,620px);line-height:0.72;letter-spacing:-0.06em;
  text-align:center;padding:30px 0 0;user-select:none;white-space:nowrap;overflow:hidden;
}
.foot-legal{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;
  border-top:1px solid #23231c;padding:22px 0;
  font-family:var(--mono);font-size:11px;letter-spacing:0.1em;text-transform:uppercase;opacity:.6;
}

/* ===== CART DRAWER ===== */
.cart-scrim{position:fixed;inset:0;background:rgba(10,10,10,0.5);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;z-index:90;}
.cart-scrim.open{opacity:1;visibility:visible;}
.cart-drawer{
  position:fixed;top:0;right:0;height:100%;width:min(440px,92vw);
  background:var(--paper);border-left:1.5px solid var(--ink);z-index:100;
  transform:translateX(100%);transition:transform .42s var(--ease);
  display:flex;flex-direction:column;
}
.cart-drawer.open{transform:translateX(0);}
.cart-head{display:flex;align-items:center;justify-content:space-between;padding:24px 28px;border-bottom:1.5px solid var(--ink);}
.cart-head h3{font-family:var(--syne);font-weight:800;font-size:24px;letter-spacing:-0.02em;}
.cart-close{background:none;border:none;font-family:var(--mono);font-size:22px;cursor:pointer;line-height:1;color:var(--ink);}
.cart-body{flex:1;overflow-y:auto;padding:8px 28px;}
.cart-empty{font-family:var(--mono);font-size:13px;letter-spacing:0.04em;opacity:.5;padding:60px 0;text-align:center;text-transform:uppercase;}
.cart-line{display:grid;grid-template-columns:74px 1fr auto;gap:16px;align-items:center;padding:20px 0;border-bottom:1px solid var(--concrete);}
.cart-line img{width:74px;height:74px;object-fit:cover;border:1.5px solid var(--ink);}
.cart-line .cl-name{font-family:var(--syne);font-weight:700;font-size:16px;letter-spacing:-0.01em;}
.cart-line .cl-meta{font-family:var(--mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;opacity:.55;margin-top:5px;}
.cart-line .cl-price{font-family:var(--mono);font-size:14px;}
.cart-foot{padding:24px 28px;border-top:1.5px solid var(--ink);}
.cart-total{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:18px;font-family:var(--mono);font-size:13px;letter-spacing:0.08em;text-transform:uppercase;}
.cart-total b{font-family:var(--syne);font-size:30px;letter-spacing:-0.02em;}
.cart-note{font-family:var(--mono);font-size:10.5px;letter-spacing:0.06em;text-transform:uppercase;text-align:center;opacity:.5;margin-top:12px;}

/* toast */
.toast{
  position:fixed;left:50%;bottom:34px;transform:translateX(-50%) translateY(140%);
  background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:12px;letter-spacing:0.1em;text-transform:uppercase;
  padding:16px 24px;z-index:120;border:1.5px solid var(--lime);transition:transform .4s var(--ease);
  display:flex;align-items:center;gap:12px;
}
.toast.show{transform:translateX(-50%) translateY(0);}
.toast .tick{width:9px;height:9px;background:var(--lime);}

/* ===== SCROLL REVEAL ===== */
[data-reveal]{opacity:0;transform:translateY(16px);transition:opacity .55s var(--ease),transform .55s var(--ease);}
[data-reveal].is-visible{opacity:1;transform:none;}

/* ===== MOBILE NAV PANEL ===== */
.mnav{position:fixed;inset:0;background:var(--paper);z-index:95;transform:translateY(-100%);transition:transform .42s var(--ease);display:flex;flex-direction:column;padding:90px 28px 28px;}
.mnav.open{transform:translateY(0);}
.mnav a{font-family:var(--syne);font-weight:800;font-size:38px;letter-spacing:-0.03em;text-decoration:none;color:var(--ink);padding:14px 0;border-bottom:1px solid var(--concrete);}
.mnav a:last-of-type{border-bottom:none;}
/* close control — sits where the hamburger is, min 44x44 tap target */
.mnav-close{position:absolute;top:51px;right:22px;width:44px;height:44px;background:none;border:1.5px solid var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;}
.mnav-close::before,.mnav-close::after{content:"";position:absolute;width:20px;height:1.5px;background:var(--ink);}
.mnav-close::before{transform:rotate(45deg);}
.mnav-close::after{transform:rotate(-45deg);}
.mnav-close:hover{background:var(--lime);}

/* ===== RESPONSIVE (shared chrome) ===== */
@media(max-width:1080px){
  .foot-top{grid-template-columns:1fr 1fr;}
  .foot-col{border-bottom:1px solid #23231c;}
}
@media(max-width:760px){
  .wrap{padding:0 22px;}
  .nav-links{display:none;}
  .nav-cta{display:none;}
  .nav-burger{display:flex;}
  .topbar .ticker span:nth-child(2){display:none;}
  .foot-top{grid-template-columns:1fr;}
  /* shrink the countdown so the four cells + separators never push past the
     side margins inside their (now full-width) containers */
  .cd-cell{min-width:0;padding:0 3px;}
  .cd-cell .n,.cd-sep{font-size:clamp(26px,7vw,42px);}
  /* the giant footer wordmark must fit within the margins, no letter clipped */
  .foot-word{font-size:clamp(64px,20vw,620px);}
}

@media (prefers-reduced-motion: reduce){
  *{scroll-behavior:auto !important;}
  [data-reveal]{opacity:1 !important;transform:none !important;}
  .marquee-track{animation:none !important;}
  .dot-live{animation:none !important;}
}

/* ===== FAQ / two-column accordion (shared across pages) ===== */
.faq{border-bottom:1.5px solid var(--ink);}
.faq .wrap{padding-top:66px;padding-bottom:66px;}
.faq-grid{display:grid;grid-template-columns:38% 1fr;gap:64px;align-items:start;}
.faq-aside{position:sticky;top:84px;align-self:start;}
.faq-aside h2{font-family:var(--syne);font-weight:800;font-size:clamp(34px,3vw,46px);letter-spacing:-0.03em;line-height:0.92;margin-bottom:18px;}
.faq-aside .label{opacity:.6;line-height:1.8;}
.faq-list{border-top:1.5px solid var(--ink);}
.faq-item{border-bottom:1px solid var(--concrete);}
.faq-item:last-child{border-bottom:none;}
.faq-q{
  width:100%;background:none;border:none;cursor:pointer;text-align:left;
  display:flex;align-items:flex-start;gap:18px;padding:24px 18px;
  font-family:var(--syne);font-weight:700;font-size:clamp(18px,1.5vw,23px);
  letter-spacing:-0.01em;line-height:1.22;color:var(--ink);
}
.faq-q .num{font-family:var(--mono);font-size:12px;letter-spacing:0.1em;opacity:.4;font-weight:400;min-width:28px;padding-top:5px;flex:0 0 auto;}
.faq-q .q-text{flex:1 1 auto;min-width:0;overflow-wrap:break-word;}
.faq-q .sign{flex:0 0 auto;font-family:var(--mono);font-size:24px;transition:transform .3s var(--ease);line-height:1;padding-top:1px;}
.faq-item.open .faq-q .sign{transform:rotate(45deg);}
.faq-item.open .faq-q{background:var(--lime);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .42s var(--ease);}
.faq-a-inner{padding:0 18px 28px 64px;font-family:var(--body);font-size:16px;line-height:1.65;color:#26261f;overflow-wrap:break-word;}
.faq-item.open .faq-a{max-height:480px;}
@media(max-width:860px){
  .faq-grid{grid-template-columns:1fr;gap:30px;}
  .faq-aside{position:static;}
  .faq-a-inner{padding-left:46px;}
}
@media(max-width:520px){
  .faq-q{padding:20px 10px;gap:12px;}
  .faq-a-inner{padding:0 10px 24px 40px;}
  .faq-item.open .faq-a{max-height:640px;}
}
