/* ============================================================
   2AM shared design system — tokens, reset, nav, cart/checkout,
   product card, modal, footer. Loaded by index.html, catalog.html,
   and studio.html. Page-specific layout (hero, 3D stage, etc.)
   stays inline in each page's own <style> block.
   ============================================================ */

:root{
  --black:#010103;
  --deep:#05050a;
  --card:#090910;
  --card2:#0e0e16;
  --border:rgba(255,255,255,0.05);
  --border-hi:rgba(255,255,255,0.12);
  --ice:#b8dff8;
  --ice-dim:rgba(168,212,245,0.25);
  --ice-glow:rgba(168,212,245,0.07);
  --white:#eef1ff;
  --muted:rgba(238,241,255,0.35);
  --green:#3ee8a0;
  --red:#ff4455;
  --purple:#c084fc;
  --d:'Bebas Neue',sans-serif;
  --s:'Cormorant Garamond',serif;
  --m:'Space Mono',monospace;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--black);color:var(--white);font-family:var(--m);overflow-x:hidden;cursor:none;-webkit-font-smoothing:antialiased}

/* GRAIN */
body::before{content:'';position:fixed;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.025'/%3E%3C/svg%3E");pointer-events:none;z-index:1000;opacity:1}

/* CURSOR */
.cur{position:fixed;top:0;left:0;width:6px;height:6px;background:var(--white);border-radius:50%;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:width .2s,height .2s,opacity .2s;mix-blend-mode:difference}
.cur-ring{position:fixed;top:0;left:0;width:28px;height:28px;border:1px solid rgba(255,255,255,.2);border-radius:50%;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:width .3s,height .3s,border-color .3s}
body:hover .cur{opacity:1}

/* NAV — shared, scroll-reactive on every page */
nav{position:fixed;top:0;left:0;right:0;z-index:500;display:flex;align-items:center;justify-content:space-between;padding:0 52px;height:62px;transition:background .5s,border-color .5s;border-bottom:1px solid transparent}
nav.scrolled{background:rgba(1,1,3,.97);backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);border-color:var(--border)}
.nav-logo{font-family:var(--d);font-size:22px;letter-spacing:.25em;color:var(--white);text-decoration:none;display:flex;align-items:center;gap:10px}
.nav-logo::after{content:'™';font-size:8px;vertical-align:super;color:var(--muted);margin-left:2px}
.brand-mark{width:22px;height:22px;flex-shrink:0}
.footer-logo{display:flex;align-items:center;gap:8px}
.footer-logo .brand-mark{width:16px;height:16px;opacity:.6}
.nav-center{display:flex;gap:40px}
.nav-center a{color:var(--muted);text-decoration:none;font-size:9px;letter-spacing:.3em;text-transform:uppercase;transition:color .2s;position:relative;padding-bottom:3px}
.nav-center a::after{content:'';position:absolute;bottom:0;left:0;width:0;height:1px;background:var(--ice);transition:width .3s}
.nav-center a:hover,.nav-center a.active{color:var(--white)}
.nav-center a:hover::after,.nav-center a.active::after{width:100%}
.nav-right{display:flex;align-items:center;gap:24px}
.nav-cart{display:flex;align-items:center;gap:8px;color:var(--white);font-size:9px;letter-spacing:.3em;text-transform:uppercase;cursor:none;text-decoration:none;transition:color .2s}
.nav-cart:hover{color:var(--ice)}
.cart-pip{background:var(--ice);color:var(--black);border-radius:50%;width:15px;height:15px;display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:700}

