@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800&family=Noto+Sans+KR:wght@400;500;600;700;800;900&display=swap');
:root{--bg:#101b1c;--panel:#172425;--line:#304040;--muted:#91a09a;--text:#eef2df;--lime:#d7fb79;--coral:#ff9476;--font:'Noto Sans KR',sans-serif;--display:'Barlow Condensed','Noto Sans KR',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:13px}button,input,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;transition:background .18s,transform .18s,border-color .18s}button:active{transform:translateY(1px)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--lime);outline-offset:4px}button:disabled{opacity:.4;cursor:default}[hidden]{display:none!important}a{color:inherit;text-decoration:none}.masthead{height:86px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 max(28px,calc((100vw - 1440px)/2));gap:20px}.brand{display:flex;align-items:center;gap:12px;font:800 24px/.9 var(--display);letter-spacing:1px}.brand small{display:block;font:500 10px var(--font);margin-top:9px;letter-spacing:2px;color:var(--muted)}.brandmark{position:relative;border:2px solid var(--lime);width:42px;height:42px;border-radius:50%;color:var(--lime);font:700 35px var(--display);display:flex;align-items:center;justify-content:center}.brandmark span{font-size:26px;position:absolute;right:-9px;top:-4px;background:var(--bg);line-height:24px}.header-meta{margin-left:auto;color:var(--muted);font:600 13px var(--display);letter-spacing:1.4px;display:flex;align-items:center;gap:8px}.proto{margin-left:13px;color:var(--lime);font-size:10px;border:1px solid #536540;padding:5px 8px;border-radius:4px}.live-dot{display:inline-block;width:6px;height:6px;background:var(--lime);border-radius:50%;box-shadow:0 0 10px #d7fb7933}.icon-btn{border:1px solid var(--line);background:transparent;border-radius:50%;width:30px;height:30px;font-weight:600}.icon-btn:hover{background:#324445}main{max-width:1440px;margin:auto;padding:32px 28px 0}.intro-line{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:27px}.eyebrow{font:600 11px var(--display);letter-spacing:2px;color:var(--muted)}h1{font-size:30px;letter-spacing:-1.4px;margin:9px 0 0;font-weight:800}h1 em{color:var(--lime);font-style:normal}.intro-line>p{color:var(--muted);line-height:1.8;font-size:12px;margin:0 0 1px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 306px;gap:26px;align-items:start}.match-column{min-width:0}.match-toolbar{display:flex;justify-content:space-between;align-items:center;height:39px;border-top:1px solid var(--line)}.court-label{font:600 11px var(--display);letter-spacing:1.5px;display:flex;gap:7px;align-items:center}.court-label b{font-weight:500;color:var(--muted)}.toolbar-actions{display:flex;gap:4px}.small-btn{border:none;background:transparent;font-size:10px;color:var(--muted);padding:6px 8px;border-radius:4px}.small-btn:hover,.small-btn[aria-pressed=true]{color:var(--lime);background:#283734}.stage{aspect-ratio:1.36;position:relative;overflow:hidden;border-radius:5px;background:#213a3a;isolation:isolate;border:1px solid #3c514e}#court{width:100%;height:100%;display:block}.scoreboard{position:absolute;top:21px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:19px;background:#101e1ee8;border:1px solid #718b6c55;padding:11px 17px;border-radius:4px;min-width:328px;backdrop-filter:blur(8px)}.score-player{display:flex;gap:6px;align-items:center;white-space:nowrap;font-weight:600;font-size:12px}.score-player small{color:#aab8aa;font:500 10px var(--display)}.player-pip{height:6px;width:6px;border-radius:50%;background:var(--lime)}.player-pip.coral{background:var(--coral)}.score-numbers{display:flex;gap:11px;font:600 28px/1 var(--display)}.score-numbers i{font-style:normal;font-size:20px;color:#84938a;align-self:center}.score-numbers b:first-child{color:var(--lime)}.score-numbers b:last-child{color:var(--coral)}.broadcast-label{position:absolute;top:84px;left:0;width:100%;text-align:center;color:#d4e0cf99;font-size:9px;letter-spacing:1px}.broadcast-label span{margin:0 5px}.rally-meter{position:absolute;top:113px;left:21px;display:flex;flex-direction:column;gap:1px;color:#dfebd7}.rally-meter span{font:500 10px var(--display);letter-spacing:1.6px}.rally-meter strong{font:600 42px/.95 var(--display);color:#e7f4dd}.rally-meter span:last-child{margin-top:6px;font-size:10px;color:#bed0b8;letter-spacing:0}.shot-badge{position:absolute;bottom:51px;left:50%;transform:translateX(-50%);padding:8px 14px;white-space:nowrap;border-radius:3px;background:#0d1d1bce;border-left:2px solid var(--lime);font-size:11px;color:#e6f3dc;max-width:90%;text-overflow:ellipsis;overflow:hidden;transition:opacity .2s}.shot-badge.flash{animation:badge .35s ease-out}.court-brand{position:absolute;bottom:20px;left:0;right:0;text-align:center;font:600 10px var(--display);letter-spacing:2.8px;color:#dbebce70}.court-brand span{margin:0 8px;color:var(--lime)}.point-banner{position:absolute;top:43%;left:0;right:0;text-align:center;pointer-events:none;text-shadow:0 3px 24px #000;background:linear-gradient(90deg,transparent,#11231da1,transparent);padding:12px}.point-banner>span{display:block;font:600 12px var(--display);letter-spacing:4px;color:var(--lime)}.point-banner strong{font:800 34px var(--font);letter-spacing:-1px}.point-banner p{font-size:11px;color:#d7e0cb}.match-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:47px;border-bottom:1px solid var(--line);font-size:11px}.match-footer>div{display:flex;gap:7px;align-items:center;min-width:0;color:#a4b4a9}.key-dot{width:4px;height:4px;flex-shrink:0;background:#d7fb79}#liveComment{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-btn{border:none;background:transparent;font-size:11px;padding:8px 0;color:var(--lime);white-space:nowrap}.text-btn:hover{color:white}.deck-heading{margin:23px 0 13px;display:flex;justify-content:space-between;align-items:end}h2{font-size:18px;letter-spacing:-.7px;margin:7px 0 0}.hint{color:var(--muted);font-size:10px}.deck{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.deck-card{position:relative;text-align:left;padding:13px 13px 12px;background:linear-gradient(150deg,#2a3a34,#1b2927);border:1px solid #647744;border-radius:5px;overflow:hidden;min-height:111px}.deck-card:hover{transform:translateY(-3px);border-color:var(--lime)}.deck-card .slot-label{font-size:9px;letter-spacing:.5px;color:#a9b5a3}.card-icon{font:500 30px/1 var(--display);color:var(--card-color);display:block;margin:5px 0}.deck-card .card-icon{position:absolute;right:13px;top:23px;font-size:38px;opacity:.7}.deck-card strong{font-size:13px;display:block;margin-top:20px;letter-spacing:-.5px}.deck-card p{font-size:9px;margin:5px 0 0;color:#a1aea2}.deck-card .change{position:absolute;right:10px;top:10px;color:#aab7a1;font-size:13px}.preset-row{display:flex;gap:7px;align-items:center;flex-wrap:wrap;padding:12px 0 15px;border-bottom:1px solid var(--line)}.preset-row>span{font-size:10px;color:var(--muted);margin-right:3px}.preset-row button{font-size:10px;border:1px solid var(--line);background:transparent;padding:5px 10px;border-radius:15px;color:#bac6ba}.preset-row button:hover{color:var(--lime);border-color:#7f964b}.collection-head{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.collection-head h3{font-size:12px;font-weight:500}.collection-head small{font:500 12px var(--display);color:var(--muted);margin-left:6px}.collection{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.collect-card{border:1px solid var(--line);border-radius:4px;background:#182628;text-align:left;padding:9px 10px;min-height:83px;position:relative}.collect-card .card-icon{font-size:23px;margin:0 0 6px}.collect-card strong{font-size:10px;font-weight:500;letter-spacing:-.3px}.collect-card .tiny-tag{font:500 8px var(--display);display:block;letter-spacing:.6px;color:var(--muted);margin-top:4px}.collect-card.selected{border-color:#6d7f48;background:#26332b}.collect-card.selected:after{content:'✓';position:absolute;right:9px;top:8px;color:var(--lime);font-size:10px}.collect-card.locked{opacity:.48}.collect-card:hover{border-color:#a4ba72;background:#29382f}.panel{padding:20px;border:1px solid var(--line);border-radius:5px;background:var(--panel)}.section-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.small-chip{border:1px solid #3b4c45;border-radius:3px;color:#9eada1;font:500 8px var(--display);padding:3px 5px;letter-spacing:.7px}.player-id{display:flex;align-items:center;gap:10px;margin:22px 0}.avatar{width:47px;height:56px;background:#35493c;border:1px solid #536645;border-radius:6px;overflow:hidden;flex-shrink:0}.avatar svg{width:100%;height:100%}#nameInput{background:transparent;border:0;color:var(--text);font-weight:700;font-size:19px;width:103px;padding:0}#rankLabel{font-size:9px;color:var(--muted);margin:5px 0 0;line-height:1.5;max-width:125px}.level-badge{margin-left:auto;text-align:center}.level-badge small{font:500 9px var(--display);color:var(--lime);letter-spacing:1px}.level-badge b{display:block;color:var(--lime);font:500 44px/.95 var(--display)}.stat{display:grid;grid-template-columns:40px 1fr 34px;gap:8px;align-items:center;margin:11px 0;font-size:10px;color:#b7c4b5}.stat-track{height:4px;background:#314039;border-radius:3px;overflow:hidden}.stat-fill{height:100%;background:var(--lime);transition:width .5s}.stat b{font:500 12px var(--display);text-align:right;color:#d5dfc9}.primary{border:0;border-radius:4px;color:#1b251a;background:var(--lime);font-size:12px;font-weight:700;padding:12px 18px}.primary:hover{background:#e7ffab;box-shadow:0 0 20px #d7fb7912}.full{width:100%}#trainBtn{display:flex;justify-content:space-between;align-items:center;margin-top:20px}#trainBtn span{font:600 12px var(--display);letter-spacing:.6px}.micro{font-size:9px;color:#819387;text-align:center;line-height:1.7;margin:9px 0 0}.compare-btn{border:1px solid #566d48;background:#26372a;color:#d0e5b4;font-size:10px;padding:10px 8px;width:100%;border-radius:4px;margin-top:15px}.compare-btn:hover{background:#384b31}.compare-btn.active{background:var(--lime);color:#263421}.muted{color:var(--muted);font-size:9px}#resetLevelBtn{display:block;margin:auto;padding-bottom:0}.rival-panel{margin-top:15px}select{appearance:none;border:0;border-bottom:1px solid #3b4b42;background:transparent;color:var(--text);font-size:21px;font-weight:700;padding:14px 20px 10px 0;width:100%;border-radius:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='m2 4 4 4 4-4' fill='none' stroke='%23d7fb79'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right center}select option{background:#213432}.rival-style{font-size:10px;color:var(--coral);margin:8px 0 17px}.coach-note{background:#101d1d;padding:12px;border-radius:4px;border-left:2px solid #607350}.coach-note>span{font:500 9px var(--display);letter-spacing:1.5px;color:#a9bd88}.coach-note p{font-size:10px;color:#aab9ab;line-height:1.8;margin:5px 0 0}.secondary{border:1px solid #435448;background:transparent;border-radius:4px;padding:11px 12px;font-size:11px;font-weight:500}.secondary:hover{background:#293b2e}.rival-panel>.secondary{margin-top:15px}.session-panel{padding:22px 4px}.session-stats{display:flex;justify-content:space-between;margin:14px 0}.session-stats div{display:flex;flex-direction:column;gap:5px}.session-stats b{font:500 26px var(--display);color:#dbe6d0}.session-stats span{font-size:9px;color:var(--muted)}.session-panel>p{font-size:9px;line-height:1.9;color:#778b80;margin:15px 0 0}.match-end{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#0c1c1bd9;backdrop-filter:blur(4px);padding:22px;text-align:center}.match-end .eyebrow{color:var(--lime)}.match-end h2{font-size:35px;margin-top:10px}.end-score{font:500 65px var(--display);color:var(--lime);letter-spacing:7px;margin:8px}.match-end p{color:#a6b8a6;font-size:12px;line-height:1.8}.end-actions{display:flex;gap:9px;margin-top:16px}.compare-labels{position:absolute;top:20px;left:0;right:0;display:grid;grid-template-columns:1fr 1fr;pointer-events:none}.compare-labels>div{display:flex;align-items:center;flex-direction:column;gap:5px}.compare-labels span{font:600 11px var(--display);letter-spacing:2px;color:#c4d0bd}.compare-labels strong{font-size:11px;background:#102321d9;padding:5px 9px;border-radius:3px}.compare-labels div:last-child strong{color:var(--lime)}.compare-labels b{font:600 25px var(--display)}.stage.comparing:after{content:'';position:absolute;top:0;bottom:0;left:50%;width:1px;background:#abc59b66}.stage.comparing .rally-meter,.stage.comparing .broadcast-label{display:none}.stage.comparing .shot-badge{font-size:9px}.record-badge{position:absolute;top:92px;right:15px;padding:6px 9px;background:#b4372e;border-radius:3px;font:600 11px var(--display);letter-spacing:1px}.cinema main{max-width:1000px}.cinema .sidebar,.cinema .intro-line,.cinema .deck-heading,.cinema .deck,.cinema .preset-row,.cinema .collection-head,.cinema .collection,.cinema footer{display:none}.cinema .game-layout{display:block}.cinema .stage{aspect-ratio:9/12;max-height:82vh;max-width:62vh;margin:auto}.cinema .match-toolbar,.cinema .match-footer{max-width:62vh;margin:auto}.cinema .match-footer>div{display:none}.cinema .masthead{height:60px}.cinema main{padding-top:15px}dialog{background:#1a2928;color:var(--text);border:1px solid #506340;border-radius:10px;max-width:500px;width:calc(100% - 28px);padding:26px;box-shadow:0 30px 100px #0008}dialog::backdrop{background:#071310cc;backdrop-filter:blur(5px)}.dialog-head{display:flex;justify-content:space-between;align-items:center}dialog h2{font-size:24px;margin:18px 0 14px}dialog>p{line-height:1.9;color:#b4c3ad;font-size:12px}.dialog-choice{display:flex;align-items:center;gap:12px;width:100%;background:#24352e;border:1px solid #46583d;padding:13px;border-radius:5px;text-align:left;margin:8px 0}.dialog-choice .card-icon{width:34px;margin:0;text-align:center}.dialog-choice strong{font-size:13px}.dialog-choice p{font-size:10px;color:#9eaf9a;margin:4px 0}.dialog-choice:hover{border-color:var(--lime);background:#34462f}.pack-reveal{text-align:center;padding:24px;margin:15px 0;background:radial-gradient(ellipse at top,#544b63,#23352c 75%);border:1px solid #b49ad8;border-radius:8px;animation:reveal .5s}.pack-reveal .card-icon{font-size:70px;margin:10px}.pack-reveal strong{font-size:20px;display:block}.pack-reveal small{font:600 11px var(--display);letter-spacing:2px;color:#d7b9f1}.pack-reveal p{font-size:11px;line-height:1.8;color:#becbb7}dialog ol{padding-left:20px}dialog li{margin-bottom:15px;font-size:12px}dialog li p{line-height:1.8;color:#a4b59e;font-size:11px;margin-top:5px}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);background:#d7fb79;color:#25301d;padding:12px 20px;border-radius:5px;box-shadow:0 8px 28px #0005;font-size:12px;z-index:10;opacity:0;pointer-events:none;transition:.2s;max-width:90vw;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}footer{display:flex;align-items:center;gap:15px;border-top:1px solid var(--line);margin-top:28px;padding:24px 0 30px;font:600 12px var(--display);letter-spacing:1.5px;color:#b2c0aa}footer>span{font-size:10px;color:#72877c}footer>p{margin-left:auto;font:400 10px var(--font);letter-spacing:0;color:#72877c}.sr-only{position:absolute;overflow:hidden;clip:rect(0,0,0,0);height:1px;width:1px}.shake{animation:reveal .3s}#loadError{position:absolute;inset:30%;background:#152524;padding:15px;line-height:1.8;font-size:13px;z-index:8}@keyframes badge{from{transform:translate(-50%,5px);opacity:.4}to{transform:translate(-50%,0);opacity:1}}@keyframes reveal{from{transform:scale(.92);opacity:.2}to{transform:scale(1);opacity:1}}@media(min-width:1550px){.stage{aspect-ratio:1.45}}@media(max-width:1050px){.game-layout{grid-template-columns:minmax(0,1fr) 272px;gap:18px}.panel{padding:17px}.stage{aspect-ratio:1.05}.scoreboard{gap:10px;min-width:292px;padding:10px 12px}.intro-line>p{display:none}.deck-card{padding:10px}.deck-card strong{font-size:11px}.deck-card p{font-size:8px}.hint{display:none}}@media(max-width:760px){.masthead{height:66px;padding:0 18px}.brand{font-size:21px}.brandmark{width:35px;height:35px;font-size:30px}.brand small{font-size:9px}.header-meta{font-size:11px}.proto{display:none}main{padding:21px 14px 0}.intro-line{margin-bottom:18px}h1{font-size:25px}.game-layout{display:flex;flex-direction:column;gap:18px}.match-column,.sidebar{width:100%}.stage{aspect-ratio:3/4;max-height:670px}.scoreboard{top:15px;min-width:290px;padding:9px 12px;gap:11px}.score-player{font-size:11px}.score-numbers{font-size:27px}.broadcast-label{top:72px}.rally-meter{top:105px;left:14px}.shot-badge{bottom:43px;font-size:10px}.court-brand{font-size:8px;bottom:16px;letter-spacing:2px}.deck-heading{margin-top:20px}.deck-card{min-height:104px}.deck-card .card-icon{font-size:29px;right:9px;top:27px}.deck-card strong{font-size:11px;margin-top:23px}.deck-card .slot-label{font-size:8px}.deck-card p{font-size:8px;line-height:1.5}.deck{gap:6px}.collection{gap:6px}.collect-card{padding:9px 7px}.collect-card strong{font-size:9px}.collect-card .tiny-tag{font-size:7px}.match-footer{font-size:10px;gap:5px}.match-footer .text-btn{font-size:10px}.toolbar-actions{gap:0}.small-btn{padding:6px;font-size:9px}.court-label{font-size:10px;letter-spacing:.8px}.sidebar{display:grid;grid-template-columns:1fr 1fr;gap:12px}.player-panel{grid-column:1/-1}.rival-panel{margin:0}.session-panel{padding:20px 6px}.session-stats{flex-wrap:wrap;gap:16px}.player-id{margin:16px 0}.stat-list{display:grid;grid-template-columns:1fr 1fr;gap:0 25px}#nameInput{width:140px}.avatar{width:54px;height:63px}.level-badge{margin-right:8px}.compare-btn{margin-top:12px}.micro{font-size:10px}.panel{padding:18px}footer{flex-wrap:wrap;gap:10px}footer>p{width:100%;margin:0;font-size:9px}.compare-labels strong{font-size:9px}.compare-labels span{font-size:9px}.compare-labels b{font-size:21px}.stage.comparing{aspect-ratio:1;max-height:440px}.stage.comparing .court-brand{font-size:7px;letter-spacing:1px}.stage.comparing .shot-badge{bottom:35px}.cinema .stage{max-height:78vh;max-width:100%;aspect-ratio:9/13}.cinema .match-toolbar,.cinema .match-footer{max-width:none}.cinema .sidebar{display:none}}
@media(min-width:761px){.masthead{height:70px}main{padding-top:23px}.intro-line{margin-bottom:20px}.stage{height:clamp(390px,calc(100dvh - 278px),650px);aspect-ratio:auto}.cinema .stage{height:78vh;max-height:78vh;aspect-ratio:9/12}.cinema .masthead{height:60px}}
.brand{white-space:nowrap;flex-shrink:0}.mobile-growth{display:none}@media(max-width:760px){.masthead{gap:12px}.header-meta{font-size:9px;letter-spacing:.8px;white-space:nowrap}.brand{font-size:20px}.mobile-growth{display:flex;flex-direction:column;gap:6px;position:absolute;top:105px;right:12px}.mobile-growth button{background:#10231bc9;border:1px solid #82986066;border-radius:4px;padding:7px 9px;color:#d7fb79;font-size:9px}.comparing .mobile-growth,.cinema .mobile-growth{display:none}}
/* Road to the Tour */
.stage{width:100%}
.wallet{font:500 15px var(--display);letter-spacing:.5px;color:var(--lime)}.wallet small{display:block;font-size:8px;letter-spacing:1.5px;color:var(--muted);margin-bottom:2px}.wallet b{font-size:24px}.header-meta{margin-left:auto}.masthead{gap:20px}.intro-line{align-items:center;margin-bottom:15px}.intro-line h1{font-size:27px}.idle-button{display:flex;flex-direction:column;gap:6px;min-width:235px;padding:12px 15px;text-align:left;background:#21332b;border:1px solid #657d42;border-radius:6px;color:#c7d7bb;font-size:11px}.idle-button span{display:flex;gap:25px;align-items:center;justify-content:space-between}.idle-button b{color:var(--lime);font:600 23px var(--display)}.idle-button small{font-size:9px;color:#94aa91}.idle-button.ready{box-shadow:0 0 20px #d7fb7909}.page-tabs{display:flex;gap:7px;border-bottom:1px solid var(--line);margin-bottom:16px}.page-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;padding:13px 23px 13px 10px;font:500 10px var(--display);color:#738a7b;letter-spacing:1px;display:flex;gap:12px;align-items:center}.page-tabs b{font:600 12px var(--font);letter-spacing:0;color:#9eafa2}.page-tabs .active{border-color:var(--lime);color:var(--lime)}.page-tabs .active b{color:#e5f2dc}.avatar{width:62px;height:74px;background:radial-gradient(ellipse,#526c46,#1c3328);border:1px solid #809b50}.avatar img{display:block;width:170%;height:150%;max-width:none;object-fit:cover;object-position:top;transform:translateX(-20%)}.player-id{gap:9px;margin:17px 0}#nameInput{width:93px;font-size:18px}#rankLabel{max-width:110px}.level-badge b{font-size:37px}.sidebar .panel{padding:18px}.stage{touch-action:pan-y}.court-hint{position:absolute;top:92px;left:50%;transform:translateX(-50%);background:#10241c99;border-radius:14px;padding:5px 10px;font-size:9px;color:#d3e1c9;white-space:nowrap;pointer-events:none}.shot-badge{bottom:30px}.court-brand{bottom:9px;font-size:8px}.control-desk{border:1px solid #506441;border-radius:0 0 7px 7px;background:#1a2b25;padding:13px 14px 10px;position:relative;z-index:2}.control-top{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:10px}.control-top .eyebrow{color:var(--lime);font-size:9px;letter-spacing:1.3px}#orderFeedback{font-size:10px;color:#c4d7b8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:68%}.control-grid{display:grid;grid-template-columns:1fr 1fr 160px;gap:12px;align-items:end}.control-label{font-size:9px;color:#92a98e;display:flex;justify-content:space-between;margin-bottom:6px}.control-label small{font:10px var(--display);color:#697e68}.aim-buttons,.position-buttons{display:flex;gap:4px}.control-grid button{min-height:36px;white-space:nowrap;font-size:10px;border:1px solid #536842;background:#263a2c;border-radius:4px;padding:6px 8px;flex:1}.control-grid button:hover{background:#435531;border-color:#d7fb79}.control-grid button.active{border-color:var(--lime);color:var(--lime)}.control-grid .timing-btn{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#304534;min-height:56px;border-color:#70865a;color:#d2e8be}.timing-btn b{font-size:15px;z-index:1}.timing-btn small{font-size:8px;z-index:1;margin-top:4px}.timing-fill{height:3px;position:absolute;bottom:0;left:0;width:0;background:#a7d657;transition:width .1s}.timing-btn.ready{background:#d7fb79;color:#172815;box-shadow:0 0 24px #d7fb7940;border-color:#e6ffb0;transform:scale(1.025)}.timing-btn.armed{background:#e9ffba;color:#182913}.intent-row{display:flex;align-items:center;gap:6px;margin-top:9px;font-size:9px;color:#8ea385}.intent-row button{border:0;background:transparent;border-radius:10px;color:#879e7f;padding:3px 8px;font-size:9px}.intent-row button.active{background:#415534;color:#e0edcc}#manualCount{margin-left:auto;color:#c0d5a8;font-size:9px}.deck{grid-template-columns:repeat(4,1fr)}.deck-card{min-height:115px;padding:11px 10px}.deck-card strong{font-size:11px}.deck-card p{line-height:1.65;max-width:92%;font-size:8px}.deck-card .card-icon{top:21px;font-size:29px}.deck-card .slot-label{font-size:8px}.collection{grid-template-columns:repeat(4,1fr)}.pack-note{font-size:9px;color:#8ea385;line-height:1.8;margin:0 0 12px}.collect-card.locked{opacity:.60}.collect-card.locked:hover{opacity:.9}.round-track{display:flex;gap:5px;margin:13px 0}.round-track span{flex:1;text-align:center;padding:6px;border:1px solid #354f3b;border-radius:3px;font-size:10px;color:#7c987b}.round-track .active{color:var(--lime);background:#34482e;border-color:#6e8c48}.round-track .cleared{color:#b6c9a8}.prize-preview{font-size:10px;color:#b0c393;line-height:1.7}.rival-panel h3{font-size:20px;margin-bottom:0;letter-spacing:-.6px}.reward-value{font:600 26px var(--display);color:#e7bb6e;background:#51432e66;border:1px solid #bea16a55;padding:7px 17px;border-radius:4px}.end-actions{flex-wrap:wrap;justify-content:center}.match-end h2{font-size:28px}.end-score{font-size:50px;margin:5px}.match-end p{font-size:11px;margin:9px 0}.match-end .end-actions{margin-top:6px}.view-heading{margin:16px 0 26px}.view-heading h2{font-size:31px;line-height:1.45;letter-spacing:-1.2px;margin:9px 0 12px}.view-heading p{font-size:12px;line-height:1.8;color:#9cb29e}.training-stage{position:relative;border:1px solid #53654b;border-radius:8px 8px 0 0;overflow:hidden;background:#1b3730}.training-stage canvas{display:block;width:100%;height:auto}.training-caption{position:absolute;right:18px;top:17px;text-align:right;display:flex;flex-direction:column;gap:4px}.training-caption span{font-size:12px;font-weight:700;color:var(--lime)}.training-caption b{font-size:9px;font-weight:400;color:#a2baa0}.training-progress{height:5px;background:#2a3e2b}.training-progress div{height:100%;width:0;background:var(--lime);transition:width .1s}.training-status{font-size:11px;line-height:1.7;color:#b7cca1;min-height:20px}.training-facilities{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.facility{text-align:left;display:flex;flex-direction:column;gap:8px;padding:12px 10px;background:#1b3028;border:1px solid #3c5340;border-radius:5px}.facility b{font:500 28px var(--display);color:#abc781}.facility strong{font-size:11px}.facility span{font-size:9px;color:#8da383}.facility.active{background:#33472e;border-color:#c0df78}.training-action{display:flex;gap:20px;align-items:center;justify-content:space-between;margin:20px 0;padding:19px;background:#20362a;border:1px solid #57733d;border-radius:6px}.training-action h3{font-size:15px;margin:0}.training-action p{font-size:11px;color:#a9bd9a;line-height:1.8;margin:8px 0 0}.training-action button{white-space:nowrap}.academy-note{padding:22px;background:#152821;border:1px solid #3f5640;border-radius:6px}.academy-note b{font-size:14px}.academy-note p{font-size:11px;color:#90a38b;line-height:1.9}.career-summary{display:grid;grid-template-columns:repeat(4,1fr);padding:20px 10px;border:1px solid #465a3a;border-radius:6px;background:#223526;margin-bottom:20px}.career-summary span{text-align:center;font-size:10px;color:#a1b58e}.career-summary b{font:600 32px var(--display);color:#deedbc;margin-right:3px}.tour-list{display:flex;flex-direction:column;gap:9px}.tour-card{width:100%;display:flex;gap:20px;align-items:center;border:1px solid #394e3c;background:#182c24;border-radius:6px;padding:18px;text-align:left}.tour-card.selected{border-color:#bfdc75;background:linear-gradient(110deg,#35482b,#1a3025)}.tour-card.locked{opacity:.5}.tour-number{font:500 30px var(--display);color:#adc881;min-width:37px}.tour-main{display:flex;flex-direction:column;gap:6px}.tour-main small{font:600 9px var(--display);letter-spacing:1.4px;color:#8da183}.tour-main strong{font-size:17px;letter-spacing:-.5px}.tour-main em{font:500 10px var(--display);font-style:normal;color:#91a582}.tour-reward{display:flex;flex-direction:column;align-items:end;gap:7px;margin-left:auto}.tour-reward b{font:500 23px var(--display);color:#e5c27e}.tour-reward small{font-size:9px;color:#94a587}.rules-note{font-size:10px;color:#80917b;line-height:1.9;margin:18px 0}.book-search{width:100%;background:#1a3028;border:1px solid #587448;border-radius:5px;padding:14px 16px;color:#e7efd5;font:13px var(--font);margin-bottom:20px}.tennis-book{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tennis-book article{background:#1a2c26;padding:18px;border:1px solid #354e3b;border-radius:5px}.tennis-book article>span{font-size:9px;color:#a9c981}.tennis-book h3{font-size:15px;margin:9px 0}.tennis-book p{font-size:11px;color:#98ad91;line-height:1.8;margin:0}.book-sources{font-size:10px;line-height:2;color:#8a9e80;margin:20px 0}.book-sources a{color:#c4db96}.cinema .page-tabs,.cinema .control-desk,.cinema .court-hint,.cinema .pack-note{display:none}.cinema .stage{height:76vh!important;max-height:76vh}.cinema .match-column section[data-view=match]{display:block}.compare-labels{top:18px}.stage.comparing .court-hint{display:none}
@media(min-width:761px){.masthead{height:62px}main{padding-top:18px}.stage{height:clamp(300px,calc(100dvh - 390px),560px)}.sidebar{position:sticky;top:15px}.game-layout{grid-template-columns:minmax(0,1fr) 296px;gap:22px}}
@media(max-width:1050px) and (min-width:761px){.control-grid{grid-template-columns:1fr 1fr}.control-grid .timing-btn{grid-column:1/-1;min-height:38px;flex-direction:row;gap:10px}.control-grid button{font-size:9px;padding:6px}.control-top .eyebrow{display:none}.deck{grid-template-columns:1fr 1fr}.training-facilities{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.masthead{height:62px}.wallet small{display:none}.wallet b{font-size:24px}.intro-line{display:block;margin-bottom:10px}.intro-line .eyebrow{font-size:8px}.intro-line h1{font-size:24px}.idle-button{flex-direction:row;justify-content:space-between;align-items:center;padding:8px 11px;width:100%;margin-top:14px;min-width:0}.idle-button span{font-size:10px;gap:12px}.idle-button b{font-size:19px}.idle-button small{font-size:8px}.page-tabs{justify-content:space-between;margin-bottom:9px}.page-tabs button{padding:11px 6px;gap:6px;font-size:9px}.page-tabs b{font-size:12px}.stage{aspect-ratio:4/5;max-height:500px}.rally-meter{top:107px}.court-hint{top:79px;font-size:8px}.control-desk{padding:11px 10px 8px}.control-top{margin-bottom:8px}.control-top .eyebrow{font-size:8px;letter-spacing:.6px}#orderFeedback{font-size:8px;max-width:65%}.control-grid{grid-template-columns:1fr 1fr;gap:7px}.control-grid button{font-size:9px;padding:7px 5px;min-height:36px}.control-grid .timing-btn{grid-column:1/-1;min-height:42px;flex-direction:row;gap:13px}.timing-btn b{font-size:15px}.timing-btn small{font-size:9px;margin-top:0}.control-label{font-size:9px}.intent-row{gap:3px}.intent-row button{font-size:8px;padding:3px 6px}#manualCount{font-size:8px}.deck{grid-template-columns:1fr 1fr;gap:8px}.deck-card{min-height:106px}.deck-card strong{font-size:12px}.deck-card p{font-size:9px}.deck-card .slot-label{font-size:9px}.collection{grid-template-columns:repeat(3,1fr)}.collect-card strong{font-size:10px}.pack-note{font-size:9px}.training-facilities{grid-template-columns:repeat(3,1fr)}.facility{padding:12px}.facility strong{font-size:11px}.training-action{flex-direction:column;align-items:stretch;gap:15px}.training-action .primary{padding:14px}.training-caption{top:10px;right:10px}.training-caption span{font-size:9px}.training-caption b{font-size:7px}.training-stage canvas{min-height:205px;object-fit:cover}.view-heading h2{font-size:28px}.view-heading p{font-size:11px}.tour-card{gap:10px;padding:15px 11px}.tour-main strong{font-size:14px}.tour-main small{font-size:8px}.tour-number{font-size:26px;min-width:30px}.tour-reward b{font-size:21px}.tour-reward small{font-size:8px}.career-summary{padding:13px 6px}.career-summary b{font-size:25px}.tennis-book{grid-template-columns:1fr}.tennis-book article{padding:16px}.match-end{padding:15px}.match-end h2{font-size:25px}.match-end .primary,.match-end .secondary{font-size:10px;padding:10px 12px}.reward-value{font-size:24px}.sidebar{display:block}.sidebar .rival-panel{margin-top:14px}.player-id .avatar{width:72px;height:80px}.player-id #nameInput{width:150px}.score-player{font-size:10px}.scoreboard{min-width:284px;gap:9px}.score-player small{font-size:9px}.cinema .stage{height:76vh!important}}

@media(max-width:760px){main{padding-top:14px}.intro-line{display:flex;gap:12px;align-items:center;min-height:62px}.intro-line .eyebrow{display:none}.intro-line h1{font-size:19px;line-height:1.45;letter-spacing:-.8px;margin:0;max-width:175px}.idle-button{width:160px;min-width:145px;flex-shrink:0;flex-direction:column;align-items:stretch;gap:3px;margin-top:0;padding:8px 9px}.idle-button span{font-size:8px;gap:6px}.idle-button b{font-size:18px}.idle-button small{font-size:7px}.stage{width:100%;height:min(100vw,440px);aspect-ratio:auto;max-height:440px}.control-label small{display:none}.page-tabs button{padding-top:10px;padding-bottom:10px}.rally-meter strong{font-size:33px}.rally-meter{top:106px}.scoreboard{min-width:280px}.cinema .stage{max-height:76vh}}

@media(max-width:760px){.training-stage canvas{min-height:0;object-fit:fill;height:auto;aspect-ratio:2}}

.motion-label{position:absolute;bottom:40px;left:14px;z-index:4;padding:6px 9px;border:1px solid #d7fb7940;border-radius:4px;color:#ecf5df;background:#142923d9;font-size:10px;letter-spacing:.02em;pointer-events:none}.comparing .motion-label{display:none}@media(max-width:600px){.toolbar-actions{gap:4px;flex-wrap:wrap;justify-content:flex-end}.toolbar-actions .small-btn{font-size:10px;padding:6px}.match-toolbar{gap:6px}.motion-label{left:10px;bottom:34px;font-size:9px}}

.pause-overlay{position:absolute;inset:0;z-index:12;display:grid;place-items:center;background:#10201bb8;backdrop-filter:blur(2px)}.pause-overlay[hidden]{display:none}.pause-overlay>div{display:grid;justify-items:center;gap:16px;padding:24px;text-align:center}.pause-overlay span{color:#d7fb79;font-size:12px;letter-spacing:.12em}.pause-overlay strong{font-size:clamp(18px,3vw,26px);color:#eef4df}.pause-overlay button{padding:13px 24px;font-size:15px}

.backhand-choice{border:0;margin:0 0 20px;padding:0}.backhand-choice legend{color:#aabd9f;font-size:11px;margin-bottom:9px}.backhand-choice>div{display:flex;gap:6px}.backhand-choice button{flex:1;border:1px solid #546844;border-radius:5px;background:#1b3027;color:#bdcbb0;padding:9px 7px;font-size:12px;cursor:pointer}.backhand-choice button[aria-pressed="true"]{background:#d7fb79;color:#23321d;border-color:#d7fb79;font-weight:700}

/* Broadcast view: score lives above the playing field, never over a baseline. */
.stage{padding-top:54px;background:#172b29}
#court{height:100%}
.scoreboard{top:5px;padding:6px 14px;backdrop-filter:none}
.broadcast-label,.court-hint{display:none}
.rally-meter{top:67px;left:12px}
.toolbar-actions [aria-pressed=true]{background:#35492d;border-color:#a8c865;color:#e8ffae}
@media(min-width:761px){.stage{height:clamp(370px,calc(100dvh - 320px),600px)}}
@media(max-width:760px){.stage{height:min(100vw,440px);padding-top:49px}.scoreboard{top:4px;padding:5px 12px}.rally-meter{top:60px}.match-toolbar{height:auto;min-height:42px;flex-wrap:wrap;padding:5px 0}.toolbar-actions{flex-wrap:wrap}}

/* Learn one decision at a time, without covering the court. */
.first-steps{display:flex;align-items:center;gap:14px;padding:12px 16px;background:#21352b;border:1px solid #586943;border-top:0}.first-steps>span{flex-shrink:0;color:var(--lime);font-size:10px;font-weight:700}.first-steps p{margin:0;color:#d7e2cc;font-size:11px;line-height:1.6}.first-steps button{margin-left:auto;white-space:nowrap}
.timing-btn{padding-bottom:20px}.timing-btn small{font-size:9px}.timing-track{position:absolute;bottom:8px;left:12px;right:12px;height:6px;border-radius:4px;background:linear-gradient(to right,#52635b 0 54%,#88ac55 54% 78%,#e3ff92 78%);overflow:hidden}.timing-track .timing-fill{position:absolute;top:0;bottom:0;left:0;height:6px;background:#f7ffdb;border-right:3px solid #fff;opacity:.65;transition:width .05s linear}.timing-btn.perfect{background:#47612e;border-color:#efffa8;box-shadow:0 0 18px #d7fb7925}.timing-btn[aria-disabled=true]{cursor:default}.timing-btn.armed{background:#35472c}.training-effect{padding:16px 20px;margin:18px 0;border:1px solid #52653e;background:#223329;display:grid;gap:7px}.training-effect>span{color:#b0c19e;font-size:11px}.training-effect strong{font-size:22px;font-variant-numeric:tabular-nums}.training-effect em{font-style:normal;color:var(--lime)}.training-effect small{color:#a3b599;font-size:10px;line-height:1.6}
@media(max-width:760px){.first-steps{flex-wrap:wrap;gap:5px 10px;padding:10px 12px}.first-steps p{font-size:10px}.first-steps button{padding:2px 0}.timing-btn small{font-size:9px}.training-effect{padding:14px}.training-effect strong{font-size:20px}}
.control-grid .timing-btn{padding:10px 8px 24px;min-height:72px;flex-direction:column;gap:0}.timing-btn.perfect{color:#f1ffd4}.timing-btn.ready small{color:inherit}
.gear-hero{display:grid;grid-template-columns:190px 1fr;background:linear-gradient(135deg,#23392e,#172827);border:1px solid #4d614a;border-radius:8px;padding:22px;gap:26px}.racket-art{position:relative;display:grid;place-items:center;background:radial-gradient(ellipse,#53624455,transparent 70%)}.racket-art svg{max-height:260px;width:100%}.racket-art>span{position:absolute;bottom:0;font:600 14px var(--display);letter-spacing:5px;color:var(--gear)}.gear-info h3{font-size:27px;margin:12px 0}.gear-info p{font-size:12px;line-height:1.9;color:#bbc9b6}.gear-info>small{display:block;font-size:9px;color:var(--muted);margin-top:10px}.racket-specs{display:flex;gap:17px;margin:18px 0 23px;color:var(--muted);font-size:10px}.racket-specs b{font:600 22px var(--display);color:var(--text)}.gear-info .primary{padding:12px 17px}.racket-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0 28px}.racket-option{position:relative;background:#1a2b29;border:1px solid #374c42;padding:16px 13px;text-align:left;border-radius:5px;display:grid;gap:9px}.racket-option.selected{border-color:var(--gear);background:#2a3e30}.racket-option small{font-size:8px;color:var(--gear)}.racket-option b{font-size:12px}.racket-option>span:last-child{font-size:10px;color:var(--muted)}.racket-dot{width:7px;height:7px;border-radius:50%;background:var(--gear);position:absolute;right:10px;top:12px}.string-workbench{padding:23px;border:1px solid #42564b;border-radius:7px;background:#1a2a27}.string-workbench h3{font-size:24px;margin:8px 0}.string-workbench .section-top>b{font-size:11px;color:#a5b995}.string-workbench>p{line-height:1.8;font-size:11px;color:var(--muted)}.string-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:22px 0}.string-fields label{display:grid;gap:10px;font-size:12px;color:#cad9bd}.string-fields select,.routine-choice select{width:100%;max-width:100%;background:#10201d;color:#e1ecd6;border:1px solid #526748;border-radius:4px;padding:11px 8px;font-size:11px}.string-fields input[type=range]{width:100%;accent-color:var(--lime);min-height:28px;margin:0}.string-fields label>b{font-size:17px;color:var(--lime)}.range-labels{display:flex;justify-content:space-between;font-size:9px;color:var(--muted)}.gear-presets{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:10px}.gear-presets>span{margin-right:8px;color:var(--muted)}.gear-presets button{background:#2c4032;border:1px solid #5b704a;border-radius:4px;padding:8px 10px}.gear-effects{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:20px 0}.gear-effects>div{background:#10241e;padding:13px 7px;text-align:center;border-radius:4px}.gear-effects small{display:block;color:var(--muted);font-size:10px;margin-bottom:8px}.gear-effects span{font:500 15px var(--display);color:#97a38f}.gear-effects b{color:var(--lime)}.gear-sources{margin-top:22px;padding:16px;border:1px solid var(--line);font-size:11px;color:var(--muted);line-height:1.9}.gear-sources a{display:block;text-decoration:underline;text-underline-offset:3px;margin-top:5px}.gear-sources summary{cursor:pointer;color:var(--text)}.drill-panel{margin-top:20px;padding:18px;border:1px solid #4b6046;background:#1c3026}.drill-list{display:flex;gap:8px;margin:15px 0}.drill-list button{flex:1;background:#213c2f;border:1px solid #4d6945;border-radius:5px;padding:13px 10px;text-align:left;font-size:12px}.drill-list button.selected{background:#344f31;border-color:var(--lime)}.drill-list small{display:block;color:#a8ba99;font-size:9px;margin-top:6px}.drill-panel ol{line-height:2.2;padding-left:21px;color:#ccdbc1;font-size:12px}.drill-panel>a{font-size:10px;color:var(--lime);text-decoration:underline}#drillCue{color:#d7fb79;font-size:12px}#trainingFocus{color:#bccfb2;font-size:11px;line-height:1.7}.routine-choice{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:20px 0;font-size:12px}.routine-choice select{width:220px}.xp-track{height:5px;background:#2c3d32;border-radius:4px;overflow:hidden}.xp-track>div{height:100%;background:var(--lime);transition:width .3s}.cinema .first-steps{display:none}
@media(max-width:760px){.gear-hero{grid-template-columns:110px 1fr;gap:12px;padding:15px}.racket-art svg{height:190px}.racket-art>span{font-size:10px;letter-spacing:2px}.gear-info h3{font-size:19px;line-height:1.5;margin:8px 0}.gear-info p{font-size:10px;margin:8px 0}.racket-specs{gap:9px;margin:12px 0}.racket-specs b{font-size:16px}.gear-info .primary{font-size:10px;padding:11px}.racket-list{grid-template-columns:1fr 1fr}.racket-option{padding:13px 10px}.racket-option b{font-size:11px}.string-workbench{padding:15px}.string-fields{grid-template-columns:1fr;gap:19px}.string-workbench .section-top{align-items:start;flex-direction:column;gap:7px}.gear-effects{grid-template-columns:1fr 1fr}.gear-effects span{font-size:19px}.drill-panel{padding:14px}.page-tabs b{font-size:11px}.page-tabs button{gap:4px}.training-effect strong{font-size:19px}}

/* Real athlete benchmark */
.comparison-panel{background:#192c26;border:1px solid #708857;border-radius:0 0 8px 8px;padding:16px;margin-bottom:12px}.comparison-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.comparison-top b{font-size:13px;color:var(--lime)}.comparison-top label{font-size:10px;color:#b2c6a6}.comparison-top select{width:auto;font:11px var(--font);padding:6px;margin-left:5px;background:#283e31;border:1px solid #647957;color:#e5efdb}.comparison-panel p{font-size:11px;line-height:1.7;color:#adbf9e;margin:10px 0}.comparison-panel>small{display:block;color:#80977e;font-size:9px;margin-top:6px;line-height:1.6}.comparison-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px}.comparison-metrics>div{border:1px solid #445f43;border-radius:5px;background:#243b2d;padding:12px}.comparison-metrics small{display:block;font-size:10px;color:#a5bc96}.comparison-metrics strong{display:block;color:#e6f4d6;font:500 22px var(--display);margin-top:7px}.comparison-actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 8px}.comparison-actions button{font-size:11px}.comparison-rows{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.comparison-rows span{background:#2d4433;padding:7px 4px;font-size:9px;text-align:center;color:#c7d9b7}#compareInsight{color:var(--lime)}.stage.comparing{padding-top:72px}.compare-labels{top:10px;pointer-events:none}.compare-labels>div{gap:3px}.compare-labels b{font:600 11px var(--font);color:#e1edcf;margin-top:3px}.compare-labels strong{font-size:12px}.stage.comparing .broadcast-label,.stage.comparing .rally-meter,.stage.comparing .shot-badge,.stage.comparing .motion-label{display:none}.stage.comparing:after{top:72px;bottom:15px;pointer-events:none}
@media(max-width:760px){.comparison-panel{padding:12px}.comparison-top{flex-wrap:wrap}.comparison-metrics strong{font-size:19px}.compare-labels strong{font-size:10px}.compare-labels b{font-size:9px}.comparison-rows{grid-template-columns:repeat(2,1fr)}.stage.comparing{aspect-ratio:1.05;max-height:440px;min-height:305px}}

.comparison-rows button{background:#2d4433;padding:8px 4px;font-size:10px;text-align:center;color:#c7d9b7;border:1px solid #50654b;border-radius:4px}.comparison-rows button small{display:block;font-size:8px;color:#a8bb96;margin-top:4px}.comparison-rows button.rescued{border-color:var(--lime);color:var(--lime);background:#3a5030}.comparison-rows button:hover{background:#445d36}

.shot-diagnosis{background:#26372c;border:1px solid #8e8752;border-left:3px solid #e7bc73;border-radius:6px;padding:12px 14px;margin:10px 0}.diagnosis-heading{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.diagnosis-heading span{font-size:9px;color:#d6b37b}.diagnosis-heading strong{font-size:13px;color:#f1e8cb}.shot-diagnosis p{font-size:11px;line-height:1.65;color:#cfceb4;margin:7px 0}.diagnosis-bottom{display:flex;align-items:center;gap:12px;justify-content:space-between}.diagnosis-bottom span{font-size:10px;line-height:1.65;color:#aabf9a}.diagnosis-bottom button{white-space:nowrap;font-size:10px;padding:8px}.training-feedback{padding:10px 12px;border:1px solid #657d42;background:#2a3e2a;color:#d7ecb3;font-size:11px;line-height:1.8;border-radius:5px}.point-banner strong{font-size:24px}.point-banner p{max-width:90%;margin:8px auto;font-size:11px;line-height:1.7}
@media(max-width:760px){.diagnosis-bottom{align-items:stretch;flex-direction:column;gap:8px}.diagnosis-heading{gap:5px}.diagnosis-heading strong{font-size:12px}.shot-diagnosis{padding:10px 12px}.point-banner strong{font-size:19px}}
/* Athlete identity and country selection */
.athlete-identity{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:12px 0;color:#d7e6c8;font-size:11px}.athlete-identity .text-btn{font-size:10px;color:var(--lime)}.athlete-face{display:block;background-image:url('./assets/athlete-portraits-v11.png');background-size:400% 100%;background-repeat:no-repeat;background-color:#17342c;aspect-ratio:1;border-radius:8px}.face-rookie{background-position:0 0}.face-amara{background-position:33.333% 0}.face-arun{background-position:66.667% 0}.face-alex{background-position:100% 0}.avatar .athlete-face{width:100%;height:100%;border-radius:0}.athlete-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:20px 0}.athlete-options button{padding:8px;background:#1c3129;border:1px solid #455844;border-radius:10px;text-align:left;color:#e6eedc}.athlete-options button[aria-pressed=true]{border-color:var(--lime);box-shadow:0 0 0 2px #d7fb7933;background:#31472c}.athlete-options strong{display:block;margin:9px 0 4px;font-size:14px}.athlete-options small{display:block;font-size:9px;line-height:1.5;color:#afc4a5}.identity-country{display:grid;gap:8px;font-size:12px;color:#c5d9b6}.identity-country select{width:100%;padding:12px;background:#213b2e;color:#edf4e5;border:1px solid #698355;border-radius:6px}#identityDialog{width:min(760px,94vw);max-height:90dvh;overflow:auto}#identityStatus{font-size:12px;color:var(--lime);min-height:16px}.career-identity{color:var(--lime);font-size:14px;margin:20px 0}#identityDialog .dialog-head{position:sticky;top:0;background:#14251f;z-index:2}#identityDialog h2{font-size:28px}#identityDialog .micro{line-height:1.7}
@media(max-width:600px){.athlete-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}#identityDialog{padding:18px}.athlete-options .athlete-face{max-height:150px}#identityDialog h2{font-size:24px}}
.athlete-options .athlete-face{aspect-ratio:3/4}.athlete-face{background-size:400% auto}
.face-diego,.face-yusuf,.face-luca,.face-noah{background-image:url('./assets/athlete-portraits-men-v11.png')}.face-mei,.face-amina,.face-anaya,.face-isla{background-image:url('./assets/athlete-portraits-women-v11.png')}.face-diego,.face-mei{background-position:0 0}.face-yusuf,.face-amina{background-position:33.333% 0}.face-luca,.face-anaya{background-position:66.667% 0}.face-noah,.face-isla{background-position:100% 0}.athlete-options{max-height:47dvh;overflow:auto;padding:3px;scrollbar-color:#7f9d59 #182e25}.athlete-options .athlete-face{max-height:none}.identity-country{margin-top:12px}
@media(min-width:900px){#identityDialog{width:900px}.athlete-options{grid-template-columns:repeat(6,minmax(0,1fr));max-height:51dvh}.athlete-options strong{font-size:13px}.athlete-options small{font-size:9px}}
#identityDialog{max-width:calc(100vw - 32px)}
@media(min-width:900px){#identityDialog{padding:26px;width:900px}#identityDialog h2{font-size:26px;margin:12px 0}#identityDialog h2 br{display:none}.athlete-options{margin:14px 0;max-height:48dvh}.athlete-options .athlete-face{height:104px;aspect-ratio:auto}.athlete-options small{line-height:1.3}.athlete-options button{padding:7px}.athlete-options strong{margin:6px 0 3px}#identityDialog .micro{margin:10px 0}#identityStatus{min-height:0;margin:6px 0}}
@media(min-width:900px){.athlete-options .athlete-face{height:96px}#identityDialog{padding:24px}}
@media(max-width:600px){#identityDialog[open]{display:flex;flex-direction:column;height:92dvh;max-height:92dvh;overflow:hidden;padding:14px}#identityDialog .dialog-head{flex-shrink:0}#identityDialog h2{font-size:20px;margin:10px 0 6px}#identityDialog h2 br{display:none}#identityDialog>p{font-size:11px;line-height:1.5;margin:6px 0}.athlete-options{flex:1;min-height:0;max-height:none;align-content:start;overflow:auto;margin:10px 0}.athlete-options .athlete-face{height:112px;aspect-ratio:auto}.identity-country{flex-shrink:0;margin-top:6px;gap:4px}.identity-country select{padding:9px}#identityDialog .micro{font-size:9px;line-height:1.4;margin:7px 0}#applyIdentity{flex-shrink:0;padding:11px}#identityStatus:empty{display:none}}
/* Athlete scouting: a scrollable roster, a readable profile and a fixed action. */
.athlete-summary{display:grid;gap:6px;margin:14px 0 18px;padding:13px;background:#20342b;border-left:3px solid var(--lime);font-size:11px;color:#acbda5}.athlete-summary strong{color:var(--lime);font-size:14px}.athlete-summary .text-btn{text-align:left;padding:8px 0 0;font-size:10px}
#identityDialog[open]{display:flex;flex-direction:column;width:1080px;height:min(760px,94dvh);max-height:94dvh;padding:22px;overflow:hidden}#identityDialog h2{font-size:25px;margin:10px 0 5px}#identityDialog>p{margin:0 0 12px;font-size:12px;color:#aebfa9}.identity-body{display:grid;grid-template-columns:1.15fr 1fr;gap:18px;min-height:0;flex:1}.identity-body .athlete-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;align-content:start;max-height:none;min-height:0;margin:0;overflow:auto}.identity-body .athlete-options .athlete-face{height:80px;aspect-ratio:auto}.identity-body .athlete-options strong{font-size:12px;margin:5px 0 3px}.athlete-role{font-size:9px;color:var(--lime);display:block;line-height:1.5}.identity-body .athlete-options small{font-size:10px;color:#b9c9ad;margin-top:3px}
#athleteDetail{background:#1c3029;border:1px solid #3c5546;border-radius:10px;padding:15px;min-height:0;overflow:auto}.profile-top{display:grid;grid-template-columns:112px 1fr;gap:14px;align-items:center}.profile-top canvas{width:112px;height:132px;border-radius:6px}.profile-top h3{font-size:30px;margin:6px 0 8px}.profile-top .eyebrow{font-size:10px;color:var(--lime)}.profile-top strong{font:600 17px var(--display)}.profile-top p{font-size:11px;color:#adbea5;margin:5px 0 10px}.grip-chip{display:inline-block;border:1px solid #60794b;padding:4px 7px;border-radius:4px;color:#d7e6c8;font-size:10px}#profileMetrics{display:grid;gap:9px;margin:16px 0 7px}.profile-meter{display:grid;grid-template-columns:43px 1fr 75px;gap:10px;align-items:center;font-size:11px}.profile-meter i{height:5px;background:#0f221c;border-radius:4px;overflow:hidden}.profile-meter i b{height:100%;display:block;background:var(--lime);border-radius:4px}.profile-meter strong{text-align:right;font-size:12px}.profile-basis{font-size:9px;color:#94aa96}.profile-pro,.profile-con{font-size:11px;line-height:1.6;margin:10px 0}.profile-pro b{color:var(--lime)}.profile-con b{color:var(--coral)}#profilePlan{font-size:11px;line-height:1.7;color:#d1dfc5;border-top:1px solid #405744;padding-top:10px}.profile-cards{font-size:9px;color:#94aa96;line-height:1.7}.identity-footer{display:grid;grid-template-columns:1fr 1.6fr;gap:18px;align-items:end;flex-shrink:0;padding-top:12px}.identity-footer .identity-country{margin:0}.identity-footer .micro{font-size:9px;margin:0 0 7px!important;line-height:1.4}.identity-footer #identityStatus{font-size:10px;margin:3px 0}.identity-footer #identityStatus:empty{display:none}.identity-footer button{padding:12px}
@media(max-width:760px){#identityDialog[open]{padding:14px;height:94dvh}#identityDialog h2{font-size:19px}#identityDialog>p{font-size:10px;margin-bottom:8px}.identity-body{display:flex;flex-direction:column;gap:9px}.identity-body .athlete-options{display:flex;flex:0 0 158px;overflow-x:auto;overflow-y:hidden;align-items:stretch;padding:3px}.identity-body .athlete-options button{flex:0 0 92px;padding:6px}.identity-body .athlete-options .athlete-face{height:73px}.identity-body .athlete-options strong{font-size:11px}.athlete-role{font-size:8px}.identity-body .athlete-options small{font-size:9px}#athleteDetail{flex:1;min-height:0;padding:12px}.profile-top{grid-template-columns:92px 1fr}.profile-top canvas{width:92px;height:109px}.profile-top h3{font-size:25px}.profile-top p{margin:4px 0 7px}#profileMetrics{gap:8px;margin:12px 0 7px}.identity-footer{grid-template-columns:1fr;gap:8px;padding-top:8px}.identity-country{display:flex;align-items:center;font-size:10px;gap:10px}.identity-country select{flex:1;padding:7px;min-width:0}.identity-footer .micro{font-size:8px}.identity-footer button{padding:10px}#identityDialog .dialog-head{position:static}}
@media(min-width:761px){.identity-body .athlete-options .athlete-face{height:66px}.identity-body .athlete-options button{padding:6px}.identity-body .athlete-options{gap:7px}}

.athlete-options,#athleteDetail{scrollbar-width:thin;scrollbar-color:#8ba765 #1b3027}
.identity-body .athlete-options .athlete-face{width:76px;max-width:100%;margin-inline:auto;background-position-y:25%}

.training-caption{display:none}.training-stage canvas{height:420px;aspect-ratio:auto;min-height:0;object-fit:fill}.practice-dashboard{padding:13px;background:#182f27;border:1px solid #496544;display:grid;gap:9px}.practice-dashboard>span{color:#d7fb79;font-size:12px}.practice-dashboard strong{font-size:11px;color:#c5d8b7}.practice-dashboard small{color:#8da68d;font-size:10px;line-height:1.7}.practice-controls{display:flex;gap:6px}.practice-controls button{flex:1;min-height:38px;background:#2b4431;border:1px solid #638152;border-radius:4px;font-size:11px}.practice-controls button:disabled{opacity:.4}.practice-controls .ready{background:#d7fb79;color:#172b20}@media(max-width:760px){.training-stage canvas{height:390px;max-height:66vh;aspect-ratio:auto}.practice-controls button{font-size:10px}}

.match-prep{padding:22px;margin:0 0 14px;background:linear-gradient(135deg,#2d4430,#182e27);border:1px solid #9cba63;border-radius:9px}.prep-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}.prep-heading h2{font-size:23px;margin:8px 0 16px}.prep-clock{font-size:10px;color:#d4e7af;border:1px solid #7f9956;padding:6px 8px;border-radius:20px;white-space:nowrap}#prepOpponent{font-size:13px;color:#deedcf}#prepTip{font-size:12px;line-height:1.7;color:#a6bd9b}.prep-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:16px 0}.prep-cards button{display:flex;flex-direction:column;text-align:left;padding:11px 9px;gap:8px;background:#1a3228;border:1px solid #5b7847;border-radius:5px}.prep-cards small,.prep-cards span{font-size:9px;color:#a7bf8e}.prep-cards b{font-size:11px;color:#e1efc8}.prep-orders{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.prep-orders label{font-size:10px;color:#aec19d;display:grid;gap:7px}.prep-orders select{width:100%;padding:9px 5px;background:#1c3127;border:1px solid #526e43;border-radius:4px;color:#e3efcd;font-size:11px}.prep-start{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:16px}.prep-start p{font-size:11px;color:#adc19b;line-height:1.8;margin:0}.prep-start button{min-height:44px}@media(max-width:760px){.match-prep{padding:15px}.prep-heading h2{font-size:20px}.prep-cards{grid-template-columns:repeat(2,1fr)}.prep-start{flex-direction:column;align-items:stretch}.prep-orders{gap:5px}.prep-orders select{font-size:10px}.prep-heading .eyebrow{font-size:8px}}

body.app-boot>:not(#bootStatus){visibility:hidden}#bootStatus{position:fixed;inset:0;display:grid;place-items:center;color:#d7fb79;background:#10251f;font:16px sans-serif;z-index:999}body:not(.app-boot) #bootStatus{display:none}

.point-prep{margin:14px 0;padding:20px;border:1px solid #9cba63;border-radius:10px;background:linear-gradient(135deg,#2b432f,#172e28);scroll-margin-top:12px}.point-prep[hidden]{display:none}.point-prep-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.point-prep-heading h2{font-size:22px;margin:7px 0}.point-prep-heading .eyebrow{color:#d7fb79;font-size:10px}#pointPrepReason{font-size:12px;color:#bccbb0;margin:9px 0 15px}.point-plan-grid{display:grid;grid-template-columns:minmax(150px,.75fr) minmax(180px,1fr);gap:20px}.point-board-wrap{max-width:240px;justify-self:center;width:100%}#pointBoard{display:block;width:100%;max-height:300px;cursor:crosshair;touch-action:pan-y}#pointBoard text{fill:#c8dac0;font-size:8px;font-family:sans-serif}.point-board-wrap>small{display:block;color:#b5c5a8;font-size:10px;line-height:1.9;margin-top:7px}.point-board-wrap i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:3px}.opponent-dot{background:#ffb387}.aim-dot{background:#d7fb79}.recovery-dot{background:#8ed7ed;margin-left:10px}.point-orders{display:grid;gap:10px;align-content:start}.point-orders>p{margin:0;font-size:11px;line-height:1.65;color:#c0d1b3}#pointAdvice{color:#96b092;font-size:10px}.point-orders label{display:grid;gap:5px;font-size:10px;color:#b9cba8}.point-orders select{background:#152c23;border:1px solid #607c4c;border-radius:5px;color:#e4efcf;padding:9px;font-size:12px;min-width:0;width:100%}.point-orders .point-plan{padding:9px;background:#122920;border-left:2px solid #d7fb79;font-size:10px}.point-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:15px}.point-cards button{padding:9px 5px;background:#1b3228;border:1px solid #526d44;color:#dbe7c8;border-radius:5px;font-size:10px}.point-cards span{display:block;font-size:9px;color:#9bb585;margin-top:5px}.point-start-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0 10px}.point-start-row p{font-size:12px;color:#cee4b3}.point-start-row button{min-height:45px}.point-help{display:block;font-size:10px;line-height:1.7;color:#9bb293}.point-prep button:focus-visible,.point-prep select:focus-visible{outline:2px solid #d7fb79;outline-offset:3px}@media(max-width:600px){.point-prep{padding:13px}.point-prep-heading{align-items:flex-start;flex-direction:column;gap:2px}.point-prep-heading h2{font-size:19px}.point-plan-grid{grid-template-columns:minmax(115px,.8fr) minmax(150px,1fr);gap:10px}.point-orders{gap:8px}.point-orders select{font-size:11px;padding:9px 4px}.point-board-wrap>small{font-size:9px}.point-start-row{align-items:stretch;flex-direction:column;gap:0}.point-start-row p{margin:0 0 9px}.point-cards{grid-template-columns:repeat(2,1fr)}.point-cards span{display:inline;margin-left:5px}}
.point-cue{position:absolute;right:14px;bottom:46px;z-index:8;padding:11px 14px;border:1px solid #d7fb79;border-radius:6px;background:#1a3025;color:#d7fb79;font-size:12px;box-shadow:0 3px 12px #0004}.point-cue[hidden]{display:none}.point-board-wrap{max-width:210px}#pointBoard{height:auto;max-height:none;aspect-ratio:5/7}@media(max-width:600px){.point-cue{font-size:10px;padding:9px;right:10px;bottom:45px}}
