:root{color-scheme:dark;--wp-ui-shell:#17243a;--wp-ui-surface:rgba(15,29,49,.94);--wp-ui-control:#f8fafc;--wp-ui-control-text:#176a9d;--wp-ui-text:#f8fafc;--wp-ui-muted:#cbd5e1;--wp-ui-primary:#f5c84c;--wp-ui-primary-text:#1f2937;--wp-ui-border:rgba(255,255,255,.16);--wp-ui-accent:#63e6be;--navy:#071827;--teal:#0d685f;--gold:#f5c84c;--coral:#ff806f;--cream:#fff8de;font-family:Inter,"Noto Sans TC","Noto Sans JP",system-ui,-apple-system,"Segoe UI",sans-serif;background:#071827;color:var(--wp-ui-text)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#071827}body{overflow-x:hidden}body.wp-active-play,body.wp-active-play #mainGroup{overflow:hidden}body.wp-active-play{position:fixed;inset:0;overscroll-behavior:none;touch-action:none}button,select{font:inherit}button{border:0;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.46}button:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #fff;outline-offset:3px}[hidden]{display:none!important}.loading-panel{z-index:100}.loading-card{background:#102b42!important;border:1px solid #ffffff29}.loading-track i{background:linear-gradient(90deg,#63e6be,#f5c84c)!important}
.main-group{max-width:920px;margin:auto;background:#102539}.main-screen{min-height:844px;padding:12px;background:linear-gradient(#06152433,#061524d9),url('assets/animal-penalty-cup-stadium-v1.png') center/cover}.shared-header{position:relative;z-index:20;display:grid;align-items:center;gap:8px}.main-header{height:80px;grid-template-columns:58px minmax(0,1fr) 48px;grid-template-rows:48px 24px}.header-title{grid-column:2;grid-row:2;text-align:center;font-size:20px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-link{grid-column:1;grid-row:1;width:58px;height:48px;display:grid;grid-template-columns:16px 28px;gap:4px;align-items:center;padding:5px;border-radius:14px;background:var(--wp-ui-control);color:var(--wp-ui-control-text);text-decoration:none;font-size:1.3rem;font-weight:950}.home-link.wp-shell-return{width:58px!important;min-width:58px!important;max-width:58px!important}.home-link img{width:28px;height:28px;object-fit:contain}.settings-button,.back-button,.pause-button{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:var(--wp-ui-control);color:var(--wp-ui-control-text);font-size:1.3rem;font-weight:950}.main-header>.settings-button{grid-column:3;grid-row:1}.settings-popover{position:absolute;z-index:40;right:0;top:56px;width:min(330px,calc(100vw - 24px));padding:12px;border:1px solid var(--wp-ui-border);border-radius:18px;background:#0d2438;box-shadow:0 18px 42px #020913cc}.settings-row{min-height:52px;display:grid;grid-template-columns:minmax(0,1fr) minmax(118px,auto);gap:12px;align-items:center;border-bottom:1px solid #ffffff17}.settings-row>span{font-weight:800}.settings-row button,.settings-row select,.settings-close{min-height:44px;border-radius:12px;border:1px solid #ffffff24;background:#f8fafc;color:#176a9d;padding:0 12px;font-weight:850}.settings-row select{max-width:160px}.settings-close{width:100%;margin-top:10px}.main-hero{display:grid;grid-template-rows:minmax(360px,54vh) auto;gap:12px}.main-poster{width:100%;height:100%;min-height:0;object-fit:cover;object-position:center;border:2px solid #f5c84c99;border-radius:22px;box-shadow:0 18px 42px #020913}.main-copy{padding:12px 14px 14px;border:1px solid #ffffff25;border-radius:18px;background:#0d2438f2;box-shadow:0 12px 30px #020913}.main-copy small,.game-guide>small,.chapter-panel small,.result-card>small{color:var(--gold);font-weight:950;letter-spacing:.06em}.coming{display:inline-flex;margin:4px 0 0!important;padding:4px 9px;border-radius:999px;background:#ff806f1f;color:#ffd3cd!important;border:1px solid #ff806f66;font-weight:850}.main-copy h1{margin:4px 0;font-size:clamp(1.45rem,6vw,2rem);line-height:1.1}.main-copy p{margin:0 0 8px;color:var(--wp-ui-muted);line-height:1.36}.main-progress{margin:4px 0 9px;color:#91f5df;font-weight:900}.primary-action{background:linear-gradient(#ffe78c,#f5c84c)!important;color:var(--wp-ui-primary-text)!important;box-shadow:0 4px 0 #9c6b18;font-weight:950}.main-copy .primary-action{width:100%;height:52px;border-radius:14px;font-size:1.08rem}.game-guide{padding:28px 22px 44px;background:#f4efdc;color:#17362f}.game-guide h2{margin:5px 0 8px;font-size:1.75rem}.game-guide>p{max-width:760px;line-height:1.62}.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.guide-grid article{padding:18px;border:1px solid #d8ccaa;border-radius:18px;background:#fffdf5}.guide-grid h3{margin:0 0 8px;color:#6f4b16}.guide-grid p{margin:0;line-height:1.58}
.stage-screen,.battle-screen{position:fixed;inset:0;background:#071827;overflow:hidden}.stage-canvas,.battle-canvas{position:absolute;top:0;left:50%;width:min(100%,920px);height:calc(100svh - 56px);transform:translateX(-50%);overflow:hidden;background:linear-gradient(#06152469,#061524d9),url('assets/animal-penalty-cup-stadium-v1.png') center/cover}.general-reserve{position:fixed;z-index:2;left:50%;bottom:0;width:min(100%,920px);height:56px;transform:translateX(-50%);background:#071827;border-top:1px solid #ffffff12;pointer-events:none}.stage-fixed-back{grid-column:1;grid-row:1;text-decoration:none}.stage-canvas{display:grid;grid-template-rows:80px 112px minmax(0,1fr) 56px;gap:8px;padding:12px 12px 0}.stage-header{grid-template-columns:48px minmax(0,1fr) 48px;grid-template-rows:48px 24px;height:80px}.stage-header>.settings-button{grid-column:3;grid-row:1}.stage-header .header-title{grid-column:2;grid-row:2}.stage-header .settings-popover{top:56px}.chapter-panel{position:relative;z-index:4;display:grid;align-content:center;gap:4px;padding:12px 16px;border:1px solid #f5c84c7a;border-radius:18px;background:#0d2438f2}.chapter-panel strong{font-size:1.3rem}.chapter-panel p{margin:0;color:var(--wp-ui-muted);line-height:1.34}.stage-rail{position:relative;z-index:2;display:flex!important;align-items:center;gap:16px;min-width:0;overflow-x:auto!important;overflow-y:hidden;padding:18px calc(50% - 132px)!important;scroll-snap-type:x mandatory;scrollbar-width:none;touch-action:pan-x}.stage-rail::-webkit-scrollbar{display:none}.stage-card{position:relative;flex:0 0 264px;height:190px;scroll-snap-align:center;display:grid;align-content:end;gap:5px;padding:20px;text-align:left;overflow:hidden;border:2px solid #ffffff36;border-radius:24px;background:linear-gradient(#07182718,#071827ee),var(--card-art,url('assets/animal-penalty-cup-cover-v1.png')) center/cover;box-shadow:0 12px 28px #020913}.stage-card.selected,.stage-card.is-centered{border-color:#ffe78c;box-shadow:0 0 0 4px #f5c84c33,0 0 28px #63e6be80,0 16px 34px #020913}.stage-card.locked{filter:saturate(.35) brightness(.66)}.stage-card small{color:#ffe78c;font-weight:900}.stage-card strong{font-size:1.45rem}.stage-card span{color:#d8e7ea}.stage-card .stars{font-size:1.1rem;color:#ffe78c;letter-spacing:.06em}.stage-tabs{z-index:6;display:grid;grid-template-columns:1fr 1fr 1fr;height:56px;border-top:1px solid #ffffff20;background:#0b2033}.stage-tabs button{grid-column:2;min-width:112px;height:48px;margin:4px auto;border-radius:14px;background:#f8fafc;color:#176a9d;font-weight:950}
.battle-canvas{display:grid;grid-template-rows:64px 38px 34px minmax(260px,1fr) 50px 52px;gap:8px;padding:8px 12px 12px}.battle-header{z-index:7;display:grid;grid-template-columns:48px minmax(0,1fr) auto 48px;align-items:center;gap:8px;padding:8px;border:1px solid #ffffff22;border-radius:18px;background:#0d2438f2}.battle-heading{display:grid;min-width:0}.battle-heading small{color:#ffe78c;font-weight:850}.battle-heading strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.score-box{display:flex;align-items:center;gap:7px;padding:4px 8px;border-radius:12px;background:#ffffff10}.score-box span{display:grid;text-align:center}.score-box small{font-size:.68rem;color:#cbd5e1}.score-box b{font-size:1.15rem}.score-box i{font-style:normal;color:#63e6be}.turn-strip{display:flex;align-items:center;justify-content:space-between;min-width:0;padding:0 12px;border-radius:12px;background:#0d2438d9}.turn-strip strong{font-size:.9rem;color:#ffe78c}.turn-strip span{display:flex;gap:5px;overflow:hidden}.turn-dot{width:14px;height:14px;border-radius:50%;border:2px solid #ffffff55;background:#ffffff12}.turn-dot.goal,.turn-dot.save{background:#63e6be;border-color:#b8ffef}.turn-dot.miss,.turn-dot.concede{background:#ff806f;border-color:#ffd0ca}.battle-status{height:34px;margin:0;display:grid;place-items:center;padding:0 10px;border-radius:12px;background:#071827d9;color:#fff;font-weight:850;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stadium{position:relative;min-height:0;overflow:hidden;border:2px solid #f5c84c70;border-radius:20px;background:url('assets/animal-penalty-cup-stadium-v1.png') center/cover;box-shadow:inset 0 0 60px #02091366}.stadium::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(transparent 52%,#06221b26)}.goal-grid{position:absolute;z-index:5;left:20%;right:20%;top:20%;height:43%;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);direction:ltr}.goal-zone{position:relative;min-width:44px;min-height:44px;border:1px solid #fff8de55;background:#f8fafc08;color:#fff8de;font-weight:950;text-shadow:0 2px 4px #000}.goal-zone::before{content:attr(data-number);position:absolute;inset:50% auto auto 50%;width:28px;height:28px;display:grid;place-items:center;transform:translate(-50%,-50%);border:2px solid currentColor;border-radius:50%;background:#071827b8}.goal-zone:hover,.goal-zone:focus-visible,.goal-zone.selected{background:#63e6be38;color:#fff}.goal-zone.cue-fake{animation:fakePulse .38s ease 2;background:#f5c84c35}.goal-zone.cue-real{animation:realPulse .44s ease infinite;background:#63e6be66}.goal-zone:disabled{opacity:.3}.keeper-art{position:absolute;z-index:3;left:50%;top:30%;width:27%;height:43%;object-fit:contain;transform:translate(-50%,-50%) scale(.72);transform-origin:center;filter:drop-shadow(0 9px 11px #0009);transition:transform .42s cubic-bezier(.2,.7,.2,1),left .42s,top .42s}.keeper-art.ready{transform:translate(-50%,-50%) scale(.68) rotate(0)}.keeper-art.dive{transform:translate(-50%,-50%) scale(.82) rotate(var(--keeper-rotate,0deg))}.striker-art{position:absolute;z-index:3;left:16%;bottom:-8%;width:26%;height:48%;object-fit:contain;filter:drop-shadow(0 10px 12px #0009);transform:rotate(-4deg);transition:transform .42s,left .42s,opacity .2s}.striker-art.kick{transform:translateX(12%) rotate(5deg) scale(1.04)}.ball{position:absolute;z-index:6;left:47%;top:76%;width:34px;height:34px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#fff8de 47%,#d7b95d 70%,#0d685f 72%,#0d685f 82%,#fff8de 84%);box-shadow:0 5px 9px #0009;transition:left .46s cubic-bezier(.2,.75,.2,1),top .46s,transform .46s}.ball i{position:absolute;inset:11px;border-radius:4px;background:#0d685f;transform:rotate(35deg)}.ball.flight{transform:translate(-50%,-50%) scale(.68) rotate(420deg)}.cue{position:absolute;z-index:8;width:48px;height:48px;border:5px solid #ffe78c;border-radius:50%;opacity:0;transform:translate(-50%,-50%) scale(.7);pointer-events:none}.cue.fake{opacity:.62;animation:cuePop .38s ease}.cue.real{opacity:1;border-color:#63e6be;box-shadow:0 0 0 7px #63e6be33,0 0 24px #63e6be;animation:cueBeat .46s ease infinite}.impact{position:absolute;z-index:9;left:50%;top:48%;width:20px;height:20px;border-radius:50%;opacity:0;transform:translate(-50%,-50%);box-shadow:0 0 0 0 #ffe78c}.impact.show{animation:impact .6s ease}.power-row{display:grid;grid-template-columns:auto minmax(0,1fr) 48px;align-items:center;gap:10px;padding:0 12px;border-radius:14px;background:#0d2438e8}.power-row>span{font-weight:850}.power-track{position:relative;height:18px;overflow:hidden;border-radius:999px;background:#ffffff20}.power-track .sweet{position:absolute;left:70%;width:18%;height:100%;background:#f5c84c77}.power-track b{position:absolute;left:50%;top:0;width:5px;height:100%;border-radius:999px;background:#fff;box-shadow:0 0 8px #fff;transform:translateX(-50%)}.power-row>strong{text-align:right;color:#ffe78c}.battle-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.battle-actions button{height:44px;border-radius:14px;background:#f8fafc;color:#176a9d;font-weight:900}
.modal-layer,.tutorial-layer{position:absolute;z-index:30;inset:0;display:grid;place-items:center;padding:14px;background:#020913c7;overscroll-behavior:contain}.modal-layer[hidden],.tutorial-layer[hidden]{display:none!important}.dialog-card,.result-card,.tutorial-card{width:min(100%,560px);max-height:100%;overflow:auto;padding:22px;border:1px solid #ffffff29;border-radius:22px;background:#102b42;box-shadow:0 22px 60px #020913}.dialog-card h2,.result-card h2,.tutorial-card h2{margin:4px 0 10px}.dialog-card p,.result-card p{color:#cbd5e1;line-height:1.52}.dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}.dialog-actions button,.result-actions button{min-height:48px;border-radius:14px;background:#f8fafc;color:#176a9d;font-weight:900}.result-card{display:grid;gap:9px;text-align:center}.result-card>img{width:112px;height:112px;margin:auto;object-fit:cover;border-radius:18px}.result-card>*{margin-top:0;margin-bottom:0}.result-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.result-stats span{display:grid;padding:10px;border-radius:14px;background:#ffffff10}.result-stats small{color:#cbd5e1}.result-stats strong{font-size:1.35rem;color:#ffe78c}.result-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.tutorial-layer{position:fixed;z-index:80}.tutorial-card{position:relative}.tutorial-card>img{float:left;width:128px;height:128px;margin:0 16px 8px 0;object-fit:cover;border-radius:18px}.tutorial-card ol{clear:both;padding-left:1.35rem;line-height:1.55}.tutorial-card>.primary-action{width:100%;min-height:50px;border-radius:14px}.modal-close{position:absolute;right:12px;top:12px;width:44px;height:44px;border-radius:14px;background:#f8fafc;color:#176a9d;font-size:1.45rem;font-weight:950}.battle-covered>*:not(.modal-layer){visibility:hidden;pointer-events:none}
@keyframes fakePulse{50%{box-shadow:inset 0 0 0 4px #f5c84c}}@keyframes realPulse{50%{box-shadow:inset 0 0 0 5px #63e6be}}@keyframes cuePop{50%{transform:translate(-50%,-50%) scale(1.08)}}@keyframes cueBeat{50%{transform:translate(-50%,-50%) scale(1.12)}}@keyframes impact{0%{opacity:1;box-shadow:0 0 0 0 #ffe78c}100%{opacity:0;box-shadow:0 0 0 38px #ffe78c00}}
@media(min-width:700px){.main-screen{padding:16px}.main-header{height:64px;grid-template-columns:58px minmax(0,1fr) 48px;grid-template-rows:64px}.main-header .home-link,.main-header>.settings-button,.main-header .header-title{grid-row:1}.main-header .header-title{font-size:22px}.main-hero{grid-template-columns:minmax(0,1fr) minmax(300px,.82fr);grid-template-rows:minmax(590px,calc(100vh - 96px));gap:16px}.main-copy{align-self:end}.stage-canvas{padding-left:16px;padding-right:16px}.guide-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:520px){.main-screen{min-height:844px}.main-hero{grid-template-rows:430px auto}.guide-grid{grid-template-columns:1fr}.result-actions{gap:6px}.result-actions button{font-size:.82rem;padding:4px}.dialog-actions{grid-template-columns:1fr}.keeper-art{width:34%}.striker-art{width:32%;left:10%}.goal-grid{left:13%;right:13%}}
@media(max-height:430px) and (orientation:landscape){.battle-canvas{grid-template-columns:minmax(0,1fr) 226px;grid-template-rows:52px 32px 28px minmax(0,1fr) 46px;gap:5px;padding:5px 8px}.battle-header{grid-column:1/-1;grid-row:1;padding:2px 6px;border-radius:14px}.turn-strip{grid-column:2;grid-row:2}.battle-status{grid-column:2;grid-row:3;height:28px;font-size:.76rem}.stadium{grid-column:1;grid-row:2/6}.power-row{grid-column:2;grid-row:4;align-self:start;height:44px;font-size:.75rem;padding:0 8px}.battle-actions{grid-column:2;grid-row:5}.battle-actions button{height:42px;font-size:.78rem}.goal-grid{left:16%;right:16%;top:17%;height:46%}.keeper-art{width:24%;height:45%;top:31%}.striker-art{width:22%;height:47%;bottom:-11%}.ball{top:79%;width:26px;height:26px}.score-box{padding:2px 6px}.score-box small{display:none}.modal-layer{padding:8px}.dialog-card,.result-card{max-width:610px;padding:14px}.result-card{grid-template-columns:100px 1fr 1fr;align-items:center;text-align:left}.result-card>img{grid-row:1/5}.result-card h2,.result-card p{grid-column:2/4}.result-stats{grid-column:2}.result-actions{grid-column:3;grid-row:3/5;grid-template-columns:1fr}.result-actions button{min-height:40px}.tutorial-card{max-width:680px;padding:14px}.tutorial-card>img{width:92px;height:92px}.tutorial-card ol{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;clear:none;margin:10px 0;padding-left:1.2rem;font-size:.85rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
@media(max-height:430px) and (orientation:landscape){.stage-canvas{grid-template-rows:56px minmax(0,1fr) 56px!important;padding:6px 16px 0!important;gap:6px!important}.stage-header{position:absolute!important;top:6px!important;left:16px!important;right:16px!important;width:auto!important;height:56px!important;grid-template-rows:48px!important}.stage-header .header-title{grid-row:1!important}.chapter-panel{display:none!important}.stage-rail{grid-row:2!important;min-height:0!important}.stage-tabs{grid-row:3!important}}
@media(min-width:700px) and (max-height:430px) and (orientation:landscape){.main-hero{grid-template-columns:minmax(0,1fr) 300px}.main-hero>picture{display:block;width:100%;height:100%;min-width:0;min-height:0}.main-screen .wp-standard-main-composition{--wp-main-landscape-poster-size:300px!important}}
.impact{pointer-events:none}

/* Keep the cold Main focused on premise and first action while preserving the
   complete guide behind an explicit, keyboard-accessible disclosure. */
.game-guide>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:12px 14px;border:1px solid #b9ad8a;border-radius:14px;background:#fffdf5;color:#6f4b16;font-weight:950;cursor:pointer;list-style-position:inside}
.game-guide>summary::after{content:"+";font-size:1.4rem;line-height:1}
.game-guide[open]>summary{margin-bottom:16px}
.game-guide[open]>summary::after{content:"−"}

/* The real save cue is the player's timed instruction, so it must remain
   fully visible at phone widths instead of collapsing into an ellipsis. */
.battle-canvas{grid-template-rows:64px 38px minmax(34px,auto) minmax(260px,1fr) 50px 52px}
.battle-status{min-width:0;min-height:34px;height:auto;padding:4px 10px;line-height:1.18;white-space:normal;overflow-wrap:anywhere;overflow:visible;text-overflow:clip}
@media(max-height:430px) and (orientation:landscape){
  .battle-canvas{grid-template-rows:52px 32px minmax(28px,auto) minmax(0,1fr) 46px}
  .battle-status{min-height:28px;height:auto;padding:2px 6px;line-height:1.1;white-space:normal;overflow-wrap:anywhere}
}