/* ── SHARED ENTRANCE ANIMATION ── */
@keyframes fu{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes sd{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@keyframes tick{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ── MINI-HERO (catalog / studio page headers) ── */
.mini-hero{position:relative;padding:132px 48px 40px;border-bottom:1px solid var(--border);overflow:hidden}
.mini-hero-glow{position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 50% 0%,rgba(168,212,245,.06),transparent 70%);pointer-events:none}
.mh-top{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.mh-eye{font-size:8px;letter-spacing:.5em;text-transform:uppercase;color:var(--ice);margin-bottom:12px;display:flex;align-items:center;gap:12px;opacity:0;animation:fu .7s .05s forwards}
.mh-eye::before{content:'';width:24px;height:1px;background:currentColor;opacity:.5}
.mh-title{font-family:var(--d);font-size:clamp(52px,9vw,100px);letter-spacing:.04em;line-height:.85;opacity:0;animation:fu .8s .16s cubic-bezier(.22,.68,0,1.2) forwards}
.mh-sub{font-size:11px;color:var(--muted);letter-spacing:.05em;margin-top:14px;max-width:560px;line-height:1.7;opacity:0;animation:fu .7s .3s forwards}
.mh-count{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);padding-bottom:8px;opacity:0;animation:fu .7s .3s forwards}
@media(max-width:900px){.mini-hero{padding:100px 20px 28px}}

/* ── BUTTONS ── */
.btn-fill{background:var(--white);color:var(--black);border:none;padding:14px 36px;font-family:var(--m);font-size:9px;letter-spacing:.25em;text-transform:uppercase;cursor:none;font-weight:700;transition:all .25s;text-decoration:none;display:inline-flex;align-items:center;gap:10px;position:relative;overflow:hidden}
.btn-fill::before{content:'';position:absolute;inset:0;background:var(--ice);transform:translateX(-101%);transition:transform .3s cubic-bezier(.4,0,.2,1)}
.btn-fill:hover::before{transform:translateX(0)}
.btn-fill:hover{color:var(--black)}
.btn-fill span{position:relative;z-index:1}
.btn-line{background:transparent;color:var(--white);border:1px solid var(--border-hi);padding:14px 36px;font-family:var(--m);font-size:9px;letter-spacing:.25em;text-transform:uppercase;cursor:none;transition:all .25s;text-decoration:none;display:inline-flex;align-items:center;gap:10px}
.btn-line:hover{border-color:rgba(255,255,255,.3);color:var(--ice)}

/* ── PRODUCT GRID / CARD (canonical — used by index + catalog) ── */
.prod-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border)}
.prod-grid.loading{background:transparent;gap:2px}
@media(max-width:1100px){.prod-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.prod-grid{grid-template-columns:1fr 1fr}}

.pc{position:relative;background:var(--black);overflow:hidden;cursor:none;aspect-ratio:3/4}
.pc.large{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
.pc-img-wrap{position:absolute;inset:0;overflow:hidden}
.pc-img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.25,.46,.45,.94),filter .7s;filter:brightness(.75) saturate(.88)}
.pc:hover .pc-img{transform:scale(1.07);filter:brightness(1) saturate(1)}
.pc-shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(2,2,4,.94) 0%,rgba(2,2,4,.2) 45%,transparent 75%);opacity:0;transition:opacity .4s}
.pc:hover .pc-shade{opacity:1}
.pc-badge{position:absolute;top:14px;left:14px;z-index:3;font-size:7px;letter-spacing:.22em;text-transform:uppercase;padding:4px 9px;background:rgba(2,2,4,.65);border:1px solid var(--border-hi);color:var(--white);backdrop-filter:blur(6px)}
.pc-badge.ts{border-color:rgba(192,132,252,.4);color:var(--purple)}
.pc-img-cnt{position:absolute;bottom:12px;right:12px;z-index:3;font-size:7px;letter-spacing:.1em;color:rgba(240,242,255,.4);background:rgba(2,2,4,.6);padding:3px 7px;backdrop-filter:blur(4px);opacity:0;transition:opacity .3s}
.pc:hover .pc-img-cnt{opacity:1}
.pc-info{position:absolute;bottom:0;left:0;right:0;padding:18px;z-index:3;transform:translateY(6px);opacity:0;transition:transform .4s,opacity .35s}
.pc:hover .pc-info{transform:translateY(0);opacity:1}
.pc-name{font-family:var(--s);font-size:15px;font-weight:600;letter-spacing:.02em;margin-bottom:4px;line-height:1.2}
.pc-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.pc-tag-txt{font-size:8px;letter-spacing:.15em;text-transform:uppercase;color:rgba(240,242,255,.45)}
.pc-price-txt{font-family:var(--d);font-size:22px;color:var(--white)}
.pc-actions{display:flex;gap:6px}
.pc-btn{flex:1;background:rgba(240,242,255,.08);border:1px solid rgba(240,242,255,.12);color:var(--white);padding:10px;font-family:var(--m);font-size:8px;letter-spacing:.15em;text-transform:uppercase;cursor:none;transition:all .2s;backdrop-filter:blur(8px)}
.pc-btn:hover{background:var(--white);color:var(--black);border-color:var(--white)}
.pc-btn.ghost{background:transparent}
.pc-btn.ghost:hover{background:rgba(240,242,255,.1);color:var(--white)}
.pc-skel{position:absolute;inset:0;background:linear-gradient(90deg,var(--card) 25%,var(--card2) 50%,var(--card) 75%);background-size:200% 100%;animation:shim 1.6s infinite}
@keyframes shim{0%{background-position:200% 0}100%{background-position:-200% 0}}
.empty-state{grid-column:1/-1;padding:80px;text-align:center;color:var(--muted);font-size:10px;letter-spacing:.1em;line-height:2}

