@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/47faf0e9117ce2e3-s.3z_x6eowsw16y.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/660acf689794c992-s.p.2_mbdogr7ni8i.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}._0jgVUW_className{font-family:DM Sans,DM Sans Fallback;font-style:normal}._0jgVUW_variable{--font-body:"DM Sans", "DM Sans Fallback"}
@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/12d4e8c1f08b4a66-s.0e__wj8580tc5.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/cabb10e1d7cbc7c1-s.10u7vx61f1ie7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/9f5a2b9f13a4ecbb-s.35a5cae5tspm2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/d8aeca813a9ab546-s.p.18rizl4rsrl42.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans Fallback;src:local(Arial);ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.0%;size-adjust:104.98%}.MR2Onq_className{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.MR2Onq_variable{--font-display:"Plus Jakarta Sans", "Plus Jakarta Sans Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/258bd0ab5fdd762a-s.2f7nqdagzwx2-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/99a2019bdfa8519b-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/44e0cb21b0d052b7-s.0bp8oijd_gu96.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/f9cd5a77d065db98-s.1fby2rem9ngyr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/954d21e04331b2ae-s.0vfdmo25voy_0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/53897e768d329f66-s.3t6q91iet4nsy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.w1ICmG_className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.w1ICmG_variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/edb5f85793adc1bb-s.1gepa_7fcx9fm.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/92b6de9cb55945e2-s.2eksvhm1z0jwa.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/237858b39a32779d-s.2cyn07wtgehh0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk Fallback;src:local(Arial);ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.0%;size-adjust:109.69%}.wd3tUG_className{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.wd3tUG_variable{--font-grotesk:"Space Grotesk", "Space Grotesk Fallback"}
*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0a0a;--card:#1a1a1a;--surface-raised:#111;--text:#ededed;--text-secondary:#9ca3af;--text-tertiary:#6b7280;--border:#333;--border-subtle:#222;--color-overlay:#000000b3;--color-primary:#3b82f6;--color-primary-hover:#2563eb;--color-primary-subtle:#3b82f61f;--color-danger:#ef4444;--color-danger-hover:#dc2626;--color-danger-subtle:#ef44441f;--color-success:#22c55e;--color-success-hover:#16a34a;--color-success-subtle:#22c55e1f;--color-warning:#f59e0b;--color-warning-hover:#d97706;--color-warning-subtle:#f59e0b1f;--color-admin:#6b21a8;--color-admin-subtle:#6b21a826;--color-link:#60a5fa;--color-nickname-accent:#a78bfa;--color-code-accent:#3b82f6;--color-focus-ring:#3b82f666;--color-scrollbar:#444;--color-log-info-bg:#1e3a5f;--color-log-info-text:#60a5fa;--color-log-warning-bg:#78350f;--color-log-warning-text:#fbbf24;--color-log-error-bg:#7f1d1d;--color-log-error-text:#f87171;--color-accent-checkbox:#3b82f6;--color-live-badge:#ef4444;--color-status-accepted:#8b5cf6;--color-curve-accent:#00f5d4}html,body{max-width:100vw;font-family:var(--font-body,"DM Sans"), -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif;background:var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}.container{max-width:1200px;margin:0 auto;padding:2rem}.card{background:var(--card);border-radius:8px;margin-bottom:1rem;padding:1.5rem;overflow:hidden}.btn{cursor:pointer;background:var(--surface-raised);color:var(--text);border:none;border-radius:6px;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;transition:background .2s;display:inline-block}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{background:var(--card);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--surface-raised)}.btn-success{background:var(--color-success);color:#fff}.btn-success:hover{background:var(--color-success-hover)}.btn-warning{background:var(--color-warning);color:#fff}.btn-warning:hover{background:var(--color-warning-hover)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{background:var(--color-danger-hover)}.btn-sm{padding:.5rem 1rem;font-size:.875rem}.input{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);border-radius:6px;padding:.75rem;font-size:1rem}.input:focus{border-color:var(--color-primary);outline:none}.form-group{margin-bottom:1rem}.form-group label{margin-bottom:.5rem;font-weight:500;display:block}.badge{text-transform:uppercase;border-radius:9999px;padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-block}.badge-new{background:var(--color-primary);color:#fff}.badge-accepted{background:var(--color-status-accepted);color:#fff}.badge-playing{background:var(--color-success);color:#fff;animation:2s ease-in-out infinite badge-pulse-glow}@keyframes badge-pulse-glow{0%,to{box-shadow:0 0 4px #22c55e66}50%{box-shadow:0 0 14px #22c55ecc}}.badge-played{background:var(--text-tertiary);color:var(--bg)}.badge-rejected{background:var(--color-danger);color:#fff}.badge-set-draft{background:var(--surface-raised);color:var(--text-secondary);border:1px solid var(--border)}.badge-set-locked{background:var(--color-warning-subtle);color:var(--color-warning);border:1px solid #0000}.badge-set-exported{background:var(--color-success-subtle);color:var(--color-success);border:1px solid #0000}.header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;padding-bottom:1rem;display:flex}.header>*{min-width:0;max-width:100%}.header h1{font-size:1.5rem}.request-list{flex-direction:column;gap:1rem;display:flex}.request-item{background:var(--card);color:inherit;border-radius:8px;justify-content:space-between;align-items:flex-start;padding:1rem;display:flex}.request-info{flex:1;min-width:0}.request-info h3{white-space:nowrap;text-overflow:ellipsis;min-width:0;margin-bottom:.25rem;font-size:1.125rem;overflow:hidden}.request-info p{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;overflow:hidden}.request-nickname{color:var(--color-nickname-accent);margin-top:.25rem;font-size:.8rem}.request-nickname .nickname-icon{font-style:normal}.request-info .note{background:var(--bg);border-radius:4px;margin-top:.5rem;padding:.5rem;font-style:italic}.request-actions{flex-wrap:wrap;gap:.5rem;display:flex}.event-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;display:grid}.event-card{background:var(--card);border-radius:8px;padding:1.5rem}.event-card h3{margin-bottom:.5rem;font-size:1.25rem}.event-card .code{color:var(--color-code-accent);margin-bottom:1rem;font-family:monospace;font-size:1.5rem}.qr-container{background:#fff;border-radius:8px;margin:1rem 0;padding:1rem;display:inline-block}.tabs{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.tab{cursor:pointer;border:1px solid var(--border);color:var(--text-secondary);background:0 0;border-radius:6px;padding:.5rem 1rem}.tab.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.loading{height:200px;color:var(--text-secondary);justify-content:center;align-items:center;display:flex}.scrollable-list{scrollbar-width:thin;scrollbar-color:var(--color-scrollbar) transparent;max-height:680px;overflow-y:auto}.scrollable-list::-webkit-scrollbar{width:6px}.scrollable-list::-webkit-scrollbar-track{background:0 0}.scrollable-list::-webkit-scrollbar-thumb{background:var(--color-scrollbar);border-radius:3px}.scrollable-list::-webkit-scrollbar-thumb:hover{background:var(--color-scrollbar)}@keyframes fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}.fade-out{animation:.5s ease-out forwards fade-out}.join-page-wrapper{max-width:100vw;min-height:100dvh;position:relative;overflow-x:clip}.join-banner-bg{z-index:0;width:100%;height:30vh;min-height:150px;max-height:250px;position:absolute;top:0;left:0;overflow:hidden}.join-banner-bg img{object-fit:cover;filter:blur(2px)brightness(.65);width:100%;height:100%;display:block;-webkit-mask-image:linear-gradient(#000 0% 30%,#0000 100%);mask-image:linear-gradient(#000 0% 30%,#0000 100%)}.guest-request-list-container{flex-direction:column;max-width:100vw;min-height:100dvh;padding-bottom:5rem;display:flex;position:relative;overflow-x:clip}.guest-request-list{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:.5rem;display:flex;overflow-y:auto}.guest-request-item{background:var(--card);border-radius:8px;align-items:center;gap:.75rem;padding:.75rem;display:flex}.guest-request-item-art{object-fit:cover;border-radius:6px;flex-shrink:0;width:48px;height:48px}.guest-request-item-info{flex:1;min-width:0}.guest-request-item-title{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.guest-request-item-artist{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;overflow:hidden}.guest-request-item-nickname{color:var(--color-nickname-accent);white-space:nowrap;text-overflow:ellipsis;margin-top:.125rem;font-size:.75rem;overflow:hidden}.guest-request-item-meta{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.25rem;display:flex}.badge-pending{background:var(--color-primary-subtle);color:var(--color-link)}.badge-accepted-guest{background:var(--color-admin-subtle);color:var(--color-nickname-accent)}.my-requests-tracker{background:var(--card);border-radius:8px;margin-bottom:1rem;overflow:hidden}.my-requests-header{width:100%;color:var(--text);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;padding:.75rem;font-size:.875rem;font-weight:600;display:flex}.my-requests-title{color:var(--color-nickname-accent)}.my-requests-chevron{color:var(--text-secondary);font-size:.6rem;transition:transform .2s}.my-requests-chevron.collapsed{transform:rotate(-90deg)}.my-requests-list{flex-direction:column;gap:1px;padding:0 .5rem .5rem;display:flex}.my-request-item{align-items:center;gap:.75rem;padding:.5rem .25rem;display:flex}.my-req-badge-pending{background:var(--color-warning-subtle);color:var(--color-warning)}.my-req-badge-accepted{background:var(--color-primary-subtle);color:var(--color-link)}.my-req-badge-playing{background:var(--color-success-subtle);color:var(--color-success);animation:1.5s ease-in-out infinite badge-pulse}.my-req-badge-played{background:var(--color-primary-subtle);color:var(--text-secondary)}.my-req-badge-rejected{background:var(--color-danger-subtle);color:var(--color-danger)}@keyframes badge-pulse{0%,to{opacity:1}50%{opacity:.6}}.toast-notification{z-index:100;cursor:pointer;text-align:center;border-radius:.75rem;max-width:calc(100vw - 2rem);padding:.75rem 1.25rem;font-size:.875rem;font-weight:600;animation:.3s ease-out toast-slide-in;position:fixed;top:1rem;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}@keyframes toast-slide-in{0%{opacity:0;transform:translate(-50%)translateY(-1rem)}to{opacity:1;transform:translate(-50%)translateY(0)}}.celebration-overlay{z-index:200;cursor:pointer;background:#000000eb radial-gradient(90% 45% at 50% 32%,#581c8773,#0000 70%);justify-content:center;align-items:center;animation:.4s ease-out celebration-enter;display:flex;position:fixed;inset:0}@keyframes celebration-enter{0%{opacity:0}to{opacity:1}}.celebration-content{text-align:center;flex-direction:column;align-items:center;padding:2rem;animation:.5s cubic-bezier(.34,1.56,.64,1) celebration-scale-in;display:flex}@keyframes celebration-scale-in{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.celebration-artwork{object-fit:cover;border-radius:12px;width:160px;height:160px;margin-bottom:1.5rem}.celebration-label{font:800 30px/1.1 var(--font-display,"Plus Jakarta Sans"), sans-serif;letter-spacing:-.02em;color:var(--gp-ink,#e9e4dc);margin-bottom:.75rem}.celebration-title{color:var(--gp-ink,#e9e4dc);text-overflow:ellipsis;white-space:nowrap;max-width:300px;margin-bottom:.25rem;font-size:1.25rem;font-weight:700;overflow:hidden}.celebration-artist{color:var(--gp-ink-2,#8a847b);text-overflow:ellipsis;white-space:nowrap;max-width:300px;margin-bottom:2rem;font-size:1.05rem;overflow:hidden}.celebration-dismiss{color:var(--gp-ink-2,#8a847b);font-size:.875rem}.confetti-container{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti-particle{top:-10px;left:var(--x);opacity:0;animation:confetti-fall var(--duration) var(--delay) ease-in forwards;will-change:transform, opacity;position:absolute}@keyframes confetti-fall{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(100vh) rotate(var(--rotation))}}@media (prefers-reduced-motion:reduce){.confetti-particle{animation:none;display:none}.celebration-content,.celebration-overlay,.toast-notification,.my-req-badge-playing,.identity-bar-pulse,.hv-overlay-spinner{animation:none}}.sticky-bottom-button{padding:1rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px));background:linear-gradient(transparent, var(--bg) 30%);z-index:10;position:fixed;bottom:0;left:0;right:0}@keyframes btn-glow{0%,to{box-shadow:0 0 15px var(--color-focus-ring), 0 0 30px var(--color-primary-subtle)}50%{box-shadow:0 0 20px var(--color-focus-ring), 0 0 40px var(--color-primary-subtle)}}@keyframes generate-pulse{0%,to{box-shadow:0 0 8px var(--color-primary-subtle), 0 0 16px var(--color-primary-subtle);opacity:.9}50%{box-shadow:0 0 14px var(--color-focus-ring), 0 0 28px var(--color-primary-subtle);opacity:1}}.btn-generating{animation:1.2s ease-in-out infinite generate-pulse}.btn-complete{transition:background 1.5s,box-shadow 1.5s;background:var(--color-success)!important}.btn-complete-fade{transition:background 1.5s,box-shadow 1.5s}.sticky-bottom-button .btn{width:100%;max-width:500px;margin:0 auto;padding:1rem 1.5rem;font-size:1.125rem;font-weight:600;animation:2s ease-in-out infinite btn-glow;display:block}.admin-layout{min-height:100vh;display:flex}.admin-sidebar{background:var(--surface-raised);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:220px;display:flex}.admin-sidebar-header{border-bottom:1px solid var(--border);padding:1.5rem}.admin-sidebar-header h2{color:var(--color-primary);font-size:1.25rem}.admin-sidebar-nav{flex-direction:column;flex:1;padding:1rem 0;display:flex}.admin-sidebar-link{color:var(--text-secondary);padding:.75rem 1.5rem;text-decoration:none;transition:background .2s,color .2s;display:block}.admin-sidebar-link:hover{background:var(--border-subtle);color:var(--text)}.admin-sidebar-link.active{background:var(--card);color:var(--color-primary);border-left:3px solid var(--color-primary)}.admin-sidebar-footer{border-top:1px solid var(--border);flex-direction:column;gap:.5rem;padding:1rem 1.5rem;display:flex}.admin-main{flex:1;overflow-x:auto}.stats-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;display:grid}.stat-card{background:var(--card);text-align:center;border-radius:8px;padding:1.5rem}.stat-value{color:var(--text);font-size:2rem;font-weight:700}.stat-label{color:var(--text-secondary);margin-top:.25rem;font-size:.875rem}.admin-table{border-collapse:collapse;width:100%}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border);padding:.75rem 1rem}.admin-table th{color:var(--text-secondary);text-transform:uppercase;font-size:.875rem;font-weight:600}.admin-table tbody tr:hover{background:var(--card)}.badge-role-admin{background:var(--color-admin);color:#fff}.badge-role-dj{background:var(--color-primary);color:#fff}.badge-role-pending{background:var(--color-warning);color:var(--bg)}.badge-tone-success{background:var(--color-success-subtle);color:var(--color-success)}.badge-tone-warning{background:var(--color-warning-subtle);color:var(--color-warning)}.badge-tone-neutral{background:var(--surface-raised);color:var(--text-secondary);border:1px solid var(--border)}.guest-name{color:var(--color-nickname-accent);font-weight:600}.guest-muted{color:var(--text-secondary)}.guest-signal-ok{color:var(--color-success);font-weight:600}.guest-meta{color:var(--text-secondary);font-variant-numeric:tabular-nums;margin-top:.25rem;font-size:.75rem}.guest-meta-row{flex-wrap:wrap;gap:0 .5rem;display:flex}.guest-meta-row>span+span:before{content:"·";color:var(--text-tertiary);margin-right:.5rem}.guest-fp{font-family:var(--font-mono,"JetBrains Mono"), "SF Mono", "Fira Code", monospace;font-variant-numeric:tabular-nums;letter-spacing:.02em}.guest-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-bottom:1rem;display:flex}.guest-toolbar .tabs{flex-wrap:wrap}.guest-toolbar .tab{white-space:nowrap}.guest-search{flex:220px;width:auto;max-width:320px;padding:.5rem .75rem;font-size:.875rem}.guest-actions{gap:.5rem;display:flex}.guest-table th,.guest-table td{white-space:nowrap;vertical-align:top;padding:.75rem}.guest-table td:first-child{white-space:normal;width:100%;min-width:11rem}.guest-table .badge{white-space:nowrap}.guest-meta-tight{margin-top:0}.guest-heading{align-items:baseline;gap:.75rem;display:flex}.guest-empty{text-align:center;color:var(--text-secondary);padding:2.5rem 1rem}.admin-table-detail td{background:var(--surface-raised);padding:.75rem 1rem .75rem 2.5rem}.guest-membership-list{gap:.375rem;list-style:none;display:grid}.guest-membership-list li{flex-wrap:wrap;align-items:baseline;gap:.75rem;font-size:.875rem;display:flex}.guest-membership-list .guest-meta{margin-top:0}.form-group label.guest-checkbox{cursor:pointer;align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.guest-checkbox input{accent-color:var(--color-accent-checkbox);width:1rem;height:1rem}.guest-field-error{color:var(--color-danger);margin-top:.375rem;font-size:.8125rem}.admin-main :is(.btn,.tab,.input):focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.modal-overlay{background:var(--color-overlay);z-index:100;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--card);border-radius:8px;width:100%;max-width:450px;max-height:90vh;padding:2rem;overflow-y:auto}.pagination{justify-content:center;align-items:center;gap:1rem;margin-top:1.5rem;display:flex}@keyframes pulse-live{0%,to{opacity:1}50%{opacity:.7}}@keyframes now-playing-spectrum{0%{height:20%}to{height:100%}}.now-playing-live-badge{background:var(--color-live-badge);color:#fff;letter-spacing:.05em;border-radius:.25rem;flex-shrink:0;padding:.1rem .375rem;font-size:.625rem;font-weight:700;animation:2s ease-in-out infinite pulse-live;display:inline-block}.now-playing-spectrum-bars{flex-shrink:0;align-items:flex-end;gap:3px;height:24px;display:flex}.now-playing-spectrum-bar{background:linear-gradient(to top, var(--color-success-hover), var(--color-success));border-radius:2px;width:3px;animation:.5s ease-in-out infinite alternate now-playing-spectrum}.badge-status{letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;border-radius:4px;padding:.2rem .5rem;font-size:.7rem;font-weight:600;display:inline-block}.badge-status.yes{background:var(--color-success);color:#fff}.badge-status.no{background:var(--color-danger);color:#fff}.badge-status.configured{background:var(--color-warning);color:var(--bg)}.badge-status.not-configured{background:var(--border);color:var(--text-secondary)}.badge-status.not-implemented{background:var(--card);color:var(--text-tertiary)}.integration-table{border-collapse:collapse;width:100%}.integration-table th,.integration-table td{text-align:center;border-bottom:1px solid var(--border);padding:.75rem 1rem}.integration-table th{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.integration-table td:first-child,.integration-table th:first-child{text-align:left}.integration-table tbody tr:hover{background:var(--card)}.toggle-switch{background:var(--border);cursor:pointer;border:none;border-radius:12px;flex-shrink:0;width:44px;height:24px;transition:background .2s;position:relative}.toggle-switch.active{background:var(--color-success)}.toggle-switch:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .2s;position:absolute;top:2px;left:2px}.toggle-switch.active:after{transform:translate(20px)}.toggle-switch:disabled{opacity:.5;cursor:not-allowed}.btn-link{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.btn-link:hover{color:var(--text)}.btn-check{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:4px;padding:.375rem .75rem;font-size:.75rem;transition:background .2s,color .2s}.btn-check:hover{background:var(--border);color:var(--text)}.btn-check:disabled{opacity:.5;cursor:not-allowed}.event-tabs{flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem;display:flex}.event-tab{border:2px solid var(--border);background:var(--card);min-width:0;color:var(--text-secondary);cursor:pointer;border-radius:8px;flex:1;padding:1rem;font-size:1rem;font-weight:600;transition:background .2s,border-color .2s,color .2s}@media (max-width:480px){.event-tab{padding:.75rem .25rem;font-size:.875rem}}.event-tab:hover{border-color:var(--border);color:var(--text)}.event-tab.active{border-color:var(--color-primary);background:var(--color-log-info-bg);color:var(--text)}.activity-log{max-height:400px;overflow-y:auto}.log-entry{border-bottom:1px solid var(--border-subtle);align-items:flex-start;gap:.75rem;padding:.5rem 0;font-size:.875rem;display:flex}.log-entry:last-child{border-bottom:none}.log-level-info{background:var(--color-log-info-bg);color:var(--color-log-info-text);white-space:nowrap;border-radius:4px;padding:.125rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.log-level-warning{background:var(--color-log-warning-bg);color:var(--color-log-warning-text);white-space:nowrap;border-radius:4px;padding:.125rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.log-level-error{background:var(--color-log-error-bg);color:var(--color-log-error-text);white-space:nowrap;border-radius:4px;padding:.125rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.log-source{background:var(--border);color:var(--text-secondary);white-space:nowrap;border-radius:4px;padding:.125rem .5rem;font-size:.75rem;font-weight:500;display:inline-block}@media (max-width:768px){.admin-layout{flex-direction:column}.admin-sidebar{border-right:none;border-bottom:1px solid var(--border);width:100%}.admin-sidebar-nav{flex-direction:row;padding:0;overflow-x:auto}.admin-sidebar-link{white-space:nowrap;padding:.75rem 1rem}.admin-sidebar-link.active{border-left:none;border-bottom:3px solid var(--color-primary)}.admin-sidebar-footer{flex-direction:row;justify-content:space-between}}.page-controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;min-height:32px;margin-bottom:.75rem;display:flex}.page-controls .theme-toggle,.page-controls .help-tour-btn{min-height:32px}.density-toggle-icon{fill:currentColor;width:14px;height:14px}.help-controls{align-items:center;gap:.5rem;display:flex}.help-btn{border:2px solid var(--border);background:var(--card);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:1.125rem;font-weight:700;transition:background .2s,border-color .2s,color .2s;display:flex}.help-btn:hover{border-color:var(--color-primary);color:var(--text)}.help-btn-active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.help-tour-btn{border:1px solid var(--color-primary);color:var(--color-primary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;padding:.375rem .75rem;font-size:.8125rem;font-weight:500;transition:background .2s}.help-tour-btn:hover{background:var(--color-primary-subtle)}.help-spot-highlight{outline:2px solid var(--color-focus-ring);outline-offset:4px;border-radius:6px}.help-tooltip{z-index:1100;background:var(--card);border:1px solid var(--border);pointer-events:none;border-radius:8px;min-width:200px;max-width:min(320px,100vw - 32px);padding:.75rem 1rem;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 4px 16px #0006}.help-tooltip-title{color:var(--text);margin-bottom:.25rem;font-size:.875rem;font-weight:600}.help-tooltip-desc{color:var(--text-secondary);font-size:.8125rem;line-height:1.4}.onboarding-card{background:var(--card);border:1px solid var(--border);border-radius:12px;width:320px;max-width:calc(100vw - 32px);max-height:calc(100vh - 64px);padding:1.25rem 1.5rem;overflow-y:auto;box-shadow:0 8px 32px #00000080}.onboarding-step-counter{color:var(--color-link);letter-spacing:.03em;margin-bottom:.5rem;font-size:.75rem;font-weight:600}.onboarding-card-title{color:var(--text);margin-bottom:.375rem;font-size:1rem;font-weight:600}.onboarding-card-desc{color:var(--text-secondary);margin-bottom:1rem;font-size:.875rem;line-height:1.5}.onboarding-nav{justify-content:space-between;align-items:center;display:flex}.theme-toggle{border:1px solid var(--border);background:var(--card);color:var(--text-secondary);cursor:pointer;border-radius:6px;align-items:center;gap:.375rem;padding:.375rem .625rem;font-size:.75rem;font-weight:500;transition:border-color .2s,color .2s;display:flex}.theme-toggle:hover{border-color:var(--color-primary);color:var(--text)}.theme-toggle-icon{border:2px solid;border-radius:50%;width:14px;height:14px;transition:background .2s}.theme-toggle-icon--dark{background:linear-gradient(135deg,currentColor 50%,#0000 50%)}.theme-toggle-icon--high-contrast{background:currentColor}.theme-toggle-icon--daylight{background:0 0}h1,.display-heading{font-family:var(--font-display,"Plus Jakarta Sans"), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}.code,code{font-family:var(--font-mono,"JetBrains Mono"), "SF Mono", "Fira Code", monospace}.compact .request-list{gap:.5rem}.compact .request-item{padding:.5rem .75rem}.compact .request-info h3{margin-bottom:.125rem;font-size:.95rem}.compact .request-info p{font-size:.8rem}.compact .request-actions{gap:.25rem}.compact .btn-sm{padding:.375rem .625rem;font-size:.8rem}.compact .badge{padding:.2rem .5rem;font-size:.675rem}.compact .scrollable-list{max-height:900px}@keyframes spin{to{transform:rotate(360deg)}}.collect-page{max-width:100vw;min-height:100dvh;padding-bottom:5rem;position:relative;overflow-x:clip}.collect-container{z-index:1;max-width:640px;margin:0 auto;padding:1.5rem 1rem;position:relative}.collect-header{margin-bottom:1.25rem}.collect-title{text-overflow:ellipsis;white-space:nowrap;margin-bottom:.25rem;font-size:1.75rem;font-weight:600;overflow:hidden}.collect-phase-badge{color:#60a5fa;background:#3b82f626;border-radius:9999px;align-items:center;gap:.4rem;margin-bottom:.5rem;padding:.35rem .75rem;font-size:.8rem;font-weight:500;display:inline-flex}.collect-phase-badge.pre-announce{color:#fbbf24;background:#f59e0b26}.collect-countdown{color:var(--text-secondary);font-size:.9rem}.collect-section{margin-top:1.5rem}.collect-section-title{color:var(--text);margin-bottom:.75rem;font-size:1rem;font-weight:600}.collect-error{color:#fca5a5;background:#ef44441f;border:1px solid #ef44444d;border-radius:.5rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem}.collect-optin{background:var(--card);border:1px solid var(--border);border-radius:8px;margin-bottom:1.25rem;padding:1rem 1.25rem}.collect-optin h3{margin-bottom:.5rem;font-size:1rem}.collect-optin-features{color:var(--text-secondary);flex-direction:column;gap:.25rem;margin:0 0 .75rem;padding:0;font-size:.875rem;list-style:none;display:flex}.collect-optin-features li:before{content:"✓ ";color:#22c55e;margin-right:.25rem}.collect-optin-actions{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.collect-optin-dismiss{color:var(--text-secondary);border:1px solid var(--border);background:0 0}.collect-optin-dismiss:hover{color:var(--text);border-color:var(--text-secondary)}.collect-tabs{gap:.5rem;margin-bottom:.75rem;display:flex}.collect-tab{cursor:pointer;border:1px solid var(--border);color:var(--text-secondary);background:0 0;border-radius:6px;flex:1;padding:.5rem .75rem;font-size:.875rem;font-weight:500;transition:all .15s}.collect-tab[aria-pressed=true]{color:#fff;background:#3b82f6;border-color:#3b82f6}.collect-leaderboard{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.collect-row{background:var(--card);border-radius:8px;align-items:center;gap:.75rem;padding:.75rem;display:flex}.collect-row-art{object-fit:cover;background:var(--bg);border-radius:6px;flex-shrink:0;width:44px;height:44px}.collect-row-info{flex:1;min-width:0}.collect-row-title{white-space:nowrap;text-overflow:ellipsis;font-size:1rem;font-weight:600;overflow:hidden}.collect-row-artist{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:.9375rem;overflow:hidden}.collect-row-nickname{color:var(--color-nickname-accent);white-space:nowrap;text-overflow:ellipsis;margin-top:.125rem;font-size:.8125rem;overflow:hidden}.collect-vote{color:#60a5fa;cursor:pointer;background:#3b82f61f;border:1px solid #0000;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;min-width:44px;padding:.35rem .6rem;font-size:.85rem;font-weight:600;transition:background .15s,border-color .15s;display:flex}.collect-vote:hover:not(:disabled){background:#3b82f633;border-color:#3b82f666}.collect-vote.voted,.collect-vote:disabled{color:#dbeafe;cursor:default;background:#3b82f659;border-color:#3b82f699}.collect-vote-caret{font-size:.7rem;line-height:1}.collect-empty{text-align:center;color:var(--text-secondary);padding:2rem 1rem;font-style:italic}.collect-picks{flex-direction:column;gap:.5rem;display:flex}.collect-picks-badge{color:#fbbf24;background:#f59e0b26;border-radius:9999px;align-items:center;gap:.35rem;margin-bottom:.5rem;padding:.35rem .75rem;font-size:.8rem;font-weight:500;display:inline-flex}.collect-pick-first{color:#fbbf24;margin-left:.5rem;font-size:.7rem}.collect-submit-bar{background:var(--card);border-top:1px solid var(--border);z-index:10;justify-content:space-between;align-items:center;gap:1rem;padding:.875rem 1rem;display:flex;position:fixed;bottom:0;left:0;right:0}.collect-cap-counter{color:var(--text-secondary);font-size:.875rem}.collect-cap-counter.at-cap{color:#f87171}.collect-search-overlay{z-index:100;background:#000000b3;justify-content:center;align-items:flex-start;padding:1rem;display:flex;position:fixed;inset:0}.collect-search-modal{background:var(--card);border:1px solid var(--border);border-radius:12px;flex-direction:column;width:100%;max-width:560px;max-height:85vh;padding:1rem;display:flex}.collect-search-header{align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.collect-search-header .input{flex:1}.collect-search-results{flex-direction:column;flex:1;gap:.5rem;margin-top:.5rem;display:flex;overflow-y:auto}.collect-search-result{background:var(--bg);border:1px solid var(--border);cursor:pointer;text-align:left;color:inherit;border-radius:8px;align-items:center;gap:.75rem;padding:.6rem;transition:border-color .15s,background .15s;display:flex}.collect-search-result:hover{background:var(--card);border-color:#3b82f6}.collect-preannounce{text-align:center;padding:3rem 1rem}.collect-preannounce-count{color:#fbbf24;font-variant-numeric:tabular-nums;margin:1rem 0 .5rem;font-size:2rem;font-weight:700}.pre-event-stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.pre-event-stat{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.75rem 1rem}.pre-event-stat-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);margin-bottom:.25rem;font-size:.75rem}.pre-event-stat-value{font-size:1.1rem;font-weight:600}.pre-event-share{background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.65rem .75rem;font-size:.85rem;display:flex}.pre-event-share code{text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden}.pre-event-override-actions{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.pre-event-confirm{background:#f59e0b14;border:1px solid #f59e0b4d;border-radius:6px;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.75rem 1rem;display:flex}.pre-event-review-controls{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.pre-event-review-controls label{align-items:center;gap:.35rem;font-size:.875rem;display:flex}.pre-event-review-controls input[type=number]{background:var(--bg);border:1px solid var(--border);width:4.5rem;color:var(--text);border-radius:4px;padding:.35rem .5rem}.pre-event-review-table{border-collapse:collapse;width:100%;font-size:.875rem}.pre-event-review-table th,.pre-event-review-table td{text-align:left;border-bottom:1px solid var(--border);padding:.6rem .5rem}.pre-event-review-table th{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:500}.pre-event-review-table tbody tr:hover{background:#ffffff05}.pre-event-review-actions{flex-wrap:wrap;gap:.35rem;display:flex}.pre-event-review-empty{text-align:center;color:var(--text-secondary);padding:2rem 1rem;font-style:italic}.pre-event-bulk-selection{background:var(--color-primary-subtle);border:1px solid var(--color-primary-subtle);border-radius:6px;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.75rem;padding:.75rem;display:flex}.collection-fieldset{border-top:1px solid var(--border);margin-bottom:1rem;padding-top:.875rem}.collection-fieldset-toggle{cursor:pointer;align-items:center;gap:.5rem;font-weight:500;display:flex}.collection-fieldset-toggle input[type=checkbox]{accent-color:var(--color-accent-checkbox)}.collection-fieldset-fields{flex-direction:column;gap:.75rem;margin-top:.75rem;display:flex}.collection-fieldset-hint{color:var(--text-secondary);margin:.25rem 0 0;font-size:.75rem}.collection-fieldset-error{color:var(--color-danger);margin-top:.25rem;font-size:.875rem}.collection-fieldset-cap{width:6rem}.join-pre-event-banner{color:#60a5fa;text-align:center;background:#3b82f61f;border:1px solid #3b82f640;border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem;display:block}.join-pre-event-banner a{color:#93c5fd;font-weight:500}.email-verify-input h4{color:var(--text);font-size:1rem;font-weight:600}.email-verify-code{text-align:center}.email-verified-badge{color:#4ade80;background:#22c55e1f;border:1px solid #22c55e4d;border-radius:6px;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.85rem;font-weight:500;display:inline-flex}.verify-digits{justify-content:center;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.verify-digit-input{text-align:center;background:var(--card);border:2px solid var(--border);width:2.75rem;height:3.25rem;color:var(--text);caret-color:var(--color-primary);border-radius:10px;outline:none;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:1.5rem;font-weight:600;transition:border-color .15s,box-shadow .15s}.verify-digit-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-focus-ring)}.verify-digit-input:disabled{opacity:.5;cursor:not-allowed}.verify-timer{color:var(--text-secondary);font-variant-numeric:tabular-nums;min-width:2.5rem;font-size:.8rem}.join-live-splash{color:#1a1a1a;text-align:center;background:linear-gradient(90deg,#fbbf24,#f59e0b);border-radius:0 0 8px 8px;padding:.875rem 1rem;font-size:.95rem;font-weight:600}.identity-bar{z-index:2;background:var(--card);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;align-items:flex-start;gap:.5rem .75rem;padding:.5rem 1rem;font-size:.875rem;display:flex;position:relative}.identity-bar-name{color:var(--text-secondary);font-weight:500}.identity-bar-verified{color:var(--color-success);font-size:.8rem}.identity-bar-add-email{color:var(--color-link);cursor:pointer;background:0 0;border:none;align-items:center;gap:.3rem;padding:0;font-size:.8rem;line-height:1.4;display:inline-flex}.identity-bar-pulse{background:var(--color-link);border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:2s ease-in-out infinite identity-pulse;display:inline-block}.identity-bar-email-form{flex:100%;margin-top:.25rem}@keyframes identity-pulse{0%,to{opacity:1}50%{opacity:.25}}@keyframes gst-spark{0%{opacity:1;transform:translate(0)scale(1)}to{transform:translate(var(--dx), var(--dy)) scale(0);opacity:0}}@keyframes gst-sheet-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes gst-live-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}@keyframes gst-eq-bar{0%{height:20%}to{height:95%}}@keyframes gst-badge-in{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.guest-tower{min-height:100dvh;font-family:var(--font-body,"DM Sans"), system-ui, sans-serif;background:var(--gp-ground);color:var(--gp-ink);background-image:radial-gradient(120% 40% at 50% 0,#581c8738,#0000 70%);position:relative;overflow:hidden}.guest-tower-inner{-webkit-overflow-scrolling:touch;height:100dvh;padding-bottom:100px;position:relative;overflow-y:auto}.gst-glow-top{filter:blur(40px);pointer-events:none;z-index:0;border-radius:50%;width:280px;height:280px;position:absolute;top:40px;left:-80px}.gst-glow-bottom{filter:blur(40px);pointer-events:none;z-index:0;border-radius:50%;width:280px;height:280px;position:absolute;bottom:40px;right:-80px}.gst-tower-row{cursor:pointer;border-radius:12px;margin-bottom:6px;padding:13px 12px 13px 14px;transition:transform .36s cubic-bezier(.2,.8,.2,1),background .24s;position:relative;overflow:hidden}.gst-tower-row:active{transform:scale(.985)}.gst-now-playing{border-radius:14px;align-items:center;gap:11px;margin:4px 12px 8px;padding:11px;display:flex;position:relative;overflow:hidden}.gst-tabs{align-items:center;gap:5px;padding:4px 12px 8px;display:flex}.gst-tab{font-family:var(--font-mono,monospace);letter-spacing:1.2px;cursor:pointer;background:0 0;border-radius:99px;padding:6px 11px;font-size:9.5px;font-weight:700;transition:background .15s,color .15s}.gst-tab.active{color:#06060a;background:#fff;border:none}.gst-cta-wrap{padding:12px 16px calc(16px + env(safe-area-inset-bottom,0px));background:linear-gradient(transparent, var(--gp-ground) 30%);z-index:20;pointer-events:none;position:fixed;bottom:0;left:0;right:0}.gst-cta-wrap>*{pointer-events:auto}.gst-request-sheet{z-index:100;font-family:var(--font-body,"DM Sans"), system-ui, sans-serif;background:var(--gp-ground);color:var(--gp-ink);padding-top:env(safe-area-inset-top,0px);flex-direction:column;animation:.28s cubic-bezier(.2,.8,.2,1) gst-sheet-in;display:flex;position:fixed;inset:0}.gst-detail-sheet{z-index:110;font-family:var(--font-body,"DM Sans"), system-ui, sans-serif;background:var(--gp-ground);color:var(--gp-ink);padding-top:env(safe-area-inset-top,0px);flex-direction:column;animation:.28s cubic-bezier(.2,.8,.2,1) gst-sheet-in;display:flex;position:fixed;inset:0;overflow:hidden}.gst-tag{font-family:var(--font-mono,monospace);letter-spacing:1.2px;border-radius:3px;flex-shrink:0;align-items:center;padding:1.5px 4.5px;font-size:7.5px;font-weight:700;animation:.2s ease-out gst-badge-in;display:inline-flex}:root{--gp-ground:#000;--gp-surface:#11100e;--gp-line:#2a2724;--gp-edge:#6b655d;--gp-ink:#e9e4dc;--gp-ink-2:#8a847b;--gp-violet:#a855f7;--gp-on-violet:#0d0614}.gp-who{color:var(--gp-ink-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;padding:8px 16px 0;font-size:13px;display:flex}.gp-head{align-items:center;gap:12px;padding:12px 16px 4px;display:flex}.gp-logo{object-fit:cover;border-radius:10px;flex-shrink:0;width:40px;height:40px}.gp-event{flex:1;min-width:0}.gp-event-name{font:800 21px/1.1 var(--font-display,"Plus Jakarta Sans"), sans-serif;letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.gp-event-code{font:500 12px var(--font-mono,monospace);color:var(--gp-ink-2);letter-spacing:.08em}.gp-count{text-align:right;flex-shrink:0}.gp-count b{font:700 20px/1 var(--font-mono,monospace);font-variant-numeric:tabular-nums;display:block}.gp-count span{color:var(--gp-ink-2);font-size:12px}.gp-now{background:var(--gp-surface);border:1px solid var(--gp-line);border-radius:16px;flex-direction:column;gap:0;margin:10px 16px 4px;padding:14px;display:flex}.gp-now-row{align-items:center;gap:14px;display:flex}.gp-now-art{object-fit:cover;background:#1c1a18;border-radius:10px;flex-shrink:0;width:76px;height:76px;overflow:hidden}.gp-label{font:700 11px var(--font-mono,monospace);letter-spacing:.16em;text-transform:uppercase;color:var(--gp-violet);align-items:center;gap:6px;display:flex}.gp-dot{background:var(--gp-violet);border-radius:50%;flex-shrink:0;width:7px;height:7px}.gp-now-title{font:800 22px/1.1 var(--font-display,"Plus Jakarta Sans"), sans-serif;letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;margin:3px 0 0;overflow:hidden}.gp-now-artist{color:var(--gp-ink-2);white-space:nowrap;text-overflow:ellipsis;margin:2px 0 0;font-size:15px;overflow:hidden}.gp-tabs{border:1px solid var(--gp-line);border-radius:999px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:14px 16px 8px;padding:4px;display:grid}.gp-tab{min-height:44px;color:var(--gp-ink-2);font:600 14px var(--font-body,"DM Sans"), sans-serif;cursor:pointer;background:0 0;border:0;border-radius:999px}.gp-tab[aria-pressed=true]{background:var(--gp-surface);color:var(--gp-ink);box-shadow:inset 0 0 0 1px var(--gp-edge)}.gp-tab:focus-visible,.gp-up:focus-visible,.gp-btn:focus-visible,.gp-x:focus-visible,.gp-chip:focus-visible,.gp-result:focus-visible{outline:2px solid var(--gp-ink);outline-offset:2px}.gp-listhead{color:var(--gp-ink-2);justify-content:space-between;align-items:baseline;gap:12px;padding:0 16px 4px;font-size:13px;display:flex}.gp-live{flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.gp-list{padding:0 16px}.gp-row{border-bottom:1px solid var(--gp-line);cursor:pointer;grid-template-columns:22px 48px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 0;display:grid}.gp-row-norank{grid-template-columns:48px minmax(0,1fr) auto}.gp-rank{font:700 15px var(--font-mono,monospace);color:var(--gp-ink-2);text-align:center;font-variant-numeric:tabular-nums;position:relative}.gp-rank-top{color:var(--gp-ink)}.gp-art{object-fit:cover;width:48px;height:48px;font:800 14px var(--font-display,"Plus Jakarta Sans"), sans-serif;color:var(--gp-ink-2);background:#1c1a18;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.gp-song{min-width:0}.gp-song-title{align-items:center;gap:6px;min-width:0;font-size:16px;font-weight:700;display:flex}.gp-song-title>span:first-child{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.gp-song-artist{color:var(--gp-ink-2);white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.gp-song-by{color:var(--gp-ink-2);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;font-size:12px;display:flex;overflow:hidden}.gp-song-by>span:not(.gp-tag){text-overflow:ellipsis;min-width:0;overflow:hidden}.gp-tag{font:600 11px var(--font-body,"DM Sans"), sans-serif;border:1px solid var(--gp-edge);color:var(--gp-ink-2);border-radius:999px;flex-shrink:0;padding:2px 7px}.gp-tag-you{border-color:var(--gp-violet);color:var(--gp-violet)}.gp-perks{border:1px solid var(--gp-line);border-radius:16px;flex-direction:column;gap:8px;margin:8px 16px 4px;padding:12px 14px;display:flex}.gp-perks-list{color:var(--gp-ink-2);flex-direction:column;gap:2px;margin:0;padding-left:18px;font-size:14px;display:flex}.gp-perks-cta{align-self:flex-start}.gp-picks{margin-top:4px}.gp-picks-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.gp-pick{border:0;border-bottom:1px solid var(--gp-line);width:100%;min-height:56px;color:var(--gp-ink);text-align:left;cursor:pointer;font:inherit;background:0 0;align-items:center;gap:10px;padding:8px 2px;display:flex}.gp-pick:disabled{cursor:default;opacity:.6}.gp-pick:focus-visible{outline:2px solid var(--gp-ink);outline-offset:2px}.gp-pick-song{flex-direction:column;flex:1;min-width:0;display:flex}.gp-pick-add{border:1px solid var(--gp-edge);border-radius:999px;flex-shrink:0;align-items:center;min-height:36px;padding:0 14px;font-size:14px;font-weight:700;display:inline-flex}.gp-upnext{border:1px solid var(--gp-line);border-radius:16px;margin:8px 16px 4px;padding:10px 14px 12px}.gp-upnext-list{flex-direction:column;gap:6px;margin:6px 0 0;padding:0;list-style:none;display:flex}.gp-upnext-row{align-items:center;gap:10px;min-width:0;display:flex}.gp-upnext-n{font:700 13px var(--font-mono,monospace);color:var(--gp-ink-2);text-align:right;flex-shrink:0;width:14px}.gp-upnext-song{flex-direction:column;flex:1;min-width:0;display:flex}.gp-upnext-title{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:700;overflow:hidden}.gp-upnext-artist{color:var(--gp-ink-2);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.gp-vote{align-items:center;gap:8px;display:flex}.gp-votes{font:700 17px var(--font-mono,monospace);color:var(--gp-violet);font-variant-numeric:tabular-nums;text-align:right;min-width:24px}.gp-up{border:1px solid var(--gp-edge);width:44px;height:44px;color:var(--gp-ink);cursor:pointer;background:0 0;border-radius:12px;justify-content:center;align-items:center;transition:background .16s,color .16s;display:flex;position:relative}.gp-up[aria-pressed=true]{background:var(--gp-violet);border-color:var(--gp-violet);color:var(--gp-on-violet)}.gp-up-mine{color:var(--gp-ink-2);cursor:default;border-style:dashed}.gp-up:disabled:not(.gp-up-mine){opacity:.6}.gp-end{text-align:center;color:var(--gp-ink-2);padding:12px 0 0;font-size:13px}.gp-empty{text-align:center;color:var(--gp-ink-2);padding:40px 0;font-size:16px}.gp-btn{min-height:44px;font:700 15px var(--font-body,"DM Sans"), sans-serif;cursor:pointer;white-space:nowrap;box-sizing:border-box;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 18px;display:inline-flex}.gp-btn-primary{background:var(--gp-ink);color:#000;border:0}.gp-btn-ghost{color:var(--gp-ink);border:1px solid var(--gp-edge);background:0 0}.gp-btn-block{width:100%;max-width:500px;min-height:56px;margin:0 auto;font-size:17px;display:flex}.gp-btn:disabled{opacity:.6;cursor:default}.gp-closed{text-align:center;color:var(--gp-ink);padding:12px;font-size:15px}.gp-banner{border:1px solid var(--gp-edge);color:var(--gp-ink);border-radius:14px;justify-content:space-between;align-items:center;gap:10px;margin:10px 16px 0;padding:12px 14px;font-size:14px;text-decoration:none;display:flex}.gp-meta{color:var(--gp-ink-2);font-size:13px}.gp-sheet-head{justify-content:space-between;align-items:center;gap:12px;padding:14px 16px 6px;display:flex}.gp-sheet-title{font:800 24px/1.1 var(--font-display,"Plus Jakarta Sans"), sans-serif;letter-spacing:-.02em;margin:0}.gp-x{border:1px solid var(--gp-edge);width:44px;height:44px;color:var(--gp-ink);cursor:pointer;background:0 0;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.gp-field{flex-direction:column;gap:6px;display:flex}.gp-field label{font-size:14px;font-weight:600}.gp-input{box-sizing:border-box;border:1px solid var(--gp-edge);background:var(--gp-surface);width:100%;min-height:52px;color:var(--gp-ink);font:400 17px var(--font-body,"DM Sans"), sans-serif;border-radius:14px;padding:0 14px}.gp-input::placeholder{color:var(--gp-ink-2)}.gp-input:focus{outline:2px solid var(--gp-ink);outline-offset:1px}.gp-switch{width:100%;min-height:44px;color:var(--gp-ink);text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;padding:0;display:flex}.gp-switch-ui{background:var(--gp-surface);width:44px;height:26px;box-shadow:inset 0 0 0 1px var(--gp-edge);border-radius:999px;flex-shrink:0;position:relative}.gp-switch-ui:after{content:"";background:var(--gp-ink-2);border-radius:50%;width:20px;height:20px;transition:left .16s;position:absolute;top:3px;left:3px}.gp-switch[aria-checked=true] .gp-switch-ui{background:var(--gp-violet);box-shadow:none}.gp-switch[aria-checked=true] .gp-switch-ui:after{background:var(--gp-on-violet);left:21px}.gp-result{border:0;border-bottom:1px solid var(--gp-line);width:100%;color:var(--gp-ink);text-align:left;cursor:pointer;font:inherit;background:0 0;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 0;display:grid}.gp-fit{color:var(--gp-ink-2);align-items:center;gap:6px;margin-top:3px;font-size:12px;display:inline-flex}.gp-fit i{gap:2px;display:inline-flex}.gp-fit i b{background:var(--gp-line);border-radius:2px;width:6px;height:6px;display:block}.gp-fit i b.on{background:var(--gp-violet)}.gp-pop{text-align:right;min-width:36px;font:600 12px var(--font-mono,monospace);color:var(--gp-ink-2)}.gp-chips{flex-wrap:wrap;gap:8px;display:flex}.gp-chip{border:1px solid var(--gp-edge);min-height:44px;color:var(--gp-ink);font:500 14px var(--font-body,"DM Sans"), sans-serif;cursor:pointer;background:0 0;border-radius:999px;padding:0 14px}.gp-chip[aria-pressed=true]{background:var(--gp-ink);color:#000;border-color:var(--gp-ink)}.gp-picked{background:var(--gp-surface);border:1px solid var(--gp-line);border-radius:14px;align-items:center;gap:12px;padding:12px;display:flex}.gp-link{color:var(--gp-ink);text-decoration:underline;-webkit-text-decoration-color:var(--gp-edge);text-decoration-color:var(--gp-edge);text-underline-offset:3px;min-height:44px;font:inherit;cursor:pointer;background:0 0;border:0;flex-shrink:0;padding:0 4px;font-size:14px}.gp-center{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:16px;display:flex}.gp-big{font:800 30px/1.1 var(--font-display,"Plus Jakarta Sans"), sans-serif;letter-spacing:-.02em;margin:0}.gp-sub{color:var(--gp-ink-2);max-width:300px;margin:0;font-size:16px;line-height:1.45}.gp-ring{border:2px solid var(--gp-violet);width:88px;height:88px;color:var(--gp-violet);border-radius:50%;justify-content:center;align-items:center;display:flex}.collect-page.tower{min-height:100dvh;font-family:var(--font-grotesk,"Space Grotesk", system-ui, sans-serif);color:#fff;background:#06060a;position:relative;overflow:hidden}.collect-page.tower .collect-container{padding-bottom:100px}.gst-collect-row{cursor:default;border-radius:12px;align-items:center;gap:9px;margin-bottom:6px;padding:13px 12px 13px 14px;display:flex;position:relative;overflow:hidden}.gst-collect-vote-btn{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff14;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;transition:all .16s;display:flex}.gst-collect-vote-btn.voted{color:#000;background:#00f0ff;border-color:#00f0ff;box-shadow:0 0 14px #00f0ff80}@keyframes cds-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes cds-card-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.vbs-scanning{position:relative;overflow:hidden}.vbs-scanning:before{content:"";z-index:10;pointer-events:none;background:linear-gradient(90deg,#0000,#00f0ffcc,#ff2bd6cc,#0000);height:2px;animation:.9s linear infinite vbs-scanline;position:absolute;top:0;left:0;right:0}@keyframes vbs-scanline{0%{opacity:1;top:0%}90%{opacity:1;top:100%}to{opacity:0;top:100%}}.vbs-analyzing{animation:.6s step-end infinite vbs-blink}@keyframes vbs-blink{0%,to{opacity:.3}50%{opacity:1}}.vbs-tier-in{animation:.3s both vbs-tier-fade}@keyframes vbs-tier-fade{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.vbs-scan-icon{animation:.7s ease-in-out infinite alternate vbs-bounce;display:inline-block}@keyframes vbs-bounce{0%{transform:rotate(-10deg)scale(.9)}to{transform:rotate(10deg)scale(1.1)}}.email-gate-backdrop{-webkit-backdrop-filter:blur(6px);z-index:9999;background:#000000c7;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.email-gate-modal{background:#1a1a1a;border:1px solid #ffffff14;border-radius:14px;width:100%;max-width:420px;padding:1.75rem;box-shadow:0 24px 64px #0009}.email-gate-title{color:#ededed;margin:0 0 .5rem;font-size:1.25rem}.email-gate-subtitle{color:#a0a0a0;margin:0 0 1.25rem;font-size:.875rem;line-height:1.45}.email-gate-hidden{visibility:hidden;pointer-events:none}.hv-overlay-backdrop{-webkit-backdrop-filter:blur(6px);z-index:9999;background:#000000c7;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.hv-overlay-modal{text-align:center;background:#1a1a1a;border:1px solid #ffffff14;border-radius:14px;width:100%;max-width:420px;padding:1.75rem;box-shadow:0 24px 64px #0009}.hv-overlay-title{color:#ededed;margin:0 0 .5rem;font-size:1.25rem}.hv-overlay-body{color:#a0a0a0;margin:0 0 1rem;font-size:.9rem;line-height:1.45}.hv-overlay-footnote{color:#6a6a6a;margin:0;font-size:.75rem}.hv-overlay-spinner{border:3px solid #ffffff1f;border-top-color:#ededed;border-radius:50%;width:32px;height:32px;margin:0 auto .75rem;animation:1s linear infinite hv-spin}@keyframes hv-spin{to{transform:rotate(360deg)}}.hv-overlay-retry{color:#0a0a0a;cursor:pointer;background:#ededed;border:none;border-radius:8px;margin-top:.5rem;padding:.6rem 1.2rem;font-size:.9rem;font-weight:600}.hv-overlay-retry:hover{background:#fff}.gv-root,.gv-sheet{--vb-booth:#000;--vb-ink:#e9e4dc;--vb-ink-2:#8a847b;--vb-unlit:#26231f;--vb-rail:#3a3631;--vb-edge:#6b655d;--vb-face:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--vb-display:var(--font-vibe), var(--vb-face)}.gv-root{border-top:1px solid var(--vb-rail);font-family:var(--vb-face);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-top:12px;padding-top:12px;display:flex}.gv-card-room{align-items:center;gap:8px;min-width:0;display:inline-flex}.gv-card-ask{flex-direction:column;align-items:flex-start;gap:2px}.gv-ask{color:var(--text,var(--vb-ink));font-size:16px;font-weight:600}.gv-meta{color:var(--vb-ink-2);font-variant-numeric:tabular-nums;margin:0;font-size:15px}.gv-room-line{align-items:baseline;gap:8px;display:inline-flex}.gv-band{font-family:var(--vb-display);font-variation-settings:"wdth" 125;font-weight:850;line-height:1}.gv-num{font-family:var(--vb-display);color:var(--vb-ink);font-variant-numeric:tabular-nums;font-weight:600}.gv-room-card .gv-band{font-size:20px}.gv-room-card .gv-num{font-size:16px}.gv-room-sheet .gv-band{font-size:44px}.gv-room-sheet .gv-num{font-size:28px}.gv-primary{background:var(--vb-ink);color:#000;min-height:44px;font:700 16px var(--vb-face);cursor:pointer;border:0;border-radius:999px;padding:0 20px}.gv-ghost{border:1px solid var(--vb-edge);min-height:44px;color:var(--vb-ink);font:600 15px var(--vb-face);cursor:pointer;background:0 0;border-radius:999px;flex-shrink:0;padding:0 18px}.gv-lead{background:var(--vb-ink);color:#000;min-height:44px;font:700 15px var(--vb-face);cursor:pointer;border:0;border-radius:999px;flex-shrink:0;padding:0 18px}.gv-primary:focus-visible,.gv-ghost:focus-visible,.gv-lead:focus-visible,.gv-button:focus-visible{outline:2px solid var(--vb-ink);outline-offset:3px}.gv-sheet{z-index:10000;box-sizing:border-box;background:var(--vb-booth);height:100dvh;color:var(--vb-ink);font-family:var(--vb-face);overscroll-behavior:contain;-webkit-user-select:none;user-select:none;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));grid-template-rows:auto auto 1fr auto;gap:16px;display:grid;position:fixed;inset:0}.gv-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.gv-song{min-width:0}.gv-title{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:20px;font-weight:700;line-height:1.2;overflow:hidden}.gv-artist{color:var(--vb-ink-2);white-space:nowrap;text-overflow:ellipsis;margin:2px 0 0;font-size:15px;overflow:hidden}.gv-prompt{color:var(--vb-ink-2);margin:0;font-size:17px;line-height:1.4}.gv-prompt strong{color:var(--vb-ink);font-weight:600}.gv-control{min-height:0;display:flex}.gv-control>*{flex:1}.gv-readout{align-content:end;gap:4px;min-height:92px;display:grid}.gv-message{color:var(--vb-ink);margin:0;font-size:15px}.gv-buttons{flex-direction:column;gap:8px;display:flex}.gv-button{border:1px solid var(--vb-edge);min-height:56px;color:var(--vb-ink);font:600 20px var(--vb-face);cursor:pointer;background:0 0;border-radius:12px;flex:1;align-items:center;gap:12px;padding:0 20px;display:flex}.gv-button:disabled{opacity:.5;cursor:default}.vf{touch-action:none;cursor:grab;border-radius:12px;outline:none;grid-template-columns:minmax(0,1fr) 104px minmax(0,1fr);min-height:320px;display:grid;position:relative}.vf:focus-visible{box-shadow:0 0 0 2px var(--vb-ink)}.vf[data-disabled]{cursor:default}.vf-ladder{flex-direction:column-reverse;justify-content:space-between;align-items:flex-end;padding:10px 14px 10px 0;display:flex}.vf-seg{background:var(--vb-unlit);border-radius:1px;width:30px;height:5px;transition:background .12s}.vf-slot{justify-content:center;display:flex;position:relative}.vf-slot:before{content:"";width:8px;box-shadow:inset 0 0 0 1px var(--vb-rail);background:#0d0c0b;border-radius:4px;position:absolute;top:4px;bottom:4px}.vf-cap{background:linear-gradient(#2b2825,#1a1816);border-radius:8px;width:88px;height:52px;transition:bottom 90ms ease-out;position:absolute;left:50%;transform:translate(-50%,50%);box-shadow:inset 0 1px #3d3934,0 6px 14px #0009}.vf-cap:before{content:"";background:var(--vb-ink);border-radius:1px;height:2px;margin-top:-1px;position:absolute;top:50%;left:10px;right:10px}.vf-cap:after{content:"";background:repeating-linear-gradient(#0000 0 5px,#ffffff12 5px 6px);position:absolute;inset:9px 18px}.vf-words{flex-direction:column-reverse;padding-left:16px;display:flex}.vf-word{font-family:var(--vb-display);font-weight:600}.vf-row{min-height:44px;color:var(--vb-ink-2);white-space:nowrap;flex:1;align-items:center;gap:8px;font-size:16px;display:flex}.vf-row-on .vf-word{font-variation-settings:"wdth" 125;letter-spacing:-.5px;font-size:clamp(24px,8.5vw,40px);font-weight:850}@media (prefers-reduced-motion:reduce){.vf-seg,.vf-cap{transition:none!important}}.kiosk-vibe-fill{transition:width .4s ease-out}@media (prefers-reduced-motion:reduce){.kiosk-vibe-fill{transition:none}}
