@charset "UTF-8";
:root{--cream:#fff7e6;--paper:#fffdf6;--green:#367d66;--ink:#314e42;--muted:#7e8b77;--orange:#ffb020;--line:#e9e5d3;--soft:#f1f3e5;--shadow:0 8px 30px #48593809;font-family:ui-rounded,"SF Pro Rounded",system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--cream);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button{font:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:0;color:inherit}button:disabled{cursor:default}button:focus-visible{outline:3px solid #ec9c29;outline-offset:4px}button,summary{min-height:44px}button svg{flex-shrink:0}button:active:not(:disabled){transform:scale(.96)}button{transition:transform .13s,background .15s}svg{display:block;max-width:100%}h1,h2,h3,p{margin:0}h2{font-size:23px;letter-spacing:-.8px}small{font-size:12px}b,strong{font-weight:800}.shell{max-width:1440px;margin:auto;padding:26px 40px 22px}.topbar{display:flex;align-items:center;gap:24px;padding-bottom:25px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;min-width:225px}.brand-art{width:54px;height:54px}.brand h1{font-size:25px;line-height:1.1;letter-spacing:-1px}.brand h1 span{color:#dfa024}.brand p{font-size:10px;letter-spacing:3px;color:var(--muted);font-weight:800;margin-top:6px}.wallet{display:flex;align-items:center;gap:14px;margin-left:auto}.money-icon{height:45px;width:45px;background:#ffedbb;border-radius:14px;display:grid;place-items:center}.wallet-amount{font-size:26px;line-height:1.1;letter-spacing:-1px;font-variant-numeric:tabular-nums}.wallet-sub{font-size:11px;color:var(--muted);margin-top:5px}.fan-chip{display:flex;align-items:center;gap:9px;border-left:1px solid var(--line);padding-left:23px;margin-left:5px}.fan-chip strong{font-size:17px}.fan-chip small{display:block;color:var(--muted)}.toolbar{display:flex;gap:5px;margin-left:14px}.icon-button{min-width:44px;height:44px;border:1px solid var(--line);border-radius:13px;background:#fffaf0;display:grid;place-items:center}.language{font-size:11px;font-weight:800}.intro{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:23px 0 19px}.intro p{font-size:13px;color:var(--muted)}.intro strong{font-size:13px;color:var(--ink)}.season-pill{border:1px solid #d7e5d1;border-radius:20px;padding:8px 12px;font-size:10px;letter-spacing:1px;font-weight:800;color:#608a69;background:#eff3e3;white-space:nowrap}.game-layout{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:25px;align-items:start}.stadium-panel{background:var(--paper);border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow);overflow:hidden;position:sticky;top:16px}.stadium-heading{padding:22px 25px 16px;display:flex;align-items:center;justify-content:space-between;gap:8px}.eyebrow{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:#859785;font-weight:800}.stadium-title{display:flex;align-items:center;gap:9px;font-size:17px;letter-spacing:-.5px;margin-top:5px}.live-dot{width:7px;height:7px;background:#68b782;border-radius:50%;box-shadow:0 0 0 4px #68b78218}.speed-button{background:#f0f2e8;border-radius:10px;padding:0 12px;font-size:11px;font-weight:800;white-space:nowrap}.speed-button.on{background:#ffe9ac;color:#9e701c}.scoreboard{margin:0 20px 16px;background:#315e50;color:#fff6dd;border-radius:17px;padding:16px 17px;position:relative}.score-top{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#abc8b7;margin-bottom:11px;letter-spacing:1px}.score-top #inning-label{background:#ffffff12;border-radius:5px;padding:4px 7px;color:#f7e8b7;letter-spacing:0}.scores{display:grid;grid-template-columns:minmax(0,1fr) repeat(2,36px);gap:7px;align-items:center;font-size:12px}.score-label{font-size:10px;color:#abc8b7;text-align:center}.score-team{display:flex;align-items:center;gap:8px;min-width:0;white-space:nowrap}.score-team .team-name{overflow:hidden;text-overflow:ellipsis}.team-dot{background:#ffc35c;width:7px;height:7px;flex-shrink:0;border-radius:50%}.team-dot.away{background:#bcb4d2}.score-number{font-size:21px;font-weight:800;text-align:center;font-variant-numeric:tabular-nums}.score-hit{color:#bdd3bc;font-size:16px}.field-wrap{padding:0 15px;position:relative}.field-art{width:100%;height:auto}.field-overlay{position:absolute;left:28px;bottom:17px;background:#fff9e9e8;border:1px solid #e9e6cf;border-radius:9px;font-size:10px;padding:7px 9px;display:flex;align-items:center;gap:5px}.out-dot{width:6px;height:6px;border-radius:50%;background:#c7cbb5;display:inline-block}.out-dot.filled{background:#ee9074}.result-ribbon{position:absolute;top:38%;left:50%;transform:translate(-50%,-50%);background:#fff5d5f5;border:3px solid #ffca62;border-radius:18px;padding:15px 22px;text-align:center;box-shadow:0 8px 30px #42684325;white-space:nowrap;z-index:2;animation:pop .4s}.result-ribbon strong{font-size:24px}.result-ribbon p{font-size:12px;margin-top:4px}.result-ribbon[hidden]{display:none}.batter-strip{display:flex;align-items:center;gap:10px;margin:14px 23px 0;padding-bottom:12px;border-bottom:1px dashed var(--line);min-height:48px}.batter-strip .character{width:39px;height:39px}.batter-strip small{color:var(--muted);font-size:10px}.batter-name{font-weight:800;font-size:13px;line-height:1.4}.at-bat{margin-left:auto;font-size:10px;color:#7e9f7c;background:#eff4e7;border-radius:6px;padding:5px 8px}.commentary{height:92px;padding:10px 24px 6px;display:flex;flex-direction:column;gap:5px;overflow:hidden;font-size:11px;color:#8a927f}.commentary p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.commentary p:first-child{color:#536d54;font-weight:650}.commentary .log-inning{display:inline-block;width:36px;color:#a5ad98;font-size:9px}.cheer-section{background:#f6f5e9;border-top:1px solid #ecebdc;padding:15px 23px 21px;position:relative}.cheer-top{display:flex;justify-content:space-between;align-items:center;font-size:11px}.cheer-top strong{color:#4f765b}.cheer-top span{font-variant-numeric:tabular-nums;color:#8b956f}.gauge-track{height:9px;border-radius:20px;background:#e3e6d3;margin:9px 0 11px;position:relative;overflow:hidden}.gauge-fill{height:100%;width:0;background:linear-gradient(90deg,#ffd478,#ffac58);border-radius:20px;transition:width .15s}.gauge-track::after{content:"";position:absolute;left:50%;top:0;width:2px;height:100%;background:#fff9e2aa}.cheer-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.cheer-button{width:48%;min-height:61px;background:var(--orange);border:1px solid #e9a327;border-bottom:4px solid #e29a20;border-radius:15px;box-shadow:0 3px 0 #e6bd7015;font-size:20px;font-weight:900;color:#6b4d20;display:flex;align-items:center;justify-content:center;gap:9px}.cheer-button:disabled{background:#e2e5d6;border-color:#d2d7c1;color:#929f83;box-shadow:none}.cheer-hint{font-size:10px;color:#989e83;text-align:center;margin-top:9px}.fans-dance{min-width:0;display:flex;align-items:end;justify-content:center;gap:0;flex:1}.fan-dancer{min-width:0;position:relative;animation:dance var(--dance-time,1.1s) ease-in-out infinite alternate;transform-origin:bottom center}.fan-dancer:nth-child(2){animation-delay:-.3s}.fan-dancer:nth-child(3){animation-delay:-.6s}.fan-dancer .character{width:54px;height:54px}.fan-dancer.twins{display:flex;align-items:center;width:62px}.fan-dancer.twins .character{width:35px;min-width:0}.fan-dancer.twins .character+ .character{margin-left:-7px}.pom{position:absolute;width:17px;height:17px;border-radius:50%;background:repeating-conic-gradient(#ffa17e 0deg 10deg,#ffd186 10deg 20deg);top:18px;left:-7px;border:3px dotted #ffd58e}.pom.right{left:auto;right:-7px}.tabs{display:flex;gap:5px;background:#eceedd;padding:5px;border-radius:16px;margin-bottom:20px}.tab{display:flex;justify-content:center;align-items:center;gap:7px;flex:1;min-width:0;font-weight:750;font-size:12px;border-radius:11px;background:transparent;min-height:46px;color:#8b957b}.tab.active{background:var(--paper);color:var(--green);box-shadow:0 3px 7px #39573508}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:8px}.panel-heading p{font-size:11px;color:var(--muted);margin-top:5px;line-height:1.6}.tiny-pill{font-size:10px;color:#7e977b;background:#edf1e0;padding:6px 8px;border-radius:8px;white-space:nowrap}.harvest-card{position:relative;background:#edf3de;border:1px solid #e0e8ce;border-radius:23px;overflow:hidden;padding:17px 20px 13px;text-align:center;margin-bottom:19px}.harvest-top{display:flex;align-items:center;justify-content:space-between;text-align:left}.harvest-top strong{font-size:12px}.harvest-top small{color:#8c9a7e;font-size:10px}.harvest-button{background:transparent;width:100%;height:207px;display:block;position:relative;margin-top:-4px;border-radius:15px;outline-offset:-4px}.orchard-art{width:100%;height:100%;overflow:visible}.harvest-button:hover .orchard-art{filter:brightness(1.025)}.harvest-button.bounce .orchard-art{animation:tree-bounce .28s}.harvest-caption{background:#fff9e7;padding:7px 13px;font-size:11px;border-radius:20px;display:inline-flex;align-items:center;gap:6px;color:#7d865f;border:1px solid #e7e8d0}.harvest-caption strong{color:#a78435}.section-label{display:flex;align-items:center;justify-content:space-between;font-size:12px;margin-bottom:11px}.section-label small{color:var(--muted);font-size:10px}.farm-list{display:flex;flex-direction:column;gap:8px}.farm-row{display:flex;align-items:center;gap:11px;background:var(--paper);border:1px solid var(--line);border-radius:15px;padding:9px 12px;min-height:75px}.farm-face{height:48px;width:48px;display:grid;place-items:center;background:#f3f2e3;border-radius:12px;flex-shrink:0}.farm-face .character{height:46px;width:46px}.farm-copy{min-width:0;flex:1}.farm-copy h3{font-size:12px;display:flex;align-items:center;gap:7px}.owned-badge{font-size:9px;background:#eff1e4;color:#859176;padding:2px 5px;border-radius:4px}.farm-copy p{font-size:10px;color:#8b957d;margin-top:5px}.buy-button{background:#edf2e1;border:1px solid #d9e4cc;color:#527953;min-width:98px;padding:7px 10px;border-radius:10px;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:5px;min-height:44px}.buy-button:disabled{background:#f3f1e7;border-color:#e9e5d8;color:#aaa999}.buy-button.available{background:#ffedbf;border-color:#edcf8c;color:#8f6b27}.buy-button small{font-weight:500}.economy-note{font-size:10px;color:#96a087;line-height:1.6;margin-top:13px;display:flex;gap:6px;align-items:center}.roster-summary{background:#edf3de;border:1px solid #e0e8ce;border-radius:17px;padding:15px;margin-bottom:15px;display:flex;align-items:center;gap:12px}.roster-summary p{font-size:11px;line-height:1.6;color:#87977e;margin-top:3px}.roster-summary strong{font-size:13px}.roster-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.player-card{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:17px;padding:12px 9px;text-align:center;overflow:hidden}.player-card.locked{background:#f7f5e9}.player-card .portrait{margin:auto;width:81px;height:81px}.player-card.locked .portrait{opacity:.7}.player-card h3{font-size:13px;margin-top:5px}.player-role{font-size:9px;color:#89957c;margin:4px 0 9px;min-height:23px}.level-tag{position:absolute;top:9px;right:8px;font-size:9px;color:#7d9573;background:#eaf1db;border-radius:6px;padding:4px 6px}.player-card .buy-button{width:100%;min-width:0;font-size:10px;padding:6px 3px;gap:3px}.stats-row{display:flex;justify-content:center;gap:5px;margin:0 0 10px;font-size:9px;color:#7a8a70}.stat b{display:block;font-size:10px;line-height:1.5;color:#5f765b}.scarecrow-note{display:flex;gap:8px;align-items:center;font-size:10px;color:#89977b;margin-top:14px;line-height:1.6}.scarecrow-note .character{flex-shrink:0}.cheer-upgrade{margin-top:16px;border:1px solid #e5dfcf;background:#fff5df;padding:14px;border-radius:15px;display:flex;align-items:center;gap:10px}.cheer-upgrade p{font-size:10px;color:#969077;margin-top:4px;line-height:1.5}.cheer-upgrade strong{font-size:12px}.cheer-upgrade .buy-button{margin-left:auto;flex-shrink:0;min-width:78px;font-size:11px}.league-hero{background:#edf3de;border:1px solid #dee7ce;border-radius:20px;padding:21px;text-align:center;margin-bottom:16px}.league-hero>svg{margin:auto;color:#d09e39}.league-hero h3{font-size:22px;margin-top:12px}.league-hero p{font-size:11px;color:#86997b;margin-top:6px}.promotion-track{height:10px;background:#dce4cd;border-radius:10px;margin:17px 0 8px;overflow:hidden}.promotion-fill{height:100%;border-radius:10px;background:#85b780}.league-stats{display:flex;justify-content:space-around;margin-top:18px;padding-top:14px;border-top:1px solid #dce5ce}.league-stats strong{font-size:20px;display:block}.league-stats small{color:#859779;font-size:10px}.league-ladder{display:flex;flex-direction:column;gap:7px}.league-row{display:flex;align-items:center;gap:10px;background:#fffaf0;border:1px solid var(--line);padding:10px 13px;border-radius:12px;min-height:57px}.league-row.current{background:#fff0c5;border-color:#edce8a}.league-row .league-rank{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:#eeefdf;font-size:11px;font-weight:800}.league-row.current .league-rank{background:#ffdb82;color:#886723}.league-row strong{font-size:12px;display:block}.league-row small{font-size:9px;color:#939b82}.league-status{margin-left:auto;color:#929c7c;font-size:10px}.opponents{display:flex;justify-content:space-around;gap:5px;margin-top:13px}.opponent{text-align:center;width:18%;font-size:9px;color:#8e977d}.opponent .character{margin:0 auto 4px}.footer{display:flex;justify-content:space-between;gap:8px;padding-top:22px;margin-top:23px;border-top:1px solid var(--line);font-size:10px;color:#a1a58b}.footer span:first-child{letter-spacing:1px}.footer #save-status{letter-spacing:0}.golden-button{position:fixed;right:14%;top:40%;width:85px;height:85px;background:#ffe9a4;border:3px solid #fff9da;border-radius:50%;z-index:15;box-shadow:0 0 35px #ffd874aa;animation:golden-float 2s ease-in-out infinite;display:flex;flex-direction:column;align-items:center;justify-content:center}.golden-button .character{height:57px;width:57px}.golden-button small{font-size:9px;line-height:1;color:#a27a20;font-weight:800}.golden-button[hidden]{display:none}#float-layer{position:fixed;inset:0;pointer-events:none;z-index:50;overflow:hidden}.float-number{position:absolute;font-size:21px;font-weight:900;color:#c98d2e;text-shadow:0 2px #fff6de;animation:float-up .9s ease-out forwards;white-space:nowrap}.float-number.cheer-float{color:#ed9271}.float-number.reward-float{color:#4c976a}.confetti{position:absolute;width:8px;height:13px;border-radius:2px;animation:confetti-fall 1.5s ease-out forwards}#toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);border-radius:15px;background:#315e50;color:#fff7e6;padding:13px 19px;font-size:12px;box-shadow:0 6px 30px #324e4225;z-index:70;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:calc(100% - 32px);width:max-content;text-align:center}#toast.visible{opacity:1;transform:translate(-50%,0)}dialog{border:1px solid #e5dfc8;border-radius:24px;background:var(--paper);color:var(--ink);box-shadow:0 20px 90px #29473733;padding:28px;width:420px;max-width:calc(100% - 32px)}dialog::backdrop{background:#30483955;backdrop-filter:blur(4px)}dialog h2{font-size:23px;text-align:center}dialog p{font-size:12px;line-height:1.8;color:#839078;margin-top:12px;text-align:center}.modal-art{display:flex;justify-content:center;margin-bottom:10px}.modal-rewards{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.modal-rewards div{background:#f1f3e5;border-radius:13px;text-align:center;padding:12px}.modal-rewards strong{display:block;font-size:22px}.modal-rewards small{font-size:11px;color:#8b957d}.modal-button{width:100%;border:1px solid #e8be6c;border-bottom-width:3px;min-height:48px;background:#ffdf95;border-radius:12px;font-weight:800;font-size:13px;margin-top:13px}.modal-button.secondary{background:#eef0e2;border-color:#dee2cf;color:#7f9073}.modal-button.danger{background:#ffe0d7;border-color:#eabeb1;color:#af6c5c}.settings-line{display:flex;justify-content:space-between;align-items:center;font-size:12px;padding:12px 0;border-bottom:1px solid var(--line);gap:12px}.settings-line .icon-button{padding:0 12px}.modal-version{font-size:10px;text-align:center;color:#a2a68c;margin-top:15px}.bounce{animation:pop .3s}.ball-hit{animation:ball-fly .6s ease-out}.money-pop{animation:money-glow .4s}.empty-line{opacity:.45}
@keyframes dance{from{transform:translateY(1px) rotate(-5deg)}to{transform:translateY(-6px) rotate(5deg)}}@keyframes tree-bounce{0%,100%{transform:scale(1)}40%{transform:scale(.95,1.04) rotate(-1deg)}70%{transform:scale(1.025,.98)}}@keyframes pop{0%{scale:.88}55%{scale:1.06}100%{scale:1}}@keyframes float-up{0%{opacity:1;transform:translate(-50%,-10px) scale(.8)}20%{transform:translate(-50%,-25px) scale(1.08)}100%{opacity:0;transform:translate(-50%,-95px) scale(.92)}}@keyframes golden-float{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-15px) rotate(5deg)}}@keyframes ball-fly{0%{opacity:1;transform:translate(0,0)}70%{opacity:1;transform:translate(90px,-100px)}100%{opacity:0;transform:translate(150px,-140px)}}@keyframes money-glow{50%{color:#dc9c24;transform:translateY(-2px)}}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-20px) rotate(0)}100%{opacity:0;transform:translate(var(--drift),250px) rotate(500deg)}}
@media(min-width:1450px){.shell{padding-top:35px}.game-layout{gap:35px}.field-wrap{padding:0 20px}.stadium-panel{top:25px}}
@media(max-width:1100px){.shell{padding:22px 24px}.topbar{gap:15px}.brand{min-width:190px}.brand h1{font-size:22px}.wallet{gap:9px}.fan-chip{padding-left:12px}.toolbar{margin-left:0}.game-layout{gap:18px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.cheer-section{padding:13px 17px 17px}.fan-dancer .character{height:45px;width:45px}.cheer-button{font-size:17px;min-height:56px}.farm-row{gap:8px;padding:9px}.buy-button{min-width:84px;font-size:11px}.player-card{padding:10px 5px}.stats-row{gap:4px}.player-role{font-size:8px}.stadium-heading{padding:18px 20px 15px}}
@media(max-width:800px){.shell{padding:18px 16px}.topbar{flex-wrap:wrap;gap:14px 8px;padding-bottom:16px}.brand{flex:1;min-width:0}.brand h1{font-size:23px}.brand-art{width:44px;height:44px}.brand p{font-size:8px;letter-spacing:2.5px}.toolbar{margin-left:auto;gap:5px}.wallet{order:3;margin:0;width:100%;border-top:1px dashed var(--line);padding-top:14px;gap:10px}.money-icon{height:37px;width:37px;border-radius:11px}.money-icon .character{height:34px;width:34px}.wallet-amount{font-size:23px}.wallet-sub{font-size:10px}.fan-chip{margin-left:auto;border:0;padding-left:12px}.fan-chip strong{font-size:16px}.fan-chip small{font-size:10px}.intro{margin:17px 0 14px}.intro p{font-size:11px}.intro strong{font-size:11px}.season-pill{font-size:8px;padding:7px 9px;letter-spacing:.7px}.game-layout{grid-template-columns:minmax(0,1fr);gap:20px}.stadium-panel{position:static;border-radius:21px}.stadium-heading{padding:16px 18px 12px}.stadium-title{font-size:15px;margin-top:4px}.eyebrow{font-size:8px}.scoreboard{margin:0 15px 11px;padding:12px 14px;border-radius:13px}.scores{grid-template-columns:minmax(0,1fr) repeat(2,31px);font-size:11px;gap:3px}.score-top{font-size:8px;margin-bottom:7px}.score-number{font-size:18px}.score-hit{font-size:14px}.field-wrap{padding:0 11px}.field-art{max-height:222px}.field-overlay{left:23px;bottom:12px;padding:5px 7px;font-size:9px}.batter-strip{margin:9px 18px 0;padding-bottom:8px;min-height:40px}.batter-strip .character{height:34px;width:34px}.batter-name{font-size:12px}.commentary{height:80px;padding:8px 18px;gap:4px;font-size:10px}.cheer-section{padding:12px 17px 14px}.gauge-track{height:8px;margin:8px 0}.cheer-row{gap:8px}.cheer-button{width:51%;min-height:52px;font-size:19px}.fan-dancer .character{height:46px;width:46px}.cheer-hint{margin-top:7px;font-size:9px}.tabs{margin-bottom:17px}.harvest-button{height:205px}.farm-row{padding:10px 12px;gap:11px}.buy-button{min-width:99px}.roster-grid{gap:10px}.player-card{padding:13px 8px}.player-role{font-size:9px}.stats-row{gap:5px}.result-ribbon{padding:12px 18px}.result-ribbon strong{font-size:20px}.footer{font-size:9px}.golden-button{right:7%;top:33%}}
@media(max-width:380px){.brand h1{font-size:19px}.brand-art{width:36px;height:36px}.toolbar{gap:3px}.icon-button{min-width:44px;width:44px}.intro{align-items:flex-start}.intro p{max-width:190px;line-height:1.6}.season-pill{font-size:7px}.roster-grid{gap:6px}.player-card{padding:12px 4px}.player-role{font-size:8px}.stats-row{gap:3px;font-size:8px}.player-card .portrait{width:70px;height:70px}.player-card .buy-button{font-size:9px}.cheer-upgrade{padding:10px;gap:6px}.cheer-upgrade .character{width:36px;height:36px}.farm-face{width:42px;height:44px}.farm-copy h3{font-size:11px}.buy-button{min-width:88px}.fan-dancer .character{width:42px;height:42px}.cheer-button{font-size:17px}.footer{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.float-number{animation:float-up .2s linear forwards!important}.confetti{display:none}}

/* 폰 세로: 경기장을 화면 절반쯤으로 줄여 농장·선수단이 바로 아래 보이게 (10-07 소피) */
@media(max-width:800px){.intro{display:none}
.topbar{padding-bottom:10px;gap:10px 8px}.wallet{padding-top:10px}
.game-layout{gap:14px;margin-top:12px}
.stadium-heading{padding:10px 14px 6px}.stadium-heading .eyebrow{display:none}
.scoreboard{margin:0 12px 8px;padding:8px 12px}.score-top{margin-bottom:4px}.score-number{font-size:16px}
.field-wrap{padding:0 10px}.field-art{max-height:150px}.field-overlay{left:18px;bottom:8px}
.batter-strip{margin:6px 14px 0;padding-bottom:4px;min-height:0}.batter-strip .character{height:26px;width:26px}
.commentary{height:auto;padding:4px 14px 6px;overflow:hidden}.commentary>*:not(:first-child){display:none}
.cheer-section{padding:8px 14px 10px}.gauge-track{margin:5px 0}.cheer-button{min-height:48px}
.fan-dancer .character{height:36px;width:36px}.cheer-hint{display:none}
.harvest-button{height:170px}}

/* 중계 줄 회·타순 띄우기, 나무 옆 망고 수, 폰 아래 고정 버튼 (10-08 클로이 의견) */
.commentary .log-inning{margin-right:.6em;white-space:nowrap}
.harvest-count{font-weight:600;color:var(--muted);font-size:.85em;margin-left:4px}
.action-dock{display:none}
.dock-button{border:0;border-radius:18px;background:var(--green);color:#fff;font:inherit;font-size:19px;font-weight:800;min-height:56px;box-shadow:0 6px 0 #2a6352,0 10px 24px #2a635233;touch-action:manipulation;cursor:pointer}
.dock-button:active{transform:translateY(3px);box-shadow:0 3px 0 #2a6352}
.dock-button.cheer-mode{background:var(--orange);color:#4a3000;box-shadow:0 6px 0 #d18a00,0 10px 24px #d18a0033}
@media(max-width:800px){body{padding-bottom:84px}
.action-dock{display:block;position:fixed;left:0;right:0;bottom:0;z-index:40;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(#fff7e600,var(--cream) 35%)}
.dock-button{width:100%}}
/* 넓은 화면: 우리 공격인데 응원 버튼이 화면 밖이면 오른쪽 아래에 떠 있는 「응원!」 (10-08 리아) */
@media(min-width:801px){body.float-cheer .action-dock{display:block;position:fixed;right:24px;bottom:24px;z-index:40}
body.float-cheer .dock-button{padding:0 30px}}

/* v0.2: collection, editable nine, finals, and memories between seasons. */
.series-label{background:#ffffff15;color:#ffe3a0;border:1px solid #d8c37b44;border-radius:8px;padding:7px 9px;margin-bottom:10px;font-size:11px;font-weight:800;line-height:1.5}
.series-label[hidden]{display:none}
.lineup-editor{background:#f2f4e7;border:1px solid #dfe5ce;padding:15px;border-radius:17px;margin-bottom:21px}
.lineup-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px}
.lineup-heading span{font-size:9px;color:#8b987b;flex-shrink:0}
.auto-lineup-button{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;min-height:44px;background:#fff2ce;color:#907134;border:1px solid #e4d1a2;border-radius:10px;font-size:12px;font-weight:800;margin-top:11px}
.lineup-editor>p{font-size:10px;color:#8c977f;line-height:1.7;margin:8px 0}
.lineup-slots{display:flex;flex-direction:column;gap:4px}
.lineup-slot{display:flex;align-items:center;gap:6px;min-width:0;padding:3px 5px;background:#fffdf5;border-radius:10px;border:1px solid #e5e8d9}
.slot-number{width:18px;text-align:center;font-size:10px;font-weight:800;color:#aab094;flex-shrink:0}
.lineup-slot>.character{flex-shrink:0;width:30px;height:30px}
.slot-title{font-size:11px;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.slot-button{width:44px;min-width:44px;min-height:44px;border-radius:8px;background:#f0f3e6;font-weight:800;font-size:16px}
.slot-button:disabled{background:#f8f8f0;color:#ccd1bd}
.lineup-toggle{min-height:44px;display:block;width:100%;border-radius:9px;background:#eef0e4;color:#8a947a;font-size:10px;font-weight:750;margin-top:6px;padding:5px 2px}
.lineup-toggle.selected{background:#e2efda;color:#5d865d}
.rarity-label{display:block;font-size:9px;color:#99a088;margin-top:2px}
.rarity-rare{border:2px solid #99bfe4;background:#f7fbff}
.rarity-rare .rarity-label{color:#6595c2}
.rarity-legendary{border:2px solid #e5c778;background:#fffae9}
.rarity-legendary .rarity-label{color:#ba953f}
.rarity-legendary .level-tag{background:#fff0b4;color:#9e7e33}
.player-skill{font-size:9px;color:#a58b52;line-height:1.5;margin-bottom:8px;min-height:28px}
.player-card .stats-row{flex-wrap:wrap}
.player-card .buy-button{white-space:normal;line-height:1.45}
.legend-sparkle{animation:legend-twinkle 1.9s ease-in-out infinite;transform-origin:center}
.trophy-shelf{padding:18px;margin-bottom:19px;background:#fff4d9;border:1px solid #ead9af;border-radius:18px}
.trophy-shelf h3{font-size:13px}.trophy-shelf>p{font-size:11px;color:#a79b7b;line-height:1.8;margin-top:12px}
.trophy-bonuses{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px;font-size:10px;color:#ab8e49}
.trophy-bonuses span{background:#ffebbb;border:1px solid #ecd7a4;padding:5px 7px;border-radius:6px}
.trophy-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}
.trophy-item{display:flex;align-items:center;flex-direction:column;gap:5px;padding:11px 4px;background:#fffaf0;border:1px solid #eddeb9;border-radius:11px;color:#bd9441}
.trophy-item strong{font-size:11px}.trophy-item small{font-size:9px;color:#b6a57f}
.champion-hero{background:#fff0c8;border-color:#e3c476}.champion-hero h3{color:#af8329;font-size:21px}
.boss-preview{display:flex;gap:13px;align-items:center;background:#efedf2;border:1px solid #d6d1df;border-radius:15px;padding:13px;margin-top:18px}
.boss-preview>svg{flex-shrink:0}.boss-preview strong{font-size:13px;color:#766781}.boss-preview p{font-size:10px;color:#978ba2;margin-top:5px}
.replacement-list{display:flex;flex-direction:column;gap:5px;margin-top:14px}
.replacement-list button{display:flex;align-items:center;gap:10px;text-align:left;padding:5px 10px;border:1px solid #e4e7d7;border-radius:10px;background:#f3f5e8;font-size:12px}
.replacement-list button span{flex:1}.modal-art{align-items:center}.modal-art>svg{flex-shrink:0}
#modal{max-height:calc(100dvh - 32px);overflow-y:auto}
@keyframes legend-twinkle{0%,100%{opacity:.45;scale:.95}50%{opacity:1;scale:1.04}}
@media(max-width:800px){.lineup-editor{padding:11px}.lineup-slot{gap:4px;padding:2px}.slot-title{font-size:10px}.slot-button{width:44px;min-width:44px}.lineup-heading{font-size:11px}.series-label{font-size:10px;padding:5px 7px;margin-bottom:6px}.trophy-shelf{padding:14px}.opponent{overflow-wrap:anywhere}.player-skill{font-size:8px}.player-card .buy-button{font-size:9px}.modal-art .character{max-width:34%}}

/* v0.2.1: readable stats, welcome parade, smell faces, and a safe golden lane. */
.stats-bars{display:flex;flex-direction:column;gap:5px;margin:9px 0 12px}
.stat-item{display:grid;grid-template-columns:28px minmax(0,1fr) 30px;align-items:center;gap:3px;font-size:9px;text-align:left;color:#7a8d72}
.stat-item>b{text-align:right;font-size:9px;font-variant-numeric:tabular-nums;color:#536e58}
.stat-track{height:7px;border-radius:8px;background:#e4e8d8;position:relative;overflow:visible}
.stat-fill{display:block;height:100%;background:#c5cdb0;border-radius:8px}.stronger .stat-fill{background:#91bd8c}
.stat-marker{position:absolute;top:-3px;height:13px;width:2px;background:#d79560;border-radius:2px}
.stat-reference-note{font-size:10px;color:#a78f64;margin:-9px 0 14px;line-height:1.6}
.development-trophy{border-style:dashed;background:#f1f3e6;color:#839774}.development-trophy small{line-height:1.6;text-align:center;color:#a0a389}
.recruit-layer{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:4}
.recruit-new{position:absolute;bottom:15px;left:30%;display:flex;align-items:center;flex-direction:column;animation:recruit-enter 1.8s ease-in-out both}
.recruit-new small{background:#fff6d9;padding:4px 7px;border-radius:8px;color:#8d855f;font-size:9px;white-space:nowrap}
.recruit-goodbye{position:absolute;bottom:19px;right:24%;animation:recruit-exit 1.8s ease-in-out both}
.wave-hand{animation:hand-wave .23s ease-in-out infinite alternate;transform-origin:72px 75px}
.cheer-squad-controls{display:flex;flex:1;min-width:0;gap:4px;align-items:center}
.cheer-add{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;width:44px;min-width:44px;min-height:44px;border-radius:12px;background:#e5efda;border:1px solid #cfdec1;color:#678764;line-height:1.1}
.cheer-add>b{font-size:23px}.cheer-add>small{font-size:8px}.cheer-add:disabled{color:#a3ae92;background:#edf0e2}
.golden-button{width:48px;height:48px;min-height:48px;right:auto;bottom:auto;border-width:2px;animation:golden-edge-wiggle 1.5s ease-in-out infinite;transition:top .45s ease-in-out;z-index:45}
.golden-button .character{width:32px;height:32px}.golden-button small{font-size:7px}
@media(min-width:801px){.shell{padding-right:80px}body.float-cheer .action-dock{right:84px}}
@media(min-width:801px) and (max-width:1000px){.topbar{flex-wrap:wrap}.brand{flex:1}.wallet{order:3;margin-left:0}.toolbar{margin-left:auto}}
@media(max-width:800px){.action-dock{background:var(--cream)}.dock-button{width:calc(100% - 60px)}.cheer-button{width:46%}.stat-item{grid-template-columns:25px minmax(0,1fr) 26px;gap:2px;font-size:8px}.stat-item>b{font-size:8px}.stat-track{height:6px}.recruit-new{bottom:5px}.recruit-goodbye{bottom:5px}.recruit-new .character{height:49px;width:49px}.recruit-goodbye .character{height:45px;width:45px}}
@keyframes recruit-enter{0%{transform:translateX(-150px);opacity:0}15%{opacity:1}60%,85%{transform:translateX(0);opacity:1}100%{opacity:0}}
@keyframes recruit-exit{0%,20%{transform:translateX(0);opacity:1}100%{transform:translateX(160px);opacity:0}}
@keyframes hand-wave{from{transform:rotate(-8deg)}to{transform:rotate(9deg)}}
@keyframes golden-edge-wiggle{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-2px) rotate(4deg)}}

/* 좁은 폭: 응원 버튼 글자가 두 줄로 깨지지 않게, 응원단은 줄어들고 「+」는 그대로 (10-08 소피) */
.cheer-button{white-space:nowrap;flex:0 0 auto;min-width:0}
.cheer-squad-controls{display:flex;align-items:center;gap:6px;flex:1 1 0;min-width:0;overflow:hidden}
@media(max-width:560px){.cheer-button{width:44%;font-size:16px;padding:0 10px}.cheer-button svg{width:20px;height:20px}
.fan-dancer .character{height:30px;width:30px}.fans-dance .pom{transform:scale(.7)}}