/* ── MODAL ── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:600;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .35s;backdrop-filter:blur(20px)}
.modal-overlay.open{opacity:1;pointer-events:all}
.modal{background:var(--deep);border:1px solid var(--border);max-width:880px;width:95%;max-height:92vh;display:grid;grid-template-columns:1fr 1fr;position:relative;transform:translateY(24px) scale(.97);transition:transform .42s cubic-bezier(.22,.68,0,1.2);overflow:hidden}
.modal-overlay.open .modal{transform:translateY(0) scale(1)}
.modal-close{position:absolute;top:16px;right:16px;background:rgba(2,2,4,.6);border:1px solid var(--border);color:var(--muted);width:34px;height:34px;display:flex;align-items:center;justify-content:center;cursor:none;font-size:14px;z-index:10;transition:all .2s;backdrop-filter:blur(8px)}
.modal-close:hover{color:var(--white);border-color:var(--border-hi)}
.modal-gallery{position:relative;background:var(--card);overflow:hidden;min-height:440px}
.gallery-main{width:100%;height:100%;object-fit:cover;display:block}
.gallery-thumbs{position:absolute;bottom:0;left:0;right:0;display:flex;gap:1px;background:rgba(2,2,4,.8);padding:8px;overflow-x:auto;scrollbar-width:none}
.gallery-thumb{width:44px;height:44px;object-fit:cover;cursor:none;opacity:.4;transition:opacity .2s;border:1px solid transparent;flex-shrink:0}
.gallery-thumb.active,.gallery-thumb:hover{opacity:1;border-color:var(--ice)}
.modal-body{padding:36px 32px;display:flex;flex-direction:column;gap:16px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent}
.modal-eye{font-size:8px;letter-spacing:.4em;color:var(--ice);text-transform:uppercase}
.modal-name{font-family:var(--s);font-size:26px;font-weight:600;letter-spacing:.02em;line-height:1.1}
.modal-price{font-family:var(--d);font-size:42px;color:var(--white);letter-spacing:.05em;line-height:1}
.modal-desc{font-size:10px;color:var(--muted);line-height:1.9;letter-spacing:.05em}
.var-section{display:flex;flex-direction:column;gap:8px}
.var-label{font-size:8px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}
.var-label strong{color:var(--white);font-weight:400}
.color-btns{display:flex;gap:6px;flex-wrap:wrap}
.color-btn{width:24px;height:24px;border-radius:50%;cursor:none;border:2px solid transparent;transition:all .2s;flex-shrink:0}
.color-btn.active{border-color:var(--white);transform:scale(1.15)}
.size-btns{display:flex;gap:6px;flex-wrap:wrap}
.size-btn{background:none;border:1px solid var(--border);color:var(--muted);padding:8px 14px;font-family:var(--m);font-size:10px;cursor:none;transition:all .2s;letter-spacing:.1em}
.size-btn:hover,.size-btn.active{border-color:rgba(255,255,255,.4);color:var(--white);background:rgba(255,255,255,.06)}
.notes-input{width:100%;background:rgba(255,255,255,.03);border:1px solid var(--border);color:var(--white);padding:10px 12px;font-family:var(--m);font-size:10px;outline:none;resize:vertical;min-height:64px;transition:border-color .2s;letter-spacing:.04em}
.notes-input:focus{border-color:var(--border-hi)}
.notes-input::placeholder{color:rgba(240,242,255,.25)}
.var-warn{font-size:9px;color:var(--red);letter-spacing:.05em;display:none}
.var-warn.show{display:block}
.fulfillment-tag{display:flex;align-items:center;gap:6px;font-size:8px;letter-spacing:.15em;text-transform:uppercase;padding:8px 12px;border:1px solid var(--border);color:var(--muted)}
.fulfillment-tag.printify{border-color:rgba(62,232,160,.2);color:var(--green)}
.fulfillment-tag.tapstitch{border-color:rgba(192,132,252,.2);color:var(--purple)}
.btn-add-full{width:100%;background:var(--white);color:var(--black);border:none;padding:16px;font-family:var(--m);font-size:10px;letter-spacing:.25em;text-transform:uppercase;font-weight:700;cursor:none;transition:all .25s;margin-top:4px;position:relative;overflow:hidden}
.btn-add-full::before{content:'';position:absolute;inset:0;background:var(--ice);transform:translateX(-101%);transition:transform .35s cubic-bezier(.4,0,.2,1)}
.btn-add-full:hover::before{transform:translateX(0)}
.btn-add-full span{position:relative;z-index:1}

/* ── CART DRAWER ── */
.cart-drawer{position:fixed;right:0;top:0;bottom:0;width:400px;background:var(--deep);border-left:1px solid var(--border);z-index:700;transform:translateX(100%);transition:transform .4s cubic-bezier(.22,.68,0,1.2);display:flex;flex-direction:column}
.cart-drawer.open{transform:translateX(0)}
.cart-head{padding:20px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.cart-head-title{font-family:var(--d);font-size:20px;letter-spacing:.15em}
.cart-x{background:none;border:1px solid var(--border);color:var(--muted);width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:none;font-size:14px;transition:all .2s}
.cart-x:hover{color:var(--white);border-color:var(--border-hi)}
.cart-items{flex:1;overflow-y:auto;padding:16px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}
.cart-empty{text-align:center;padding:60px 24px;color:var(--muted);font-size:10px;letter-spacing:.1em}
.cart-empty-icon{font-size:32px;margin-bottom:16px;opacity:.2}
.cart-item{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--border)}
.ci-img{width:64px;height:64px;object-fit:cover;background:var(--card);flex-shrink:0}
.ci-info{flex:1}
.ci-name{font-family:var(--s);font-size:13px;font-weight:600;margin-bottom:3px;line-height:1.2}
.ci-name .ci-type-tag{color:var(--ice);font-weight:400}
.ci-var{font-size:9px;color:var(--muted);margin-bottom:3px;letter-spacing:.05em}
.ci-note{font-size:9px;color:var(--ice);margin-bottom:4px;letter-spacing:.04em}
.ci-fulfill{font-size:8px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px}
.ci-fulfill.p{color:var(--green)}
.ci-fulfill.t{color:var(--purple)}
.ci-price{font-family:var(--d);font-size:18px;color:var(--white)}
.ci-rm{background:none;border:none;color:rgba(240,242,255,.2);font-size:14px;cursor:none;align-self:flex-start;transition:color .2s;padding:2px}
.ci-rm:hover{color:var(--red)}
.cart-foot{padding:16px 24px;border-top:1px solid var(--border)}
.cart-trust{font-size:9px;color:var(--muted);letter-spacing:.08em;text-align:center;margin-bottom:12px}

