/* ================= CRAFT DRYWALL — dark / square / editorial-industrial ================= */
@import url('https://fonts.googleapis.com/css2?family=Anton&family=Archivo:wght@400;500;600;700;800;900&family=Archivo+Narrow:wght@600;700&family=JetBrains+Mono:wght@400;500;700&display=swap');

:root{
  --paper:#0b0b0c;      /* page background (black) */
  --paper-2:#161619;    /* raised dark panels */
  --ink:#f5f4f1;        /* primary text (near-white) */
  --ink-2:#c9c9c5;      /* secondary text */
  --grey:#9c9c98;       /* muted labels */
  --grey-2:#7d7d79;
  --line:#333336;       /* structural grid borders */
  --line-2:#46464a;
  --hair:#242427;
  --white:#f5f4f1;
  --black:#0b0b0c;
  --max:1240px;
  --pad:clamp(20px,5vw,72px);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:'Archivo',system-ui,sans-serif;
  color:var(--ink);
  background:var(--paper);
  font-size:17.5px;
  line-height:1.58;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}

/* photos now full colour */
.mono{filter:none}

/* ---------- type ---------- */
.display{font-family:'Anton',sans-serif;font-weight:400;text-transform:uppercase;line-height:.92;letter-spacing:.5px}
.narrow{font-family:'Archivo Narrow',sans-serif}
.mono-lbl{font-family:'JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.26em;font-size:12.5px;font-weight:500}

/* ---------- layout ---------- */
.wrap{max-width:var(--max);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.rule{border:none;border-top:2px solid var(--line)}
section{position:relative}

/* ---------- buttons (hard square) ---------- */
.btn{
  display:inline-flex;align-items:center;gap:12px;
  font-family:'JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.16em;
  font-size:13px;font-weight:700;
  padding:19px 28px;border:2px solid var(--white);background:var(--white);color:var(--black);
  border-radius:0;cursor:pointer;transition:background .18s,color .18s,transform .08s;
}
.btn:hover{background:transparent;color:var(--white)}
.btn:active{transform:translateY(1px)}
.btn--ghost{background:transparent;color:var(--white)}
.btn--ghost:hover{background:var(--white);color:var(--black)}
.btn .arw{font-size:16px;line-height:1;transition:transform .18s}
.btn:hover .arw{transform:translateX(4px)}

/* ---------- top bar (inverted white strip) ---------- */
.topbar{background:var(--white);color:var(--black);font-family:'JetBrains Mono',monospace;
  font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:500}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;height:42px}
.topbar a{border-bottom:1px solid transparent}
.topbar a:hover{border-color:var(--black)}
.topbar .dot{opacity:.45;margin:0 10px}

/* ---------- nav ---------- */
.nav{position:sticky;top:0;z-index:50;background:rgba(11,11,12,.86);backdrop-filter:blur(10px);border-bottom:2px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:112px}
.brand{display:flex;align-items:center;gap:18px}
.brand .lg{height:92px;width:auto;transition:transform .25s}
.brand:hover .lg{transform:scale(1.04)}
.brand-tag{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--grey);
  line-height:1.9;padding-left:18px;border-left:2px solid var(--line)}
.navlinks{display:flex;align-items:center;gap:4px}
.navlinks a{font-family:'JetBrains Mono',monospace;font-size:13.5px;letter-spacing:.12em;text-transform:uppercase;
  padding:11px 15px;color:var(--ink);position:relative}
.navlinks a:not(.callnav)::after{content:"";position:absolute;left:15px;right:15px;bottom:6px;height:2px;background:var(--white);transform:scaleX(0);transform-origin:left;transition:transform .22s}
.navlinks a:not(.callnav):hover::after{transform:scaleX(1)}
.navlinks a.callnav{background:var(--white);color:var(--black);padding:13px 20px;font-weight:700}
.navlinks a.callnav:hover{background:transparent;color:var(--white);box-shadow:inset 0 0 0 2px var(--white)}
.burger{display:none;font-family:'JetBrains Mono',monospace;font-size:13px;border:2px solid var(--white);padding:11px 15px;text-transform:uppercase;letter-spacing:.1em;cursor:pointer}

