: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}.screen-title{background:linear-gradient(#10142826,#1014288c);align-items:stretch}@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}.screen-title .card{box-shadow:none;background:0 0;border:none;flex-direction:column;justify-content:space-between;max-height:none;padding:24px 4px 8px;display:flex;overflow:visible}.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)}}.arena-pill{text-align:center;color:var(--ink);border:3px solid var(--ink);box-shadow:0 4px 0 var(--ink);background:#fffaf0f2;border-radius:20px;align-self:center;margin:18px 0;padding:10px 20px}.arena-name{font-size:18px;font-weight:900}.arena-vs{color:var(--far-deep);margin-top:2px;font-size:15px;font-weight:800}.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}.screen-title .btn-ghost{color:#fff}.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) var(--poster-grain);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}: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 .screen-title{background:linear-gradient(180deg, color-mix(in srgb, var(--poster-ink) 5%, transparent), color-mix(in srgb, var(--poster-ink) 60%, transparent))}#app .card{color:var(--poster-ink);background:var(--poster-paper) var(--poster-grain);border:2px solid var(--poster-ink);box-shadow:0 0 0 6px var(--poster-paper), 0 0 0 7px var(--poster-ink), 0 14px 30px #00000059;border-radius:6px;animation:.35s ease-out poster-in}@keyframes poster-in{0%{opacity:0;transform:translateY(16px)}}#app .card h2{font-family:var(--poster-display);letter-spacing:.5px;font-weight:700}#app .screen-title .card{box-shadow:none;background:0 0;border:none}#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 .arena-pill{color:var(--poster-ink);background:var(--poster-paper) var(--poster-grain);border:1.5px solid var(--poster-ink);box-shadow:none;border-radius:4px}#app .arena-name{font-family:var(--poster-display);font-weight:700}#app .arena-vs{font-family:var(--poster-label);letter-spacing:1px;color:var(--poster-accent)}#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 .screen-title .btn-ghost,#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 .poster-map{padding:calc(var(--safe-top) + 18px) 16px calc(var(--safe-bottom) + 14px);background:var(--poster-grain), linear-gradient(180deg, var(--poster-sky-top), var(--poster-sky-bottom) 70%, var(--poster-haze));flex-direction:column;align-items:center;gap:10px;display:flex;overflow-y:auto}#app .map-head{text-align:center}#app .map-head .poster-kicker{color:var(--poster-paper)}#app .map-title{font-family:var(--poster-display);letter-spacing:2px;color:var(--poster-paper);text-shadow:0 2px 0 color-mix(in srgb, var(--poster-ink) 50%, transparent);margin:2px 0 0;font-size:40px;font-weight:700}#app .map-route{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:min(100%,380px);padding-bottom:26px;display:grid;position:relative}#app .map-route:before{content:"";border:2px dashed color-mix(in srgb, var(--poster-paper) 70%, transparent);pointer-events:none;border-radius:40px;position:absolute;inset:22% 25% 30%}#app .map-tile{font:inherit;text-align:left;color:var(--poster-ink);background:var(--poster-paper);border:6px solid var(--poster-paper);outline:1px solid var(--poster-ink);outline-offset:-3px;transform:translateY(var(--shift,0));cursor:pointer;touch-action:manipulation;border-radius:2px;flex-direction:column;padding:0;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 18px #0000004d}#app .map-tile:active:not(:disabled){transform:translateY(calc(var(--shift,0px) + 2px))}#app .map-tile.is-current{box-shadow:0 0 0 3px var(--poster-accent), 0 8px 18px #0000004d}#app .map-art{height:112px;overflow:hidden}#app .map-label{padding:8px 6px 6px}#app .map-stage{letter-spacing:3px;text-transform:uppercase;color:var(--poster-accent);font-size:10px;font-weight:600}#app .map-country{font-family:var(--poster-display);letter-spacing:.5px;text-transform:uppercase;overflow-wrap:anywhere;font-size:18px;font-weight:700;line-height:1.1}#app .map-event{font-family:var(--poster-display);font-size:14px;font-style:italic}#app .map-status{letter-spacing:1.5px;text-transform:uppercase;color:var(--poster-paper);background:var(--poster-accent);border-radius:2px;margin-top:6px;padding:2px 7px;font-size:11px;font-weight:600;display:inline-block}#app .map-tile.is-won .map-status{background:var(--poster-floor)}#app .map-tile.is-won .map-status:before{content:"✓ "}#app .map-tile.is-locked{cursor:default}#app .map-tile.is-locked .map-art{filter:grayscale(.85)brightness(.8)}#app .map-tile.is-locked .map-status{color:var(--poster-ink);border:1px solid var(--poster-ink);background:0 0}#app .map-lock{background:var(--poster-paper);border-radius:3px;width:26px;height:20px;position:absolute;top:56px;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 6px #00000059}#app .map-lock:before{content:"";border:3px solid var(--poster-paper);border-bottom:none;border-radius:9px 9px 0 0;width:14px;height:12px;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}#app .map-tile.is-finale .map-country{letter-spacing:0}#app .map-more{text-align:center;letter-spacing:1px;max-width:340px;color:var(--poster-ink);margin:0;font-size:12px}#app .map-back{margin-top:auto}#app .poster-map .btn-ghost{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) var(--poster-grain);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)}
