@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700;800;900&display=swap');
:root{--green:#123e32;--ink:#18352b;--paper:#f5f6ee;--lime:#e9f578;--muted:#69766b;--line:#d6ddce}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Noto Sans TC',sans-serif;font-size:16px;line-height:1.65}button,a,input{touch-action:manipulation}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible+span{outline:3px solid #9ab32b;outline-offset:5px}header{max-width:1440px;margin:auto;min-height:94px;padding:22px 5%;display:flex;align-items:center;gap:40px;border-bottom:1px solid var(--line)}.brand{font-weight:900;display:flex;align-items:center;gap:10px;font-size:22px;white-space:nowrap}.brand-mark{background:var(--green);color:var(--lime);width:33px;height:37px;display:grid;place-content:center;clip-path:polygon(0 0,100% 0,100% 72%,50% 100%,0 72%);font:bold 24px Georgia}.brand-en{font-size:12px;letter-spacing:1px;max-width:50px;white-space:normal;line-height:1.25}nav{display:flex;gap:30px;margin-left:auto;font-size:14px;font-weight:600}.header-note{font-size:14px;border-left:1px solid var(--line);padding-left:25px;color:var(--muted)}.opening{max-width:1440px;margin:auto;padding:58px 5% 60px;display:grid;grid-template-columns:1fr 1.25fr;gap:65px}.eyebrow{font-size:12px;letter-spacing:1.5px;font-weight:700;margin:0 0 22px}h1{font-size:clamp(40px,4.3vw,65px);line-height:1.3;letter-spacing:-2px;margin:0;font-weight:900}h1 span{display:inline-block;box-shadow:inset 0 -12px var(--lime)}.intro-copy{font-size:17px;margin:25px 0;color:#536258}.ticket{display:flex;flex-wrap:wrap;align-items:center;max-width:370px;border:1px solid #bfc8b5;padding:16px 20px;gap:6px 15px;transform:rotate(-2deg);background:#edf0e2}.ticket span{font-size:13px;border:1px solid #aebaa3;padding:2px 7px}.ticket strong{font-size:14px}.ticket small{font-size:12px;color:var(--muted)}.intro-bottom{display:flex;justify-content:space-between;max-width:370px;margin-top:30px;font-size:13px;color:var(--muted)}.issue{font-size:12px;letter-spacing:1px;text-align:right}.quiz-wrap{background:var(--green);border-radius:8px;color:white;padding:30px 34px 24px;align-self:start;box-shadow:8px 8px 0 #dce2cf}.quiz-top{display:flex;justify-content:space-between;font-size:12px;font-weight:600;letter-spacing:1.5px;color:#c6d5b8}.progress{height:3px;background:#476456;margin:18px 0 30px}.progress>div{height:100%;background:var(--lime);transition:width .3s;width:20%}.question-kicker{font-size:13px;color:var(--lime);margin:0 0 10px}.question-title{font-size:27px;line-height:1.5;letter-spacing:-.6px;margin:0 0 7px}.question-hint{color:#b9cbbf;font-size:14px;margin:0 0 24px}fieldset{border:0;padding:0;margin:0}.options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.option{position:relative;cursor:pointer}.option input{position:absolute;opacity:0;width:1px;height:1px}.option>span{display:flex;gap:11px;align-items:center;border:1px solid #577569;border-radius:5px;min-height:75px;padding:13px;color:#edf2e9;transition:.18s}.option:hover>span{background:#254f40;border-color:#abc193}.option input:checked+span{background:var(--lime);border-color:var(--lime);color:var(--green)}.option-letter{font:15px Georgia;border:1px solid currentColor;border-radius:50%;height:26px;min-width:26px;display:grid;place-items:center;opacity:.75}.option-copy{font-size:14px;font-weight:600;line-height:1.55}.error{font-size:14px;color:#ffcf9f;min-height:24px;margin:12px 0 5px}.quiz-actions{display:flex;align-items:center;gap:15px;border-top:1px solid #416253;padding-top:20px}.text-button{border:0;background:none;color:#c6d6ca;padding:8px 0;font-size:14px}.text-button:disabled{opacity:.35;cursor:default}.quiz-actions>span{font-size:12px;color:#a6beb0;margin-left:auto}.primary{border:0;background:var(--lime);color:var(--green);font-weight:800;padding:12px 20px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;gap:20px}.primary:hover{background:#f2ff8f}.quiz-foot{margin:23px 0 0;font-size:12px;color:#aac0b1;text-align:center}.ticker{background:var(--lime);display:flex;justify-content:space-around;gap:30px;overflow:hidden;white-space:nowrap;padding:14px 20px;border-block:1px solid #cbd758;font-size:13px;font-weight:700;letter-spacing:2px}.section{max-width:1440px;margin:auto;padding:68px 5%}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:32px}.section-head .eyebrow{margin-bottom:12px}h2{font-size:31px;line-height:1.4;margin:0;font-weight:800;letter-spacing:-1px}.section-head>p{font-size:14px;color:var(--muted);margin:0}.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.team-card{border:1px solid var(--line);background:#fff;border-radius:5px;overflow:hidden}.team-portrait{height:270px;position:relative;background:var(--team-bg,#e5e8dc);overflow:hidden}.team-word{position:absolute;left:18px;top:15px;font-weight:900;font-size:26px;letter-spacing:-1px;color:var(--team-color,#123e32);opacity:.3}.team-portrait img{position:absolute;width:100%;height:100%;object-fit:contain;object-position:center center;transition:transform .35s}.team-card:hover img{transform:scale(1.04)}.player-tag{display:block;background:var(--green);color:white;font-size:12px;font-weight:600;padding:7px 16px}.player-photo{position:absolute;inset:0;width:100%;height:100%;border:0;padding:0;margin:0;background:none;cursor:pointer;display:block;text-align:left;z-index:1}.player-photo:focus-visible{outline:3px solid var(--lime);outline-offset:-3px}.team-portrait .player-photo img{position:absolute}.play-badge{position:absolute;right:12px;bottom:12px;background:rgba(18,62,50,.88);color:var(--lime);font-size:12px;font-weight:700;padding:6px 10px;border-radius:20px;display:inline-flex;align-items:center;gap:4px;opacity:0;transform:translateY(6px);transition:.2s}.team-portrait:hover .play-badge,.player-photo:focus-visible .play-badge{opacity:1;transform:translateY(0)}.result-person .player-photo{position:relative;align-self:end;height:190px;width:46%;inset:auto}.result-person .player-photo img{position:static;height:100%;width:100%}.result-person .play-badge{opacity:1;transform:none;right:6px;bottom:6px;font-size:11px;padding:5px 8px}.video-frame{position:relative;width:100%;padding-top:56.25%;margin:20px 0;background:#000;border-radius:6px;overflow:hidden}.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.team-info{padding:20px}.team-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.team-top h3{margin:0;font-size:21px}.team-label{font-size:12px;border:1px solid var(--line);padding:2px 8px;white-space:nowrap}.team-info p{font-size:14px;color:var(--muted);margin:10px 0 20px;min-height:46px}.team-links{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:15px;font-size:14px}.team-links button{border:0;padding:0;background:transparent;font-weight:700;color:var(--ink)}.team-links a{font-size:14px;color:var(--muted)}.venues{border-top:1px solid var(--line)}
.venue-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px}
.venue-tab{border:1px solid var(--line);background:#fff;color:var(--ink);padding:9px 18px;border-radius:30px;font-size:14px;font-weight:700}
.venue-tab[aria-selected="true"]{background:var(--team-color,var(--green));border-color:var(--team-color,var(--green));color:#fff}
.venue-tab:hover{border-color:var(--team-color,var(--green))}
.venue-panel{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.venue-panel.single{grid-template-columns:minmax(0,640px);justify-content:start}
.venue-card{background:var(--team-bg,#e5e8dc);border-radius:8px;padding:22px;position:relative}
.venue-kicker{font-size:12px;font-weight:700;letter-spacing:1px;color:var(--team-color,var(--green))}
.venue-card img{width:100%;height:280px;object-fit:cover;object-position:center 20%;border-radius:6px;margin:12px 0;display:block}
.venue-panel.single .venue-card img{height:360px}
.venue-card h3{margin:0 0 8px;font-size:19px}
.venue-card>p{font-size:14px;color:#536258;margin:0}
.venue-card .cheer-member{margin-top:16px;padding:12px 14px;background:rgba(255,255,255,.55);border-left:3px solid var(--team-color,var(--green))}
.venue-card .cheer-member p{font-size:14px;color:#3d473f;margin:4px 0 0}
@media(max-width:720px){.venue-panel{grid-template-columns:1fr}}
.dictionary{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.65fr;gap:65px;padding-top:60px;padding-bottom:75px}.dictionary h2{font-size:36px;line-height:1.5}.dictionary-heading p:not(.eyebrow){font-size:16px;color:var(--muted);max-width:280px;margin:20px 0 26px}.dictionary-heading>a{font-size:14px;border-bottom:1px solid}.terms{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}.term-button{border:0;border-bottom:1px solid var(--line);background:transparent;padding:22px 0;display:flex;align-items:center;justify-content:space-between;text-align:left;color:var(--ink);gap:10px}.term-button strong{font-size:19px;display:block}.term-button small{color:var(--muted);font-size:14px}.term-button>b{font-size:23px;font-weight:400}.term-button:hover{color:#7b8627}footer{background:var(--green);color:#eff4e5;display:flex;align-items:center;justify-content:space-between;gap:30px;padding:35px 5%}footer .brand-mark{background:var(--lime);color:var(--green)}footer p{font-size:12px;color:#b4c7b8;margin:0}footer>a:last-child{font-size:14px}dialog{border:0;border-radius:10px;max-width:720px;width:calc(100% - 32px);padding:40px;background:var(--paper);color:var(--ink);max-height:90dvh;overflow:auto}dialog::backdrop{background:#071d17bd;backdrop-filter:blur(4px)}.close-dialog{position:absolute;right:14px;top:10px;border:0;background:none;font-size:30px;color:var(--ink);width:36px;height:36px;z-index:2}.dialog-kicker{color:var(--muted);font-size:12px;letter-spacing:1.5px}.result-title{font-size:36px;margin:10px 0 15px}.guide{background:#e7ebdc;padding:20px;margin:24px 0;border-left:3px solid var(--green)}.guide h3{margin:0 0 10px}.guide ol{padding-left:23px;margin:0}.guide li{margin:9px 0}.dialog-links{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.source-link{font-size:12px;color:var(--muted);margin-top:25px;display:inline-block}.result-person{display:flex;align-items:center;gap:22px;margin:20px 0;background:var(--team-bg,#e3e8d8);padding:0 20px;border-radius:5px}.result-person img{height:190px;width:46%;object-fit:contain;align-self:end}.result-person strong{font-size:22px;display:block}.result-person p{font-size:16px}.simple-diagram{font-size:22px;font-weight:700;background:var(--green);color:var(--lime);padding:24px;border-radius:6px;text-align:center;margin:25px 0}
.analogy{font-size:18px;border-left:3px solid #a3b034;padding-left:18px}.skip{position:fixed;left:12px;top:-100px;background:var(--lime);padding:12px;z-index:100}.skip:focus{top:12px}@media(max-width:1050px){.opening{gap:30px}.quiz-wrap{padding:25px}.header-note{display:none}h1{font-size:47px}.team-portrait{height:210px}.team-top{align-items:start;flex-direction:column}.dictionary{gap:35px}.option>span{padding:12px 10px}}@media(max-width:720px){header{padding:17px 5%;flex-wrap:wrap;gap:16px;min-height:0}.brand{font-size:20px}.brand-en{display:none}nav{gap:18px;font-size:14px}nav a:first-child{display:none}.opening{grid-template-columns:1fr;padding:32px 5% 38px;gap:30px}.intro .eyebrow{margin-bottom:13px}h1{font-size:38px;line-height:1.4;letter-spacing:-1.5px}h1 br{display:none}.intro-copy{font-size:16px;margin:14px 0}.intro-copy br{display:none}.ticket{transform:none;padding:8px 12px;max-width:none}.ticket small,.intro-bottom{display:none}.quiz-wrap{padding:23px 20px}.question-title{font-size:23px}.options{gap:10px}.option>span{min-height:72px}.quiz-actions{gap:10px}.primary{padding:11px 15px;gap:13px}.section{padding:42px 5%}.section-head{display:block}.section-head>p{margin-top:15px}.section-head>p br{display:none}h2{font-size:27px}.team-grid{grid-template-columns:1fr 1fr;gap:14px}.team-portrait{height:190px}.team-word{font-size:20px}.team-info{padding:14px}.team-top h3{font-size:18px}.team-info p{font-size:14px;min-height:64px}.team-links{align-items:start;flex-direction:column;gap:12px}.player-tag{font-size:12px;padding:6px 12px}.dictionary{grid-template-columns:1fr;gap:20px}.dictionary h2{font-size:28px}.dictionary h2 br{display:none}.dictionary-heading p:not(.eyebrow){max-width:none;margin:12px 0 16px}.terms{gap:0 20px}.term-button strong{font-size:18px}footer{flex-wrap:wrap;padding:28px 5%;gap:22px}footer p{order:3;width:100%}dialog{padding:32px 22px}.result-title{font-size:29px}.result-person{gap:10px;padding:0 12px}.result-person img{height:170px}.result-person strong{font-size:19px}.simple-diagram{font-size:18px;padding:22px 12px}}@media(max-width:380px){.team-grid,.options{grid-template-columns:1fr}.quiz-actions>span{display:none}.team-portrait{height:240px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.leaders-section{border-top:1px solid var(--line);padding-top:60px}.leaders-head{margin-bottom:20px}.leaders-head>p span{font-size:12px;color:#89968b}.leaders-note{display:flex;align-items:center;gap:18px;background:#e8ecdf;border:1px solid var(--line);padding:12px 16px;margin-bottom:28px;font-size:13px}.leaders-note>span{font:700 11px Georgia;letter-spacing:1px;background:var(--green);color:var(--lime);padding:5px 8px;white-space:nowrap}.leaders-note p{margin:0;color:var(--muted);flex:1}.leaders-note a{font-weight:700;white-space:nowrap;border-bottom:1px solid}.leader-columns{display:grid;grid-template-columns:1fr 1fr;gap:28px}.leader-board{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden}.leader-board-title{display:flex;align-items:center;gap:12px;padding:18px 19px;border-bottom:1px solid var(--line);background:#fbfcf8}.leader-icon{width:37px;height:37px;border-radius:50%;display:grid;place-items:center;background:var(--lime);font:700 20px Georgia;color:var(--green)}.pitching-icon{background:#d5e6f4;color:#2372a6}.leader-board-title p{font-size:10px;letter-spacing:1.2px;color:var(--muted);margin:0}.leader-board-title h3{font-size:20px;margin:0;line-height:1.25}.leader-board-title>b{margin-left:auto;font:700 19px Georgia;color:#98a291}.leader-card{min-height:68px;display:grid;grid-template-columns:32px 45px 1fr auto;align-items:center;gap:10px;padding:9px 17px;border-bottom:1px solid #edf0e7}.leader-card:last-child{border-bottom:0}.leader-rank{font:700 12px Georgia;color:#889588}.leader-card:first-child .leader-rank{color:#a88613;font-size:15px}.leader-card img{width:45px;height:45px;border-radius:50%;object-fit:cover;background:#dae4d8}.leader-player{min-width:0}.leader-player strong{display:block;font-size:15px;line-height:1.35}.leader-player span{display:block;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leader-stat{text-align:right;padding-left:8px}.leader-stat small{display:block;color:#8c978d;font:700 10px Georgia;letter-spacing:.8px}.leader-stat b{font:700 19px Georgia;color:var(--green);line-height:1.1}@media(max-width:720px){.leaders-note{align-items:flex-start;flex-wrap:wrap;gap:10px}.leaders-note p{width:100%;flex:auto}.leader-columns{grid-template-columns:1fr;gap:18px}.leader-board-title{padding:15px}.leader-card{padding:8px 13px}}@media(max-width:380px){.leader-card{grid-template-columns:27px 40px 1fr auto;gap:7px}.leader-card img{width:40px;height:40px}.leader-player strong{font-size:14px}.leader-stat b{font-size:17px}}

/* R3 regression guard: keep the six team portraits centered after cumulative layout additions. */
html,body{max-width:100%;overflow-x:hidden}
.team-portrait .player-photo{display:flex;align-items:center;justify-content:center;text-align:center}
.team-portrait .player-photo img{position:relative;inset:auto;display:block;width:100%;height:100%;margin:0 auto;object-fit:contain;object-position:center center;transform-origin:center center}
.team-card:hover .team-portrait .player-photo img{transform:scale(1.04)}


/* R4 — standalone baseball batting mini-game */
.game-nav-link{border:1px solid var(--green);border-radius:999px;padding:5px 11px;white-space:nowrap}.game-nav-link.active,.game-nav-link:hover{background:var(--green);color:var(--lime);text-decoration:none}.game-page header{max-width:none}.game-main{min-height:calc(100vh - 180px)}.game-intro{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:end;padding-bottom:38px}.game-intro h1{font-size:clamp(38px,4.5vw,66px)}.game-rules{border-left:3px solid var(--green);padding:4px 0 4px 24px;max-width:620px}.game-rules strong{font-size:19px}.game-rules p{color:var(--muted);margin:8px 0}.game-rules small{font-size:12px;color:#879287}.game-shell{padding-top:0}.game-scorebar{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-bottom:0;background:#fff}.game-scorebar>div{padding:13px 18px;border-right:1px solid var(--line)}.game-scorebar>div:last-child{border-right:0}.game-scorebar small{display:block;font-size:10px;letter-spacing:1px;color:var(--muted);font-weight:700}.game-scorebar strong{display:block;font-size:20px;line-height:1.35;margin-top:3px}.game-scorebar em{font-style:normal;font-size:11px;color:var(--muted);font-weight:600}.game-field{position:relative;height:clamp(390px,55vw,650px);overflow:hidden;border:1px solid var(--line);background:#a9d6e6;cursor:crosshair;user-select:none;isolation:isolate;outline:none}.game-field:focus-visible{outline:4px solid #9ab32b;outline-offset:4px}.field-sky{position:absolute;inset:0 0 44%;background:linear-gradient(#9fd0e5,#dcecf1)}.field-sky:after{content:"";position:absolute;left:-5%;right:-5%;bottom:0;height:28%;background:repeating-linear-gradient(90deg,#294e3e 0 7%,#315b47 7% 14%);clip-path:polygon(0 58%,8% 40%,15% 55%,23% 28%,31% 52%,39% 36%,48% 57%,58% 31%,68% 48%,77% 25%,87% 49%,100% 34%,100% 100%,0 100%);opacity:.84}.field-grass{position:absolute;left:-8%;right:-8%;bottom:-4%;height:60%;background:repeating-linear-gradient(100deg,#5e9c5e 0 7%,#66a766 7% 14%);clip-path:polygon(0 10%,50% 0,100% 10%,100% 100%,0 100%)}.infield{position:absolute;width:52%;aspect-ratio:1/1;left:51%;bottom:-30%;transform:translateX(-50%) rotate(45deg);background:#c69b6d;border:3px solid rgba(255,255,255,.72);box-shadow:0 0 0 2px rgba(102,71,43,.12)}.pitcher-mound{position:absolute;left:21%;top:46%;width:7%;height:2.2%;border-radius:50%;background:#c69b6d;box-shadow:0 2px 0 rgba(80,50,25,.18)}.pitcher{position:absolute;left:20.5%;top:33%;width:42px;height:110px;z-index:3}.pitcher-head{position:absolute;width:24px;height:24px;border-radius:50%;background:#e2b88f;left:9px;top:0}.pitcher-body{position:absolute;width:27px;height:51px;background:var(--green);left:8px;top:22px;border-radius:9px 9px 4px 4px;transform:skew(-4deg)}.pitcher-arm{position:absolute;width:45px;height:9px;background:#e2b88f;border-radius:9px;left:16px;top:31px;transform:rotate(-20deg);transform-origin:left center}.home-plate{position:absolute;left:82%;top:59%;width:33px;height:27px;background:#fff;clip-path:polygon(8% 0,92% 0,100% 56%,50% 100%,0 56%);transform:translate(-50%,-50%);z-index:3;box-shadow:0 0 0 2px rgba(24,53,43,.25)}.strike-zone{position:absolute;left:82%;top:47.5%;width:68px;height:92px;border:3px solid var(--lime);background:rgba(233,245,120,.09);transform:translate(-50%,-50%);z-index:6;box-shadow:0 0 18px rgba(233,245,120,.24),inset 0 0 0 1px rgba(18,62,50,.3)}.strike-zone span{position:absolute;left:50%;top:-25px;transform:translateX(-50%);background:var(--lime);color:var(--green);font-size:10px;font-weight:900;letter-spacing:1px;padding:2px 7px;white-space:nowrap}.batter{position:absolute;left:87%;top:42%;width:58px;height:132px;z-index:8;transform-origin:50% 70%}.batter-head{position:absolute;width:27px;height:27px;border-radius:50%;background:#d9aa82;left:15px;top:0;border-top:7px solid #232c28}.batter-body{position:absolute;width:31px;height:61px;background:#f5f6ee;border:3px solid var(--green);left:13px;top:26px;border-radius:8px 8px 4px 4px}.bat{position:absolute;width:9px;height:91px;background:linear-gradient(90deg,#bd8d57,#ecd0a0,#9c6c3d);border-radius:8px;left:-1px;top:14px;transform:rotate(26deg);transform-origin:50% 88%;box-shadow:0 1px 2px rgba(0,0,0,.18)}.batter.swing .bat{animation:bat-swing .24s ease-out forwards}.batter.swing{animation:batter-kick .24s ease-out}.baseball{position:absolute;left:17%;top:45%;width:21px;height:21px;border-radius:50%;background:#fff;box-shadow:0 2px 7px rgba(0,0,0,.35);z-index:10;opacity:0;will-change:left,top,transform}.baseball span:before,.baseball span:after{content:"";position:absolute;width:12px;height:17px;border:1.5px solid transparent;border-left-color:#c33837;border-radius:50%;top:2px}.baseball span:before{left:2px;transform:rotate(22deg)}.baseball span:after{right:2px;transform:scaleX(-1) rotate(22deg)}.baseball.visible{opacity:1}.hit-ball{position:absolute;width:17px;height:17px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px rgba(195,56,55,.42),0 2px 8px rgba(0,0,0,.35);z-index:12;opacity:0;pointer-events:none}.hit-ball.flying{animation:hit-flight 1.05s cubic-bezier(.18,.69,.23,1) forwards}.swing-flash{position:absolute;left:82%;top:52%;width:34px;height:34px;border-radius:50%;border:4px solid var(--lime);transform:translate(-50%,-50%) scale(.3);opacity:0;z-index:13}.swing-flash.show{animation:contact-flash .35s ease-out}.field-message{position:absolute;left:50%;top:13%;transform:translateX(-50%);z-index:15;text-align:center;background:rgba(18,62,50,.88);color:#fff;border-radius:5px;padding:10px 18px;min-width:240px;pointer-events:none}.field-message strong{display:block;color:var(--lime);font-size:17px}.field-message span{display:block;font-size:12px;color:#d8e5da}.game-control-row{display:flex;align-items:center;gap:18px;padding:18px 0}.game-pitch-button{min-width:155px}.game-reset-button{color:var(--muted);padding:10px}.game-control-row p{margin:0 0 0 auto;color:var(--muted);font-size:13px}.result-panel{display:grid;grid-template-columns:130px 1fr 180px;gap:22px;align-items:center;background:#fff;border:1px solid var(--line);padding:22px}.result-mark{font:800 14px Georgia;letter-spacing:1px;color:var(--lime);background:var(--green);min-height:94px;display:grid;place-items:center;text-align:center;padding:10px;clip-path:polygon(0 0,100% 0,100% 78%,50% 100%,0 78%)}.result-panel small{color:var(--muted);font-size:10px;letter-spacing:1.2px;font-weight:700}.result-panel h2{font-size:25px;margin:3px 0 5px}.result-panel p{margin:0;color:var(--muted);font-size:14px}.distance-display{text-align:right;border-left:1px solid var(--line);padding-left:20px}.distance-display strong{display:flex;justify-content:flex-end;align-items:baseline;gap:5px;color:var(--green);line-height:1}.distance-display strong span{font:800 52px Georgia}.distance-display em{font-style:normal;font-size:15px;font-weight:800}.timing-guide{display:flex;flex-wrap:wrap;gap:10px 24px;padding:18px 2px;color:var(--muted);font-size:12px}.timing-guide span{display:inline-flex;align-items:center;gap:7px}.timing-guide span:before{content:"";width:8px;height:8px;border-radius:50%;background:#aeb9a8}.timing-guide span:first-child:before{background:#a7bb31}.timing-guide b{color:var(--ink)}
@keyframes bat-swing{0%{transform:rotate(26deg)}55%{transform:rotate(-72deg)}100%{transform:rotate(-110deg)}}@keyframes batter-kick{50%{transform:rotate(-3deg) translateX(-2px)}}@keyframes contact-flash{0%{opacity:1;transform:translate(-50%,-50%) scale(.25)}100%{opacity:0;transform:translate(-50%,-50%) scale(2.2)}}@keyframes hit-flight{0%{opacity:1;transform:translate(0,0) scale(1)}65%{opacity:1;transform:translate(var(--fly-x),var(--fly-y)) scale(.72)}100%{opacity:0;transform:translate(var(--fly-x),calc(var(--fly-y) * .45)) scale(.3)}}
@media(max-width:1050px){.game-page header{gap:22px}.game-page nav{gap:16px}.game-intro{gap:35px}.game-scorebar strong{font-size:17px}.result-panel{grid-template-columns:105px 1fr 155px}}
@media(max-width:720px){.game-page header nav{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.game-page header nav a{flex:0 0 auto}.game-intro{grid-template-columns:1fr;gap:24px;padding-top:38px}.game-rules{padding-left:17px}.game-scorebar{grid-template-columns:1fr 1fr}.game-scorebar>div:nth-child(2){border-right:0}.game-scorebar>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.game-field{height:440px}.pitcher{transform:scale(.82);transform-origin:bottom center}.strike-zone{left:80%;width:58px;height:82px}.home-plate{left:80%}.batter{left:86%;transform:scale(.82);transform-origin:bottom center}.field-message{top:8%;min-width:210px}.result-panel{grid-template-columns:80px 1fr;gap:15px;padding:16px}.result-mark{min-height:78px}.distance-display{grid-column:1/-1;border-left:0;border-top:1px solid var(--line);padding:13px 0 0;display:flex;align-items:center;justify-content:space-between}.distance-display strong span{font-size:42px}.game-control-row{flex-wrap:wrap}.game-control-row p{width:100%;margin:0}.timing-guide{gap:8px 16px}}
@media(max-width:430px){.game-field{height:390px}.pitcher{left:16%;top:36%;transform:scale(.72)}.pitcher-mound{left:17%}.strike-zone{left:78%;top:49%}.home-plate{left:78%}.batter{left:84%;top:45%;transform:scale(.72)}.game-scorebar>div{padding:10px 12px}.game-scorebar strong{font-size:15px}.field-message{top:6%;padding:8px 12px}.result-panel h2{font-size:20px}}
@media(prefers-reduced-motion:reduce){.batter.swing .bat,.batter.swing,.swing-flash.show,.hit-ball.flying{animation-duration:.01ms!important}}

/* R4 navigation capacity guard after adding the seventh top-level item. */
@media(max-width:1250px) and (min-width:721px){header{gap:24px}header nav{gap:18px}.header-note{display:none}}
/* R5 cumulative merge: player profiles + external cheer/stadium links.
   Keep the R2 centering guard for all six representative-player images. */
.team-portrait .player-photo{display:flex;align-items:center;justify-content:center;text-align:center}
.team-portrait .player-photo img{position:relative;inset:auto;display:block;width:100%;height:100%;margin:0 auto;object-fit:contain;object-position:center center;transform-origin:center center}
.team-card:hover .team-portrait .player-photo img{transform:scale(1.04)}
.team-card .photo-action{position:absolute;right:12px;top:12px;background:#fff;color:var(--green);font-size:12px;font-weight:800;padding:6px 9px;border-radius:3px;box-shadow:0 3px 12px #0002;opacity:0;transform:translateY(-5px);transition:.2s;z-index:2}
.team-card .player-photo:hover .photo-action,.team-card .player-photo:focus-visible .photo-action{opacity:1;transform:none}
.portrait-cheer-button{position:absolute;right:12px;bottom:12px;z-index:3;border:0;border-radius:20px;padding:7px 11px;background:rgba(18,62,50,.92);color:var(--lime);font-size:12px;font-weight:800;box-shadow:0 2px 9px #0003}
.portrait-cheer-button:hover{background:var(--green);text-decoration:none}
.team-links{justify-content:flex-start;flex-wrap:wrap;gap:10px 16px}
.team-links .cheer-link,.team-links .stadium-link{color:var(--ink);font-weight:700}
.player-profile-head{display:grid;grid-template-columns:44% 1fr;align-items:center;gap:26px;margin:10px 0 24px}
.player-profile-head>.result-person-photo{height:280px;border-radius:6px}
.result-person-photo{position:relative;display:block;background:var(--team-bg,#e3e8d8);overflow:hidden}
.player-profile-head .result-person-photo img{display:block;width:100%;height:100%;object-fit:contain;object-position:center center;transition:transform .25s}
.result-person-photo span{position:absolute;right:10px;bottom:10px;background:var(--green);color:#fff;padding:5px 9px;font-size:12px;font-weight:700;border-radius:3px}
.result-person-photo:hover img{transform:scale(1.035)}
.player-meta{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:16px}
.player-meta span{border:1px solid #bfc8b5;background:#fff;padding:3px 9px;font-size:12px;border-radius:99px}
.player-link-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}
.player-link-grid:has(>:only-child){grid-template-columns:1fr}
.profile-link{display:grid;grid-template-columns:1fr auto;align-items:center;background:#fff;border:1px solid var(--line);padding:14px 16px;border-radius:5px}
.profile-link span{grid-column:1;font-size:11px;color:var(--muted)}
.profile-link strong{grid-column:1;font-size:14px}
.profile-link b{grid-column:2;grid-row:1/3;font-size:20px}
.profile-link.accent{background:var(--green);border-color:var(--green);color:#fff}
.profile-link.accent span{color:#bfd0c4}
.player-summary{font-size:15px;color:#536258;margin:14px 0}
.result-person .profile-badge{opacity:1;transform:none}
.venue-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:18px}
.venue-actions>a:not(.primary){font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.venue-actions button{font:inherit;cursor:pointer}
@media(max-width:720px){
 .team-card .photo-action{opacity:1;transform:none;right:8px;top:8px}
 .portrait-cheer-button{right:8px;bottom:8px}
 .player-profile-head{grid-template-columns:1fr;gap:18px}
 .player-profile-head>.result-person-photo{height:250px}
 .player-link-grid{grid-template-columns:1fr}
}
