/* NBS theme: deep navy/black, electric blue + magenta neon accents (from the NBS poster). CSS only. */
[hidden]{display:none!important}
:root{--bg:#05060f;--bg2:#0b0f2a;--panel:rgba(16,22,52,.78);--panel2:#121838;--ink:#f3f6ff;--muted:#a9b4d6;
--blue:#4fc3ff;--blue2:#3fa9ff;--pink:#ff3ea5;--mag:#e040fb;--ok:#3ddc97;--live:#ff5c8a;--line:rgba(79,195,255,.22);--r:16px;
--grad:linear-gradient(90deg,var(--blue2),var(--mag) 60%,var(--pink))}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--bg);scroll-behavior:smooth}
body{margin:0;min-height:100vh;font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);
background:radial-gradient(900px 500px at 85% -10%,rgba(224,64,251,.16),transparent 60%),radial-gradient(800px 500px at -10% 30%,rgba(63,169,255,.14),transparent 60%),linear-gradient(180deg,var(--bg2),var(--bg) 70%);background-attachment:fixed}
main,#app{width:100%;max-width:100%;margin:0 auto;padding:12px 14px 48px}
.site-nav__inner,.upcoming__inner{width:100%;max-width:100%;margin:0 auto}
@media(min-width:900px){
  main,#app{width:min(80vw,100%);max-width:80vw;padding:16px 12px 56px}
  .site-nav__inner,.upcoming__inner{width:min(80vw,100%);max-width:80vw;padding-left:0;padding-right:0}
  .upcoming{padding-left:0;padding-right:0}
  .bar{padding-left:max(14px,calc((100vw - 80vw)/2));padding-right:max(14px,calc((100vw - 80vw)/2))}
  .intro .hero::after{width:min(80vw,calc(100% - 28px))}
  .hero p,.hero .join-note{max-width:min(52ch,80%)}
  /* readable multi-column cards on wide screens */
  .socials-panel .nights-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:start}
  .socials-panel .nights-grid .sub{margin:0}
  .quotes{grid-template-columns:repeat(3,1fr)}
  .courts{grid-template-columns:repeat(2,1fr)}
  .days-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:start}
  .days-grid .card{margin:0}
  main.admin-main{width:min(80vw,100%);max-width:80vw}
  main.admin-main #f{max-width:440px}
  /* every page block shares the same 80vw column */
  main>section,main>.card,#app>section,#app>.card,.card,.socials-panel,.testimonies,footer.credit,.join-footer,.hero>*{max-width:100%}
  footer.credit,.join-footer{width:min(80vw,100%);margin-left:auto;margin-right:auto}
}
h1{font-size:1.2rem;margin:0;flex:1;font-weight:900;letter-spacing:.02em;text-transform:uppercase}
h2{font-size:1.05rem;margin:24px 0 10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:var(--blue)}
h2::after{content:"";display:block;height:2px;width:56px;margin-top:6px;background:var(--grad);border-radius:2px;box-shadow:0 0 8px rgba(224,64,251,.5)}
h3{font-size:1rem;color:var(--blue)}
a{color:var(--blue)}.muted{color:var(--muted)}.small{font-size:.86rem}.center{text-align:center}.err{color:#ff8fb8;font-weight:600}
.bar{position:sticky;top:0;z-index:5;display:flex;gap:10px;align-items:center;padding:12px 14px;background:rgba(5,6,15,.88);backdrop-filter:blur(8px);border-bottom:1px solid transparent;border-image:var(--grad) 1;box-shadow:0 2px 18px rgba(224,64,251,.18)}
.bar a{color:#fff;text-decoration:none}.brand{font-weight:900;letter-spacing:.06em;color:var(--blue)!important}.back{font-size:1.9rem;line-height:1;padding:0 8px;color:var(--blue)!important}
.pill{border:1px solid var(--pink);color:#fff;padding:4px 12px;border-radius:99px;font-size:.78rem;font-weight:700;box-shadow:0 0 10px rgba(255,62,165,.35)}
.flash{background:rgba(61,220,151,.14);color:#9ff0c9;padding:10px 14px;text-align:center;border-bottom:1px solid rgba(61,220,151,.4)}
.card{display:block;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px;margin:12px 0;box-shadow:0 0 0 1px rgba(224,64,251,.06),0 8px 24px rgba(0,0,0,.35)}
.card h2:first-child{margin-top:0}
.card.link{text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s}.card.link:hover,.card.link:focus{border-color:var(--blue);box-shadow:0 0 16px rgba(79,195,255,.25)}
.card.link b{font-size:1.05rem}.card.link span{display:block;color:var(--muted);font-size:.9rem}
.btn{display:inline-block;min-height:46px;border:0;border-radius:99px;padding:12px 22px;background:linear-gradient(90deg,var(--blue2),#2f7dff);color:#fff;font:inherit;font-weight:800;letter-spacing:.03em;text-transform:uppercase;font-size:.92rem;text-decoration:none;cursor:pointer;text-align:center;box-shadow:0 0 14px rgba(63,169,255,.35)}
.btn.ghost{background:rgba(255,62,165,.06);color:#fff;border:2px solid var(--pink);box-shadow:0 0 12px rgba(255,62,165,.4),inset 0 0 10px rgba(255,62,165,.12)}
.btn.danger{border-color:var(--live);color:#ffb3c9;box-shadow:none}
.btn[disabled]{opacity:.4;cursor:not-allowed;box-shadow:none}.btn.big{font-size:1.02rem;padding:15px 28px}
.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.row{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}
input,select,textarea{font:inherit;width:100%;padding:11px 12px;border:1px solid rgba(169,180,214,.35);border-radius:12px;background:#0a0e24;color:var(--ink);margin-top:4px}
input::placeholder,textarea::placeholder{color:#7f8bb0}input:focus,select:focus,textarea:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px rgba(79,195,255,.2)}
input[type=date]{color-scheme:dark}textarea{font-family:ui-monospace,monospace;font-size:.85rem}
.form label{display:block;margin:12px 0;font-weight:700;font-size:.9rem;color:#dbe3ff}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.chk{display:flex;gap:10px;align-items:flex-start;font-weight:400}.chk input{width:22px;height:22px;margin:2px 0 0;flex:none;accent-color:var(--pink)}
.tag{display:inline-block;font-size:.72rem;padding:2px 9px;border-radius:99px;background:rgba(169,180,214,.15);color:#d5ddf5;font-weight:700;letter-spacing:.02em}
.tag.ok{background:rgba(61,220,151,.18);color:#8ff0c4}.tag.live{background:rgba(255,92,138,.2);color:#ffb3c9}
.g-Meteors{background:rgba(255,170,64,.16)!important;color:#ffc77d!important}.g-Comets{background:rgba(79,195,255,.16)!important;color:#9fdcff!important}.g-Pulsars{background:rgba(224,64,251,.18)!important;color:#f0a6ff!important}
.pool{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.prow{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px;border-bottom:1px solid rgba(169,180,214,.12)}.prow:last-child{border:0}
.prow.no{background:rgba(0,0,0,.25)}.prow.no b{color:var(--muted)}
.mini{font:inherit;font-size:.82rem;font-weight:700;min-height:38px;border:1px solid var(--pink);background:transparent;color:#fff;border-radius:99px;padding:6px 12px}
.courts{display:grid;grid-template-columns:1fr;gap:12px}@media(min-width:560px){.courts{grid-template-columns:1fr 1fr}}
.court{display:block;background:#0d1433;color:#fff;border-radius:var(--r);padding:12px 14px;text-decoration:none;border:1px solid rgba(79,195,255,.45);position:relative;overflow:hidden}
.court::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--grad)}
.court-h{display:flex;justify-content:space-between;align-items:center;font-weight:900;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;color:var(--blue)}.court .muted{color:var(--muted);margin-top:4px}
.side{display:flex;justify-content:space-between;align-items:center;padding:7px 10px;border-radius:10px;font-size:1.02rem}.side b{font-size:1.4rem;font-variant-numeric:tabular-nums}
.side.win{background:rgba(79,195,255,.14);font-weight:700}
table.lb{width:100%;border-collapse:collapse;background:#0d1433;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);font-variant-numeric:tabular-nums}
.lb th,.lb td{padding:9px 6px;text-align:left;border-bottom:1px solid rgba(169,180,214,.12);font-size:.94rem}.lb th{background:#141c44;font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.lb tr.top td{background:rgba(224,64,251,.09)}.lb td b{color:#fff}
.cta{margin:22px 0;padding:18px;border-radius:var(--r);background:linear-gradient(135deg,rgba(63,169,255,.12),rgba(224,64,251,.14));border:2px solid var(--pink);box-shadow:0 0 18px rgba(255,62,165,.3)}
.score .steam{text-align:center}.who{font-weight:800;font-size:1.1rem;margin-bottom:8px}.vs{text-align:center;color:var(--pink);font-weight:900;text-transform:uppercase;margin:10px}
.step{display:flex;gap:12px;justify-content:center;align-items:center}.step input{width:100px;text-align:center;font-size:2.2rem;font-weight:900;margin:0;padding:8px;background:#060918;font-variant-numeric:tabular-nums}
.step button{width:60px;height:60px;border-radius:50%;border:2px solid var(--blue);background:rgba(79,195,255,.12);color:#fff;font-size:1.9rem;font-weight:700;cursor:pointer}
.step button:active{background:rgba(79,195,255,.3)}
.preview{margin-top:12px;padding:12px;background:rgba(0,0,0,.3);border:1px solid var(--line);border-radius:12px}
details{margin:16px 0}summary{cursor:pointer;font-weight:800;color:var(--blue)}
/* intro */
.intro .hero{text-align:center;color:#fff;padding:52px 20px 40px;position:relative;
background:radial-gradient(420px 220px at 50% 0%,rgba(224,64,251,.28),transparent 70%),radial-gradient(500px 260px at 50% 110%,rgba(63,169,255,.22),transparent 70%)}
.intro .hero::after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:min(640px,calc(100% - 28px));height:2px;background:var(--grad);box-shadow:0 0 12px rgba(224,64,251,.7)}
.hero h1{font-size:3.4rem;letter-spacing:.08em;padding-left:.08em;font-weight:900;font-style:italic;text-shadow:0 0 18px rgba(255,62,165,.55),0 0 2px #fff}
.hero .tag-line{margin:2px auto 14px;max-width:none;color:var(--blue);font-weight:900;text-transform:uppercase;letter-spacing:.1em;padding-left:.1em;text-align:center}
.hero p{max-width:420px;margin:0 auto 20px;font-style:italic;color:#e6ebff}
.hero .btn{background:rgba(255,62,165,.08);color:#fff;border:2px solid var(--pink);box-shadow:0 0 18px rgba(255,62,165,.55),inset 0 0 12px rgba(255,62,165,.18)}
.shuttle{font-size:3rem;animation:float 3s ease-in-out infinite;filter:drop-shadow(0 0 10px rgba(79,195,255,.7))}
@keyframes float{50%{transform:translateY(-8px) rotate(-8deg)}}@media(prefers-reduced-motion:reduce){.shuttle{animation:none}}
.ticks{padding-left:1.1rem}.ticks li{margin:8px 0}.ticks li::marker{color:var(--pink)}ol li::marker{color:var(--blue);font-weight:800}
.night{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-top:1px solid rgba(169,180,214,.14)}
.night b{color:var(--blue)}
.day{flex:none;width:54px;height:54px;border-radius:14px;border:1px solid var(--blue);background:rgba(79,195,255,.1);color:#fff;font-weight:900;text-transform:uppercase;display:grid;place-items:center;box-shadow:0 0 10px rgba(79,195,255,.3)}
.groups{display:grid;gap:8px}.grp{border-radius:12px;padding:11px 13px;display:flex;justify-content:space-between;gap:8px}.grp span{font-size:.9rem}
.rule{background:rgba(224,64,251,.1);border:1px solid rgba(255,62,165,.45);border-radius:12px;padding:11px 13px}.rule b{color:#ff9fd0}

/* ===== theme toggle (both themes) ===== */
.theme-toggle{flex:none;width:40px;height:40px;border-radius:50%;border:1.5px solid var(--blue);background:transparent;font-size:1.1rem;line-height:1;cursor:pointer;display:grid;place-items:center;padding:0}
.hero-toggle{position:absolute;top:12px;right:12px;z-index:2}

/* ===== LIGHT theme (default): previous light look + NBS poster identity ===== */
html[data-theme="light"]{--bg:#f4f7fb;--bg2:#f4f7fb;--panel:#fff;--panel2:#fff;--ink:#14213d;--muted:#55607a;
--blue:#0b7fd1;--blue2:#0b7fd1;--pink:#d1338f;--mag:#b02ac9;--ok:#14864a;--live:#d12f55;--line:#dde4ef;
--grad:linear-gradient(90deg,#3fa9ff,#e040fb 60%,#ff3ea5);background:var(--bg)}
[data-theme="light"] body{background:linear-gradient(180deg,#f7f9fd,#eef2f9);color:var(--ink)}
[data-theme="light"] h2{color:var(--blue)}[data-theme="light"] h2::after{box-shadow:none}
[data-theme="light"] .err{color:#c0264f}
[data-theme="light"] .bar{background:#fff;color:var(--ink);box-shadow:0 1px 8px rgba(20,33,61,.08)}
[data-theme="light"] .bar a{color:var(--ink)}[data-theme="light"] .brand,[data-theme="light"] .back{color:var(--blue)!important}
[data-theme="light"] .pill{color:var(--pink);box-shadow:none;background:#fff}
[data-theme="light"] .flash{background:#e6f6ec;color:#0b6b33;border-bottom-color:#b6e3c7}
[data-theme="light"] .card{box-shadow:0 1px 3px rgba(20,33,61,.06)}
[data-theme="light"] .card.link:hover,[data-theme="light"] .card.link:focus{box-shadow:0 2px 10px rgba(11,127,209,.15)}
[data-theme="light"] .btn{background:var(--blue);box-shadow:0 2px 6px rgba(11,127,209,.25)}
[data-theme="light"] .btn.ghost{background:#fff;color:var(--pink);border-color:var(--pink);box-shadow:none}
[data-theme="light"] .btn.danger{color:var(--live);border-color:var(--live)}
[data-theme="light"] input,[data-theme="light"] select,[data-theme="light"] textarea{background:#fff;color:var(--ink);border-color:#c3cddd}
[data-theme="light"] input::placeholder,[data-theme="light"] textarea::placeholder{color:#7a8499}
[data-theme="light"] input[type=date]{color-scheme:light}
[data-theme="light"] .form label{color:var(--ink)}
[data-theme="light"] .tag{background:#eef1f6;color:#4a5570}
[data-theme="light"] .tag.ok{background:#e3f6ea;color:#11753f}[data-theme="light"] .tag.live{background:#fde8ee;color:#b8264a}
[data-theme="light"] .g-Meteors{background:#fff1dc!important;color:#9a4a06!important}[data-theme="light"] .g-Comets{background:#e0f2fe!important;color:#075e94!important}[data-theme="light"] .g-Pulsars{background:#f6e6fb!important;color:#8a1fa6!important}
[data-theme="light"] .prow{border-bottom-color:var(--line)}[data-theme="light"] .prow.no{background:#f7f8fb}
[data-theme="light"] .mini{color:var(--pink);background:#fff}
[data-theme="light"] .court{background:#fff;color:var(--ink);border-color:#bcd6ee;box-shadow:0 1px 4px rgba(20,33,61,.06)}
[data-theme="light"] .side.win{background:#e4f2fd}
[data-theme="light"] table.lb{background:#fff}[data-theme="light"] .lb th{background:#eef3fa;color:#4a5570}
[data-theme="light"] .lb th,[data-theme="light"] .lb td{border-bottom-color:var(--line)}
[data-theme="light"] .lb tr.top td{background:#fdf2fa}[data-theme="light"] .lb td b{color:var(--ink)}
[data-theme="light"] .cta{background:linear-gradient(135deg,#eaf5ff,#fcebf6);border:1.5px solid var(--pink);box-shadow:none}
[data-theme="light"] .step input{background:#fff}
[data-theme="light"] .step button{background:#e8f3fd;color:var(--blue);border-color:var(--blue)}
[data-theme="light"] .step button:active{background:#cfe6fb}
[data-theme="light"] .preview{background:#f5f8fc}
[data-theme="light"] .intro .hero{color:var(--ink);background:radial-gradient(420px 220px at 50% 0%,rgba(224,64,251,.10),transparent 70%),radial-gradient(500px 260px at 50% 110%,rgba(63,169,255,.12),transparent 70%),#fff}
[data-theme="light"] .intro .hero::after{box-shadow:none}
[data-theme="light"] .hero h1{color:var(--ink);text-shadow:none}
[data-theme="light"] .hero p{color:#2c3958}
[data-theme="light"] .hero .btn{background:#fff;color:var(--pink);box-shadow:0 2px 8px rgba(209,51,143,.18)}
[data-theme="light"] .shuttle{filter:none}
[data-theme="light"] .night{border-top-color:var(--line)}
[data-theme="light"] .day{background:#e8f3fd;color:var(--blue);box-shadow:none}
[data-theme="light"] .rule{background:#fbeef7;border-color:#efb5d6}[data-theme="light"] .rule b{color:#a8226f}

.grp{flex-wrap:wrap;align-items:center}.grp>div{display:flex;flex-direction:column;gap:2px}.grp .btn{min-height:40px;padding:8px 14px;font-size:.78rem}
.join-note{font-weight:800;margin:14px 0 4px;padding:12px 14px;border-radius:12px;border:1.5px solid var(--pink);color:var(--ink)}.hero .join-note{display:inline-block;max-width:420px;font-style:normal;color:inherit}
.grp .join-grp{flex-basis:100%;margin:6px 0 0;color:inherit}

/* ===== shared site navigation ===== */
.site-nav{--site-nav-h:52px;position:sticky;top:0;z-index:20;background:rgba(5,6,15,.92);backdrop-filter:blur(8px);border-bottom:1px solid transparent;border-image:var(--grad) 1;box-shadow:0 2px 18px rgba(224,64,251,.18)}
.site-nav__inner{margin:0 auto;display:flex;align-items:center;gap:10px;padding:8px 14px;min-height:var(--site-nav-h);flex-wrap:wrap}
.site-nav__brand{font-weight:900;letter-spacing:.06em;color:var(--blue)!important;text-decoration:none;flex:none}
.site-nav__links{display:flex;align-items:center;gap:4px;flex:1;flex-wrap:wrap}
.site-nav__link{color:#fff;text-decoration:none;font-weight:700;font-size:.9rem;padding:8px 12px;border-radius:99px}
.site-nav__link:hover,.site-nav__link:focus-visible{background:rgba(79,195,255,.12)}
.site-nav__link.is-current{background:rgba(79,195,255,.18);color:var(--blue);box-shadow:inset 0 0 0 1px rgba(79,195,255,.45)}
.site-nav__toggle{display:none;flex:none;width:40px;height:40px;border-radius:10px;border:1.5px solid var(--blue);background:transparent;color:#fff;font-size:1.25rem;line-height:1;cursor:pointer;padding:0}
.site-nav .theme-toggle{margin-left:auto}
.bar{top:var(--site-nav-h,0px)}

@media(max-width:639.98px){
  .site-nav__toggle{display:grid;place-items:center;order:2}
  .site-nav .theme-toggle{order:3;margin-left:0}
  .site-nav__brand{order:1;flex:1}
  .site-nav__links{display:none;order:4;flex-basis:100%;flex-direction:column;align-items:stretch;gap:2px;padding:4px 0 8px}
  .site-nav.is-open .site-nav__links{display:flex}
  .site-nav__link{border-radius:12px}
}

[data-theme="light"] .site-nav{background:rgba(255,255,255,.94);box-shadow:0 1px 8px rgba(20,33,61,.08)}
[data-theme="light"] .site-nav__link{color:var(--ink)}
[data-theme="light"] .site-nav__link:hover,[data-theme="light"] .site-nav__link:focus-visible{background:rgba(11,127,209,.08)}
[data-theme="light"] .site-nav__link.is-current{background:rgba(11,127,209,.1);color:var(--blue);box-shadow:inset 0 0 0 1px rgba(11,127,209,.35)}
[data-theme="light"] .site-nav__toggle{color:var(--ink)}
/* Upcoming banner */
.upcoming{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;padding:6px 14px;font-size:.86rem;font-weight:700;text-align:center;border-bottom:1px solid var(--line);background:linear-gradient(90deg,rgba(63,169,255,.14),rgba(255,62,165,.14));animation:nbs-glow 3s ease-in-out infinite alternate}
.upcoming__inner{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;width:100%}
.upcoming a{color:inherit;text-decoration:none}
.upcoming__label{background:var(--grad);color:#fff;border-radius:99px;padding:2px 10px;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}
.upcoming__text{transition:opacity .4s}.upcoming__text.is-fading{opacity:0}
@keyframes nbs-glow{from{box-shadow:0 0 6px rgba(79,195,255,.25)}to{box-shadow:0 0 16px rgba(255,62,165,.4)}}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.upcoming{animation:none}.upcoming__text{transition:none}}
/* Testimonies */
.quotes{display:grid;gap:12px;grid-template-columns:1fr}
@media(min-width:560px){.quotes{grid-template-columns:repeat(2,1fr)}}
.quote{margin:0;padding:14px;border:1px solid var(--line);border-radius:var(--r)}
.quote blockquote{margin:0 0 8px;font-style:italic}.quote figcaption{font-size:.86rem;color:var(--muted)}
.quote .ex{display:block;margin:0 0 6px;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--pink)}
.join-footer{text-align:center;padding:1rem 1rem 0}

/* Anchor targets clear sticky nav + upcoming banner */
#how-to-join{scroll-margin-top:calc(var(--site-nav-h, 52px) + 56px)}

/* ===== landing: Weekly Private Socials panel + separate testimonies ===== */
.socials-panel{border:1.5px solid var(--blue);padding-bottom:18px}
.socials-panel .sub{background:rgba(79,195,255,.06);border:1px solid rgba(169,180,214,.18);border-radius:14px;padding:12px 14px;margin:12px 0}
.socials-panel .sub h3{margin:0 0 6px;font-size:1.02rem;color:var(--pink)}
.socials-panel .sub .night{border-top:0;padding:0}
.socials-panel .sub .night+p{margin-top:10px}
.socials-panel .sub .groups{margin:10px 0}
.socials-panel .sub p:last-child{margin-bottom:0}
.socials-panel .center{text-align:center;margin-top:16px}
.testimonies{margin-top:28px;border:1.5px dashed var(--pink)}
[data-theme="light"] .socials-panel .sub{background:#f5f9fe;border-color:#dbe5f2}
@media(max-width:420px){.socials-panel .sub{padding:10px 11px}}

.days-grid{display:grid;gap:0}
