@property --accent-from{syntax:"<color>";inherits:true;initial-value:#6d4aff}@property --accent-to{syntax:"<color>";inherits:true;initial-value:#ff3d8b}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#08070d;--surface:#ffffff0f;--surface-strong:#ffffff1c;--border:#ffffff1a;--text:#f5f5f7;--text-2:#ebebf5a3;--text-3:#ebebf566;--good:#30d158;--ok:#ffd60a;--bad:#ff9f0a;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--spring:cubic-bezier(.34, 1.4, .64, 1);-webkit-text-size-adjust:100%;background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica Neue,sans-serif}*,:before,:after{box-sizing:border-box}body{min-height:100dvh;color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior:none;margin:0}h1,h2,p{margin:0}button,a{font:inherit;color:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}button:disabled{cursor:default}:focus-visible{outline-offset:3px;outline:2px solid #ffffffe6}.screen{--accent-from:#6d4aff;--accent-to:#ff3d8b;width:min(100%,560px);min-height:100dvh;padding:calc(var(--safe-top) + 16px) calc(var(--safe-right) + 20px) calc(var(--safe-bottom) + 36px) calc(var(--safe-left) + 20px);flex-direction:column;gap:28px;margin:0 auto;transition:--accent-from .9s,--accent-to .9s;display:flex;position:relative}.screen--center{justify-content:center;align-items:center}.backdrop{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.backdrop:before,.backdrop:after{content:"";border-radius:50%;width:110vmax;height:110vmax;position:absolute}.backdrop:before{background:radial-gradient(closest-side, color-mix(in srgb, var(--accent-from) 55%, transparent), transparent);animation:24s ease-in-out infinite alternate drift-a;top:-62vmax;left:-42vmax}.backdrop:after{background:radial-gradient(closest-side, color-mix(in srgb, var(--accent-to) 42%, transparent), transparent);animation:30s ease-in-out infinite alternate drift-b;bottom:-68vmax;right:-48vmax}@keyframes drift-a{to{transform:translate(12vmax,8vmax)scale(1.08)}}@keyframes drift-b{to{transform:translate(-10vmax,-12vmax)scale(1.12)}}.glass{background:var(--surface);border:1px solid var(--border);-webkit-backdrop-filter:blur(28px)saturate(160%);backdrop-filter:blur(28px)saturate(160%)}.section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);margin:0 0 12px 4px;font-size:13px;font-weight:600}.hero{text-align:center;flex-direction:column;align-items:center;gap:10px;padding-top:32px;display:flex}.hero__mark{background:linear-gradient(145deg, var(--accent-from), var(--accent-to));width:68px;height:68px;box-shadow:0 18px 44px -14px color-mix(in srgb, var(--accent-to) 75%, transparent);border-radius:21px;place-items:center;margin-bottom:8px;display:grid}.hero__title{letter-spacing:-.035em;font-size:34px;font-weight:800}.hero__subtitle{max-width:30ch;color:var(--text-2);font-size:16px;line-height:1.4}.join-card{border-radius:28px;padding:20px}.join-card form{flex-direction:column;gap:14px;display:flex}.code-input{grid-template-columns:repeat(6,1fr);gap:8px;display:grid;position:relative}.code-input input{color:#0000;caret-color:#0000;background:0 0;border:0;outline:none;width:100%;font-size:16px;position:absolute;inset:0}.code-input__cell{background:var(--surface);border:1px solid var(--border);font-variant-numeric:tabular-nums;border-radius:16px;place-items:center;height:60px;font-size:25px;font-weight:700;transition:border-color .16s,background .16s,box-shadow .16s;display:grid}.code-input__cell.is-filled{background:var(--surface-strong)}.code-input__cell.is-current{border-color:color-mix(in srgb, var(--accent-from) 80%, white);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent-from) 28%, transparent)}.button-primary{background:linear-gradient(135deg, var(--accent-from), var(--accent-to));color:#fff;height:54px;transition:transform .2s var(--spring), opacity .2s ease;border:0;border-radius:17px;justify-content:center;align-items:center;padding:0 24px;font-size:17px;font-weight:650;text-decoration:none;display:flex}.button-primary:active:not(:disabled){transform:scale(.97)}.button-primary:disabled{background:var(--surface-strong);color:var(--text-3)}.station-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px;display:grid}.station-tile{aspect-ratio:1;background:linear-gradient(145deg, var(--tile-from), var(--tile-to));color:#fff;text-align:left;box-shadow:0 14px 30px -18px var(--tile-to);transition:transform .26s var(--spring);border:0;border-radius:24px;align-items:flex-end;padding:14px;display:flex;position:relative;overflow:hidden}.station-tile:before{content:"";pointer-events:none;background:radial-gradient(120% 90% at 0 0,#ffffff47,#0000 55%);position:absolute;inset:0}.station-tile:active:not(:disabled){transform:scale(.95)}.station-tile:disabled:not(.is-busy){opacity:.55}.station-tile.is-busy{animation:1s ease-in-out infinite pulse}.station-tile.is-active{box-shadow:inset 0 0 0 2.5px #ffffffeb, 0 14px 30px -18px var(--tile-to)}.station-tile__monogram{letter-spacing:-.05em;opacity:.3;font-size:50px;font-weight:800;position:absolute;top:6px;right:12px}.station-tile__name{-webkit-line-clamp:2;text-shadow:0 1px 8px #00000040;-webkit-box-orient:vertical;font-size:15px;font-weight:650;line-height:1.2;display:-webkit-box;position:relative;overflow:hidden}.station-tile .equalizer{position:absolute;top:16px;left:16px}.station-rail{margin:0 calc(-20px - var(--safe-right)) 0 calc(-20px - var(--safe-left));padding:4px calc(20px + var(--safe-right)) 8px calc(20px + var(--safe-left));scroll-snap-type:x mandatory;scrollbar-width:none;grid-auto-columns:128px;grid-auto-flow:column;gap:12px;scroll-padding-inline:20px;display:grid;overflow-x:auto}.station-rail::-webkit-scrollbar{display:none}.station-rail .station-tile{scroll-snap-align:start}@keyframes pulse{50%{opacity:.8;transform:scale(.96)}}.equalizer{--eq-height:18px;height:var(--eq-height);align-items:flex-end;gap:3px;display:inline-flex}.equalizer span{width:calc(var(--eq-height) / 4.5);transform-origin:bottom;background:#fff;border-radius:99px;height:100%}.equalizer span:first-child{transform:scaleY(.45)}.equalizer span:nth-child(2){transform:scaleY(.8)}.equalizer span:nth-child(3){transform:scaleY(.6)}.equalizer span:nth-child(4){transform:scaleY(.9)}.equalizer.is-active span{animation:.9s ease-in-out infinite alternate eq}.equalizer.is-active span:nth-child(2){animation-duration:.7s;animation-delay:-200ms}.equalizer.is-active span:nth-child(3){animation-duration:1.1s;animation-delay:-500ms}.equalizer.is-active span:nth-child(4){animation-duration:.8s;animation-delay:-350ms}@keyframes eq{0%{transform:scaleY(.2)}to{transform:scaleY(1)}}.topbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.icon-button{border-radius:22px;place-items:center;min-width:44px;height:44px;text-decoration:none;display:grid}.member-count{font-variant-numeric:tabular-nums;align-items:center;gap:7px;padding:0 14px 0 12px;font-size:15px;font-weight:650;display:flex}.member-count:before{content:"";background:var(--good);width:8px;height:8px;box-shadow:0 0 10px var(--good);border-radius:50%}.code-pill{border-radius:22px;align-items:center;gap:8px;height:44px;padding:0 16px;display:flex}.code-pill__label{color:var(--text-2);font-size:13px}.code-pill__code{letter-spacing:.08em;font-variant-numeric:tabular-nums;font-size:17px;font-weight:700}.code-pill svg{color:var(--text-2)}.now-playing{flex-direction:column;align-items:center;gap:22px;display:flex}.cover{aspect-ratio:1;background:linear-gradient(145deg, var(--tile-from), var(--tile-to));width:min(76vw,320px);box-shadow:0 34px 70px -28px color-mix(in srgb, var(--tile-to) 80%, transparent);transition:transform .52s var(--spring), box-shadow .52s ease, background .6s ease;border-radius:34px;position:relative;overflow:hidden;transform:scale(.92)}.cover.is-playing{transform:scale(1)}.cover:before{content:"";background:radial-gradient(90% 70% at 10% 0,#ffffff52,#0000 60%),radial-gradient(80% 60% at 100% 100%,#00000040,#0000 60%);position:absolute;inset:0}.cover__live{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);letter-spacing:.08em;text-transform:uppercase;background:#0000003d;border-radius:99px;align-items:center;gap:6px;padding:6px 11px 6px 9px;font-size:12px;font-weight:750;display:flex;position:absolute;top:18px;left:18px}.cover__live-dot{background:#ff453a;border-radius:50%;width:7px;height:7px;box-shadow:0 0 8px #ff453a}.cover.is-playing .cover__live-dot{animation:1.6s ease-in-out infinite blink}@keyframes blink{50%{opacity:.35}}.cover__monogram{letter-spacing:-.06em;text-shadow:0 10px 40px #0003;place-items:center;font-size:clamp(88px,30vw,128px);font-weight:800;display:grid;position:absolute;inset:0}.cover .equalizer{--eq-height:28px;position:absolute;bottom:22px;left:22px}.track{text-align:center;flex-direction:column;gap:4px;display:flex}.track__title{letter-spacing:-.025em;font-size:27px;font-weight:750}.track__meta{color:var(--text-2);font-size:15px}.play-button{width:84px;height:84px;color:var(--bg);transition:transform .24s var(--spring);background:#fff;border:0;border-radius:50%;place-items:center;display:grid;position:relative;box-shadow:0 16px 36px -12px #fff6}.play-button:not(.is-pause) svg{translate:2px}.play-button:active{transform:scale(.9)}.play-button.is-loading:after{content:"";border:3px solid #ffffff1f;border-top-color:#fff;border-radius:50%;animation:.9s linear infinite spin;position:absolute;inset:-8px}.sync-pill{background:var(--surface);border:1px solid var(--border);font-variant-numeric:tabular-nums;color:var(--text-2);border-radius:99px;align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:600;display:inline-flex}.sync-pill__dot{background:var(--text-3);border-radius:50%;width:8px;height:8px;transition:background .3s}.sync-pill--good .sync-pill__dot{background:var(--good);box-shadow:0 0 10px var(--good)}.sync-pill--ok .sync-pill__dot{background:var(--ok)}.sync-pill--bad .sync-pill__dot{background:var(--bad)}.finetune{border-radius:22px;width:100%}.finetune summary{cursor:pointer;-webkit-tap-highlight-color:transparent;align-items:center;gap:10px;padding:16px 18px;font-size:15px;font-weight:600;list-style:none;display:flex}.finetune summary::-webkit-details-marker{display:none}.finetune summary:after{content:"";border-right:2px solid var(--text-3);border-bottom:2px solid var(--text-3);width:8px;height:8px;margin-left:4px;transition:transform .22s;transform:rotate(45deg)translateY(-2px)}.finetune[open] summary:after{transform:rotate(225deg)translateY(-2px)}.finetune__value{color:var(--text-2);font-variant-numeric:tabular-nums;margin-left:auto}.finetune__hint{color:var(--text-2);padding:0 18px 14px;font-size:13px;line-height:1.45}.stepper{grid-template-columns:1fr 1.6fr 1fr;gap:8px;padding:0 18px 18px;display:grid}.stepper button{background:var(--surface-strong);font-variant-numeric:tabular-nums;height:44px;transition:transform .2s var(--spring);border:0;border-radius:13px;font-size:15px;font-weight:650}.stepper button:active:not(:disabled){transform:scale(.94)}.stepper .stepper__reset{color:var(--text-2)}.stepper .stepper__reset:disabled{opacity:.4}.toast{left:50%;bottom:calc(var(--safe-bottom) + 24px);opacity:0;pointer-events:none;transition:opacity .22s ease, transform .32s var(--spring);border-radius:99px;padding:12px 20px;font-size:15px;font-weight:600;position:fixed;transform:translate(-50%,16px)}.toast.is-visible{opacity:1;transform:translate(-50%)}.spinner{border:3px solid #ffffff1f;border-top-color:#fff;border-radius:50%;width:38px;height:38px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;border-radius:28px;flex-direction:column;gap:12px;width:100%;padding:32px 24px;display:flex}.empty-state h1{font-size:22px;font-weight:700}.empty-state p{color:var(--text-2);margin-bottom:8px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
