:root{--ink:#1b2140;--paper:#fffaf0;--near:#19b8d6;--near-deep:#0e7fa0;--far:#ff6a3d;--far-deep:#c8431c;--gold:#ffcf3a;--good:#3ddc84;--ok:#b6ec4f;--warn:#ffb020;--bad:#ff5d5d;--font:ui-rounded, "SF Pro Rounded", "Arial Rounded MT Bold", "Nunito", "Varela Round", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--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);--ui:1;--u:calc(var(--ui) * 1px)}html,body{color:#fff;height:100%;font-family:var(--font);touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;background:#101418;margin:0;overflow:hidden}#app{position:fixed;inset:0;overflow:hidden}.stage{position:absolute;inset:0}.stage canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.guide-overlay,.input-overlay{pointer-events:none}.hud{pointer-events:none;font-family:var(--font);display:none;position:absolute;inset:0}.hud.show{display:block}.scoreboard{top:calc(var(--safe-top) + 10px);left:calc(var(--safe-left) + 10px);background:var(--paper);border:3px solid var(--ink);box-shadow:0 4px 0 var(--ink);border-radius:18px;gap:4px;padding:6px;display:grid;position:absolute}.score-row{color:#fff;border-radius:12px;grid-template-columns:14px minmax(0,auto) auto auto 52px;align-items:center;gap:6px;padding:3px 4px 3px 8px;font-weight:900;display:grid}.score-row.team-near{background:var(--near)}.score-row.team-far{background:var(--far)}.team-name{letter-spacing:.2px;white-space:nowrap;text-shadow:0 2px #00000040;padding-right:4px;font-size:15px}.serve-ball{box-sizing:border-box;border:2px solid #0000;border-radius:50%;width:12px;height:12px}.serve-ball.on{border-color:var(--ink);background:#e4ff3a}.cell{text-align:center;min-width:24px;color:var(--ink);font-variant-numeric:tabular-nums;background:#ffffffd9;border-radius:8px;padding:2px 4px;font-size:17px}.cell.sets{color:#fff;background:#1b2140d9}.cell.points{border:2px solid var(--ink);background:#fff;padding:1px 4px;font-size:21px}.score-chip,.second-serve{left:calc(var(--safe-left) + 18px);top:calc(var(--safe-top) + 92px);letter-spacing:.6px;text-transform:uppercase;color:var(--ink);background:var(--gold);border:3px solid var(--ink);box-shadow:0 3px 0 var(--ink);opacity:0;border-radius:999px;padding:5px 12px;font-size:15px;font-weight:900;transition:opacity .2s,transform .25s cubic-bezier(.3,1.6,.5,1);position:absolute;transform:scale(.6)}.score-chip:before{content:"★ "}.second-serve{background:#fff;font-size:13px}.score-chip.show+.second-serve{top:calc(var(--safe-top) + 128px)}.score-chip.show,.second-serve.show{opacity:1;transform:scale(1)}.serve-hint{color:var(--ink);border:3px solid var(--ink);box-shadow:0 4px 0 var(--ink);white-space:nowrap;opacity:0;background:#ffffffeb;border-radius:999px;padding:10px 18px;font-size:18px;font-weight:900;transition:opacity .25s;position:absolute;top:50%;left:50%;transform:translate(-50%)}.serve-hint.show{opacity:1;animation:1.4s ease-in-out infinite nudge}@keyframes nudge{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(-6px)}}.pause-button{top:calc(var(--safe-top) + 10px);right:calc(var(--safe-right) + 10px);pointer-events:auto;touch-action:manipulation;border:3px solid var(--ink);background:var(--paper);width:48px;height:48px;box-shadow:0 4px 0 var(--ink);cursor:pointer;border-radius:16px;position:absolute}.pause-button:before,.pause-button:after{content:"";background:var(--ink);border-radius:3px;width:7px;height:18px;position:absolute;top:12px}.pause-button:before{left:13px}.pause-button:after{right:13px}.pause-button:active{box-shadow:0 1px 0 var(--ink);transform:translateY(3px)}.timing{opacity:0;will-change:transform;position:absolute;top:0;left:0}.timing.show{opacity:1}.timing-text{letter-spacing:1px;white-space:nowrap;-webkit-text-stroke:7px var(--ink);paint-order:stroke fill;font-size:30px;font-weight:900;display:block;translate:-50% -100%}.timing-text.pop{animation:.35s cubic-bezier(.3,1.8,.5,1) pop}.timing-text.tone-perfect{color:var(--good);font-size:36px}.timing-text.tone-good{color:var(--ok)}.timing-text.tone-off{color:var(--warn)}.timing-text.tone-miss{color:var(--bad)}@keyframes pop{0%{scale:.4}to{scale:1}}.toast{box-sizing:border-box;text-align:center;color:#fff;background:var(--ink);opacity:0;border:4px solid #fff;border-radius:24px;min-width:220px;max-width:calc(100% - 40px);padding:12px 22px;transition:opacity .18s,transform .3s cubic-bezier(.3,1.6,.5,1);position:absolute;top:33%;left:50%;transform:translate(-50%,-50%)scale(.7);box-shadow:0 6px #00000059}.toast.show{opacity:1;transform:translate(-50%,-50%)scale(1)}.toast.team-near{background:var(--near)}.toast.team-far{background:var(--far)}.toast.team-neutral{background:#5a6385}.toast-title{-webkit-text-stroke:6px var(--ink);paint-order:stroke fill;font-size:36px;font-weight:900;line-height:1.05}.toast-detail{margin-top:6px;font-size:17px;font-weight:800;line-height:1.2}.toast-who{color:var(--ink);background:#fff;border-radius:999px;margin-top:6px;padding:3px 12px;font-size:14px;font-weight:900;display:inline-block}.banner{text-align:center;color:#fff;-webkit-text-stroke:7px var(--ink);paint-order:stroke fill;opacity:0;background:linear-gradient(90deg,#0000,#1b2140cc 15% 85%,#0000);padding:16px 12px;font-size:40px;font-weight:900;transition:opacity .2s,transform .3s cubic-bezier(.3,1.6,.5,1);position:absolute;top:45%;left:0;right:0;transform:scaleY(.2)}.banner.show{opacity:1;transform:scaleY(1)}.banner.team-near{color:#bff4ff}.banner.team-far{color:#ffd2c2}.hud-fps{bottom:calc(var(--safe-bottom) + 4px);pointer-events:none;background:#0006;border-radius:4px;padding:4px 6px;font:12px/1 ui-monospace,monospace;position:absolute;right:8px}.screens{pointer-events:none;display:none;position:absolute;inset:0}.screens.show{display:block}.screen{padding:calc(var(--safe-top) + 16 * var(--u)) calc(var(--safe-right) + 16 * var(--u)) calc(var(--safe-bottom) + 16 * var(--u)) calc(var(--safe-left) + 16 * var(--u));box-sizing:border-box;pointer-events:auto;touch-action:manipulation;background:#10142873;justify-content:center;align-items:center;animation:.25s ease-out fade-in;display:flex;position:absolute;inset:0}@keyframes fade-in{0%{opacity:0}}.card{width:min(100%, max(340px, calc(400 * var(--u))));box-sizing:border-box;max-height:100%;padding:calc(22 * var(--u)) calc(20 * var(--u));color:var(--ink);background:var(--paper);border:4px solid var(--ink);box-shadow:0 8px 0 var(--ink);border-radius:28px;animation:.35s cubic-bezier(.3,1.5,.5,1) card-in;overflow-y:auto}@keyframes card-in{0%{transform:translateY(30px)scale(.92)}}.card h2{margin:0 0 calc(14 * var(--u));font-size:calc(28 * var(--u));font-weight:900}.logo{text-align:center;padding-top:4vh;position:relative}.logo-text{font-size:calc(92 * var(--u));letter-spacing:2px;color:var(--gold);-webkit-text-stroke:12px var(--ink);paint-order:stroke fill;text-shadow:0 8px 0 var(--ink);font-weight:900;line-height:.95;transform:rotate(-4deg)}.logo-sub{margin-top:calc(10 * var(--u));padding:calc(4 * var(--u)) calc(18 * var(--u));font-size:calc(22 * var(--u));letter-spacing:6px;text-transform:uppercase;color:#fff;background:var(--far);border:3px solid var(--ink);box-shadow:0 4px 0 var(--ink);border-radius:999px;font-weight:900;display:inline-block;transform:rotate(-4deg)}.logo-ball{width:calc(46 * var(--u));height:calc(46 * var(--u));border:4px solid var(--ink);background:radial-gradient(circle at 35% 30%,#f6ff9a,#d6f22a 60%,#a9c414);border-radius:50%;animation:1.6s ease-in-out infinite bob;position:absolute;top:0;right:12%}@keyframes bob{50%{transform:translateY(-14px)}}.actions{gap:calc(12 * var(--u));margin-top:calc(18 * var(--u));flex-direction:column;display:flex}.btn{font-family:var(--font);font-size:calc(22 * var(--u));padding:calc(14 * var(--u)) calc(20 * var(--u));min-height:max(44px, calc(56 * var(--u)));color:var(--ink);border:4px solid var(--ink);box-shadow:0 6px 0 var(--ink);cursor:pointer;touch-action:manipulation;border-radius:20px;font-weight:900;transition:transform 60ms}.btn:active:not(:disabled){box-shadow:0 2px 0 var(--ink);transform:translateY(4px)}.btn:disabled{opacity:.45;cursor:default}.btn-primary{background:var(--gold);font-size:calc(26 * var(--u))}.btn-secondary{background:#fff}.btn-ghost{box-shadow:none;font-size:calc(18 * var(--u));text-underline-offset:4px;min-height:max(44px, calc(44 * var(--u)));padding:calc(8 * var(--u));background:0 0;border-color:#0000;text-decoration:underline}.setting-row{justify-content:space-between;align-items:center;gap:calc(12 * var(--u));padding:calc(10 * var(--u)) 0;border-bottom:2px dashed #1b214026;display:flex}.setting-label{font-size:calc(19 * var(--u));font-weight:900}.setting-label small{font-size:max(12px, calc(13 * var(--u)));opacity:.65;font-weight:700;display:block}.setting-note{margin:calc(8 * var(--u)) 0 0;font-size:max(12px, calc(13 * var(--u)));opacity:.6;font-weight:700}.switch{border:3px solid var(--ink);cursor:pointer;background:#d8dbe6;border-radius:999px;flex:none;width:64px;height:36px;transition:background .15s;position:relative}.switch:before{content:"";position:absolute;inset:-7px -4px}.switch .knob{border:3px solid var(--ink);box-sizing:border-box;background:#fff;border-radius:50%;width:24px;height:24px;transition:left .15s;position:absolute;top:3px;left:3px}.switch.on{background:var(--good)}.switch.on .knob{left:31px}.segmented{border:3px solid var(--ink);border-radius:14px;flex:none;display:flex;overflow:hidden}.seg{font-family:var(--font);font-size:max(12px, calc(16 * var(--u)));min-height:44px;padding:calc(7 * var(--u)) calc(12 * var(--u));color:var(--ink);cursor:pointer;background:#fff;border:none;font-weight:900}.seg+.seg{border-left:3px solid var(--ink)}.seg.on{background:var(--gold)}.seg:disabled{opacity:.6}.tut-art{height:calc(130 * var(--u));margin:-4px -8px calc(10 * var(--u));border:3px solid var(--ink);background:linear-gradient(#2f6fb5,#24599a);border-radius:20px;justify-content:center;display:flex}.tut-art svg{height:100%}.tut-text{font-size:calc(19 * var(--u));margin:0;font-weight:800;line-height:1.35}.tut-dots{justify-content:center;gap:calc(8 * var(--u));margin-top:calc(16 * var(--u));display:flex}.tut-dots .dot{width:calc(12 * var(--u));height:calc(12 * var(--u));border:2px solid var(--ink);background:#fff;border-radius:50%}.tut-dots .dot.on{background:var(--gold)}.end-title{text-align:center;font-size:calc(58 * var(--u));-webkit-text-stroke:10px var(--ink);paint-order:stroke fill;text-shadow:0 6px 0 var(--ink);font-weight:900;line-height:1}.end-title.won{color:var(--gold)}.end-title.lost{color:var(--far)}.end-result{gap:calc(6 * var(--u));margin-top:calc(22 * var(--u));padding:calc(6 * var(--u));border:3px solid var(--ink);background:#fff;border-radius:18px;display:grid}.end-row{align-items:center;gap:calc(6 * var(--u));padding:calc(6 * var(--u)) calc(6 * var(--u)) calc(6 * var(--u)) calc(12 * var(--u));color:#fff;border-radius:12px;font-weight:900;display:flex}.end-row.team-near{background:var(--near)}.end-row.team-far{background:var(--far)}.end-team{font-size:calc(18 * var(--u));text-shadow:0 2px #00000040;flex:1}.end-games{min-width:34px;padding:2px calc(4 * var(--u));text-align:center;font-size:calc(24 * var(--u));color:var(--ink);border:2px solid var(--ink);font-variant-numeric:tabular-nums;background:#fff;border-radius:8px}.end-note{margin:calc(16 * var(--u)) 0 0;text-align:center;font-size:calc(18 * var(--u));color:var(--near-deep);font-weight:900}#rotate-hint{display:none}@media (orientation:landscape) and (max-height:500px){#rotate-hint{color:#fff;font-family:var(--font);z-index:10;background:#101428;flex-direction:column;justify-content:center;align-items:center;gap:16px;font-size:26px;font-weight:900;display:flex;position:fixed;inset:0}}.rotate-phone{border:5px solid #fff;border-radius:10px;width:44px;height:76px;animation:2s ease-in-out infinite rotate-phone}@keyframes rotate-phone{0%,20%{transform:rotate(-90deg)}60%,to{transform:rotate(0)}}body #app .hud .scoreboard{top:calc(var(--safe-top) + 8px);left:calc(var(--safe-left) + 8px);color:var(--poster-paper);background:color-mix(in srgb, var(--poster-ink) 80%, transparent);border:none;border-left:3px solid var(--poster-accent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border-radius:2px;gap:0;padding:3px 0;box-shadow:0 2px 10px #00000040}body #app .hud .score-row{color:var(--poster-paper);background:0 0;border-radius:0;grid-template-columns:8px minmax(0,auto) auto auto 30px;gap:6px;padding:1px 8px 1px 7px;font-weight:600}body #app .hud .score-row+.score-row{border-top:1px solid color-mix(in srgb, var(--poster-paper) 22%, transparent)}body #app .hud .team-name{font-family:var(--poster-label);letter-spacing:.6px;text-transform:uppercase;text-shadow:none;text-overflow:ellipsis;max-width:160px;font-size:12px;font-weight:600;overflow:hidden}body #app .hud .score-row.team-near .team-name{color:var(--poster-paper)}body #app .hud .score-row.team-far .team-name{color:color-mix(in srgb, var(--poster-paper) 72%, var(--poster-ink))}body #app .hud .serve-ball{border:none;width:7px;height:7px}body #app .hud .serve-ball.on{box-shadow:0 0 0 1px var(--poster-ink);background:#e4ff3a;border:none}body #app .hud .cell{min-width:14px;font-family:var(--poster-label);color:color-mix(in srgb, var(--poster-paper) 80%, var(--poster-ink));background:0 0;border:none;border-radius:0;padding:0 2px;font-size:13px;font-weight:600}body #app .hud .cell.sets{color:var(--poster-accent-soft);background:0 0}body #app .hud .cell.points{font-family:var(--poster-display);color:var(--poster-paper);background:0 0;border:none;font-size:17px;font-weight:700;line-height:1.15}body #app .hud .score-chip,body #app .hud .second-serve,body #app .hud .serve-hint{font-family:var(--poster-label);letter-spacing:1px;color:var(--poster-ink);background:var(--poster-paper);border:1px solid var(--poster-ink);border-radius:3px;font-weight:600;box-shadow:0 3px 12px #00000040}body #app .hud .score-chip,body #app .hud .second-serve{left:calc(var(--safe-left) + 8px);top:calc(var(--safe-top) + 62px);padding:3px 9px;font-size:12px}body #app .hud .score-chip{color:var(--poster-paper);background:var(--poster-accent);border-color:var(--poster-accent)}body #app .hud .score-chip.show+.second-serve{top:calc(var(--safe-top) + 90px)}body #app .hud .serve-hint{padding:8px 16px;font-size:15px}body #app .hud .pause-button{top:calc(var(--safe-top) + 8px);right:calc(var(--safe-right) + 8px);background:color-mix(in srgb, var(--poster-ink) 80%, transparent);border:none;border-radius:2px;width:38px;height:38px;box-shadow:0 2px 10px #00000040}body #app .hud .pause-button:before,body #app .hud .pause-button:after{background:var(--poster-paper);border-radius:1px;width:4px;height:16px;top:11px}body #app .hud .pause-button:before{left:13px}body #app .hud .pause-button:after{right:13px}body #app .hud .pause-button:active{box-shadow:none;transform:translateY(1px)}body #app .hud .timing-text{font-family:var(--poster-label);letter-spacing:2px;-webkit-text-stroke:4px var(--poster-ink);font-size:24px;font-weight:700}body #app .hud .timing-text.tone-perfect{font-size:28px}body #app .hud .toast{min-width:200px;color:var(--poster-ink);background:var(--poster-paper);border:1px solid var(--poster-ink);border-top:4px solid var(--poster-ink);border-radius:3px;padding:10px 20px 12px;box-shadow:0 10px 26px #0000004d}body #app .hud .toast.team-near{border-top-color:var(--poster-accent);background-color:var(--poster-paper)}body #app .hud .toast.team-far,body #app .hud .toast.team-neutral{background-color:var(--poster-paper)}body #app .hud .toast-title{font-family:var(--poster-display);-webkit-text-stroke:0;font-size:32px;font-weight:700}body #app .hud .toast-detail{font-family:var(--poster-label);font-size:15px;font-weight:500}body #app .hud .toast-who{font-family:var(--poster-label);letter-spacing:1.5px;text-transform:uppercase;color:var(--poster-paper);background:var(--poster-ink);border-radius:2px;font-size:12px;font-weight:600}body #app .hud .toast.team-near .toast-who{background:var(--poster-accent)}body #app .hud .banner{font-family:var(--poster-display);color:var(--poster-paper);-webkit-text-stroke:0;text-shadow:0 2px 0 color-mix(in srgb, var(--poster-ink) 70%, transparent);background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--poster-ink) 78%, transparent) 15%, color-mix(in srgb, var(--poster-ink) 78%, transparent) 85%, transparent);font-size:34px;font-weight:700}body #app .hud .banner.team-near{color:var(--poster-paper)}body #app .hud .banner.team-far{color:var(--poster-accent-soft)}body #app .logo-sub{letter-spacing:10px;color:var(--poster-paper);border-top:1px solid var(--poster-paper);border-bottom:1px solid var(--poster-paper);background:0 0;border-radius:0;padding:2px 0;font-size:13px}body #app .btn{border-width:1px;border-radius:3px;box-shadow:0 4px 14px #00000038}body #app .btn:active:not(:disabled){transform:translateY(1px);box-shadow:0 2px 6px #00000038}body #app .btn-primary{border-color:var(--poster-accent)}body #app .btn-ghost{box-shadow:none;border-color:#0000}body #app .btn:focus-visible{outline:1px solid var(--poster-paper);outline-offset:3px}#app .screen-menu{justify-content:space-between;align-items:center;gap:calc(12 * var(--u));background:linear-gradient(180deg, color-mix(in srgb, var(--poster-ink) 10%, transparent) 0%, color-mix(in srgb, var(--poster-ink) 20%, transparent) 35%, color-mix(in srgb, var(--poster-ink) 78%, transparent) 70%);flex-direction:column;overflow-y:auto}#app .menu-logo{width:min(100%, max(340px, calc(380 * var(--u))));padding-top:1vh}#app .menu-logo .logo-text{font-size:calc(72 * var(--u))}#app .menu-logo .logo-ball{width:calc(36 * var(--u));height:calc(36 * var(--u))}#app .menu-list{gap:calc(10 * var(--u));width:min(100%, max(340px, calc(380 * var(--u))));grid-template-columns:repeat(2,minmax(0,1fr));display:grid}#app .menu-entry{align-items:center;gap:calc(10 * var(--u));min-height:max(44px, calc(52 * var(--u)));padding:calc(6 * var(--u)) calc(14 * var(--u));font-family:var(--poster-label);text-align:left;color:var(--poster-ink);background:var(--poster-paper);border:2px solid var(--poster-ink);box-shadow:0 3px 0 var(--poster-ink);cursor:pointer;touch-action:manipulation;border-radius:4px;grid-column:span 2;display:flex;position:relative;overflow:hidden}#app .menu-entry:active:not(:disabled){box-shadow:0 1px 0 var(--poster-ink);transform:translateY(2px)}#app .menu-entry.is-half{padding:calc(6 * var(--u)) calc(10 * var(--u));grid-column:span 1}#app .menu-entry.is-half .menu-label{font-size:max(12px, calc(15 * var(--u)));letter-spacing:1px}#app .menu-entry:disabled{cursor:default;opacity:.62;box-shadow:none}#app .menu-text{flex-direction:column;min-width:0;display:flex}#app .menu-label{text-overflow:ellipsis;white-space:nowrap;font-size:calc(17 * var(--u));letter-spacing:2px;text-transform:uppercase;font-weight:700;overflow:hidden}#app .menu-sub{font-size:max(12px, calc(12 * var(--u)));letter-spacing:1px;color:color-mix(in srgb, var(--poster-ink) 70%, transparent);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}#app .menu-entry.is-hero{min-height:max(44px, calc(92 * var(--u)));padding:0 calc(14 * var(--u)) 0 0;color:var(--poster-paper);background:var(--poster-accent)}#app .menu-entry.is-hero .menu-label{font-family:var(--poster-display);font-size:calc(30 * var(--u));letter-spacing:1px;text-transform:none}#app .menu-entry.is-hero .menu-sub{font-size:max(12px, calc(13 * var(--u)));letter-spacing:1.5px;text-transform:uppercase;color:color-mix(in srgb, var(--poster-paper) 88%, transparent)}#app .menu-art{flex:0 0 calc(96 * var(--u));border-right:2px solid var(--poster-ink);align-self:stretch;overflow:hidden}#app .menu-tag{padding:2px calc(7 * var(--u));font-size:max(12px, calc(11 * var(--u)));letter-spacing:1.5px;text-transform:uppercase;color:var(--poster-paper);background:var(--poster-ink);border-radius:2px;flex:none;margin-left:auto;font-weight:700}#app .tour-map{-webkit-overflow-scrolling:touch;background:var(--poster-ink);overflow:hidden auto}#app .tour-top{z-index:10;padding:calc(var(--safe-top) + 6px) calc(var(--safe-right) + 8px) 8px calc(var(--safe-left) + 8px);color:var(--poster-paper);background:#23323aeb;grid-template-columns:1fr auto 1fr;align-items:center;display:grid;position:sticky;top:0;box-shadow:0 4px 14px #0000004d}#app .tour-back{min-height:max(44px, calc(44 * var(--u)));padding:0 calc(12 * var(--u)) 0 calc(6 * var(--u));font-family:var(--poster-label);font-size:max(12px, calc(15 * var(--u)));letter-spacing:1px;text-transform:uppercase;color:var(--poster-paper);cursor:pointer;background:0 0;border:0;justify-self:start;font-weight:700}#app .tour-heading{text-align:center}#app .tour-heading .poster-kicker{color:#f0b445}#app .tour-title{font-family:var(--poster-display);font-size:calc(30 * var(--u));letter-spacing:1px;margin:0;font-weight:700;line-height:1.05}#app .tour-route{padding-bottom:calc(var(--safe-bottom) + 16px);position:relative}#app .route-line{z-index:2;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}#app .tour-band{height:max(290px, calc(330 * var(--u)));border-bottom:6px solid var(--poster-paper);position:relative;overflow:hidden}#app .band-art{position:absolute;inset:0}#app .tour-band.is-locked .band-art{filter:grayscale(.85)brightness(.75)}#app .band-label{z-index:3;max-width:78%;padding:calc(8 * var(--u)) calc(12 * var(--u)) calc(9 * var(--u));font-family:var(--poster-label);text-align:left;color:var(--poster-ink);background:var(--poster-paper);border:1.5px solid var(--poster-ink);cursor:pointer;border-radius:2px;flex-direction:column;align-items:flex-start;display:flex;position:absolute;top:12px;left:12px;box-shadow:0 6px 14px #00000040}#app .band-label:disabled{cursor:default}#app .tour-band.is-right .band-label{left:auto;right:12px}#app .band-country{font-family:var(--poster-display);font-size:calc(25 * var(--u));letter-spacing:2px;text-transform:uppercase;overflow-wrap:anywhere;font-weight:700;line-height:1.05}#app .tour-band.is-finale .band-country{letter-spacing:.5px}#app .band-event{font-family:var(--poster-display);font-style:italic;font-size:max(12px, calc(15 * var(--u)))}#app .band-meta{margin-top:calc(4 * var(--u));font-size:max(12px, calc(12 * var(--u)));letter-spacing:1px;text-transform:uppercase;font-weight:700}#app .tour-band.is-won .band-meta:before{content:"✓ "}#app .tour-band .lock,#app .quick-venue .lock,#app .quick-duo .lock{vertical-align:-1px;width:13px;height:11px;margin-right:5px;display:inline-block}#app .tour-band.is-later{height:calc(130 * var(--u))}#app .tour-band.is-later .band-label{top:50%;transform:translateY(-50%)}#app .tour-band.is-later .band-country{font-size:calc(21 * var(--u))}#app .tour-later-head{padding:calc(16 * var(--u)) calc(16 * var(--u)) calc(8 * var(--u));text-align:center;color:var(--poster-paper);background:#23323a}#app .tour-later-head .poster-kicker{color:#f0b445}#app .tour-later-head h3{font-family:var(--poster-display);font-size:calc(22 * var(--u));margin:0}#app .route-node{z-index:4;width:max(44px, calc(54 * var(--u)));height:max(44px, calc(54 * var(--u)));color:var(--poster-ink);background:var(--poster-paper);border:3px solid var(--poster-ink);box-shadow:0 5px 0 var(--poster-ink);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:absolute;translate:-50% -50%}#app .route-node .ico{width:calc(28 * var(--u));height:calc(28 * var(--u))}#app .route-node.is-boss{width:max(52px, calc(68 * var(--u)));height:max(52px, calc(68 * var(--u)));background:#f0b445}#app .route-node.is-current{color:var(--poster-paper);background:var(--poster-accent);animation:1.4s ease-in-out infinite node-pulse}@keyframes node-pulse{50%{box-shadow:0 5px 0 var(--poster-ink), 0 0 0 10px color-mix(in srgb, var(--poster-paper) 45%, transparent)}}#app .route-node.is-soon,#app .route-node.is-locked{cursor:default;background:color-mix(in srgb, var(--poster-paper) 62%, #888);box-shadow:none;border-style:dashed}#app .route-node.is-soon .ico{opacity:.55}#app .node-soon,#app .node-done{padding:1px calc(6 * var(--u));font-size:max(12px, calc(10 * var(--u)));letter-spacing:1.5px;text-transform:uppercase;white-space:nowrap;color:var(--poster-paper);background:color-mix(in srgb, var(--poster-ink) 80%, transparent);border-radius:8px;font-weight:700;position:absolute;top:calc(100% + 3px);left:50%;transform:translate(-50%)}#app .node-done{background:var(--poster-floor);font-size:max(12px, calc(12 * var(--u)))}#app .route-here{z-index:5;margin-top:calc(-42 * var(--u));padding:calc(4 * var(--u)) calc(9 * var(--u));font-size:max(12px, calc(12 * var(--u)));letter-spacing:1.5px;text-transform:uppercase;white-space:nowrap;color:#23323a;pointer-events:none;background:#f0b445;border:1.5px solid #23323a;border-radius:3px;font-weight:700;position:absolute;transform:translate(-50%,-100%)}#app .route-here:after{content:"";border:7px solid #0000;border-top-color:#23323a;position:absolute;top:100%;left:50%;transform:translate(-50%)}#app .tour-card .card-body{padding:calc(12 * var(--u)) calc(16 * var(--u)) calc(16 * var(--u))}#app .tour-card-title{padding:0 0 calc(4 * var(--u));text-align:center}#app .tour-card-country{font-family:var(--poster-display);font-size:calc(32 * var(--u));letter-spacing:3px;text-transform:uppercase;overflow-wrap:anywhere;margin:2px 0 0;line-height:1.05}#app .tour-card-event{font-family:var(--poster-display);font-style:italic;font-size:calc(18 * var(--u))}#app .tour-card-focus{margin-top:calc(4 * var(--u));font-size:max(12px, calc(14 * var(--u)));letter-spacing:.5px;color:color-mix(in srgb, var(--poster-ink) 78%, transparent)}#app .tour-card .actions{margin:calc(14 * var(--u)) 0 0}#app .tour-h3{margin:calc(14 * var(--u)) 0 calc(6 * var(--u));font-family:var(--poster-display);font-size:calc(20 * var(--u))}#app .stage-nodes{margin:calc(10 * var(--u)) 0 0;padding:0;list-style:none}#app .stage-node{grid-template-columns:calc(34 * var(--u)) 1fr auto;align-items:center;gap:calc(10 * var(--u));padding:calc(5 * var(--u)) 0;font-size:max(12px, calc(15 * var(--u)));border-bottom:1px dashed color-mix(in srgb, var(--poster-ink) 25%, transparent);display:grid}#app .stage-node-ico{width:calc(34 * var(--u));height:calc(34 * var(--u));border:2px solid var(--poster-ink);border-radius:50%;justify-content:center;align-items:center;display:flex}#app .stage-node-ico .ico{width:calc(20 * var(--u));height:calc(20 * var(--u))}#app .stage-node.is-boss .stage-node-ico{background:#f0b445}#app .stage-node.is-soon{opacity:.5}#app .stage-node.is-soon .stage-node-ico{border-style:dashed}#app .stage-node-name{letter-spacing:.5px;font-weight:700}#app .stage-node-state{font-size:max(12px, calc(12 * var(--u)));letter-spacing:1.2px;text-transform:uppercase;font-weight:700}#app .duo-card{margin:calc(14 * var(--u)) 0 0;padding:calc(12 * var(--u));color:var(--poster-paper);background:var(--poster-ink);border-radius:4px}#app .duo-card .poster-kicker{color:#f0b445}#app .duo-names{gap:calc(8 * var(--u));margin:calc(8 * var(--u)) 0 calc(10 * var(--u));grid-template-columns:1fr 1fr;display:grid}#app .duo-player{padding:calc(7 * var(--u)) calc(6 * var(--u));text-align:center;border:1px solid color-mix(in srgb, var(--poster-paper) 40%, transparent);border-radius:3px}#app .duo-name{font-family:var(--poster-display);font-size:calc(17 * var(--u));font-weight:700;display:block}#app .duo-player small{font-size:max(12px, calc(11 * var(--u)));letter-spacing:1px;text-transform:uppercase;opacity:.8;display:block}#app .duo-trait{grid-template-columns:calc(84 * var(--u)) 1fr;align-items:center;gap:calc(8 * var(--u));margin:calc(4 * var(--u)) 0;font-size:max(12px, calc(13 * var(--u)));letter-spacing:.5px;display:grid}#app .duo-trait i{height:calc(8 * var(--u));background:color-mix(in srgb, var(--poster-paper) 20%, transparent);border-radius:4px;display:block;overflow:hidden}#app .duo-trait b{background:#f0b445;height:100%;display:block}#app .quick-venues{gap:calc(8 * var(--u));grid-template-columns:repeat(2,minmax(0,1fr));display:grid}#app .quick-venue{min-height:max(44px, calc(44 * var(--u)));font-family:var(--poster-label);text-align:left;color:var(--poster-ink);background:var(--poster-paper);border:2px solid var(--poster-ink);cursor:pointer;border-radius:4px;flex-direction:column;padding:0;display:flex;overflow:hidden}#app .quick-venue-art{height:calc(44 * var(--u));overflow:hidden}#app .quick-venue.is-locked .quick-venue-art{filter:grayscale(.85)brightness(.8)}#app .quick-venue-label{padding:calc(4 * var(--u)) calc(8 * var(--u)) calc(6 * var(--u));flex-direction:column;display:flex}#app .quick-venue-country{font-family:var(--poster-display);font-size:max(12px, calc(16 * var(--u)));letter-spacing:1px;text-transform:uppercase;font-weight:700}#app .quick-venue-sub{font-size:max(12px, calc(11 * var(--u)));letter-spacing:.5px}#app .quick-venue.on,#app .quick-duo.on{box-shadow:0 0 0 3px var(--poster-accent), 0 3px 0 3px var(--poster-ink)}#app .quick-venue:disabled,#app .quick-duo:disabled{cursor:default;opacity:.6}#app .quick-duos{gap:calc(8 * var(--u));flex-direction:column;display:flex}#app .quick-duo{justify-content:space-between;align-items:center;gap:calc(8 * var(--u));min-height:max(44px, calc(48 * var(--u)));padding:calc(6 * var(--u)) calc(12 * var(--u));font-family:var(--poster-label);text-align:left;color:var(--poster-ink);background:var(--poster-paper);border:2px solid var(--poster-ink);cursor:pointer;border-radius:4px;display:flex}#app .quick-duo-names{font-size:max(12px, calc(15 * var(--u)));font-weight:700}#app .quick-duo-sub{font-size:max(12px, calc(11 * var(--u)));letter-spacing:.5px;flex:none}#app .quick-duo-dots{font-size:max(12px, calc(12 * var(--u)));letter-spacing:1px;color:var(--poster-accent)}#app .screen-quick .setting-row{margin:calc(8 * var(--u)) 0 0;font-family:var(--poster-label)}#app .screen-quick .seg{font-family:var(--poster-label);letter-spacing:1px;font-weight:700}#app .screen-quick .setting-label{font-size:calc(17 * var(--u));font-weight:700}#app .screen-quick .actions{bottom:calc(-16 * var(--u));margin:calc(10 * var(--u)) calc(-16 * var(--u)) 0;padding:calc(10 * var(--u)) calc(16 * var(--u)) calc(12 * var(--u));background:var(--poster-paper);border-top:1px solid color-mix(in srgb, var(--poster-ink) 25%, transparent);position:sticky}#app .training-list{margin:calc(10 * var(--u)) 0 0;padding-left:calc(22 * var(--u));font-size:max(12px, calc(14 * var(--u)))}#app .training-list li{padding:calc(4 * var(--u)) 0}#app .training-list strong{font-size:max(12px, calc(15 * var(--u)));display:block}#app .training-list span{color:color-mix(in srgb, var(--poster-ink) 75%, transparent)}#app .screen-training .tour-card-country{font-size:calc(25 * var(--u));letter-spacing:1px}:root{--poster-paper:#f3e3cf;--poster-ink:#23323a;--poster-accent:#c8553d;--poster-accent-soft:#e0a48f;--poster-sky-top:#6f8496;--poster-sky-bottom:#f1c7aa;--poster-haze:#e6bfa8;--poster-layer:#4f6a63;--poster-floor:#2f6b69;--poster-display:"Didot", "Bodoni 72", "Playfair Display", Georgia, "Times New Roman", serif;--poster-label:"Avenir Next Condensed", "Futura", "Gill Sans", "Trebuchet MS", system-ui, sans-serif;--poster-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.55 0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E")}#app .screen{background:color-mix(in srgb, var(--poster-ink) 45%, transparent)}#app .card{color:var(--poster-ink);background:var(--poster-paper);border:none;border-radius:4px;animation:.35s ease-out poster-in;box-shadow:0 18px 34px #00000073}#app .card.has-head{flex-direction:column;padding:0;display:flex;overflow:hidden}#app .card-head{flex:0 0 calc(90 * var(--u));background:var(--poster-sky-top);position:relative;overflow:hidden}#app .card-head .poster-svg{position:absolute;inset:0}#app .card-head-label{font-family:var(--poster-label);font-size:max(12px, calc(12 * var(--u)));letter-spacing:3px;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;color:#f4f1ea;text-shadow:0 1px 2px #00000073;font-weight:600;position:absolute;bottom:6px;left:14px;right:14px;overflow:hidden}#app .card-body{overscroll-behavior:contain;min-height:0;padding:calc(16 * var(--u)) calc(20 * var(--u)) calc(20 * var(--u));flex:auto;overflow-y:auto}@keyframes poster-in{0%{opacity:0;transform:translateY(16px)}}#app .card h2{font-family:var(--poster-display);letter-spacing:.5px;font-weight:700}#app .logo-text{font-family:var(--poster-display);font-weight:700;font-size:calc(84 * var(--u));letter-spacing:3px;color:var(--poster-paper);-webkit-text-stroke:0;text-shadow:0 3px 0 color-mix(in srgb, var(--poster-ink) 70%, transparent);transform:none}#app .logo-sub{font-family:var(--poster-label);font-weight:600;font-size:max(12px, calc(15 * var(--u)));letter-spacing:8px;color:var(--poster-paper);background:var(--poster-accent);box-shadow:none;border:none;border-radius:2px;transform:none}#app .logo-ball{box-shadow:0 0 0 3px color-mix(in srgb, var(--poster-paper) 60%, transparent);background:radial-gradient(circle at 35% 30%,#fbf6a6,#f3ec4c 60%,#c8c22a);border:none}#app .btn{font-family:var(--poster-label);letter-spacing:2px;text-transform:uppercase;color:var(--poster-ink);border:2px solid var(--poster-ink);box-shadow:0 3px 0 var(--poster-ink);border-radius:4px;font-weight:600}#app .btn:active:not(:disabled){box-shadow:0 1px 0 var(--poster-ink);transform:translateY(2px)}#app .btn-primary{color:var(--poster-paper);background:var(--poster-accent);font-size:calc(22 * var(--u))}#app .btn-secondary{background:var(--poster-paper)}#app .btn-ghost{text-transform:none;letter-spacing:.5px;box-shadow:none;border-color:#0000}#app .poster-screen .btn-ghost{color:var(--poster-paper)}#app .switch.on{background:var(--poster-accent)}#app .seg.on{background:var(--poster-accent);color:var(--poster-paper)}#app .end-title{font-family:var(--poster-display)}#app .poster-screen{box-sizing:border-box;pointer-events:auto;touch-action:manipulation;color:var(--poster-ink);font-family:var(--poster-label);animation:.25s ease-out fade-in;position:absolute;inset:0}#app .poster-svg{width:100%;height:100%;display:block}#app .poster-kicker{font-family:var(--poster-label);font-size:max(12px, calc(12 * var(--u)));letter-spacing:4px;text-transform:uppercase;color:var(--poster-accent);font-weight:600}#app .poster-intro{justify-content:center;align-items:center;gap:calc(14 * var(--u));padding:calc(var(--safe-top) + 24 * var(--u)) 22px calc(var(--safe-bottom) + 24 * var(--u));background:color-mix(in srgb, var(--poster-ink) 70%, transparent);flex-direction:column;display:flex}#app .poster-sheet{width:min(100%, calc(360 * var(--u)));width:min(100%, calc(360 * var(--u)), calc((100dvh - var(--safe-top) - var(--safe-bottom) - 110 * var(--u)) * 3 / 4.6));aspect-ratio:3/4.6;background:var(--poster-paper);border:10px solid var(--poster-paper);outline:1.5px solid var(--poster-ink);outline-offset:-4px;flex-direction:column;animation:.45s cubic-bezier(.2,.9,.3,1) poster-drop;display:flex;position:relative;overflow:hidden;box-shadow:0 24px 50px #00000073}#app .poster-sheet:after{content:"";background:var(--poster-grain);opacity:.35;mix-blend-mode:multiply;pointer-events:none;position:absolute;inset:0}@keyframes poster-drop{0%{opacity:0;transform:translateY(-24px)rotate(-1.5deg)}}#app .poster-art{flex:auto;min-height:0;overflow:hidden}#app .poster-text{padding:calc(14 * var(--u)) calc(10 * var(--u)) calc(12 * var(--u));text-align:center;background:var(--poster-paper);flex:none}#app .poster-country{margin:calc(4 * var(--u)) 0 2px;font-family:var(--poster-display);font-size:calc(54 * var(--u));letter-spacing:6px;text-transform:uppercase;color:var(--poster-ink);font-weight:700;line-height:1}#app .poster-event{font-family:var(--poster-display);font-style:italic;font-size:calc(20 * var(--u));color:var(--poster-ink)}#app .poster-rule{width:calc(64 * var(--u));height:2px;margin:calc(10 * var(--u)) auto calc(8 * var(--u));background:var(--poster-accent)}#app .poster-vs{font-size:max(12px, calc(13 * var(--u)));letter-spacing:2px;text-transform:uppercase;color:color-mix(in srgb, var(--poster-ink) 75%, transparent);font-weight:600}#app .poster-skip{font-size:max(12px, calc(12 * var(--u)));letter-spacing:3px;text-transform:uppercase;color:var(--poster-paper);opacity:.8}#app[data-country=finale] .btn-primary,#app[data-country=finale] .meta-reward{color:var(--poster-ink)}:root[data-ui-size=s] #app .card-head{flex-basis:calc(76 * var(--u))}:root[data-ui-size=xs] #app .card-head{flex-basis:calc(62 * var(--u))}#app .meta-card h2{margin-bottom:calc(8 * var(--u))}#app .meta-nick{margin:0 0 calc(10 * var(--u));font-family:var(--poster-label);letter-spacing:1px;color:var(--poster-accent);font-weight:700}#app .meta-stat{justify-content:space-between;align-items:baseline;gap:calc(12 * var(--u));padding:calc(8 * var(--u)) 0;border-bottom:1px solid color-mix(in srgb, var(--poster-ink) 18%, transparent);font-family:var(--poster-label);display:flex}#app .meta-stat-label{font-size:max(12px, calc(15 * var(--u)));text-transform:uppercase;letter-spacing:1px}#app .meta-stat-value{font-family:var(--poster-display);font-size:calc(22 * var(--u));font-weight:700}#app .meta-bar{height:calc(10 * var(--u));margin-top:calc(10 * var(--u));border:1px solid var(--poster-ink);background:var(--poster-paper)}#app .meta-bar-fill{background:var(--poster-accent);height:100%}#app .meta-sub{margin:calc(4 * var(--u)) 0 calc(4 * var(--u));font-family:var(--poster-label);font-size:max(12px, calc(13 * var(--u)));text-align:right;opacity:.75}#app .meta-h3{margin:calc(14 * var(--u)) 0 calc(4 * var(--u));font-family:var(--poster-label);font-size:max(12px, calc(14 * var(--u)));letter-spacing:2px;text-transform:uppercase}#app .meta-challenges{padding-left:calc(18 * var(--u));font-family:var(--poster-label);font-size:max(12px, calc(15 * var(--u)));margin:0;line-height:1.6}#app .meta-challenges .done{color:var(--poster-accent);text-decoration:line-through}#app .meta-reward{margin:calc(12 * var(--u)) 0 0;padding:calc(6 * var(--u)) calc(10 * var(--u));font-family:var(--poster-label);text-align:center;color:var(--poster-paper);background:var(--poster-accent);border:1px solid var(--poster-ink);font-weight:700}#app .meta-account-status{margin:calc(4 * var(--u)) 0 2px;font-family:var(--poster-display);font-size:calc(18 * var(--u));font-weight:700}#app .meta-account.status-linked .meta-account-status{color:var(--poster-accent)}#app .meta-account-detail{margin:0 0 calc(8 * var(--u));font-family:var(--poster-label);font-size:max(12px, calc(14 * var(--u)));opacity:.8}#app .meta-account-actions{gap:calc(10 * var(--u));flex-direction:column;display:flex}#app .meta-account-btn{min-height:max(44px, calc(48 * var(--u)));padding:calc(8 * var(--u)) calc(14 * var(--u));font-size:max(12px, calc(16 * var(--u)));letter-spacing:1.5px;flex-direction:column;align-items:center;gap:2px;display:flex}#app .meta-soon{font-size:max(12px, calc(11 * var(--u)));letter-spacing:1px;text-transform:none;font-weight:500}#app .meta-danger{color:var(--poster-paper);background:color-mix(in srgb, #b3261e 85%, var(--poster-ink))}#app .meta-notice{left:50%;bottom:calc(var(--safe-bottom,0px) + 24px);z-index:50;box-sizing:border-box;width:min(100% - 32px,380px);padding:calc(10 * var(--u)) calc(14 * var(--u));font-family:var(--poster-label);text-align:center;color:var(--poster-ink);background:var(--poster-paper);border:2px solid var(--poster-ink);box-shadow:0 3px 0 var(--poster-ink);opacity:0;pointer-events:none;border-radius:4px;font-weight:700;transition:opacity .2s,transform .2s;position:fixed;transform:translate(-50%,20px)}#app .meta-notice.show{opacity:1;transform:translate(-50%)}#app .meta-notice.tone-ok{color:var(--poster-paper);background:var(--poster-accent)}#app .online-card h2{margin-bottom:calc(6 * var(--u))}#app .online-lead{margin:0 0 calc(12 * var(--u));font-family:var(--poster-label);font-size:max(12px, calc(15 * var(--u)));opacity:.8}#app .online-msg{margin:calc(10 * var(--u)) 0 0;font-family:var(--poster-label);font-size:max(12px, calc(14 * var(--u)));line-height:1.35}#app .online-msg.is-error{padding:calc(6 * var(--u)) calc(10 * var(--u));color:#8c1d12;background:color-mix(in srgb, var(--bad) 18%, var(--poster-paper));border-left:3px solid var(--bad)}#app .online-options{gap:calc(10 * var(--u));display:grid}#app .online-option{gap:calc(2 * var(--u));min-height:max(44px, calc(64 * var(--u)));padding:calc(10 * var(--u)) calc(14 * var(--u));text-align:left;font:inherit;color:var(--poster-ink);background:var(--poster-paper);border:2px solid var(--poster-ink);box-shadow:0 3px 0 var(--poster-ink);cursor:pointer;border-radius:4px;display:grid}#app .online-option.is-primary{color:var(--poster-paper);background:var(--poster-accent)}#app .online-option:active:not(:disabled){box-shadow:0 1px 0 var(--poster-ink);transform:translateY(2px)}#app .online-option:disabled{opacity:.55}#app .online-option-label{font-family:var(--poster-display);font-size:calc(22 * var(--u));font-weight:700;line-height:1.1}#app .online-option-sub{font-family:var(--poster-label);font-size:max(12px, calc(13 * var(--u)));letter-spacing:.5px;opacity:.85}#app .online-hint{align-items:center;gap:calc(8 * var(--u));margin-top:calc(14 * var(--u));padding:calc(8 * var(--u)) calc(10 * var(--u));border:1px dashed var(--poster-accent);background:color-mix(in srgb, var(--poster-accent) 8%, var(--poster-paper));display:flex}#app .online-hint p{font-family:var(--poster-label);font-size:max(12px, calc(13 * var(--u)));flex:1;margin:0;line-height:1.3}#app .online-hint .btn{padding:calc(6 * var(--u)) calc(8 * var(--u));font-size:max(12px, calc(14 * var(--u)));color:var(--poster-accent);flex:none;text-decoration:underline}#app .online-dev{margin:calc(10 * var(--u)) 0 0;opacity:.6;font-family:ui-monospace,Menlo,monospace;font-size:12px}#app .online-search{justify-items:center;gap:calc(8 * var(--u));padding:calc(8 * var(--u)) 0;display:grid}#app .online-ball{width:calc(30 * var(--u));height:calc(30 * var(--u));box-shadow:0 0 0 2px var(--poster-ink);background:radial-gradient(circle at 35% 30%,#fbf6a6,#f3ec4c 60%,#c8c22a);border-radius:50%;animation:.9s cubic-bezier(.3,0,.7,1) infinite alternate online-bounce}@keyframes online-bounce{0%{transform:translateY(calc(-14 * var(--u)))}to{transform:translateY(calc(6 * var(--u))) scale(1.08, .92)}}#app .online-clock{font-family:var(--poster-display);font-size:calc(54 * var(--u));font-variant-numeric:tabular-nums;font-weight:700;line-height:1}#app .online-dots{gap:calc(10 * var(--u));display:flex}#app .online-dot{width:calc(18 * var(--u));height:calc(18 * var(--u));border:2px solid var(--poster-ink);border-radius:50%}#app .online-dot.on{background:var(--poster-ink)}#app .online-dot.ai{border-style:dashed;border-color:var(--poster-accent);background:color-mix(in srgb, var(--poster-accent) 25%, transparent)}#app .online-found{font-family:var(--poster-label);font-size:max(12px, calc(15 * var(--u)));letter-spacing:1px;text-transform:uppercase}#app .online-fill{padding:calc(4 * var(--u)) calc(12 * var(--u));font-family:var(--poster-label);font-size:max(12px, calc(14 * var(--u)));letter-spacing:2px;text-transform:uppercase;color:var(--poster-paper);background:var(--poster-accent);font-weight:700}#app .online-fill[hidden]{display:none}#app .online-line{margin:calc(6 * var(--u)) 0 0;text-align:center;font-family:var(--poster-label);font-size:max(12px, calc(15 * var(--u)))}#app .online-connect{gap:calc(6 * var(--u));margin:calc(4 * var(--u)) 0 0;padding:0;list-style:none;display:grid}#app .online-connect-row{align-items:center;gap:calc(8 * var(--u));padding:calc(6 * var(--u)) calc(10 * var(--u));font-family:var(--poster-label);font-size:max(12px, calc(16 * var(--u)));border-bottom:1px solid color-mix(in srgb, var(--poster-ink) 18%, transparent);display:flex}#app .online-connect-name{flex:1;font-weight:700}#app .online-connect-row.is-waiting .online-connect-state{color:var(--poster-accent)}#app .online-connect-row.is-ai{opacity:.65}#app .screen-online-connect.is-failed .online-ball{opacity:.4;animation:none}#app .online-code-label{gap:calc(6 * var(--u));font-family:var(--poster-label);font-size:max(12px, calc(13 * var(--u)));letter-spacing:2px;text-transform:uppercase;display:grid}#app .online-code-input{box-sizing:border-box;width:100%;min-height:44px;padding:calc(8 * var(--u)) calc(10 * var(--u));font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:max(16px, calc(34 * var(--u)));letter-spacing:.35em;text-align:center;text-transform:uppercase;color:var(--poster-ink);border:2px solid var(--poster-ink);-webkit-user-select:text;user-select:text;touch-action:manipulation;background:#fff;border-radius:4px;font-weight:700}#app .online-code-input:focus{outline:3px solid var(--poster-accent);outline-offset:1px}#app .online-code-hint{margin:calc(6 * var(--u)) 0 0;font-family:var(--poster-label);font-size:max(12px, calc(13 * var(--u)));opacity:.75}#app .online-codebox{align-items:center;column-gap:calc(10 * var(--u));padding:calc(6 * var(--u)) calc(10 * var(--u));border:2px solid var(--poster-ink);background:#fff;grid-template-columns:1fr auto;display:grid}#app .online-code-caption{font-family:var(--poster-label);font-size:max(12px, calc(12 * var(--u)));letter-spacing:2px;text-transform:uppercase;opacity:.7;grid-column:1/-1}#app .online-code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:calc(36 * var(--u));letter-spacing:.12em;white-space:nowrap;-webkit-user-select:text;user-select:text;font-weight:800}#app .online-codebox .btn{min-height:44px;padding:calc(6 * var(--u)) calc(10 * var(--u));font-size:max(12px, calc(14 * var(--u)));letter-spacing:1px}#app .online-offline{justify-content:space-between;align-items:center;gap:calc(8 * var(--u));margin-top:calc(8 * var(--u));padding:calc(6 * var(--u)) calc(10 * var(--u));font-family:var(--poster-label);font-size:max(12px, calc(14 * var(--u)));color:var(--poster-paper);background:var(--poster-ink);font-weight:700;display:flex}#app .online-offline[hidden]{display:none}#app .online-offline .btn{min-height:44px;padding:calc(4 * var(--u)) calc(8 * var(--u));font-size:max(12px, calc(13 * var(--u)));letter-spacing:1px}#app .online-court{gap:calc(6 * var(--u));margin-top:calc(10 * var(--u));padding:calc(8 * var(--u));background:var(--poster-floor);border:2px solid var(--poster-ink);box-shadow:inset 0 0 0 calc(4 * var(--u)) #ffffff73;display:grid}#app .online-team-label{font-family:var(--poster-label);font-size:max(12px, calc(12 * var(--u)));letter-spacing:2px;text-transform:uppercase;text-align:center;color:#f4f1ea;font-weight:600}#app .online-row{gap:calc(6 * var(--u));grid-template-columns:1fr 1fr;display:grid}#app .online-net{height:calc(14 * var(--u));text-align:center;position:relative}#app .online-net:before{content:"";border-top:3px dashed #f4f1ea;position:absolute;top:50%;left:0;right:0}#app .online-net span{padding:0 calc(8 * var(--u));font-family:var(--poster-label);letter-spacing:2px;text-transform:uppercase;color:#f4f1ea;background:var(--poster-floor);font-size:12px;position:relative}#app .online-seat{align-content:start;gap:calc(2 * var(--u));min-height:max(44px, calc(76 * var(--u)));padding:calc(6 * var(--u)) calc(8 * var(--u));text-align:left;font:inherit;color:var(--poster-ink);background:var(--poster-paper);border:2px solid var(--poster-ink);border-left-width:calc(6 * var(--u));opacity:1;border-radius:3px;display:grid;position:relative}#app .online-seat.team-own{border-left-color:var(--near-deep)}#app .online-seat.team-other{border-left-color:var(--far-deep)}#app .online-seat.is-free{color:#f4f1ea;background:0 0;border-style:dashed;border-color:#f4f1ea;border-left-width:2px}#app .online-seat.is-tappable{cursor:pointer}#app .online-seat.is-free.is-tappable{background:#ffffff1f}#app .online-seat.is-self{box-shadow:0 0 0 3px var(--gold)}#app .online-seat.is-selected{outline:3px solid var(--gold);outline-offset:2px;transform:translateY(-2px)}#app .online-seat:active:not(:disabled){transform:translateY(1px)}#app .online-seat-side{font-family:var(--poster-label);letter-spacing:1.5px;text-transform:uppercase;opacity:.7;font-size:12px}#app .online-seat-name{align-items:center;gap:calc(6 * var(--u));font-family:var(--poster-display);font-size:calc(19 * var(--u));white-space:nowrap;text-overflow:ellipsis;font-weight:700;display:flex;overflow:hidden}#app .online-seat-name.is-empty{font-family:var(--poster-label);letter-spacing:1px;font-weight:600}#app .online-seat-tags{flex-wrap:wrap;gap:4px;min-height:0;display:flex}#app .online-tag{font-family:var(--poster-label);letter-spacing:.5px;border:1px solid var(--poster-ink);padding:0 5px;font-size:12px;font-weight:700}#app .online-tag.is-self{background:var(--gold)}#app .online-tag.is-host{color:var(--poster-paper);background:var(--poster-ink)}#app .online-seat-ready{font-family:var(--poster-label);font-size:max(12px, calc(13 * var(--u)));opacity:.75}#app .online-seat-ready.on{color:#1d7a45;opacity:1;font-weight:700}#app .online-conn{border:1px solid var(--poster-ink);border-radius:50%;flex:none;width:9px;height:9px}#app .online-conn.conn-ok{background:var(--good)}#app .online-conn.conn-lost{background:var(--warn);animation:1s steps(2,end) infinite online-blink}#app .online-conn.conn-left{background:var(--bad)}@keyframes online-blink{50%{opacity:.3}}#app .online-status{margin:calc(10 * var(--u)) 0 0;text-align:center;font-family:var(--poster-display);font-size:calc(18 * var(--u));font-weight:700}#app .online-help{margin:calc(4 * var(--u)) 0 0;text-align:center;font-family:var(--poster-label);font-size:max(12px, calc(13 * var(--u)));opacity:.75}#app .online-help[hidden],#app .online-code-hint[hidden],#app .online-msg[hidden],#app .online-card .btn[hidden],#app .online-card .actions[hidden],#app .online-reward[hidden]{display:none}#app .screen-online-room .actions{margin-top:calc(12 * var(--u));grid-template-columns:1fr 1fr;display:grid}#app .screen-online-room .actions .btn{min-width:0;padding-inline:calc(8 * var(--u))}#app .screen-online-room .actions .btn[hidden]+.btn,#app .screen-online-room .actions .btn-ghost{grid-column:1/-1}#app .screen-online-result .end-row.team-near{background:var(--near-deep)}#app .online-result-status{margin:calc(14 * var(--u)) 0 0;text-align:center;font-family:var(--poster-label);font-size:max(12px, calc(15 * var(--u)));line-height:1.35}#app .online-result-status.is-pending:before{content:"";vertical-align:-.1em;border:2px solid var(--poster-ink);border-right-color:#0000;border-radius:50%;width:.9em;height:.9em;margin-right:.5em;animation:.8s linear infinite online-spin;display:inline-block}@keyframes online-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){#app .online-ball,#app .online-result-status.is-pending:before,#app .online-conn.conn-lost{animation:none}}:root[data-ui-size=xs] #app .online-seat{min-height:44px}:root[data-ui-size=xs] #app .online-clock{font-size:calc(42 * var(--u))}#app .screen-player{z-index:30;padding:calc(var(--safe-top) + 10px) calc(var(--safe-right) + 10px) calc(var(--safe-bottom) + 10px) calc(var(--safe-left) + 10px);pointer-events:auto;background:color-mix(in srgb, var(--poster-ink) 55%, transparent);align-items:stretch}#app .card.pl-panel{width:min(100%, max(340px, calc(440 * var(--u))));min-height:0;max-height:none;font-family:var(--poster-label);flex-direction:column;margin:0 auto;display:flex}#app .card-head.pl-head{justify-content:space-between;align-items:flex-end;gap:calc(10 * var(--u));flex:0 0 calc(84 * var(--u));padding:calc(8 * var(--u)) calc(14 * var(--u)) calc(8 * var(--u));color:#f4f1ea;display:flex}.pl-titles,.pl-coins{position:relative}.pl-titles{text-shadow:0 1px 3px #00000080}.pl-kicker{font-size:max(12px, calc(12 * var(--u)));letter-spacing:3px;text-transform:uppercase;opacity:.85;font-weight:700}.pl-title{font-family:var(--poster-display);font-size:calc(30 * var(--u));margin:0;font-weight:700;line-height:1.05}.pl-coins{align-items:center;gap:calc(6 * var(--u));padding:calc(4 * var(--u)) calc(10 * var(--u));font-size:calc(18 * var(--u));color:var(--poster-ink);background:var(--poster-paper);border:1.5px solid var(--poster-ink);border-radius:999px;align-self:flex-start;font-weight:700;display:inline-flex}.pl-coin{width:calc(18 * var(--u));height:calc(18 * var(--u));flex:none}.pl-lock{flex:none;width:12px;height:14px}.pl-stage{height:clamp(120px, calc(27vh * var(--ui)), 230px);background:linear-gradient(180deg, color-mix(in srgb, var(--poster-sky-bottom) 55%, var(--poster-paper)), var(--poster-paper) 92%);border-bottom:1.5px solid color-mix(in srgb, var(--poster-ink) 30%, transparent);flex:none;position:relative;overflow:hidden}.pl-canvas{width:100%;height:100%;display:block;position:absolute;top:0;left:0}.screen-player[data-tab=shop] .pl-canvas{width:48%}.pl-stage.no-preview .pl-canvas{visibility:hidden}.pl-info{box-sizing:border-box;width:calc(52% - 10px);padding:calc(10 * var(--u));background:var(--poster-paper);border:1.5px solid var(--poster-ink);border-radius:4px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.pl-info[hidden]{display:none}.pl-item-name{font-family:var(--poster-display);font-size:calc(19 * var(--u));overflow-wrap:anywhere;font-weight:700;line-height:1.1}.pl-rarity{margin:calc(5 * var(--u)) 0 calc(8 * var(--u));padding:1px calc(7 * var(--u));font-size:max(12px, calc(11 * var(--u)));letter-spacing:1.5px;text-transform:uppercase;color:#fff;background:var(--rar);border-radius:2px;font-weight:700;display:inline-block}.rar-common{--rar:#7d837c}.rar-rare{--rar:#2f6b8f}.rar-epic{--rar:#7a4f9a}.rar-legendary{--rar:#b08a12}#app .pl-action{justify-content:center;align-items:center;gap:calc(6 * var(--u));width:100%;min-height:max(44px, calc(46 * var(--u)));padding:calc(6 * var(--u)) calc(8 * var(--u));font-size:calc(17 * var(--u));letter-spacing:1px;display:inline-flex}#app .pl-action.confirm{background:var(--poster-ink);color:var(--poster-paper)}.pl-lockline{flex-wrap:wrap;align-items:center;gap:6px;font-size:15px;font-weight:700;line-height:1.2;display:flex}.pl-lockline small{opacity:.75;flex-basis:100%;font-size:12px;font-weight:600}.pl-tabs,.pl-subtabs{flex:none;grid-auto-columns:1fr;grid-auto-flow:column;display:grid}.pl-tabs{border-bottom:1.5px solid color-mix(in srgb, var(--poster-ink) 30%, transparent)}.pl-tab,.pl-subtab{min-height:max(44px, calc(46 * var(--u)));font-family:var(--poster-label);font-size:max(12px, calc(15 * var(--u)));letter-spacing:1.5px;text-transform:uppercase;color:var(--poster-ink);cursor:pointer;background:0 0;border:0;border-bottom:4px solid #0000;font-weight:700}.pl-tab.on,.pl-subtab.on{color:var(--poster-accent);border-bottom-color:var(--poster-accent)}.pl-subtab{min-height:max(44px, calc(44 * var(--u)));font-size:max(12px, calc(13 * var(--u)));letter-spacing:1px}.pl-subtabs{z-index:1;margin:calc(-12 * var(--u)) calc(-14 * var(--u)) calc(10 * var(--u));background:var(--poster-paper);border-bottom:1px solid color-mix(in srgb, var(--poster-ink) 25%, transparent);position:sticky;top:0}.pl-body{min-height:0;padding:calc(12 * var(--u)) calc(14 * var(--u));-webkit-overflow-scrolling:touch;flex:auto;overflow-y:auto}.pl-body.busy{opacity:.7;pointer-events:none}.pl-group{margin:0 0 calc(12 * var(--u));border:0;padding:0}.pl-label{margin-bottom:calc(6 * var(--u));font-size:max(12px, calc(13 * var(--u)));letter-spacing:2px;text-transform:uppercase;padding:0;font-weight:700}.pl-swatches,.pl-chips{gap:calc(8 * var(--u));flex-wrap:wrap;display:flex}.pl-swatch{width:max(44px, calc(44 * var(--u)));height:max(44px, calc(44 * var(--u)));background:var(--sw);border:2px solid var(--poster-ink);cursor:pointer;border-radius:50%;padding:0}.pl-swatch.on,.pl-chip.on{outline:3px solid var(--poster-accent);outline-offset:2px}.pl-chip{min-height:max(44px, calc(44 * var(--u)));padding:calc(4 * var(--u)) calc(12 * var(--u));font-family:var(--poster-label);font-size:max(12px, calc(15 * var(--u)));color:var(--poster-ink);background:var(--poster-paper);border:1.5px solid var(--poster-ink);cursor:pointer;border-radius:4px;font-weight:600}.pl-chip.on{color:var(--poster-paper);background:var(--poster-ink)}.pl-hint{margin:calc(6 * var(--u)) 0 0;font-size:max(12px, calc(13 * var(--u)));opacity:.75}.pl-grid{gap:calc(10 * var(--u)) calc(8 * var(--u));grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.pl-item{min-width:0;font-family:var(--poster-label);color:var(--poster-ink);text-align:left;background:var(--poster-paper);border:1.5px solid var(--poster-ink);cursor:pointer;border-radius:4px;flex-direction:column;align-items:stretch;padding:0;display:flex;position:relative;overflow:hidden}.pl-item.sel{outline:3px solid var(--poster-accent);outline-offset:1px}.pl-item-sw{height:calc(64 * var(--u));background:color-mix(in srgb, var(--poster-sky-bottom) 40%, var(--poster-paper));border-bottom:4px solid var(--rar);justify-content:center;align-items:center;display:flex}.pl-item-sw svg{width:54px;height:54px}.pl-item .pl-item-name{padding:calc(4 * var(--u)) calc(6 * var(--u)) 0;font-family:var(--poster-label);font-size:max(12px, calc(13 * var(--u)));white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.pl-item-price{align-items:center;gap:calc(4 * var(--u));padding:2px calc(6 * var(--u)) calc(6 * var(--u));font-size:max(12px, calc(12 * var(--u)));font-weight:600;display:flex}.pl-item-price .pl-coin{width:calc(13 * var(--u));height:calc(13 * var(--u))}.pl-item.state-locked .pl-item-sw svg{filter:saturate(.4);opacity:.6}.pl-item.state-too-expensive .pl-item-price{opacity:.6}.pl-tag{padding:1px calc(6 * var(--u));font-size:max(12px, calc(11 * var(--u)));letter-spacing:1px;text-transform:uppercase;color:var(--poster-paper);background:var(--poster-accent);border-radius:2px;font-weight:700;position:absolute;top:4px;right:4px}.pl-note{min-height:0;padding:0 calc(14 * var(--u));font-size:max(12px, calc(14 * var(--u)));flex:none;margin:0;font-weight:700}.pl-note:not(:empty){padding:calc(6 * var(--u)) calc(14 * var(--u));border-top:1px solid color-mix(in srgb, var(--poster-ink) 20%, transparent)}.pl-note.tone-ok{color:#2f6b3a}.pl-note.tone-error{color:var(--poster-accent)}.pl-foot{padding:calc(10 * var(--u)) calc(14 * var(--u)) calc(12 * var(--u));border-top:1.5px solid color-mix(in srgb, var(--poster-ink) 30%, transparent);flex:none}#app .pl-back{width:100%;min-height:max(44px, calc(50 * var(--u)));font-size:calc(19 * var(--u))}.pl-coins[hidden]{display:none}.coach{pointer-events:none;opacity:0;--coach-loop:1.1s;transition:opacity .25s ease-out;position:absolute;inset:0}.coach.show{opacity:1}.coach[data-gesture=flick-up]{--coach-loop:.9s}.coach-cue{left:50%;right:0;bottom:calc(var(--safe-bottom,0px) + 12%);justify-content:center;display:flex;position:absolute}.coach[data-gesture=joystick] .coach-cue{left:0;right:50%}.coach[data-gesture=joystick] .coach-caption{right:auto;left:calc(var(--safe-left,0px) + 10px)}.coach-caption{right:calc(var(--safe-right,0px) + 10px);font-family:var(--poster-label,var(--font));letter-spacing:.5px;white-space:nowrap;color:var(--poster-ink,#1b2140);background:var(--poster-paper,#fffaf0);border:1px solid var(--poster-ink,#1b2140);border-radius:3px;padding:6px 14px;font-size:16px;font-weight:700;position:absolute;bottom:206px;box-shadow:0 3px 12px #00000040}.coach-box{width:120px;height:200px;position:relative}.coach-trail{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.coach-hand path{fill:#ffffffe0;stroke:var(--poster-ink,#1b2140);stroke-width:2.4px;stroke-linejoin:round}.coach-trail path{fill:none;stroke-width:7px;stroke-linecap:round;stroke-dasharray:1 1;stroke-dashoffset:1px}.coach-hand{offset-rotate:0deg;offset-distance:0%;opacity:0;position:absolute;top:0;left:0;overflow:visible}.coach-joy-base,.coach[data-gesture=joystick] .coach-trail,.coach[data-gesture=joystick] .coach-box>.coach-hand{display:none}.coach[data-gesture=joystick] .coach-joy-base{box-sizing:border-box;background:#ffffff24;border:2px solid #fff9;border-radius:50%;width:72px;height:72px;display:block;position:absolute;top:92px;left:24px}.coach-joy-knob{background:#ff8a1fe6;border-radius:50%;width:34px;height:34px;margin:-17px 0 0 -17px;position:absolute;top:50%;left:50%}.coach-joy-knob .coach-hand{opacity:.9;top:13px;left:3px}.coach.show .coach-trail path{animation:coach-draw var(--coach-loop) linear infinite}.coach.show .coach-box>.coach-hand{animation:coach-hand var(--coach-loop) ease-in-out infinite}.coach.show .coach-joy-knob{animation:1.6s ease-in-out infinite coach-stick}@keyframes coach-draw{0%,22%{stroke-dashoffset:1px;opacity:.95}58%{stroke-dashoffset:0;opacity:.95}90%,to{stroke-dashoffset:0;opacity:0}}@keyframes coach-hand{0%{offset-distance:0%;opacity:0;transform:translate(6px,10px)scale(1.05)}14%{offset-distance:0%;opacity:.92;transform:translate(3px,5px)scale(1.05)}22%{offset-distance:0%;opacity:.92;transform:none}58%{offset-distance:100%;opacity:.92;transform:none}72%{offset-distance:100%;opacity:.92;transform:translate(4px,6px)scale(1.05)}92%,to{offset-distance:100%;opacity:0;transform:translate(6px,10px)scale(1.05)}}@keyframes coach-stick{0%,to{transform:translate(0)}25%,40%{transform:translate(-22px,6px)}65%,80%{transform:translate(22px,-6px)}}@media (prefers-reduced-motion:reduce){.coach.show .coach-trail path,.coach.show .coach-box>.coach-hand,.coach.show .coach-joy-knob{animation:none}.coach.show .coach-trail path{stroke-dashoffset:0}.coach.show .coach-box>.coach-hand{offset-distance:100%;opacity:.92}}#app .gesture-cards .card-body,.gesture-cards{text-align:center}.gc-phone{aspect-ratio:195/330;border:3px solid var(--poster-ink,#1b2140);background:var(--poster-sky-top,#6f8496);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:22px;width:min(62vw,34vh,230px);margin:2px auto 12px;position:relative;overflow:hidden;box-shadow:0 6px 16px #00000040}.gc-svg{width:100%;height:100%;display:block}.gc-sky{fill:var(--poster-sky-top,#6f8496)}.gc-runoff{fill:color-mix(in srgb, var(--poster-floor,#2f6b69) 70%, #000)}.gc-floor{fill:var(--poster-floor,#2f6b69)}.gc-glass{fill:#ffffff21;stroke:#ffffff8c;stroke-width:.8px}.gc-mesh{fill:none;stroke:#ffffff59;stroke-width:.8px;stroke-dasharray:2 2}.gc-line{stroke:#ffffffe6;stroke-width:1.1px}.gc-net{fill:#14182866}.gc-player .gc-shadow{fill:#0000004d}.gc-player .gc-body,.gc-player .gc-head{stroke:var(--poster-ink,#1b2140);stroke-width:1px;vector-effect:non-scaling-stroke}.gc-near .gc-body{fill:var(--near,#19b8d6)}.gc-hero .gc-body{fill:var(--near,#19b8d6);stroke:#fff;stroke-width:1.6px}.gc-far .gc-body{fill:var(--far,#ff6a3d)}.gc-head{fill:#f2c9a0}.gc-ball{fill:#e4ff3a;stroke:var(--poster-ink,#1b2140);stroke-width:.8px;vector-effect:non-scaling-stroke}.gc-ball-shadow{fill:#0000008c}.gc-ring{fill:none;stroke-width:2.4px;vector-effect:non-scaling-stroke}.gc-shot rect{fill:var(--poster-paper,#fffaf0);stroke:var(--poster-ink,#1b2140);stroke-width:1.4px}.gc-shot text{font-family:var(--poster-label,var(--font));letter-spacing:1.5px;fill:var(--poster-ink,#1b2140);font-size:15px;font-weight:800}.gc-shot-timing rect{fill:#3ddc84}.gc-trail{fill:none;stroke-width:5px;stroke-linecap:round;stroke-linejoin:round}.gc-ripple{fill:none;stroke:#ffd23f;stroke-width:3px;vector-effect:non-scaling-stroke}.gc-joy-base{fill:#ffffff24;stroke:#fff9;stroke-width:1.5px}.gc-joy-knob{fill:#ff8a1fe6}.gc-hand{fill:#ffffffe0;stroke:var(--poster-ink,#1b2140);stroke-width:2.4px;stroke-linejoin:round}.gc-count{font-family:var(--poster-label,var(--font));letter-spacing:3px;opacity:.7;font-size:12px;font-weight:600}.gc-caption{min-height:2.5em;margin:4px 0 0;font-size:21px;font-weight:800;line-height:1.2}.gesture-cards .tut-dots{margin-top:10px}.gc-speed line{stroke-width:2.5px;stroke-linecap:round}#app .install-chip{min-height:36px;font-family:var(--poster-label);letter-spacing:1px;text-transform:uppercase;color:var(--poster-paper);background:var(--poster-ink);border:2px solid var(--poster-paper);cursor:pointer;touch-action:manipulation;border-radius:999px;flex:none;align-self:center;align-items:center;gap:6px;margin-top:auto;margin-bottom:-2px;padding:4px 12px 4px 8px;font-size:13px;font-weight:700;display:inline-flex;position:relative;box-shadow:0 2px 6px #0000004d}#app .install-chip:after{content:"";position:absolute;inset:-5px -4px}#app .install-chip[hidden]{display:none}#app .install-chip:active{transform:translateY(1px)}#app .install-icon{flex:none;width:18px;height:18px;display:inline-flex}#app .install-icon svg,#app .install-key svg,#app .notice-close svg{width:100%;height:100%}#app .install-lead{opacity:.75;margin:-6px 0 12px;font-size:15px;font-weight:700}#app .install-steps{gap:10px;margin:0;padding:0;list-style:none;display:grid}#app .install-step{background:color-mix(in srgb, var(--poster-ink) 6%, var(--poster-paper));border:2px solid color-mix(in srgb, var(--poster-ink) 18%, transparent);border-radius:6px;grid-template-columns:26px auto minmax(0,1fr);align-items:center;gap:10px;padding:10px 12px;display:grid}#app .install-step-num{width:26px;height:26px;font-family:var(--poster-label);color:var(--poster-paper);background:var(--poster-accent);border-radius:50%;place-items:center;font-weight:700;display:grid}#app .install-step-icons{align-items:center;gap:4px;display:inline-flex}#app .install-key{box-sizing:border-box;color:#0a84ff;background:#fff;border-radius:9px;width:28px;height:28px;padding:4px;display:inline-flex;box-shadow:0 1px 3px #0003}#app .install-arrow{opacity:.5;font-size:20px;font-weight:700}#app .install-step-text{min-width:0;font-size:15px;font-weight:700;line-height:1.25}#app .install-step-text strong{white-space:nowrap;font-weight:900}#app .app-notices{top:calc(var(--safe-top) + 10px);left:calc(var(--safe-left) + 12px);right:calc(var(--safe-right) + 12px);z-index:20;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute}#app .notice{box-sizing:border-box;width:min(100%,380px);min-height:48px;font-family:var(--poster-label);text-align:left;color:var(--poster-paper);background:var(--poster-ink);border:2px solid var(--poster-paper);pointer-events:auto;touch-action:manipulation;border-radius:6px;align-items:center;gap:10px;padding:8px 10px 8px 14px;animation:.3s ease-out notice-in;display:flex;box-shadow:0 8px 20px #00000059}@keyframes notice-in{0%{opacity:0;transform:translateY(-12px)}}#app .notice-update{cursor:pointer;background:var(--poster-accent)}#app .notice-text,#app .notice-update{flex-direction:row}#app .notice-text{flex-direction:column;flex:auto;min-width:0;display:flex}#app .notice-update .notice-title:after{content:" ·"}#app .notice-title{letter-spacing:1px;text-transform:uppercase;font-size:15px;font-weight:700}#app .notice-sub{opacity:.85;font-size:13px;font-weight:600}#app .notice-action{min-height:36px;font-family:var(--poster-label);letter-spacing:1px;text-transform:uppercase;color:var(--poster-ink);background:var(--poster-paper);cursor:pointer;border:none;border-radius:4px;flex:none;padding:4px 12px;font-size:13px;font-weight:700}#app .notice-close{width:36px;height:36px;color:var(--poster-paper);cursor:pointer;background:0 0;border:none;flex:none;padding:8px}@media (prefers-reduced-motion:reduce){#app .notice{animation:none}}#app .tour-intro{color:var(--poster-ink);cursor:pointer;-webkit-user-select:none;user-select:none;background:#1b2328;flex-direction:column;display:flex;overflow:hidden}#app .intro-stage{flex:auto;min-height:0;position:relative;overflow:hidden}#app .intro-beat{opacity:0;background:var(--poster-paper);will-change:opacity;animation:intro-beat var(--dur) linear var(--t0) both;position:absolute;inset:0;overflow:hidden}#app .intro-beat.is-last{animation-name:intro-beat-last}@keyframes intro-beat{0%{opacity:0}9%{opacity:1}91%{opacity:1}to{opacity:0}}@keyframes intro-beat-last{0%{opacity:0}14%{opacity:1}to{opacity:1}}#app .intro-art{background:var(--poster-sky-top);position:absolute;inset:0 0 34%;overflow:hidden}#app .intro-art .poster-svg{transform-origin:50% 70%;will-change:transform;animation:intro-zoom var(--dur) cubic-bezier(.25, .6, .3, 1) var(--t0) both}@keyframes intro-zoom{0%{transform:scale(1.16)translateY(2%)}to{transform:scale(1)}}#app .intro-text{box-sizing:border-box;text-align:center;background:var(--poster-paper);border-top:3px solid var(--poster-accent);flex-direction:column;justify-content:center;align-items:center;gap:4px;height:34%;padding:10px 20px 14px;display:flex;position:absolute;bottom:0;left:0;right:0}#app .intro-text>*{animation:.55s cubic-bezier(.2,.9,.3,1) both intro-rise;animation-delay:calc(var(--t0) + .14s)}#app .intro-text>:nth-child(2){animation-delay:calc(var(--t0) + .22s)}#app .intro-text>:nth-child(3){animation-delay:calc(var(--t0) + .32s)}#app .intro-text>:nth-child(4){animation-delay:calc(var(--t0) + .38s)}@keyframes intro-rise{0%{opacity:0;transform:translateY(18px)}}#app .intro-kicker{font-size:13px}#app .intro-title{font-family:var(--poster-display);letter-spacing:2px;text-transform:uppercase;color:var(--poster-ink);overflow-wrap:anywhere;margin:0;font-size:clamp(34px,11vw,52px);font-weight:700;line-height:1}#app .intro-rule{margin:8px auto 4px}#app .intro-sub{font-family:var(--poster-label);letter-spacing:2px;text-transform:uppercase;color:color-mix(in srgb, var(--poster-ink) 78%, transparent);font-size:14px;font-weight:600}#app .intro-beat.is-celebrate .intro-title,#app .intro-beat.is-go .intro-title{animation:.6s cubic-bezier(.2,1.4,.4,1) both intro-pop;animation-delay:calc(var(--t0) + .16s);font-size:clamp(40px,13vw,60px)}@keyframes intro-pop{0%{opacity:0;transform:scale(.55)}}#app .intro-beat.is-celebrate .intro-text{height:40%}#app .intro-beat.is-celebrate .intro-art{bottom:40%}#app .intro-rays{background:repeating-conic-gradient(from 0deg, color-mix(in srgb, var(--poster-paper) 55%, transparent) 0deg 7deg, transparent 7deg 18deg);opacity:.55;mix-blend-mode:soft-light;will-change:transform;width:180vmax;height:180vmax;animation:intro-spin 9s linear var(--t0) both;margin:-90vmax 0 0 -90vmax;position:absolute;top:30%;left:50%}@keyframes intro-spin{to{transform:rotate(60deg)}}#app .intro-floodlights{pointer-events:none;mix-blend-mode:screen;position:absolute;inset:0 0 34%;overflow:hidden}#app .intro-tile .intro-floodlights{inset:0}#app .intro-floodlights .beam{clip-path:polygon(46% 0,54% 0,100% 100%,0 100%);transform-origin:50% 0;will-change:transform, opacity;width:46%;height:130%;animation:intro-sweep 2.4s ease-in-out var(--t0,0s) infinite alternate both;background:linear-gradient(#fff0c8bf,#fff0c800 85%);position:absolute;top:-8%}#app .intro-floodlights .beam.is-left{--tilt:24deg;left:0}#app .intro-floodlights .beam.is-right{--tilt:-24deg;animation-delay:calc(var(--t0,0s) + .6s);right:0}@keyframes intro-sweep{0%{transform:rotate(var(--tilt));opacity:.55}to{transform:rotate(calc(var(--tilt) * .4));opacity:.9}}#app .intro-beat.is-route{background:var(--poster-ink);flex-direction:column;justify-content:center;display:flex}#app .intro-route-head{text-align:center;color:var(--poster-paper);padding:0 20px 18px}#app .intro-route-head .poster-kicker{color:var(--poster-accent-soft)}#app .intro-route-title{font-family:var(--poster-display);letter-spacing:1px;margin:4px 0 0;font-size:30px;font-weight:700}#app .intro-strip{will-change:transform;animation:intro-pan var(--dur) cubic-bezier(.5, 0, .3, 1) var(--t0) both;gap:4vw;padding:0 19vw;display:flex}@keyframes intro-pan{0%,8%{transform:translate(0)scale(.94)}to{transform:translateX(var(--pan-to)) scale(1)}}#app .intro-tile{aspect-ratio:3/4.3;background:var(--poster-paper);border:6px solid var(--poster-paper);outline:1.5px solid var(--poster-ink);outline-offset:-3px;flex:0 0 62vw;max-height:58vh;position:relative;overflow:hidden;box-shadow:0 16px 30px #00000073}#app .intro-tile-art{position:absolute;inset:0 0 22%;overflow:hidden}#app .intro-tile-label{background:var(--poster-paper);flex-direction:column;justify-content:center;align-items:center;height:22%;display:flex;position:absolute;bottom:0;left:0;right:0}#app .intro-tile-country{font-family:var(--poster-display);letter-spacing:2px;text-transform:uppercase;font-size:22px;font-weight:700}#app .intro-tile.is-ahead .intro-tile-art{filter:saturate(.55)}#app .intro-stamp{font-family:var(--poster-label);letter-spacing:3px;text-transform:uppercase;color:var(--poster-accent);background:color-mix(in srgb, var(--poster-paper) 85%, transparent);border:3px solid var(--poster-accent);border-radius:3px;padding:4px 12px;font-size:16px;font-weight:700;position:absolute;top:16%;left:50%;transform:translate(-50%)rotate(-12deg)}#app .intro-tile.is-fresh .intro-stamp{animation:.42s cubic-bezier(.3,1.6,.5,1) both intro-stamp;animation-delay:calc(var(--t0) + .5s)}@keyframes intro-stamp{0%{opacity:0;transform:translate(-50%)rotate(-24deg)scale(2.4)}}#app .intro-here{letter-spacing:2px;text-transform:uppercase;white-space:nowrap;color:var(--poster-paper);background:var(--poster-accent);border-radius:2px;padding:4px 10px;font-size:12px;font-weight:700;animation:.9s ease-in-out infinite alternate intro-pulse;position:absolute;top:12px;left:50%;transform:translate(-50%)}@keyframes intro-pulse{to{transform:translate(-50%)scale(1.08)}}#app .intro-progress{color:#f4f1ea;font-family:var(--poster-label);letter-spacing:2px;text-transform:uppercase;flex:none;justify-content:center;align-items:center;gap:12px;padding:12px 16px 4px;font-size:12px;font-weight:600;display:flex}#app .intro-dots{gap:6px;display:flex}#app .intro-dots i{box-sizing:border-box;opacity:.6;border:2px solid #f4f1ea;border-radius:50%;width:10px;height:10px}#app .intro-dots i.is-won{opacity:1;background:#f4f1ea}#app .intro-dots i.is-next{opacity:1;border-color:#f3ec4c}#app .intro-skip{min-height:44px;margin:0 auto calc(var(--safe-bottom) + 6px);font-family:var(--poster-label);letter-spacing:3px;text-transform:uppercase;color:#f4f1ea;opacity:.8;cursor:pointer;background:0 0;border:none;outline:none;flex:none;padding:0 18px;font-size:12px}#app .intro-skip:focus-visible{opacity:1;text-underline-offset:4px;text-decoration:underline}#app .tour-intro.is-static .intro-beat{opacity:1}#app .tour-intro.is-static *,#app .tour-intro.is-static .intro-beat{animation:none!important}@media (prefers-reduced-motion:reduce){#app .tour-intro *,#app .tour-intro .intro-beat{animation:none!important}#app .tour-intro .intro-beat.is-on{opacity:1}}
