:root{--ink:#242423;--paper:#f7f7f5;--shade:#696965;--line:#c9c9c4}*{box-sizing:border-box}button{font:inherit}.angry-page{min-height:100svh;color:var(--ink);background:var(--paper)}.angry-page .teacher-topbar{min-height:62px;border-bottom:2px solid var(--ink);background:var(--paper);box-shadow:none}.angry-brand-mark{display:grid;width:28px;height:28px;place-items:center;border-radius:50%;color:var(--paper);background:var(--ink);font-weight:950}.angry-stage-readout{display:grid;min-width:72px;text-align:center}.angry-stage-readout small{color:var(--shade);font-size:10px;font-weight:800}.angry-stage-readout strong{font-size:17px}.angry-page button{min-height:44px}.angry-page .rank-button{border:2px solid var(--ink);border-radius:0;background:var(--paper);box-shadow:3px 3px 0 var(--ink);font-weight:900}.angry-shell{width:min(100% - 28px,1240px);max-width:none;padding:12px 0 32px}.angry-hero{padding:0 0 9px}.angry-hero h1{margin:0;font-size:clamp(29px,4vw,50px);font-weight:950;letter-spacing:-.07em}.angry-card{padding:0!important;overflow:visible!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}.angry-card::before{display:none!important}.angry-page .teacher-game-layout{width:100%;display:block;margin:0;transform:none}.angry-page .teacher-game-side-ad,.angry-page .teacher-game-side-spacer{display:none!important}.angry-game-wrap{position:relative;width:100%;overflow:hidden;aspect-ratio:16/9;border:3px solid var(--ink);background:var(--paper);box-shadow:7px 7px 0 var(--ink);touch-action:none;user-select:none}#gameCanvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}#gameCanvas.is-aiming{cursor:grabbing}.angry-hud{position:absolute;z-index:3;top:12px;left:12px;display:flex;gap:5px;pointer-events:none}.angry-hud span{display:grid;min-width:68px;padding:5px 8px;border:1px solid var(--ink);background:rgba(247,247,245,.92)}.angry-hud small{color:var(--shade);font-size:8px;font-weight:800;letter-spacing:.04em}.angry-hud b{font-size:15px;line-height:1.1}.ability-button{position:absolute;z-index:4;right:14px;bottom:14px;min-width:118px;border:2px solid var(--ink);border-radius:0;color:var(--paper);background:var(--ink);box-shadow:4px 4px 0 var(--shade);font-weight:900}.ability-button:active,.rank-button:active,.result-actions button:active,.angry-controls button:active,.stage-button:active{transform:translate(3px,3px);box-shadow:none}.angry-controls{display:flex;gap:8px;padding-top:18px}.angry-controls button,.result-actions button{min-height:44px;padding:0 16px;border:2px solid var(--ink);border-radius:0;background:var(--paper);box-shadow:3px 3px 0 var(--ink);font-weight:900}.angry-status{min-height:25px;padding:11px 1px 0;font-size:13px;font-weight:800}.stage-panel{position:absolute;inset:0;z-index:6;overflow:auto;padding:clamp(18px,4vw,38px);background:var(--paper)}.stage-panel[hidden],.result-panel[hidden],.ability-button[hidden],.teacher-game-ad[hidden]{display:none!important}.stage-panel-head{display:flex;justify-content:space-between;gap:18px}.stage-panel-head h2{margin:0;font-size:clamp(25px,4vw,40px);letter-spacing:-.05em}.stage-panel-head>button{width:46px;border:2px solid var(--ink);border-radius:0;background:var(--paper);font-size:28px}.world-tabs{display:flex;gap:7px;margin:20px 0 14px;overflow:auto;scrollbar-width:none}.world-tabs button{flex:0 0 auto;padding:0 14px;border:2px solid var(--ink);border-radius:0;background:var(--paper);font-weight:850}.world-tabs button[aria-selected="true"]{color:var(--paper);background:var(--ink)}.stage-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.stage-button{min-height:70px;padding:9px;border:2px solid var(--ink);border-radius:0;color:var(--ink);background:var(--paper);box-shadow:3px 3px 0 var(--ink);text-align:left}.stage-button strong{display:block;font-size:17px}.stage-button span{display:block;margin-top:6px;color:var(--shade)}.stage-button[disabled]{opacity:.38;box-shadow:none}.result-panel{position:absolute;z-index:7;top:50%;left:50%;width:min(420px,calc(100% - 30px));padding:26px;border:3px solid var(--ink);background:var(--paper);box-shadow:8px 8px 0 var(--ink);text-align:center;transform:translate(-50%,-50%)}.result-stars{color:var(--shade);font-size:32px;letter-spacing:.1em}.result-panel h2{margin:8px 0 2px;font-size:28px}.result-panel>strong{display:block;margin:5px 0 20px;font-size:34px}.result-actions{display:grid;grid-template-columns:1fr 1.15fr;gap:8px}.primary-action{color:var(--paper);background:var(--ink)!important}.angry-page .teacher-game-adsense{width:min(100%,760px);min-height:0;margin:44px auto 0;opacity:.55}.angry-page .teacher-game-ad{width:min(100%,760px);margin:32px auto 0;opacity:.6}.stage-button:focus-visible,.world-tabs button:focus-visible,button:focus-visible{outline:3px solid var(--shade);outline-offset:2px}@media(max-width:720px){.angry-shell{width:min(100% - 20px,1240px);padding-top:8px}.angry-stage-readout{display:none}.angry-game-wrap{border-width:2px;box-shadow:4px 4px 0 var(--ink)}.angry-hud{top:6px;left:6px;gap:3px}.angry-hud span{min-width:48px;padding:3px 5px}.angry-hud small{font-size:6px}.angry-hud b{font-size:11px}.ability-button{right:8px;bottom:8px;min-width:106px}.stage-grid{gap:6px}.stage-button{min-height:58px;padding:6px}.stage-button strong{font-size:14px}.stage-button span{margin-top:3px;font-size:10px}}@media(max-width:480px){.teacher-topbar .teacher-brand>span:last-child{display:none}.angry-hero h1{font-size:30px}.angry-game-wrap{aspect-ratio:4/3}.angry-controls{padding-top:15px}.angry-controls button{padding:0 12px}.result-panel{padding:20px;box-shadow:5px 5px 0 var(--ink)}.stage-panel{padding:15px}.stage-panel-head h2{font-size:24px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
.stage-map{position:relative;isolation:isolate;min-height:clamp(340px,43vw,462px);overflow:hidden;border:2px solid var(--ink);background:#efefeb}.stage-map::before{position:absolute;z-index:1;top:50%;left:6%;width:88%;height:4px;background:var(--ink);content:"";transform:translateY(-50%)}.stage-map::after{position:absolute;z-index:1;top:calc(50% - 62px);left:calc(6% + 17%);width:4px;height:124px;background:var(--ink);content:"";box-shadow:calc(100% * 2.1) 0 0 var(--ink),calc(100% * 4.2) 0 0 var(--ink)}.stage-landmark{position:absolute;z-index:0;inset:0;opacity:.9}.stage-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));align-items:center;height:100%;padding:0 4.6%;gap:0}.stage-button{position:relative;display:grid;place-items:center;align-content:center;min-width:0;min-height:66px;padding:5px 2px;border:3px solid var(--ink);border-radius:50%;color:var(--ink);background:var(--paper);box-shadow:3px 3px 0 var(--ink);text-align:center}.stage-button strong{display:block;font-size:clamp(12px,1.5vw,17px);line-height:1}.stage-button span{display:block;margin-top:3px;color:var(--shade);font-size:10px;letter-spacing:-.13em}.stage-button.is-current{color:var(--paper);background:var(--ink);box-shadow:3px 3px 0 var(--shade)}.stage-button.is-current span{color:var(--paper)}.stage-button.is-complete::after{position:absolute;top:-8px;right:-4px;width:18px;height:18px;border:2px solid var(--ink);border-radius:50%;color:var(--paper);background:var(--ink);content:"★";font-size:11px;line-height:14px}.stage-button.is-locked{border-style:dashed;color:var(--shade);background:#d7d7d2}.stage-button[disabled]{opacity:1;box-shadow:none}.stage-map.world-1 .stage-landmark{background:linear-gradient(160deg,transparent 54%,#deded9 54% 67%,transparent 67%),repeating-linear-gradient(90deg,transparent 0 82px,#d0d0cb 83px 86px,transparent 87px 154px)}.stage-map.world-1 .stage-landmark::before{position:absolute;right:4%;bottom:16%;width:33%;height:40%;border-radius:48% 48% 8% 8%;background:#c1c1bc;box-shadow:-88px 32px 0 -12px #d0d0cb;content:""}.stage-map.world-2 .stage-landmark{background:linear-gradient(142deg,transparent 45%,#d1d1cc 46% 71%,transparent 72%),linear-gradient(26deg,transparent 57%,#e0e0dc 58% 74%,transparent 75%)}.stage-map.world-2 .stage-landmark::after{position:absolute;left:5%;right:4%;bottom:18%;height:5px;background:#9f9f9a;content:"";transform:rotate(-7deg)}.stage-map.world-3 .stage-landmark{background:linear-gradient(153deg,transparent 43%,#d1d1cc 44% 72%,transparent 73%),linear-gradient(31deg,transparent 48%,#e2e2de 49% 69%,transparent 70%)}.stage-map.world-3 .stage-landmark::before{position:absolute;top:17%;left:13%;width:27%;height:12%;border-radius:50%;background:#dededa;box-shadow:190px 30px 0 #dededa,400px -10px 0 #dededa;content:""}.stage-map.world-4 .stage-landmark{background:linear-gradient(90deg,transparent 0 11%,#d3d3ce 11% 14%,transparent 14% 39%,#d3d3ce 39% 42%,transparent 42% 68%,#d3d3ce 68% 71%,transparent 71%)}.stage-map.world-4 .stage-landmark::before{position:absolute;top:17%;left:14%;width:26%;height:26%;border:16px solid #c2c2bd;border-radius:50%;box-shadow:286px 78px 0 -2px #d1d1cc;content:""}.stage-map.world-5 .stage-landmark{background:repeating-linear-gradient(90deg,#d2d2cd 0 46px,#efefeb 47px 68px),linear-gradient(0deg,transparent 0 61%,#c3c3be 62% 84%,transparent 85%)}.stage-map.world-5 .stage-landmark::after{position:absolute;top:15%;right:10%;width:24%;height:54%;border:14px solid #c0c0bb;border-bottom:0;content:""}@media(max-width:720px){.stage-map{min-height:300px}.stage-grid{grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(2,1fr);padding:9% 7%;gap:20px 1px}.stage-map::before{top:49%;left:10%;width:80%}.stage-map::after{top:25%;left:19%;height:148px;box-shadow:calc(100% * 2.4) 0 0 var(--ink)}.stage-button{min-height:56px}.stage-button strong{font-size:14px}.stage-button span{font-size:9px}}@media(max-width:480px){.world-tabs{margin:14px 0 10px}.stage-map{min-height:286px}.stage-grid{padding:8% 5%;gap:17px 1px}.stage-button{min-height:52px;border-width:2px}.stage-button.is-complete::after{top:-6px;right:-2px}}
@media(max-width:720px){.stage-map{min-height:146px;overflow-x:auto;overflow-y:hidden}.stage-grid{grid-template-columns:repeat(10,58px);grid-template-rows:1fr;width:max-content;min-width:100%;height:146px;padding:0 22px;gap:15px}.stage-map::before{top:50%;left:22px;width:calc(100% - 44px)}.stage-map::after{display:none}.stage-button{min-height:50px}.stage-landmark{min-width:760px}}@media(max-width:480px){.stage-map{min-height:142px}.stage-grid{height:142px;grid-template-columns:repeat(10,54px);gap:13px;padding:0 18px}.stage-button{min-height:48px}}

/* Release map: a restrained two-lane route, not a full-panel illustration. */
.stage-map{min-height:330px;border:0;background:linear-gradient(180deg,#f1f1ed 0 68%,#e5e5e0 68% 100%)}
.stage-map::before{top:31%;left:9%;width:82%;height:3px;background:var(--ink);box-shadow:0 126px 0 var(--ink);transform:none}
.stage-map::after{top:31%;right:9%;left:auto;width:3px;height:126px;background:var(--ink);box-shadow:none}
.stage-grid{position:absolute;inset:0;grid-template-columns:repeat(5,minmax(58px,1fr));grid-template-rows:repeat(2,1fr);height:auto;padding:48px 6% 42px;column-gap:28px;row-gap:42px}
.stage-button{justify-self:center;width:64px;min-height:64px;padding:5px}
.stage-landmark{inset:auto 50% 24px auto;width:150px;height:72px;min-width:0!important;opacity:.14;transform:translateX(50%);background:none!important}
.stage-map .stage-landmark::before,.stage-map .stage-landmark::after{position:absolute;display:block;content:""}
.stage-map.world-1 .stage-landmark::before{left:18px;bottom:0;width:22px;height:58px;border-radius:50% 50% 8px 8px;background:var(--ink);box-shadow:46px 8px 0 -2px var(--ink),92px -2px 0 2px var(--ink)}
.stage-map.world-1 .stage-landmark::after{left:0;right:0;bottom:0;height:3px;background:var(--ink)}
.stage-map.world-2 .stage-landmark::before{inset:auto 0 0;width:150px;height:58px;background:linear-gradient(150deg,transparent 0 27%,var(--ink) 28% 50%,transparent 51%),linear-gradient(28deg,transparent 0 43%,var(--ink) 44% 72%,transparent 73%)}
.stage-map.world-3 .stage-landmark::before{left:6px;bottom:0;width:138px;height:52px;border-radius:70% 70% 0 0;background:var(--ink)}
.stage-map.world-3 .stage-landmark::after{left:16px;top:0;width:38px;height:12px;border-radius:50%;background:var(--ink);box-shadow:72px 8px 0 2px var(--ink)}
.stage-map.world-4 .stage-landmark::before{left:8px;bottom:0;width:38px;height:58px;border:8px solid var(--ink);border-bottom:0;box-shadow:52px 8px 0 -1px var(--ink),96px -8px 0 2px var(--ink)}
.stage-map.world-5 .stage-landmark::before{left:8px;bottom:0;width:134px;height:54px;background:repeating-linear-gradient(90deg,var(--ink) 0 22px,transparent 22px 34px)}
.stage-map.world-5 .stage-landmark::after{left:0;right:0;bottom:0;height:6px;background:var(--ink)}
@media(max-width:720px){.stage-map{min-height:146px;background:#efefeb}.stage-map::before{top:50%;left:22px;width:calc(100% - 44px);height:3px;box-shadow:none}.stage-map::after{display:none}.stage-grid{position:relative;inset:auto;grid-template-columns:repeat(10,58px);grid-template-rows:1fr;width:max-content;min-width:100%;height:146px;padding:0 22px;gap:15px}.stage-button{width:auto;min-height:50px}.stage-landmark{display:none}}
@media(max-width:480px){.stage-map{min-height:142px}.stage-grid{height:142px;grid-template-columns:repeat(10,54px);gap:13px;padding:0 18px}.stage-button{min-height:48px}}
.result-total-score{margin:8px 0 14px;color:var(--shade);font-size:15px;font-weight:850}.angry-record-form{margin:0 0 18px}.angry-record-form[hidden]{display:none!important}.angry-record-form .score-submit{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.angry-record-form input{min-width:0;min-height:44px;padding:0 12px;border:2px solid var(--ink);border-radius:0;color:var(--ink);background:var(--paper);font-weight:800}.angry-record-form button{min-height:44px;padding:0 13px;border:2px solid var(--ink);border-radius:0;color:var(--paper);background:var(--ink);font-weight:900}.angry-record-form .arcade-record-note{min-height:18px;margin:7px 0 0;color:var(--shade);font-size:12px;font-weight:750}.angry-page .records-section{width:min(100%,1120px);margin:44px auto 0}@media(max-width:480px){.angry-record-form .score-submit{grid-template-columns:1fr}.angry-record-form button{width:100%}.angry-page .records-head{align-items:flex-start}.angry-page .record-tabs{width:100%;overflow-x:auto}}
