: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)}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) + 16px) calc(var(--safe-right) + 16px) calc(var(--safe-bottom) + 16px) calc(var(--safe-left) + 16px);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{box-sizing:border-box;width:min(100%,400px);max-height:100%;color:var(--ink);background:var(--paper);border:4px solid var(--ink);box-shadow:0 8px 0 var(--ink);border-radius:28px;padding:22px 20px;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 14px;font-size:28px;font-weight:900}.logo{text-align:center;padding-top:4vh;position:relative}.logo-text{letter-spacing:2px;color:var(--gold);-webkit-text-stroke:12px var(--ink);paint-order:stroke fill;text-shadow:0 8px 0 var(--ink);font-size:92px;font-weight:900;line-height:.95;transform:rotate(-4deg)}.logo-sub{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;margin-top:10px;padding:4px 18px;font-size:22px;font-weight:900;display:inline-block;transform:rotate(-4deg)}.logo-ball{border:4px solid var(--ink);background:radial-gradient(circle at 35% 30%,#f6ff9a,#d6f22a 60%,#a9c414);border-radius:50%;width:46px;height:46px;animation:1.6s ease-in-out infinite bob;position:absolute;top:0;right:12%}@keyframes bob{50%{transform:translateY(-14px)}}.actions{flex-direction:column;gap:12px;margin-top:18px;display:flex}.btn{font-family:var(--font);min-height:56px;color:var(--ink);border:4px solid var(--ink);box-shadow:0 6px 0 var(--ink);cursor:pointer;touch-action:manipulation;border-radius:20px;padding:14px 20px;font-size:22px;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:26px}.btn-secondary{background:#fff}.btn-ghost{box-shadow:none;text-underline-offset:4px;background:0 0;border-color:#0000;min-height:44px;padding:8px;font-size:18px;text-decoration:underline}.setting-row{border-bottom:2px dashed #1b214026;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.setting-label{font-size:19px;font-weight:900}.setting-label small{opacity:.65;font-size:13px;font-weight:700;display:block}.setting-note{opacity:.6;margin:8px 0 0;font-size:13px;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 .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);color:var(--ink);cursor:pointer;background:#fff;border:none;padding:7px 12px;font-size:16px;font-weight:900}.seg+.seg{border-left:3px solid var(--ink)}.seg.on{background:var(--gold)}.seg:disabled{opacity:.6}.tut-art{border:3px solid var(--ink);background:linear-gradient(#2f6fb5,#24599a);border-radius:20px;justify-content:center;height:130px;margin:-4px -8px 10px;display:flex}.tut-art svg{height:100%}.tut-text{margin:0;font-size:19px;font-weight:800;line-height:1.35}.tut-dots{justify-content:center;gap:8px;margin-top:16px;display:flex}.tut-dots .dot{border:2px solid var(--ink);background:#fff;border-radius:50%;width:12px;height:12px}.tut-dots .dot.on{background:var(--gold)}.end-title{text-align:center;-webkit-text-stroke:10px var(--ink);paint-order:stroke fill;text-shadow:0 6px 0 var(--ink);font-size:58px;font-weight:900;line-height:1}.end-title.won{color:var(--gold)}.end-title.lost{color:var(--far)}.end-result{border:3px solid var(--ink);background:#fff;border-radius:18px;gap:6px;margin-top:22px;padding:6px;display:grid}.end-row{color:#fff;border-radius:12px;align-items:center;gap:6px;padding:6px 6px 6px 12px;font-weight:900;display:flex}.end-row.team-near{background:var(--near)}.end-row.team-far{background:var(--far)}.end-team{text-shadow:0 2px #00000040;flex:1;font-size:18px}.end-games{text-align:center;min-width:34px;color:var(--ink);border:2px solid var(--ink);font-variant-numeric:tabular-nums;background:#fff;border-radius:8px;padding:2px 4px;font-size:24px}.end-note{text-align:center;color:var(--near-deep);margin:16px 0 0;font-size:18px;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{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;justify-content:space-between;align-items:center;gap:12px;overflow-y:auto}#app .menu-logo{width:min(100%,380px);padding-top:1vh}#app .menu-logo .logo-text{font-size:72px}#app .menu-logo .logo-ball{width:36px;height:36px}#app .menu-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:min(100%,380px);display:grid}#app .menu-entry{min-height:52px;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;align-items:center;gap:10px;padding:6px 14px;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{grid-column:span 1;padding:6px 10px}#app .menu-entry.is-half .menu-label{letter-spacing:1px;font-size:15px}#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;letter-spacing:2px;text-transform:uppercase;font-size:17px;font-weight:700;overflow:hidden}#app .menu-sub{letter-spacing:1px;color:color-mix(in srgb, var(--poster-ink) 70%, transparent);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}#app .menu-entry.is-hero{min-height:92px;color:var(--poster-paper);background:var(--poster-accent);padding:0 14px 0 0}#app .menu-entry.is-hero .menu-label{font-family:var(--poster-display);letter-spacing:1px;text-transform:none;font-size:30px}#app .menu-entry.is-hero .menu-sub{letter-spacing:1.5px;text-transform:uppercase;color:color-mix(in srgb, var(--poster-paper) 88%, transparent);font-size:13px}#app .menu-art{border-right:2px solid var(--poster-ink);flex:0 0 96px;align-self:stretch;overflow:hidden}#app .menu-tag{letter-spacing:1.5px;text-transform:uppercase;color:var(--poster-paper);background:var(--poster-ink);border-radius:2px;flex:none;margin-left:auto;padding:2px 7px;font-size:11px;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:44px;font-family:var(--poster-label);letter-spacing:1px;text-transform:uppercase;color:var(--poster-paper);cursor:pointer;background:0 0;border:0;justify-self:start;padding:0 12px 0 6px;font-size:15px;font-weight:700}#app .tour-heading{text-align:center}#app .tour-heading .poster-kicker{color:#f0b445}#app .tour-title{font-family:var(--poster-display);letter-spacing:1px;margin:0;font-size:30px;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{border-bottom:6px solid var(--poster-paper);height:330px;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%;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;padding:8px 12px 9px;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);letter-spacing:2px;text-transform:uppercase;overflow-wrap:anywhere;font-size:25px;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-size:15px;font-style:italic}#app .band-meta{letter-spacing:1px;text-transform:uppercase;margin-top:4px;font-size:12px;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:130px}#app .tour-band.is-later .band-label{top:50%;transform:translateY(-50%)}#app .tour-band.is-later .band-country{font-size:21px}#app .tour-later-head{text-align:center;color:var(--poster-paper);background:#23323a;padding:16px 16px 8px}#app .tour-later-head .poster-kicker{color:#f0b445}#app .tour-later-head h3{font-family:var(--poster-display);margin:0;font-size:22px}#app .route-node{z-index:4;width:54px;height:54px;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:-27px 0 0 -27px;padding:0;display:flex;position:absolute}#app .route-node .ico{width:28px;height:28px}#app .route-node.is-boss{background:#f0b445;width:68px;height:68px;margin:-34px 0 0 -34px}#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{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;padding:1px 6px;font-size:10px;font-weight:700;position:absolute;top:calc(100% + 3px);left:50%;transform:translate(-50%)}#app .node-done{background:var(--poster-floor);font-size:12px}#app .route-here{z-index:5;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;margin-top:-42px;padding:4px 9px;font-size:12px;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:12px 16px 16px}#app .tour-card-title{text-align:center;padding:0 0 4px}#app .tour-card-country{font-family:var(--poster-display);letter-spacing:3px;text-transform:uppercase;overflow-wrap:anywhere;margin:2px 0 0;font-size:32px;line-height:1.05}#app .tour-card-event{font-family:var(--poster-display);font-size:18px;font-style:italic}#app .tour-card-focus{letter-spacing:.5px;color:color-mix(in srgb, var(--poster-ink) 78%, transparent);margin-top:4px;font-size:14px}#app .tour-card .actions{margin:14px 0 0}#app .tour-h3{font-family:var(--poster-display);margin:14px 0 6px;font-size:20px}#app .stage-nodes{margin:10px 0 0;padding:0;list-style:none}#app .stage-node{border-bottom:1px dashed color-mix(in srgb, var(--poster-ink) 25%, transparent);grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:5px 0;font-size:15px;display:grid}#app .stage-node-ico{border:2px solid var(--poster-ink);border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;display:flex}#app .stage-node-ico .ico{width:20px;height:20px}#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{letter-spacing:1.2px;text-transform:uppercase;font-size:12px;font-weight:700}#app .duo-card{color:var(--poster-paper);background:var(--poster-ink);border-radius:4px;margin:14px 0 0;padding:12px}#app .duo-card .poster-kicker{color:#f0b445}#app .duo-names{grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 10px;display:grid}#app .duo-player{text-align:center;border:1px solid color-mix(in srgb, var(--poster-paper) 40%, transparent);border-radius:3px;padding:7px 6px}#app .duo-name{font-family:var(--poster-display);font-size:17px;font-weight:700;display:block}#app .duo-player small{letter-spacing:1px;text-transform:uppercase;opacity:.8;font-size:11px;display:block}#app .duo-trait{letter-spacing:.5px;grid-template-columns:84px 1fr;align-items:center;gap:8px;margin:4px 0;font-size:13px;display:grid}#app .duo-trait i{background:color-mix(in srgb, var(--poster-paper) 20%, transparent);border-radius:4px;height:8px;display:block;overflow:hidden}#app .duo-trait b{background:#f0b445;height:100%;display:block}#app .quick-venues{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}#app .quick-venue{min-height:44px;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:44px;overflow:hidden}#app .quick-venue.is-locked .quick-venue-art{filter:grayscale(.85)brightness(.8)}#app .quick-venue-label{flex-direction:column;padding:4px 8px 6px;display:flex}#app .quick-venue-country{font-family:var(--poster-display);letter-spacing:1px;text-transform:uppercase;font-size:16px;font-weight:700}#app .quick-venue-sub{letter-spacing:.5px;font-size:11px}#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{flex-direction:column;gap:8px;display:flex}#app .quick-duo{min-height:48px;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;justify-content:space-between;align-items:center;gap:8px;padding:6px 12px;display:flex}#app .quick-duo-names{font-size:15px;font-weight:700}#app .quick-duo-sub{letter-spacing:.5px;flex:none;font-size:11px}#app .quick-duo-dots{letter-spacing:1px;color:var(--poster-accent);font-size:12px}#app .screen-quick .setting-row{font-family:var(--poster-label);margin:8px 0 0}#app .screen-quick .seg{font-family:var(--poster-label);letter-spacing:1px;font-weight:700}#app .screen-quick .setting-label{font-size:17px;font-weight:700}#app .screen-quick .actions{background:var(--poster-paper);border-top:1px solid color-mix(in srgb, var(--poster-ink) 25%, transparent);margin:10px -16px 0;padding:10px 16px 12px;position:sticky;bottom:-16px}#app .training-list{margin:10px 0 0;padding-left:22px;font-size:14px}#app .training-list li{padding:4px 0}#app .training-list strong{font-size:15px;display:block}#app .training-list span{color:color-mix(in srgb, var(--poster-ink) 75%, transparent)}#app .screen-training .tour-card-country{letter-spacing:1px;font-size:25px}: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{background:var(--poster-sky-top);flex:0 0 90px;position:relative;overflow:hidden}#app .card-head .poster-svg{position:absolute;inset:0}#app .card-head-label{font-family:var(--poster-label);letter-spacing:3px;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;color:#f4f1ea;text-shadow:0 1px 2px #00000073;font-size:12px;font-weight:600;position:absolute;bottom:6px;left:14px;right:14px;overflow:hidden}#app .card-body{overscroll-behavior:contain;flex:auto;min-height:0;padding:16px 20px 20px;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);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);font-size:84px;font-weight:700;transform:none}#app .logo-sub{font-family:var(--poster-label);letter-spacing:8px;color:var(--poster-paper);background:var(--poster-accent);box-shadow:none;border:none;border-radius:2px;font-size:15px;font-weight:600;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:22px}#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);letter-spacing:4px;text-transform:uppercase;color:var(--poster-accent);font-size:12px;font-weight:600}#app .poster-intro{padding:calc(var(--safe-top) + 24px) 22px calc(var(--safe-bottom) + 24px);background:color-mix(in srgb, var(--poster-ink) 70%, transparent);flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex}#app .poster-sheet{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;width:min(100%,360px);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{text-align:center;background:var(--poster-paper);flex:none;padding:14px 10px 12px}#app .poster-country{font-family:var(--poster-display);letter-spacing:6px;text-transform:uppercase;color:var(--poster-ink);margin:4px 0 2px;font-size:54px;font-weight:700;line-height:1}#app .poster-event{font-family:var(--poster-display);color:var(--poster-ink);font-size:20px;font-style:italic}#app .poster-rule{background:var(--poster-accent);width:64px;height:2px;margin:10px auto 8px}#app .poster-vs{letter-spacing:2px;text-transform:uppercase;color:color-mix(in srgb, var(--poster-ink) 75%, transparent);font-size:13px;font-weight:600}#app .poster-skip{letter-spacing:3px;text-transform:uppercase;color:var(--poster-paper);opacity:.8;font-size:12px}#app[data-country=finale] .btn-primary,#app[data-country=finale] .meta-reward{color:var(--poster-ink)}#app .meta-card h2{margin-bottom:8px}#app .meta-nick{font-family:var(--poster-label);letter-spacing:1px;color:var(--poster-accent);margin:0 0 10px;font-weight:700}#app .meta-stat{border-bottom:1px solid color-mix(in srgb, var(--poster-ink) 18%, transparent);font-family:var(--poster-label);justify-content:space-between;align-items:baseline;gap:12px;padding:8px 0;display:flex}#app .meta-stat-label{text-transform:uppercase;letter-spacing:1px;font-size:15px}#app .meta-stat-value{font-family:var(--poster-display);font-size:22px;font-weight:700}#app .meta-bar{border:1px solid var(--poster-ink);background:var(--poster-paper);height:10px;margin-top:10px}#app .meta-bar-fill{background:var(--poster-accent);height:100%}#app .meta-sub{font-family:var(--poster-label);text-align:right;opacity:.75;margin:4px 0;font-size:13px}#app .meta-h3{font-family:var(--poster-label);letter-spacing:2px;text-transform:uppercase;margin:14px 0 4px;font-size:14px}#app .meta-challenges{font-family:var(--poster-label);margin:0;padding-left:18px;font-size:15px;line-height:1.6}#app .meta-challenges .done{color:var(--poster-accent);text-decoration:line-through}#app .meta-reward{font-family:var(--poster-label);text-align:center;color:var(--poster-paper);background:var(--poster-accent);border:1px solid var(--poster-ink);margin:12px 0 0;padding:6px 10px;font-weight:700}#app .meta-account-status{font-family:var(--poster-display);margin:4px 0 2px;font-size:18px;font-weight:700}#app .meta-account.status-linked .meta-account-status{color:var(--poster-accent)}#app .meta-account-detail{font-family:var(--poster-label);opacity:.8;margin:0 0 8px;font-size:14px}#app .meta-account-actions{flex-direction:column;gap:10px;display:flex}#app .meta-account-btn{letter-spacing:1.5px;flex-direction:column;align-items:center;gap:2px;min-height:48px;padding:8px 14px;font-size:16px;display:flex}#app .meta-soon{letter-spacing:1px;text-transform:none;font-size:11px;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);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;padding:10px 14px;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 .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%,440px);min-height:0;max-height:none;font-family:var(--poster-label);flex-direction:column;margin:0 auto;display:flex}#app .card-head.pl-head{color:#f4f1ea;flex:0 0 84px;justify-content:space-between;align-items:flex-end;gap:10px;padding:8px 14px;display:flex}.pl-titles,.pl-coins{position:relative}.pl-titles{text-shadow:0 1px 3px #00000080}.pl-kicker{letter-spacing:3px;text-transform:uppercase;opacity:.85;font-size:12px;font-weight:700}.pl-title{font-family:var(--poster-display);margin:0;font-size:30px;font-weight:700;line-height:1.05}.pl-coins{color:var(--poster-ink);background:var(--poster-paper);border:1.5px solid var(--poster-ink);border-radius:999px;align-self:flex-start;align-items:center;gap:6px;padding:4px 10px;font-size:18px;font-weight:700;display:inline-flex}.pl-coin{flex:none;width:18px;height:18px}.pl-lock{flex:none;width:12px;height:14px}.pl-stage{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;height:clamp(160px,27vh,230px);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;background:var(--poster-paper);border:1.5px solid var(--poster-ink);border-radius:4px;width:calc(52% - 10px);padding:10px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.pl-info[hidden]{display:none}.pl-item-name{font-family:var(--poster-display);overflow-wrap:anywhere;font-size:19px;font-weight:700;line-height:1.1}.pl-rarity{letter-spacing:1.5px;text-transform:uppercase;color:#fff;background:var(--rar);border-radius:2px;margin:5px 0 8px;padding:1px 7px;font-size:11px;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{letter-spacing:1px;justify-content:center;align-items:center;gap:6px;width:100%;min-height:46px;padding:6px 8px;font-size:17px;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:46px;font-family:var(--poster-label);letter-spacing:1.5px;text-transform:uppercase;color:var(--poster-ink);cursor:pointer;background:0 0;border:0;border-bottom:4px solid #0000;font-size:15px;font-weight:700}.pl-tab.on,.pl-subtab.on{color:var(--poster-accent);border-bottom-color:var(--poster-accent)}.pl-subtab{letter-spacing:1px;min-height:40px;font-size:13px}.pl-subtabs{z-index:1;background:var(--poster-paper);border-bottom:1px solid color-mix(in srgb, var(--poster-ink) 25%, transparent);margin:-12px -14px 10px;position:sticky;top:0}.pl-body{-webkit-overflow-scrolling:touch;flex:auto;min-height:0;padding:12px 14px;overflow-y:auto}.pl-body.busy{opacity:.7;pointer-events:none}.pl-group{border:0;margin:0 0 12px;padding:0}.pl-label{letter-spacing:2px;text-transform:uppercase;margin-bottom:6px;padding:0;font-size:13px;font-weight:700}.pl-swatches,.pl-chips{flex-wrap:wrap;gap:8px;display:flex}.pl-swatch{background:var(--sw);border:2px solid var(--poster-ink);cursor:pointer;border-radius:50%;width:40px;height:40px;padding:0}.pl-swatch.on,.pl-chip.on{outline:3px solid var(--poster-accent);outline-offset:2px}.pl-chip{min-height:40px;font-family:var(--poster-label);color:var(--poster-ink);background:var(--poster-paper);border:1.5px solid var(--poster-ink);cursor:pointer;border-radius:4px;padding:4px 12px;font-size:15px;font-weight:600}.pl-chip.on{color:var(--poster-paper);background:var(--poster-ink)}.pl-hint{opacity:.75;margin:6px 0 0;font-size:13px}.pl-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 8px;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{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;height:64px;display:flex}.pl-item-sw svg{width:54px;height:54px}.pl-item .pl-item-name{font-family:var(--poster-label);white-space:nowrap;text-overflow:ellipsis;padding:4px 6px 0;font-size:13px;font-weight:700;overflow:hidden}.pl-item-price{align-items:center;gap:4px;padding:2px 6px 6px;font-size:12px;font-weight:600;display:flex}.pl-item-price .pl-coin{width:13px;height:13px}.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{letter-spacing:1px;text-transform:uppercase;color:var(--poster-paper);background:var(--poster-accent);border-radius:2px;padding:1px 6px;font-size:11px;font-weight:700;position:absolute;top:4px;right:4px}.pl-note{flex:none;min-height:0;margin:0;padding:0 14px;font-size:14px;font-weight:700}.pl-note:not(:empty){border-top:1px solid color-mix(in srgb, var(--poster-ink) 20%, transparent);padding:6px 14px}.pl-note.tone-ok{color:#2f6b3a}.pl-note.tone-error{color:var(--poster-accent)}.pl-foot{border-top:1.5px solid color-mix(in srgb, var(--poster-ink) 30%, transparent);flex:none;padding:10px 14px 12px}#app .pl-back{width:100%;min-height:50px;font-size:19px}.pl-coins[hidden]{display:none}