/* ---------- hero ---------- */
.hero{border-bottom:2px solid var(--line)}
.hero .grid{display:grid;grid-template-columns:1.35fr .9fr}
.hero .left{padding:clamp(44px,6vw,96px) var(--pad) clamp(44px,6vw,86px);border-right:2px solid var(--line)}
.hero .kicker{display:flex;align-items:center;gap:14px;color:var(--grey);margin-bottom:30px}
.hero .kicker span:first-child{height:1px;width:56px;background:var(--white);display:inline-block;flex:none}
.hero h1{font-family:'Anton',sans-serif;text-transform:uppercase;line-height:.92;letter-spacing:.5px;
  font-size:clamp(48px,7.4vw,98px)}
.hero h1 em{font-style:normal;-webkit-text-stroke:2px var(--white);color:transparent}
.hero .sub{max-width:46ch;margin-top:30px;font-size:19px;color:var(--ink-2)}
.hero .cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:40px}
.hero .right{position:relative;display:flex;flex-direction:column;justify-content:center;background:#0e0e10;padding:clamp(40px,4.4vw,68px);overflow:hidden}
.hero .right::before{content:"1996";position:absolute;right:-5%;bottom:-9%;font-family:'Anton',sans-serif;
  font-size:clamp(150px,22vw,310px);line-height:.8;color:transparent;-webkit-text-stroke:2px rgba(245,244,241,.06);
  pointer-events:none;letter-spacing:2px}
.statement{position:relative;z-index:1}
.statement .mono-lbl{color:var(--grey);margin-bottom:26px}
.bignum{font-family:'Anton',sans-serif;font-size:clamp(100px,13vw,180px);line-height:.84;letter-spacing:1px}
.bignum span{font-family:'Archivo',sans-serif;font-weight:800;font-size:.19em;vertical-align:super;letter-spacing:.06em;margin-left:10px;color:var(--grey)}
.stmt-lead{font-size:clamp(20px,2vw,25px);color:var(--ink);max-width:24ch;margin-top:16px;line-height:1.28;font-weight:600}
.stmt-quote{margin-top:32px;padding-top:28px;border-top:2px solid var(--line);font-family:'Archivo',sans-serif;font-style:italic;font-size:18.5px;color:var(--ink-2);max-width:28ch}
.stmt-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.stmt-tags span{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;border:1.5px solid var(--line-2);padding:8px 12px;color:var(--ink-2)}

/* stat strip */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:2px solid var(--line)}
.stats div{padding:30px var(--pad);border-right:2px solid var(--line)}
.stats div:last-child{border-right:none}
.stats b{font-family:'Anton',sans-serif;font-size:clamp(34px,4.2vw,50px);display:block;line-height:1}
.stats small{font-family:'JetBrains Mono',monospace;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--grey)}

/* ---------- marquee (inverted white strip) ---------- */
.marquee{background:var(--white);color:var(--black);overflow:hidden;border-top:2px solid var(--line);border-bottom:2px solid var(--line)}
.marquee .track{display:flex;gap:0;white-space:nowrap;animation:scroll 34s linear infinite;width:max-content}
.marquee .track span{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:24px;letter-spacing:1px;padding:18px 28px;
  display:inline-flex;align-items:center;gap:28px}
.marquee .track span::after{content:"◆";font-size:11px;opacity:.55}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- section header ---------- */
.sec{padding:clamp(56px,7vw,104px) 0}
.sechead{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:50px;flex-wrap:wrap}
.sechead .no{font-family:'JetBrains Mono',monospace;font-size:13px;letter-spacing:.2em;color:var(--grey)}
.sechead h2{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:clamp(34px,4.8vw,62px);line-height:.95;letter-spacing:.5px;margin-top:12px}
.sechead p{max-width:42ch;color:var(--ink-2);font-size:17px}