.order-summary{border:1px solid var(--border);padding:14px;margin-bottom:12px;display:none}
.order-summary.show{display:block}
.os-row{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.1em;color:var(--muted);padding:4px 0}
.os-row.total{border-top:1px solid var(--border);margin-top:8px;padding-top:12px}
.os-total-num{font-family:var(--d);font-size:24px;color:var(--white)}
.cart-total-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--border)}
.ctl{font-family:var(--s);font-size:13px;letter-spacing:.05em}
.ctp{font-family:var(--d);font-size:24px;color:var(--white)}

.cstep{display:none}
.cstep.active{display:block}
.cp-prog{display:flex;margin-bottom:16px;border:1px solid var(--border)}
.cpp{flex:1;padding:8px;text-align:center;font-size:8px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);border-right:1px solid var(--border);transition:all .2s}
.cpp:last-child{border-right:none}
.cpp.done{background:rgba(62,232,160,.07);color:var(--green)}
.cpp.cur{background:rgba(255,255,255,.04);color:var(--white)}
.step-lbl{font-size:8px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.sf-row{display:flex;gap:6px;margin-bottom:6px}
.sf{flex:1;background:rgba(255,255,255,.03);border:1px solid var(--border);color:var(--white);padding:9px 11px;font-family:var(--m);font-size:10px;outline:none;transition:border-color .2s}
.sf:focus{border-color:var(--border-hi)}
.sf::placeholder{color:rgba(240,242,255,.2)}
.sf.full{width:100%;margin-bottom:6px}
#square-card-element{background:rgba(255,255,255,.03);border:1px solid var(--border);padding:13px 11px;margin-bottom:8px;min-height:44px;transition:border-color .2s}
#card-errors{font-size:9px;color:var(--red);margin-bottom:6px;min-height:14px}
.btn-proceed{width:100%;background:var(--white);color:var(--black);border:none;padding:14px;font-family:var(--m);font-size:9px;letter-spacing:.25em;text-transform:uppercase;font-weight:700;cursor:none;transition:all .25s;margin-top:6px;position:relative;overflow:hidden}
.btn-proceed::before{content:'';position:absolute;inset:0;background:var(--ice);transform:translateX(-101%);transition:transform .3s}
.btn-proceed:hover::before{transform:translateX(0)}
.btn-proceed span{position:relative;z-index:1}
.btn-proceed:disabled{opacity:.4}
.btn-back{width:100%;background:transparent;color:var(--muted);border:1px solid var(--border);padding:11px;font-family:var(--m);font-size:9px;letter-spacing:.2em;text-transform:uppercase;cursor:none;transition:all .2s;margin-top:6px}
.btn-back:hover{border-color:var(--border-hi);color:var(--white)}
#pay-status{font-size:9px;letter-spacing:.05em;padding:8px;text-align:center;margin-top:4px;min-height:14px}
.pay-ok{color:var(--green)}
.pay-err{color:var(--red)}

.order-success{text-align:center;padding:28px 12px;display:none}
.order-success.show{display:block}
.os-icon{font-size:36px;margin-bottom:12px}
.os-title{font-family:var(--d);font-size:28px;color:var(--white);letter-spacing:.12em;margin-bottom:6px}
.os-msg{font-size:9px;color:var(--muted);letter-spacing:.06em;line-height:1.8}

.wc-section{text-align:left;margin-top:16px;display:none}
.wc-divider{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.wc-divider::before,.wc-divider::after{content:'';flex:1;height:1px;background:var(--border)}
.wc-divider span{font-size:8px;letter-spacing:.25em;text-transform:uppercase;color:rgba(168,212,245,.5)}
.wc-desc{font-size:9px;color:var(--muted);letter-spacing:.04em;margin-bottom:10px;line-height:1.7}
.wc-card{display:flex;align-items:center;gap:10px;padding:10px;background:rgba(168,212,245,.04);border:1px solid rgba(168,212,245,.1);margin-bottom:6px}
.wc-img{width:40px;height:40px;object-fit:cover;flex-shrink:0;background:var(--card)}
.wc-info{flex:1;min-width:0}
.wc-name{font-family:var(--s);font-size:11px;font-weight:600;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--white)}
.wc-code{font-family:var(--m);font-size:11px;color:var(--ice);letter-spacing:.1em;font-weight:700}
.wc-copy{background:none;border:1px solid rgba(168,212,245,.2);color:rgba(168,212,245,.6);padding:5px 9px;font-family:var(--m);font-size:8px;letter-spacing:.1em;text-transform:uppercase;cursor:none;transition:all .2s;flex-shrink:0}
.wc-copy:hover{border-color:var(--ice);color:var(--ice)}
.wc-how{padding:10px;background:rgba(168,212,245,.04);border:1px solid rgba(168,212,245,.1);margin-top:10px}
.wc-how p{font-size:8px;color:rgba(240,242,255,.35);letter-spacing:.1em;text-transform:uppercase;line-height:1.9}

/* ── CART POP + TOAST ── */
.cart-pop{position:fixed;z-index:800;pointer-events:none;display:flex;align-items:center;gap:12px;background:var(--deep);border:1px solid var(--border-hi);padding:12px 16px;box-shadow:0 16px 48px rgba(0,0,0,.8);opacity:0}
.cart-pop.fly{animation:cpop .85s cubic-bezier(.22,.68,0,1.2) forwards}
@keyframes cpop{0%{opacity:0;transform:translateY(0) scale(.92)}15%{opacity:1;transform:translateY(-10px) scale(1)}70%{opacity:1;transform:translateY(-56px) scale(1)}100%{opacity:0;transform:translateY(-80px) scale(.95)}}
.cp-img{width:40px;height:40px;object-fit:cover;flex-shrink:0}
.cp-name{font-family:var(--s);font-size:12px;font-weight:600;color:var(--white);margin-bottom:2px}
.cp-added{font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:var(--ice)}

.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(16px);background:var(--deep);border:1px solid var(--border-hi);color:var(--white);padding:12px 20px;font-size:9px;letter-spacing:.12em;z-index:900;opacity:0;transition:all .3s;display:flex;align-items:center;gap:8px;white-space:nowrap;backdrop-filter:blur(20px)}
.toast.show{transform:translateX(-50%) translateY(0);opacity:1}
.toast-dot{width:5px;height:5px;background:var(--ice);border-radius:50%;flex-shrink:0}

