/* Never Sober — shared page chrome */
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--ink);color:var(--white);font-family:var(--body);-webkit-font-smoothing:antialiased;min-height:100vh}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font-family:inherit;border:0;background:none;cursor:pointer;color:inherit}
h1,h2,h3,h4{font-family:var(--disp);text-transform:uppercase;font-weight:700;margin:0;line-height:.92;letter-spacing:-.01em}
p{margin:0}
[hidden]{display:none!important}
::selection{background:var(--pink);color:#fff}
:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.wrap{max-width:1200px;margin:0 auto;padding:0 20px}

/* nav */
.nsbar{position:sticky;top:0;z-index:80;display:flex;align-items:center;justify-content:space-between;
  padding:14px 20px;background:rgba(10,10,10,.85);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nsbar .lg{height:24px;width:auto;display:block}
.nsbar nav{display:flex;gap:22px;font-family:var(--disp);text-transform:uppercase;letter-spacing:.07em;font-size:13px}
.nsbar nav a:hover{color:var(--pink)}
.nsbar nav a.club{color:var(--cyan)}
.nsbar .bag{font-family:var(--disp);font-size:13px;letter-spacing:.05em;text-transform:uppercase;position:relative}
.nsbar .bag .n{position:absolute;top:-8px;right:-12px;background:var(--pink);color:#fff;font-size:9px;
  min-width:16px;height:16px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);padding:0 3px}
.nsbar-r{display:flex;align-items:center;gap:16px}
@media(max-width:680px){.nsbar nav{display:none}}

/* hamburger + mobile menu */
.nsburger{display:none;flex-direction:column;gap:4px;padding:8px 4px}
.nsburger i{width:20px;height:2px;background:#fff;border-radius:2px;transition:.2s}
body.nsmenu-open .nsburger i:nth-child(1){transform:translateY(6px) rotate(45deg)}
body.nsmenu-open .nsburger i:nth-child(2){opacity:0}
body.nsmenu-open .nsburger i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
@media(max-width:680px){.nsburger{display:inline-flex}}
.nsmenu{position:fixed;inset:0;z-index:210;background:rgba(6,6,8,.98);backdrop-filter:blur(10px);
  display:flex;flex-direction:column;justify-content:center;padding:8vh 9vw;
  transform:translateX(100%);transition:transform .3s cubic-bezier(.2,.8,.2,1);visibility:hidden}
body.nsmenu-open .nsmenu{transform:none;visibility:visible}
.nsmenu-x{position:absolute;top:12px;right:16px;font-size:36px;line-height:1;color:#fff;padding:8px 12px}
.nsmenu-links{display:flex;flex-direction:column;gap:20px}
.nsmenu-links a{font-family:var(--disp);text-transform:uppercase;font-size:clamp(28px,9vw,44px);color:#fff;line-height:1}
.nsmenu-links a:hover{color:var(--accent)}
.nsmenu-social{display:flex;gap:20px;margin-top:44px}
.nsmenu-social a{color:#fff;opacity:.85}
.nsmenu-social a:hover{opacity:1;color:var(--accent)}

/* floating party remote */
.nsremote{position:fixed;right:12px;bottom:14px;z-index:150;display:flex;flex-direction:column;gap:8px;width:138px}
.nsremote button,.nsremote a{display:flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--disp);text-transform:uppercase;letter-spacing:.05em;font-size:12px;color:#fff;
  padding:10px 12px;border-radius:999px;border:1px solid var(--line);background:rgba(12,12,15,.82);backdrop-filter:blur(10px)}
.ns-rmode .dot{width:9px;height:9px;border-radius:50%;background:#ffcf3d;box-shadow:0 0 8px #ffcf3d;transition:.3s}
body.night .ns-rmode .dot{background:var(--accent);box-shadow:0 0 9px var(--glow)}
.ns-rmode:hover,.ns-rspot:hover{border-color:var(--accent)}
.ns-rspot{color:var(--lime)}
.ns-rspot svg{flex:none}
@media(max-width:680px){.nsremote{width:auto;right:10px;bottom:10px}
  .nsremote .ns-rspot span{display:none}.nsremote .ns-rspot{padding:11px}}
body.nscart-open .nsremote,body.nsmenu-open .nsremote{opacity:0;pointer-events:none;transition:opacity .2s}

/* site-wide seasonal ribbon (seasons.js toggles body.has-ribbon) */
.nsribbon{position:fixed;top:0;left:0;right:0;height:28px;z-index:120;display:flex;align-items:center;justify-content:center;
  font-family:var(--disp);text-transform:uppercase;letter-spacing:.24em;font-size:11px;color:#0a0a0a;
  background:var(--accent);box-shadow:0 1px 20px var(--glow)}
body.has-ribbon{padding-top:28px}
body.has-ribbon .nsbar{top:28px}

/* footer socials */
.nssoc{display:flex;gap:16px}
.nssoc a{color:#cfcfcf}
.nssoc a:hover{color:var(--accent)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--disp);
  text-transform:uppercase;letter-spacing:.06em;font-size:15px;padding:14px 26px;border-radius:999px;transition:.15s}
.btn.pink{background:var(--pink);color:#fff}
.btn.pink:hover{background:var(--cyan);color:#04222e}
.btn.ghost{border:1.5px solid rgba(255,255,255,.55);color:#fff}
.btn.block{display:flex;width:100%}
.btn.busy{opacity:.55;pointer-events:none}

/* footer — multi-column */
.nsfoot{background:#050507;border-top:1px solid var(--line);padding:52px 20px 22px}
.nsfoot-top{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:38px}
@media(min-width:780px){.nsfoot-top{grid-template-columns:1.15fr 2fr}}
.nsfoot-brand{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.nsfoot .lg{height:22px;width:auto;max-width:200px;opacity:.95}
.nsfoot-tag{font-family:var(--disp);text-transform:uppercase;letter-spacing:.06em;font-size:13px;color:#8a8a8a}
.nsfoot-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:520px){.nsfoot-cols{grid-template-columns:1fr 1fr;gap:26px 18px}}
.nsfoot-col{display:flex;flex-direction:column;gap:11px}
.nsfoot-col .h{font-family:var(--disp);text-transform:uppercase;letter-spacing:.1em;font-size:11px;color:#8f8f8f;margin-bottom:2px}
.nsfoot-col a{font-size:13.5px;color:#cfcfcf}
.nsfoot-col a:hover{color:var(--accent)}
.nsfoot-bar{max-width:1200px;margin:38px auto 0;padding-top:20px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;
  font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#6a6a6a}

/* toast */
.nstoast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);z-index:200;
  background:#141414;border:1px solid var(--cyan);color:#fff;border-radius:999px;padding:12px 22px;
  font-family:var(--disp);text-transform:uppercase;letter-spacing:.05em;font-size:13px;opacity:0;pointer-events:none;transition:.25s}
.nstoast.on{opacity:1;transform:translateX(-50%) translateY(0)}
/* bag drawer */
.nsdim{position:fixed;inset:0;z-index:190;background:rgba(0,0,0,.6);opacity:0;pointer-events:none;transition:.25s;backdrop-filter:blur(2px)}
.nsdrawer{position:fixed;top:0;right:0;bottom:0;z-index:191;width:min(420px,92vw);background:#0e0e11;border-left:1px solid var(--line);
  display:flex;flex-direction:column;transform:translateX(102%);transition:transform .3s cubic-bezier(.2,.8,.2,1)}
body.nscart-open .nsdim{opacity:1;pointer-events:auto}
body.nscart-open .nsdrawer{transform:none}
.nsdrawer .dhead{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line)}
.nsdrawer .dtitle{font-family:var(--disp);text-transform:uppercase;font-weight:700;font-size:22px;color:#fff;letter-spacing:.02em}
.nsdrawer .dclose{font-size:26px;color:var(--muted);line-height:1;padding:4px 8px}
.nsdrawer .dclose:hover{color:#fff}
.nsdrawer .dship{padding:0 20px}
.nsdrawer .dship .bar{height:5px;background:#1e1e22;border-radius:99px;margin:14px 0 7px;overflow:hidden}
.nsdrawer .dship .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--pink),var(--cyan));border-radius:99px;transition:width .4s}
.nsdrawer .dship .t{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.nsdrawer .dlines{flex:1;overflow-y:auto;padding:12px 20px}
.nsdrawer .dempty{text-align:center;color:var(--muted);font-family:var(--disp);text-transform:uppercase;font-size:18px;letter-spacing:.04em;padding:60px 0;line-height:1.5}
.dline{display:flex;gap:13px;padding:13px 0;border-bottom:1px solid var(--line);align-items:flex-start}
.dline .dim{flex:none;width:64px;height:64px;border-radius:10px;overflow:hidden;background:#000;border:1px solid var(--line)}
.dline .dim img{width:100%;height:100%;object-fit:contain;padding:4px}
.dline .dinfo{flex:1;min-width:0}
.dline .dnm{display:block;font-family:var(--disp);text-transform:uppercase;font-size:14.5px;color:#fff;line-height:1.1}
.dline .dvar{font-family:var(--mono);font-size:10px;color:var(--muted);margin-top:3px;text-transform:uppercase;letter-spacing:.06em}
.dline .dsub{font-family:var(--mono);font-size:10px;color:var(--lime);margin-top:3px;letter-spacing:.04em}
.dline .dqty{display:flex;align-items:center;gap:10px;margin-top:9px}
.dline .dqty .q{width:36px;height:36px;border-radius:7px;border:1px solid var(--line);color:#fff;font-size:14px;display:flex;align-items:center;justify-content:center}
.dline .dqty .q:hover{border-color:var(--cyan)}
.dline .dqty span{font-family:var(--mono);font-size:13px;color:#fff;min-width:16px;text-align:center}
.dline .drm{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-left:6px}
.dline .drm:hover{color:var(--sunset)}
.dline .dpr{font-family:var(--disp);font-size:16px;color:#fff;white-space:nowrap;font-variant-numeric:tabular-nums}
.nsdrawer .dfoot{padding:16px 20px 22px;border-top:1px solid var(--line)}
.nsdrawer .dtotal{display:flex;justify-content:space-between;font-family:var(--disp);text-transform:uppercase;font-size:18px;color:#fff;margin-bottom:14px}
.nsdrawer .dkeep{display:block;width:100%;text-align:center;margin-top:11px;font-family:var(--disp);text-transform:uppercase;letter-spacing:.06em;font-size:12.5px;color:var(--muted)}
.nsdrawer .dkeep:hover{color:#fff}

@media(prefers-reduced-motion:reduce){*{animation:none!important;transition-duration:.001s!important}}