/* ---------- before/after slider ---------- */
.ba{border:2px solid var(--line);position:relative;overflow:hidden;user-select:none;aspect-ratio:3/2;background:#1a1a1d;cursor:ew-resize}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ba .after-wrap{position:absolute;inset:0;width:50%;overflow:hidden;border-right:2px solid var(--white)}
.ba .after-wrap img{height:100%;width:auto;max-width:none;object-fit:cover}
.ba .handle{position:absolute;top:0;bottom:0;left:50%;width:2px;background:var(--white);transform:translateX(-1px);pointer-events:none}
.ba .knob{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:52px;height:52px;background:var(--white);color:var(--black);border:2px solid var(--white);display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono',monospace;font-size:16px;pointer-events:none;box-shadow:0 6px 24px rgba(0,0,0,.5)}
.ba .tag{position:absolute;bottom:16px;font-family:'JetBrains Mono',monospace;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;background:var(--white);color:var(--black);padding:8px 13px;pointer-events:none;font-weight:700}
.ba .tag.b{left:16px}
.ba .tag.a{right:16px;background:transparent;color:var(--white);box-shadow:inset 0 0 0 2px var(--white)}
.ba-note{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.05em;color:var(--grey);margin-top:16px;text-align:center}

/* ---------- services ---------- */
.svc{display:grid;grid-template-columns:repeat(3,1fr);border-top:2px solid var(--line);border-left:2px solid var(--line)}
.svc .card{border-right:2px solid var(--line);border-bottom:2px solid var(--line);padding:38px 32px 44px;position:relative;background:var(--paper);transition:background .18s,color .18s}
.svc .card:hover{background:var(--white);color:var(--black)}
.svc .card .no{font-family:'JetBrains Mono',monospace;font-size:13px;letter-spacing:.2em;color:var(--grey)}
.svc .card:hover .no{color:#555}
.svc .card h3{font-family:'Archivo',sans-serif;font-weight:800;text-transform:uppercase;font-size:23px;letter-spacing:.3px;margin:18px 0 13px}
.svc .card p{font-size:16px;color:var(--ink-2)}
.svc .card:hover p{color:#2a2a2a}
.svc .card .pill{display:inline-block;margin-top:18px;font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;border:1.5px solid currentColor;padding:6px 10px}

/* ---------- split feature ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;border:2px solid var(--line);overflow:hidden}
.split .media{position:relative;min-height:440px;background:#151518}
.split .media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.split .body{padding:clamp(36px,4vw,64px);display:flex;flex-direction:column;justify-content:center}
.split .body h2{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:clamp(30px,3.8vw,48px);line-height:.98;margin:16px 0 20px}
.split .body p{color:var(--ink-2);font-size:17px;margin-bottom:15px}
.split.rev .media{order:2}

/* ---------- process ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:2px solid var(--line);border-left:2px solid var(--line)}
.steps .st{border-right:2px solid var(--line);border-bottom:2px solid var(--line);padding:34px;transition:background .18s}
.steps .st:hover{background:var(--paper-2)}
.steps .st b{font-family:'Anton',sans-serif;font-size:44px;display:block;line-height:1;color:var(--white)}
.steps .st h4{font-family:'Archivo',sans-serif;font-weight:800;text-transform:uppercase;font-size:17.5px;letter-spacing:.4px;margin:14px 0 9px}
.steps .st p{font-size:15.5px;color:var(--ink-2)}

/* ---------- contact (kept dark, consistent) ---------- */
.contact{background:#111114;color:var(--ink);border-top:2px solid var(--line)}
.contact .grid{display:grid;grid-template-columns:1fr 1fr}
.contact .lhs{padding:clamp(48px,6vw,92px) var(--pad);border-right:2px solid var(--line)}
.contact .lhs h2{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:clamp(38px,5vw,72px);line-height:.92}
.contact .bigphone{font-family:'Anton',sans-serif;font-size:clamp(38px,4.8vw,62px);margin-top:28px;display:inline-block;transition:transform .2s}
.contact .bigphone:hover{-webkit-text-stroke:2px var(--white);color:transparent;transform:translateX(4px)}
.contact .meta{font-family:'JetBrains Mono',monospace;font-size:13px;letter-spacing:.15em;text-transform:uppercase;color:var(--grey);margin-top:32px;line-height:2.05}
.contact .rhs{padding:clamp(48px,6vw,92px) var(--pad)}
.field{margin-bottom:20px}
.field label{font-family:'JetBrains Mono',monospace;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--grey);display:block;margin-bottom:9px}
.field input,.field textarea,.field select{width:100%;background:rgba(255,255,255,.03);border:2px solid var(--line-2);color:var(--ink);
  padding:15px;font-family:'Archivo',sans-serif;font-size:16px;border-radius:0;transition:border-color .18s}
.field input::placeholder,.field textarea::placeholder{color:var(--grey-2)}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--white)}
.field select option{color:#111}
.formnote{font-family:'JetBrains Mono',monospace;font-size:11.5px;color:var(--grey);margin-top:14px;letter-spacing:.05em}

/* ---------- footer ---------- */
footer{background:var(--paper);border-top:2px solid var(--line);padding:56px 0 34px}
footer .grid{display:flex;justify-content:space-between;gap:34px;flex-wrap:wrap;align-items:flex-start}
footer .lg{height:150px;width:auto}
footer .fcol h5{font-family:'JetBrains Mono',monospace;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--grey);margin-bottom:16px}
footer .fcol a,footer .fcol p{display:block;font-size:15.5px;color:var(--ink-2);margin-bottom:9px}
footer .fcol a:hover{color:var(--white);text-decoration:underline}
.disclosure{border-top:2px solid var(--line);margin-top:40px;padding-top:22px;font-family:'JetBrains Mono',monospace;font-size:11.5px;color:var(--grey);letter-spacing:.04em;line-height:1.95}

/* ================= PRO SHOP ================= */
.shop-hero{border-bottom:2px solid var(--line);padding:clamp(46px,6vw,84px) 0}
.shop-hero h1{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:clamp(46px,7.4vw,96px);line-height:.9}
.shop-hero p{max-width:62ch;margin-top:24px;font-size:18.5px;color:var(--ink-2)}
.aff-banner{background:var(--paper-2);border:2px solid var(--line);padding:18px 22px;margin-top:32px;
  font-family:'JetBrains Mono',monospace;font-size:12.5px;letter-spacing:.04em;color:var(--ink-2);line-height:1.85}
.aff-banner b{color:var(--white)}

.filters{position:sticky;top:112px;z-index:40;background:rgba(11,11,12,.92);backdrop-filter:blur(8px);border-bottom:2px solid var(--line);
  display:flex;gap:0;overflow-x:auto}
.filters button{flex:0 0 auto;font-family:'JetBrains Mono',monospace;font-size:12.5px;letter-spacing:.13em;text-transform:uppercase;
  padding:17px 22px;background:transparent;border:none;border-right:2px solid var(--line);cursor:pointer;color:var(--grey);white-space:nowrap;transition:.15s}
.filters button.on{background:var(--white);color:var(--black);font-weight:700}
.filters button:hover:not(.on){background:var(--paper-2);color:var(--white)}

.catlabel{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--grey);
  padding:40px 0 10px;display:flex;align-items:center;gap:14px}
.catlabel span{height:1px;flex:1;background:var(--hair)}

.prods{display:grid;grid-template-columns:repeat(3,1fr);border-top:2px solid var(--line);border-left:2px solid var(--line)}
.prod{border-right:2px solid var(--line);border-bottom:2px solid var(--line);padding:28px 26px 26px;display:flex;flex-direction:column;background:var(--paper);transition:background .18s}
.prod:hover{background:var(--paper-2)}
.prod .tophint{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}
.prod .cat{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--grey)}
.prod .pick{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;background:var(--white);color:var(--black);padding:5px 9px;font-weight:700}
.prod h3{font-family:'Archivo',sans-serif;font-weight:800;font-size:20.5px;text-transform:uppercase;letter-spacing:.2px;line-height:1.1;margin-bottom:7px}
.prod .brand-line{font-family:'JetBrains Mono',monospace;font-size:11.5px;color:var(--grey);letter-spacing:.06em;margin-bottom:15px}
.prod .note{font-size:15.5px;color:var(--ink-2);border-left:2px solid var(--white);padding-left:13px;margin-bottom:20px;flex:1}
.prod .buys{display:flex;flex-direction:column;gap:9px}
.prod .buy{display:flex;align-items:center;justify-content:space-between;border:2px solid var(--white);padding:12px 15px;color:var(--white);
  font-family:'JetBrains Mono',monospace;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;transition:.15s}