/* ── NEWSLETTER SIGNUP ── */
.signup-band{position:relative;z-index:2;border-top:1px solid var(--border);padding:48px}
.signup-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;max-width:1100px;margin:0 auto}
.signup-eye{font-size:8px;letter-spacing:.5em;text-transform:uppercase;color:var(--ice);margin-bottom:8px}
.signup-sub{font-size:13px;color:var(--muted);font-family:var(--s);font-style:italic}
.signup-form{display:flex;gap:0;flex-shrink:0}
.signup-input{background:rgba(255,255,255,.03);border:1px solid var(--border);border-right:none;color:var(--white);padding:12px 16px;font-family:var(--m);font-size:11px;outline:none;min-width:220px}
.signup-input:focus{border-color:var(--border-hi)}
.signup-input::placeholder{color:rgba(240,242,255,.25)}
.signup-band .btn-line{padding:12px 24px;white-space:nowrap}
.signup-status{max-width:1100px;margin:10px auto 0;font-size:9px;letter-spacing:.08em;color:var(--muted);text-align:right;min-height:12px}
.signup-status.ok{color:var(--green)}
.signup-status.err{color:var(--red)}
@media(max-width:900px){
  .signup-band{padding:32px 20px}
  .signup-inner{flex-direction:column;align-items:flex-start}
  .signup-form{width:100%}
  .signup-input{flex:1;min-width:0}
}

/* ── FOOTER ── */
footer{position:relative;z-index:2;border-top:1px solid var(--border);padding:32px 48px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px}
.footer-logo{font-family:var(--d);font-size:20px;letter-spacing:.25em;color:rgba(240,242,255,.2)}
.footer-links{display:flex;gap:28px}
.footer-links a{font-size:8px;letter-spacing:.2em;color:rgba(240,242,255,.25);text-decoration:none;text-transform:uppercase;transition:color .2s}
.footer-links a:hover{color:var(--ice)}
.footer-copy{font-size:8px;color:rgba(240,242,255,.15);letter-spacing:.1em}

/* ── RESPONSIVE ── */
@media(max-width:900px){
  nav{padding:0 20px}
  .nav-center{display:none}
  .cart-drawer{width:100%}
  .modal{grid-template-columns:1fr;max-height:95svh;overflow-y:auto}
  .modal-gallery{min-height:260px}
  footer{padding:24px 20px;flex-direction:column;align-items:flex-start}
}
::-webkit-scrollbar{width:3px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border)}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}
:focus-visible{outline:1px solid var(--ice);outline-offset:2px}
@media(hover:none),(pointer:coarse){
  body{cursor:auto}
  .cur,.cur-ring{display:none}
}
