:root{--bg-1: #0d3b1a;--bg-2: #1b5e20;--bg-3: #2e7d32;--surface: rgba(6, 26, 14, .82);--surface-2: rgba(255, 255, 255, .07);--border: rgba(255, 255, 255, .12);--text: #f3f8ef;--muted: rgba(243, 248, 239, .66);--lime: #cddc39;--lime-ink: #2d4a10;--target: #ffc93c;--read: #59d8ff;--energy: #d3a6ff;--p0: #e9f5c8;--p1: #ff7a59;--good: #9be15d;--bad: #ff8a73;--radius: 14px;--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);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;overscroll-behavior:none}body{background:linear-gradient(180deg,#0a2414 0%,var(--bg-1) 40%,var(--bg-2) 100%);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;touch-action:manipulation;user-select:none;-webkit-user-select:none}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible{outline:2px solid var(--lime);outline-offset:2px}.hidden{display:none!important}#app{height:100vh;height:100dvh;display:grid;grid-template-areas:"score" "stage" "panel";grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);padding-left:var(--safe-left);padding-right:var(--safe-right)}#scoreboard{grid-area:score;min-width:0;display:flex;align-items:center;gap:6px;padding:calc(6px + var(--safe-top)) 8px 6px;background:var(--surface);border-bottom:1px solid var(--border);z-index:2}#stage{grid-area:stage;position:relative;min-height:0;overflow:hidden}#stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}#panel{grid-area:panel;min-width:0;background:var(--surface);border-top:1px solid var(--border);padding:10px 12px calc(10px + var(--safe-bottom));max-height:60dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:2}#panel:empty{display:none}@media(orientation:landscape)and (max-height:560px),(min-width:900px)and (min-height:500px){#app{grid-template-areas:"score panel" "stage panel";grid-template-columns:minmax(0,1fr) min(400px,46vw);grid-template-rows:auto minmax(0,1fr)}#panel{max-height:none;border-top:none;border-left:1px solid var(--border);padding-top:calc(10px + var(--safe-top))}#panel:empty{display:block}}.sb-table{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.sb-title{font-weight:800;letter-spacing:.12em;text-transform:uppercase;font-size:14px;text-align:center}.sb-row{display:flex;align-items:center;gap:6px;font-variant-numeric:tabular-nums;font-size:15px;line-height:1.35}.sb-name{flex:1;min-width:0;display:flex;align-items:baseline;gap:5px;overflow:hidden;white-space:nowrap;font-weight:600}.sb-name .sb-label,.sb-name .style{min-width:0;overflow:hidden;text-overflow:ellipsis}.sb-name .sb-label{flex:0 1 auto}.sb-name .style{flex:0 1000 auto}@media(max-width:420px){.sb-name .style-name{display:none}}.sb-name .player-dot{flex:none;align-self:center}.set{width:20px;text-align:center;color:var(--muted)}.set.current{color:var(--text);font-weight:700}.pts{min-width:34px;text-align:center;font-weight:800;background:var(--lime);color:var(--lime-ink);border-radius:6px;padding:0 4px}.pts:empty{background:transparent}.serve-dot{width:8px;height:8px;border-radius:50%}.serve-dot.on{background:var(--lime);box-shadow:0 0 6px var(--lime)}.player-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:0}.player-dot.p0{background:var(--p0)}.player-dot.p1{background:var(--p1)}.icon-btn{flex:none;width:40px;height:40px;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);font-size:17px;display:grid;place-items:center;padding:0}.situation{position:absolute;top:10px;left:50%;transform:translate(-50%);background:var(--lime);color:var(--lime-ink);font-weight:800;font-size:13px;letter-spacing:.08em;text-transform:uppercase;padding:4px 12px;border-radius:999px;z-index:1;pointer-events:none}.callout{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%) scale(.8);text-align:center;pointer-events:none;opacity:0;z-index:1;width:90%}.callout.show{animation:callout 2.2s ease-out forwards}.callout-main{font-size:clamp(34px,9vw,64px);font-weight:900;letter-spacing:.04em;text-transform:uppercase;text-shadow:0 4px 18px rgba(0,0,0,.6),0 0 2px rgba(0,0,0,.8)}.callout.good .callout-main{color:var(--lime)}.callout.bad .callout-main{color:var(--bad)}.callout-sub{margin-top:4px;font-size:clamp(14px,3.6vw,20px);font-weight:700;text-shadow:0 2px 8px rgba(0,0,0,.8)}@keyframes callout{0%{opacity:0;transform:translate(-50%,-50%) scale(.7)}12%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}20%{transform:translate(-50%,-50%) scale(1)}78%{opacity:1}to{opacity:0;transform:translate(-50%,-60%) scale(1)}}.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px;flex-wrap:wrap}.role{font-size:17px;font-weight:800}.role.good{color:var(--good)}.role.bad{color:var(--bad)}.context{font-size:13px;color:var(--muted)}.context i,.calc-math i{font-style:normal;color:var(--target)}.context i.luck,.calc-math i.luck{color:var(--read)}.context i.position,.calc-math i.position{color:var(--good)}.context i.energy,.calc-math i.energy{color:var(--energy)}.energy-bar{flex:none;width:40px;height:6px;border-radius:3px;background:#ffffff24;overflow:hidden}.energy-bar i{display:block;height:100%;border-radius:3px;transition:width .4s ease}.energy-bar.high i{background:var(--good)}.energy-bar.mid i{background:var(--target)}.energy-bar.low i{background:var(--bad)}.group{margin-bottom:10px}.group h3{margin:0 0 6px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);display:flex;align-items:center;gap:6px}.swatch{display:inline-block;width:10px;height:10px;border-radius:3px;vertical-align:-1px}.swatch.target{background:var(--target)}.swatch.read{background:var(--read)}.options{display:grid;gap:6px}.options.n3{grid-template-columns:repeat(3,minmax(0,1fr))}.options.n4{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:380px){.options.n4{grid-template-columns:repeat(2,minmax(0,1fr))}}.opt{min-width:0;overflow-wrap:anywhere;min-height:52px;padding:6px 4px;border-radius:12px;border:1.5px solid var(--border);background:var(--surface-2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-align:center;transition:background .12s,border-color .12s,transform .08s}.opt:active{transform:scale(.97)}.opt-name{font-size:14px;font-weight:700;line-height:1.15}.opt-meta{font-size:11px;color:var(--muted)}.opt.target.on{border-color:var(--target);background:#ffc93c38}.opt.read.on{border-color:var(--read);background:#59d8ff33}.primary,.ghost{width:100%;min-height:50px;border-radius:999px;font-weight:800;letter-spacing:.06em;font-size:16px;text-transform:uppercase}.primary{border:none;background:var(--lime);color:var(--lime-ink);box-shadow:0 6px 18px #00000059}.primary:disabled{background:#cddc3940;color:#fff9;box-shadow:none;cursor:default}.primary.big{min-height:56px;font-size:18px}.ghost{border:1px solid var(--border);background:transparent;margin-top:8px}.reveal{display:flex;flex-direction:column;gap:8px;margin-bottom:4px}.reveal-row{display:flex;align-items:center;gap:8px;font-size:14px;flex-wrap:wrap}.reveal-row b{color:var(--lime)}.player-chip{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:999px;color:#102010;white-space:nowrap}.player-chip.p0{background:var(--p0)}.player-chip.p1{background:var(--p1)}.duels{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.duel{border:1px solid var(--border);border-radius:12px;padding:8px 10px;background:var(--surface-2)}.duel.hit{border-color:#ffc93c99}.duel-title{display:flex;justify-content:space-between;font-size:14px;font-weight:700;margin-bottom:4px}.duel.hit .duel-title b{color:var(--target)}.duel.held .duel-title b{color:var(--read)}.coaching{margin:4px 0 10px;padding:10px 12px;border-radius:var(--radius);background:#00000040;border:1px solid var(--border);text-align:left;font-size:14px}.coaching p{margin:0 0 6px}.coaching .small{margin:6px 0 0;font-size:12px;color:var(--muted)}.coaching h3{margin:0 0 6px;font-size:15px;color:var(--good)}.verdict{margin:0 0 4px;font-size:13px;line-height:1.35;color:var(--muted)}.verdict b{color:var(--text)}.factors{margin:0 0 4px;font-size:13px;line-height:1.35;color:var(--muted)}.factors i{font-style:normal;color:var(--text)}.factors i.skill{color:var(--text)}.factors i.choices{color:var(--target)}.factors i.position{color:var(--good)}.factors i.energy{color:var(--energy)}.factors i.luck{color:var(--read)}.calc-details>summary{cursor:pointer;font-size:13px;color:var(--muted);list-style:none;padding:2px 0}.calc-details>summary::-webkit-details-marker{display:none}.calc-details>summary:after{content:" ▸"}.calc-details[open]>summary:after{content:" ▾"}.calc-details>summary b{color:var(--text)}.calc-details .context{margin:2px 0 4px}.bracket .seed{display:inline-block;min-width:1.4em;margin-right:4px;font-size:11px;font-weight:700;color:var(--muted);text-align:center}.sb-name .style{font-weight:500;font-size:12px;color:var(--muted)}.verdict.good b{color:var(--good)}.verdict.bad b{color:var(--bad)}.calc{display:flex;flex-wrap:wrap;align-items:center;column-gap:8px;row-gap:2px;font-size:13px;padding:2px 0}.calc-what{flex:1 0 auto;color:var(--muted);white-space:nowrap}.calc-math{margin-left:auto;font-variant-numeric:tabular-nums;white-space:nowrap}.overlay{position:fixed;inset:0;z-index:10;display:grid;place-items:center;padding:calc(16px + var(--safe-top)) 16px calc(16px + var(--safe-bottom));background:radial-gradient(circle at 50% 20%,rgba(205,220,57,.12),transparent 60%),linear-gradient(180deg,#0d3b0df0,#1b5e20f0 60%,#2e7d32f0);overflow-y:auto}.menu-card{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:stretch;gap:12px;text-align:center;margin:auto}.menu-card h1{margin:4px 0 0;font-size:clamp(38px,11vw,52px);line-height:1.05;letter-spacing:.1em;text-transform:uppercase;font-weight:900}.menu-card h2{margin:0;font-size:30px;font-weight:900}.tagline{margin:0 0 8px;color:var(--muted);letter-spacing:.14em;font-weight:300}.ball-icon{width:84px;height:84px;margin:0 auto;border-radius:50%;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.45),transparent 40%),var(--lime);box-shadow:0 10px 24px #00000059;position:relative;overflow:hidden}.ball-icon:before,.ball-icon:after{content:"";position:absolute;top:8%;width:70%;height:84%;border:4px solid rgba(255,255,255,.9);border-radius:50%}.ball-icon:before{left:-42%}.ball-icon:after{right:-42%}.setting{display:flex;flex-direction:column;gap:6px;text-align:left}.setting-label{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:4px;border-radius:14px;background:#00000040;border:1px solid var(--border)}.segmented button{min-height:42px;border:none;border-radius:10px;background:transparent;font-weight:700;font-size:14px;color:var(--muted)}.segmented button.on{background:var(--lime);color:var(--lime-ink)}.segmented.skills button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:4px 2px;min-width:0;font-size:13px}.segmented.skills small{font-size:11px;font-weight:600;opacity:.75}.final-score{margin:0;font-size:26px;font-weight:800;color:var(--lime);font-variant-numeric:tabular-nums;word-spacing:.5em}table.stats{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums;margin-bottom:6px}table.stats th,table.stats td{padding:6px 4px;border-bottom:1px solid var(--border)}table.stats td:first-child{text-align:left;color:var(--muted)}.sheet{width:100%;max-width:560px;max-height:100%;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:16px;user-select:text;-webkit-user-select:text}.sheet-head{display:flex;justify-content:space-between;align-items:center}.sheet h2{margin:0}.sheet h3{margin:16px 0 6px;font-size:15px;color:var(--lime)}.sheet p,.sheet li{font-size:14px;line-height:1.5;color:#f3f8efe0}.sheet .small{font-size:12px;color:var(--muted);margin:0 0 6px}table.matrix{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}table.matrix th,table.matrix td{padding:5px 4px;border:1px solid var(--border);text-align:center}table.matrix tbody th{text-align:left;white-space:nowrap}table.matrix small{color:var(--muted);font-weight:400}td.pos{color:var(--good);font-weight:700}td.neg{color:var(--bad)}.next-match{display:flex;align-items:center;justify-content:center;gap:14px;padding:12px;border-radius:var(--radius);background:#00000040;border:1px solid var(--border)}.next-match>div{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}.next-match b{font-size:20px;font-variant-numeric:tabular-nums}.next-match .vs,.bracket .vs{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.trophy{font-size:64px;line-height:1}.bracket{display:flex;flex-direction:column;gap:10px;text-align:left;margin-top:4px}.round h3{margin:0 0 4px;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.round ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.round li{display:grid;grid-template-columns:1fr auto 1fr auto;align-items:center;gap:8px;padding:6px 10px;border-radius:10px;background:var(--surface-2);font-size:14px}.round li span:nth-child(3){text-align:right}.round .won{font-weight:800}.round .lost{color:var(--muted)}.round .lost .nm{text-decoration:line-through}.round .sk{color:var(--muted);font-weight:400;font-variant-numeric:tabular-nums}.round .me{color:var(--lime)}.round .lost.me{color:var(--bad)}.round .score{min-width:34px;text-align:right;font-variant-numeric:tabular-nums;color:var(--muted);font-size:13px}.tbd{margin:0;font-size:13px;color:var(--muted)}.stat-tiles{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.stat-tiles>.stat-tile{grid-column:span 2}.stat-tiles>.stat-tile:nth-child(n+4){grid-column:span 3}.stat-tile{display:flex;flex-direction:column;gap:4px;padding:10px 4px;border-radius:var(--radius);background:#00000040;border:1px solid var(--border);min-width:0}.stat-tile .setting-label{font-size:10px;letter-spacing:.06em}.stat-tile b{font-size:20px;font-variant-numeric:tabular-nums}.history{display:flex;flex-direction:column;gap:10px;text-align:left}.history-card{padding:10px 12px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border)}.history-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}.history-head h3{margin:0;font-size:16px}.outcome{font-size:13px;font-weight:700}.outcome.won{color:var(--lime)}.outcome.out{color:var(--muted)}.outcome.live{color:var(--read)}.skill-change{margin:2px 0 6px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.history-card ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.history-card li{display:grid;grid-template-columns:108px 1fr auto;align-items:baseline;gap:8px;font-size:14px}.round-name{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.opp small{color:var(--muted);font-variant-numeric:tabular-nums}.result{font-weight:800;font-variant-numeric:tabular-nums}.result.w{color:var(--good)}.result.l{color:var(--bad)}.ranking{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;text-align:left}.ranking li{display:grid;grid-template-columns:32px 1fr auto auto;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;background:var(--surface-2);font-size:15px}.ranking .rank{color:var(--muted);font-variant-numeric:tabular-nums}.ranking .sk{font-variant-numeric:tabular-nums}.ranking .en{font-size:13px;color:var(--energy);font-variant-numeric:tabular-nums}.ranking li.me{background:#cddc392e;border:1px solid var(--lime)}.ranking li.me .nm{color:var(--lime);font-weight:800}.style{display:block;font-size:12px;font-weight:600;color:var(--muted)}.ranking .style{display:inline;margin-left:6px;font-weight:400}.style-icon{font-size:12px}.energy-tag{display:block;font-size:12px;color:var(--energy);font-variant-numeric:tabular-nums}.menu-card.online .field{display:flex;flex-direction:column;gap:6px;text-align:left}.menu-card.online input{font:inherit;font-size:18px;padding:12px 14px;border-radius:var(--radius);border:1px solid var(--border);background:#0000004d;color:var(--text)}.match-code{margin:4px 0;font-size:44px;font-weight:800;letter-spacing:.2em;color:var(--lime)}.match-code.recovery{font-size:22px;letter-spacing:.08em;word-break:break-all}.menu-card.online .link{word-break:break-all;font-size:12px;color:var(--muted);margin:0}.menu-card .error{color:var(--bad);margin:0}.waiting{color:var(--muted);font-size:15px;margin:8px 0}.online-history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;text-align:left}.online-history li{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;padding:8px 10px;border-radius:var(--radius);background:#00000040;font-size:14px}.online-history .result.w{color:var(--good);font-weight:800}.online-history .result.l{color:var(--bad);font-weight:800}.online-history .rating{color:var(--muted);font-variant-numeric:tabular-nums}button.ghost.danger{color:var(--bad);border-color:#ff8a7380}.cup-path{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;text-align:left}.cup-path li{display:grid;grid-template-columns:96px minmax(0,1fr);gap:10px;align-items:center;padding:8px 10px;border-radius:var(--radius);background:#00000040;font-size:14px}.cup-path .round-name{font-weight:700;color:var(--muted)}.cup-path li.w .cup-result{color:var(--good)}.cup-path li.l .cup-result{color:var(--bad)}.cup-path li.next .cup-result{color:var(--lime);font-weight:700}.cup-tag{color:var(--muted);font-size:11px}
