.party-ctl{--pc: var(--g-cyan);min-height:100dvh;-moz-user-select:none;user-select:none;-webkit-user-select:none;touch-action:manipulation}.party-screen{flex:1;width:100%;max-width:520px;margin:0 auto;padding:14px 18px calc(env(safe-area-inset-bottom) + 18px);display:flex;flex-direction:column;gap:16px}.party-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:max(10px,env(safe-area-inset-top)) 16px 10px;background:#050505db;backdrop-filter:blur(10px);border-bottom:1px solid var(--g-line);font-size:.95rem}.party-top-name{font-family:Clash Display,system-ui,sans-serif;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.party-top-stats{display:flex;gap:10px;align-items:baseline;color:var(--g-dim);font-size:.85rem;white-space:nowrap}.party-coins{color:#ffb020}.party-dot{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--pc);flex:none}.party-banner,.party-toast{position:sticky;top:52px;z-index:19;padding:8px 16px;text-align:center;font-size:.85rem;background:var(--g-bad);color:#fff}.party-banner.is-soft{background:#3a3320;color:#ffd98a}.party-toast{background:#1d2630;border-bottom:1px solid var(--g-line)}.party-lost{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:28px;text-align:center;background:#050505f0}.party-lost .g-btn{max-width:320px}.party-join,.party-lobby{display:flex;flex-direction:column;gap:16px;margin-top:6vh}.party-title{font-size:1.9rem;line-height:1.1}.party-field{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:var(--g-dim)}.party-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;min-height:56px;padding:0 18px;font:inherit;font-size:1.2rem;color:var(--g-text);background:var(--g-card);border:1px solid var(--g-line);border-radius:var(--g-r-md);-moz-user-select:text;user-select:text;-webkit-user-select:text}.party-input:focus{outline:2px solid var(--g-cyan);outline-offset:2px}.party-code-input{text-align:center;text-transform:uppercase;letter-spacing:.4em;font-size:2rem;font-family:Clash Display,system-ui,sans-serif}.party-code-badge{align-self:center;padding:8px 24px;border-radius:999px;letter-spacing:.4em;text-indent:.4em;font-size:1.8rem;font-family:Clash Display,system-ui,sans-serif;background:var(--g-card);border:1px solid var(--g-line)}.party-error{color:var(--g-bad);font-size:.95rem}.party-app-hint,.party-sub,.party-wait{color:var(--g-dim);font-size:.9rem}.party-app-hint{text-align:center;margin-top:8px;font-size:.8rem}.party-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--g-dim);text-decoration:underline;font:inherit;padding:12px;align-self:center;cursor:pointer}.party-people{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.party-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:var(--g-card);border:1px solid var(--g-line);font-size:.95rem}.party-chip small{color:var(--g-dim)}.party-chip.is-me{border-color:var(--pc)}.party-chip.is-away{opacity:.5}.party-chip.is-done{border-color:var(--g-good)}.party-play{flex:1;display:flex;flex-direction:column;gap:14px;min-height:0}.party-center{align-items:center;justify-content:center;text-align:center}.party-head{text-align:center;display:flex;flex-direction:column;gap:4px}.party-head h1{font-size:1.8rem}.party-head.is-turn h1{color:var(--g-cyan)}.party-turn-dot{--pc: var(--g-cyan);width:64px;height:64px;border-radius:50%;background:var(--pc);box-shadow:0 0 40px -4px var(--pc);animation:party-pulse 1.8s ease-in-out infinite}@keyframes party-pulse{50%{transform:scale(1.12);opacity:.8}}.party-dock{position:sticky;bottom:0;margin-top:auto;display:flex;flex-direction:column;gap:10px;padding:12px 0 calc(env(safe-area-inset-bottom) + 4px);background:linear-gradient(180deg,rgba(5,5,5,0),var(--g-void) 28%)}.party-dock.is-inline{position:static;width:100%;background:none}.party-dock .g-btn{min-height:64px;font-size:1.25rem}.party-tl{width:100%;max-width:520px;margin:0 auto;padding-bottom:8px}.party-tl>li{margin:0;min-width:0}.party-slot-li{flex-direction:column;align-items:center;gap:6px}.party-slot{scroll-margin:90px 0 150px}.party-slot.is-selected .g-slot-pill{background:var(--g-cyan);color:#031418;border-style:solid;animation:none;box-shadow:0 0 28px -4px var(--g-cyan)}.party-marker{position:relative;z-index:1;display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:var(--g-r-md);background:color-mix(in srgb,var(--pc) 22%,#07161b);border:2px solid var(--pc);font-size:.95rem}.party-verdict{font-size:2.2rem;font-family:Clash Display,system-ui,sans-serif}.party-verdict.is-good{color:var(--g-good)}.party-verdict.is-bad{color:var(--g-bad)}.party-song{display:flex;flex-direction:column;gap:2px;align-items:center}.party-song-year,.party-real-year{font-family:Clash Display,system-ui,sans-serif;font-size:3.6rem;line-height:1;color:var(--g-cyan)}.party-real-year{font-size:5.5rem}.party-song small,.party-song-line small{color:var(--g-dim)}.party-result-line{font-size:1.1rem}.party-mine{display:flex;flex-direction:column;gap:6px;align-items:center;padding:14px 18px;width:100%;border-radius:var(--g-r-md);background:var(--g-card);border:1px solid var(--g-line)}.party-diff{font-family:Clash Display,system-ui,sans-serif;font-size:1.4rem}.party-points{display:flex;gap:18px;margin:0;color:var(--g-dim);font-size:.85rem}.party-points div{display:flex;flex-direction:column;align-items:center}.party-points dt,.party-points dd{margin:0}.party-points dd{color:var(--g-text);font-size:1.1rem}.party-total{font-family:Clash Display,system-ui,sans-serif;font-size:2.4rem;color:var(--g-good)}.party-rank-line{color:var(--g-dim)}.party-board{list-style:none;margin:0;padding:0;width:100%;display:flex;flex-direction:column;gap:6px}.party-board li{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:16px;background:var(--g-card);border:1px solid var(--g-line)}.party-board li.is-me{border-color:var(--pc)}.party-board.is-compact li{padding:8px 12px;font-size:.9rem}.party-rank{font-family:Clash Display,system-ui,sans-serif;min-width:1.6ch;color:var(--g-dim)}.party-board-name{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.party-board-score{color:var(--g-dim);font-size:.9rem;white-space:nowrap}.party-clock{height:10px;border-radius:999px;background:#ffffff1a;overflow:hidden}.party-clock i{display:block;height:100%;transform-origin:left center;background:linear-gradient(90deg,var(--g-pink),var(--g-cyan));border-radius:999px}.party-clock.is-lead i{opacity:.35}.party-clock-text{font-family:Clash Display,system-ui,sans-serif;font-size:1.1rem;color:var(--g-dim)}.party-q{text-align:center;font-size:1.1rem;color:var(--g-dim)}.party-picker{display:flex;flex-direction:column;gap:14px}.party-year{display:block;text-align:center;font-family:Clash Display,system-ui,sans-serif;font-size:5rem;line-height:1;font-variant-numeric:tabular-nums;color:var(--g-text)}.party-wheel{position:relative;height:84px;border-radius:var(--g-r-md);background-color:var(--g-card);background-image:repeating-linear-gradient(90deg,rgba(255,255,255,.9) 0 3px,transparent 3px calc(var(--px) * 10)),repeating-linear-gradient(90deg,rgba(255,255,255,.35) 0 2px,transparent 2px var(--px));background-clip:padding-box;background-size:calc(var(--px) * 10) 56%,var(--px) 32%;background-repeat:repeat-x;background-position-y:50%,50%;border:1px solid var(--g-line);touch-action:none;cursor:grab;overflow:hidden}.party-wheel-cursor{position:absolute;left:50%;top:0;bottom:0;width:4px;margin-left:-2px;border-radius:2px;background:var(--g-cyan);box-shadow:0 0 14px var(--g-cyan)}.party-range{width:100%;height:36px;accent-color:var(--g-cyan);touch-action:pan-y}.party-steps{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:10px}.party-step{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-height:64px;border-radius:var(--g-r-md);border:1px solid var(--g-line);background:#ffffff14;color:var(--g-text);font-family:Clash Display,system-ui,sans-serif;font-size:1.4rem;touch-action:manipulation;cursor:pointer}.party-step.is-decade{color:var(--g-cyan)}.party-step:active:not(:disabled){background:#00d4ff40}.party-step:disabled{opacity:.4}.party-lock{letter-spacing:.12em;background:linear-gradient(100deg,var(--g-pink),var(--g-violet));color:#fff}.party-locked{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;margin-top:4vh}.party-locked-year{font-family:Clash Display,system-ui,sans-serif;font-size:6rem;line-height:1;color:var(--g-good)}@media(max-height:600px){.party-year{font-size:3.6rem}.party-wheel{height:64px}.party-step,.party-dock .g-btn{min-height:54px}}@media(prefers-reduced-motion:reduce){.party-turn-dot{animation:none}}.ps-watch{justify-content:center;gap:14px;cursor:pointer}.ps-watch-pulse{position:relative;width:96px;height:96px}.ps-watch-pulse i{position:absolute;inset:0;border-radius:50%;border:3px solid var(--g-cyan);opacity:0;animation:ps-ripple 2.1s ease-out infinite}.ps-watch-pulse i:nth-child(2){animation-delay:.7s;border-color:var(--g-violet)}.ps-watch-pulse i:nth-child(3){animation-delay:1.4s;border-color:var(--g-pink)}@keyframes ps-ripple{0%{transform:scale(.2);opacity:.9}to{transform:scale(1.1);opacity:0}}.ps-stealing-line{margin:0;color:var(--g-dim);font-weight:600}.ps-standing{width:100%;display:flex;flex-direction:column;gap:8px;padding:14px 14px 10px;border-radius:var(--g-r-md);background:#ffffff0d;border:1px solid var(--g-line);text-align:left}.ps-standing-rank{margin:0;display:flex;align-items:center;gap:10px;font-family:Clash Display,system-ui,sans-serif;font-size:1.35rem}.ps-standing-gap{margin:0 0 6px;color:var(--g-dim);font-size:.95rem}.ps-streak{color:#ffb020;font-weight:700}.ps-standing .ps-board{--rowh: 44px;font-size:15px}.ps-standing .ps-board-row{grid-template-columns:1.4em auto minmax(0,1fr) auto 3em;gap:8px;padding:0 10px}.ps-standing .ps-gain,.ps-standing .ps-board-rank{min-width:0}.ps-standing .ps-board .ps-move{display:none}.ps-final{gap:12px}.ps-final-rank{margin:0;font-family:Clash Display,system-ui,sans-serif;font-size:1.7rem;font-weight:700;background:linear-gradient(100deg,var(--g-cyan),var(--g-violet),var(--g-pink));-webkit-background-clip:text;background-clip:text;color:transparent}.ps-final .party-board{width:100%}.ps-final .party-board li{grid-template-columns:2em auto minmax(0,1fr) auto}.ps-nudge{width:100%;display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--g-r-md);background:linear-gradient(100deg,#00d4ff24,#8b5cf629);background-clip:padding-box;border:1px solid rgba(0,212,255,.3);text-align:left}.ps-nudge-text{flex:1;min-width:0;display:flex;flex-direction:column;font-size:.85rem;line-height:1.3;color:var(--g-dim)}.ps-nudge-text b{color:var(--g-text);font-size:.95rem}.ps-nudge-cta{flex:none;min-height:44px;display:inline-flex;align-items:center;padding:0 18px;border-radius:999px;background:var(--g-cyan);color:#031418;font-weight:700;text-decoration:none}.ps-more-modes{width:100%}.ps-more-modes ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.ps-more-modes a{min-height:44px;display:inline-flex;align-items:center;padding:0 16px;border-radius:999px;border:1px solid var(--g-line);background:#ffffff0f;color:var(--g-text);text-decoration:none;font-weight:600}.ps-more-modes a:hover{background:#ffffff1f}.ps-choices{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ps-choice{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;min-height:92px;border-radius:var(--g-r-md);border:1px solid var(--g-line);background:#ffffff12;color:var(--g-text);font-family:Clash Display,system-ui,sans-serif;font-size:2rem;font-weight:700;cursor:pointer;transition:transform .35s var(--g-spring),background .2s}.ps-choice:hover:not(:disabled){background:#00d4ff2e}.ps-choice:active:not(:disabled){transform:scale(.96)}.ps-choice:disabled{opacity:.5}.ps-choice:focus-visible,.party-slot:focus-visible{outline:3px solid var(--g-cyan);outline-offset:3px}.ps-keyhint{display:none;margin:0;text-align:center;color:var(--g-dim);font-size:.85rem}@media(min-width:900px)and (hover:hover){.ps-keyhint{display:block}}@media(min-width:720px){.party-screen{max-width:880px;padding:28px 32px 36px}.party-dock{flex-direction:row;justify-content:center;position:static;background:none}.party-dock .g-btn{width:auto;min-width:260px;min-height:56px}.ps-result,.ps-final{max-width:640px;margin:0 auto;width:100%}.ps-choices{grid-template-columns:repeat(4,minmax(0,1fr))}.ps-guess .party-picker{max-width:560px;margin:0 auto;width:100%}}@media(prefers-reduced-motion:reduce){.ps-watch-pulse i{animation:none;opacity:.6;transform:scale(.8)}}.pj{display:flex;flex-direction:column;gap:16px;margin-top:4vh}.pj .party-join{margin-top:0}.pj-sub{margin:-6px 0 0;color:var(--g-dim, rgba(255, 255, 255, .62));font-size:.95rem;line-height:1.4}.pj-form .g-btn{width:100%}.pj-form .g-btn.pj-secondary{min-height:48px;font-size:.95rem;background:#ffffff14;color:var(--g-text, #fff);border:1px solid var(--g-line, rgba(255, 255, 255, .09));box-shadow:none}.pj-people{max-height:40vh;overflow-y:auto}.pj-avatar{display:block;width:24px;height:24px;border-radius:50%;overflow:hidden;flex:none}.pj-avatar svg{display:block;width:100%;height:100%}.party-chip{padding-left:8px}@media(min-width:720px){.pj{margin-top:10vh}.pj-form{padding:32px;border-radius:var(--g-r-lg, 28px);border:1px solid var(--g-line, rgba(255, 255, 255, .09));background:linear-gradient(160deg,#ffffff12,#ffffff06);background-clip:padding-box}.party-title{font-size:2.3rem}.party-input:hover{border-color:#00d4ff80}.party-input:focus{outline-width:3px}.pj-form .g-btn{cursor:pointer}}