.prod .buy:hover{background:var(--white);color:var(--black)}
.prod .buy.hd{background:var(--white);color:var(--black)}
.prod .buy.hd:hover{background:transparent;color:var(--white)}

/* ================= MOTION ================= */
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .75s cubic-bezier(.2,.65,.25,1)}
.js .reveal.in{opacity:1;transform:none}

@keyframes riseIn{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
.js .hero .kicker,.js .hero h1,.js .hero .sub,.js .hero .cta{opacity:0;animation:riseIn .85s cubic-bezier(.2,.65,.25,1) forwards}
.js .hero .kicker{animation-delay:.06s}
.js .hero h1{animation-delay:.16s}
.js .hero .sub{animation-delay:.32s}
.js .hero .cta{animation-delay:.44s}
.js .hero .right{opacity:0;animation:riseIn .95s ease .28s forwards}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .reveal{opacity:1!important;transform:none!important;transition:none}
  .js .hero .kicker,.js .hero h1,.js .hero .sub,.js .hero .cta,.js .hero .right{opacity:1;animation:none}
  .marquee .track{animation:none}
}

/* ---------- responsive ---------- */
@media(max-width:980px){
  .hero .grid{grid-template-columns:1fr}
  .hero .left{border-right:none;border-bottom:2px solid var(--line)}
  .contact .grid{grid-template-columns:1fr}
  .contact .lhs{border-right:none;border-bottom:2px solid var(--line)}
  .split{grid-template-columns:1fr}
  .split .media{min-height:300px}
  .split.rev .media{order:0}
  .svc{grid-template-columns:repeat(2,1fr)}
  .prods{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .stats{grid-template-columns:repeat(2,1fr)}
  .stats div:nth-child(2){border-right:none}
  .filters{top:100px}
}
@media(max-width:640px){
  body{font-size:17px}
  .navlinks{display:none}
  .burger{display:block}
  .nav .wrap{height:80px}
  .brand .lg{height:60px}
  .navlinks.open{display:flex;position:absolute;top:80px;left:0;right:0;flex-direction:column;background:var(--paper);border-bottom:2px solid var(--line);padding:8px;gap:0}
  .navlinks.open a{padding:16px;border-bottom:1px solid var(--hair)}
  .svc,.prods,.steps{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr}
  .topbar .wrap{font-size:9.5px;letter-spacing:.1em}
  .hero h1{font-size:46px}
  .filters{top:80px}
}

/* ================= GALLERY ================= */
.gallery-head-right{display:flex;flex-direction:column;gap:18px;align-items:flex-start;max-width:42ch}
.gallery-head-right p{color:var(--ink-2);font-size:17px}
.gselect{display:inline-flex;flex-direction:column;gap:9px}
.gselect > span{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--grey)}
.gselect select{appearance:none;-webkit-appearance:none;background-color:var(--paper);color:var(--ink);
  border:2px solid var(--line-2);padding:15px 48px 15px 17px;font-family:'JetBrains Mono',monospace;font-size:13px;
  letter-spacing:.08em;text-transform:uppercase;border-radius:0;cursor:pointer;min-width:280px;
  background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23f5f4f1' stroke-width='2.4'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center}
.gselect select:hover{border-color:var(--white)}
.gselect select:focus{outline:none;border-color:var(--white)}
.gselect select option{background:#111;color:#f5f4f1}

.gallery{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border-top:2px solid var(--line);border-left:2px solid var(--line)}
.gslot{position:relative;border-right:2px solid var(--line);border-bottom:2px solid var(--line);aspect-ratio:1;background:var(--paper);overflow:hidden}
.gslot-inner{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;
  color:var(--grey);text-align:center;padding:14px;transition:background .2s,color .2s;
  background-image:repeating-linear-gradient(45deg,transparent 0,transparent 11px,rgba(245,244,241,.02) 11px,rgba(245,244,241,.02) 22px)}
.gslot:hover .gslot-inner{background-color:var(--paper-2);color:var(--ink)}
.gslot svg{width:34px;height:34px;opacity:.55;stroke:currentColor}
.gslot .gnum{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.16em;text-transform:uppercase}
.gslot .gcat{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--grey-2)}
.gallery-note{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.04em;color:var(--grey);margin-top:16px}

@media(max-width:980px){
  .gallery{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:640px){
  .gallery{grid-template-columns:repeat(2,1fr)}
  .gselect select{min-width:0;width:100%}
  .gallery-head-right{max-width:none;width:100%}
}

/* ================= QUOTE FORM EXTRAS ================= */
.field .opt{color:var(--grey-2);font-weight:400;text-transform:none;letter-spacing:.06em;font-size:10px}
.field input[type=file]{padding:11px;font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--ink-2);cursor:pointer;line-height:1.4}
.field input[type=file]::file-selector-button{background:var(--white);color:var(--black);border:0;padding:10px 15px;margin-right:13px;
  font-family:'JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:700;cursor:pointer;border-radius:0}
.field input[type=file]::-webkit-file-upload-button{background:var(--white);color:var(--black);border:0;padding:10px 15px;margin-right:13px;
  font-family:'JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:700;cursor:pointer}
.filehint{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--grey);margin-top:10px;letter-spacing:.02em;line-height:1.75}
.filehint.err{color:#ff8f8f}

/* hidden / admin-toggle pro-shop slots (shown only when enabled later) */
.prod--off .buy--disabled{border-style:dashed;opacity:.5;color:var(--grey);cursor:default;justify-content:center}
.prod--off .note{color:var(--grey)}

/* ================= LEGAL PAGES ================= */
.legal{padding:clamp(46px,6vw,86px) 0 clamp(56px,7vw,96px)}
.legal h1{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:clamp(40px,6.5vw,82px);line-height:.92;margin-bottom:16px}
.legal .updated{font-family:'JetBrains Mono',monospace;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--grey);margin-bottom:44px}
.legal-body{max-width:74ch}
.legal-body h2{font-family:'Archivo',sans-serif;font-weight:800;text-transform:uppercase;font-size:20px;letter-spacing:.4px;
  margin:40px 0 14px;padding-top:26px;border-top:2px solid var(--line)}
.legal-body h2:first-child{border-top:none;padding-top:0;margin-top:0}
.legal-body p,.legal-body li{color:var(--ink-2);font-size:16.5px;margin-bottom:14px;line-height:1.65}
.legal-body ul{padding-left:22px;margin-bottom:14px}
.legal-body li{margin-bottom:8px}
.legal-body a{text-decoration:underline}
.legal-body strong{color:var(--ink)}
.disclosure a{text-decoration:underline}
.disclosure a:hover{color:var(--white)}

/* gallery — image tiles */
.gslot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.gslot:hover img{transform:scale(1.06)}
.gslot::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,11,12,0) 55%,rgba(11,11,12,.55));opacity:0;transition:opacity .25s;pointer-events:none}
.gslot:hover::after{opacity:1}
.gslot figcaption{position:absolute;left:0;bottom:0;z-index:2;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;font-weight:700;background:var(--white);color:var(--black);padding:7px 11px;opacity:0;transform:translateY(6px);transition:.25s}
.gslot:hover figcaption{opacity:1;transform:none}
