:root{font-family:Hiragino Kaku Gothic ProN,Yu Gothic,sans-serif;color:#fff;background:#c3e6ed;font-synthesis:none}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;overflow:hidden;overscroll-behavior:none;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}button,select{font:inherit;color:inherit}button{cursor:pointer;border:0;touch-action:none}button:focus-visible{outline:3px solid #fff5a2;outline-offset:3px}[hidden]{display:none!important}#scene{position:fixed;inset:0;width:100%;height:100%;touch-action:none}#hud{position:fixed;inset:0;pointer-events:none;display:none;padding:max(22px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) max(22px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left))}.top{display:flex;gap:24px;align-items:start;position:relative;z-index:4}.health{width:140px;padding:12px 15px;border-radius:20px;background:#24425cbf;border:1px solid #ffffff60}.health small{font-size:12px}.health b{display:block;font-size:32px}.health div{height:7px;background:#ffffff30;border-radius:10px;overflow:hidden}.health i{height:100%;display:block;background:#9dffcb}.mission{display:grid;gap:7px;text-shadow:0 2px 5px #17354f}.mission small{color:#fff4bf;font-size:13px}.mission b{font-size:16px}.mission span{color:#ffdf7c;font-size:24px}.score{margin-left:auto;display:grid;gap:4px;text-shadow:0 2px 5px #244}.score small{font-size:11px}.score b{font-size:23px}#pause{pointer-events:auto;width:50px;height:50px;border-radius:16px;border:1px solid #fff8;background:#24425cbf;font-size:23px}#crosshair{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:27px;text-shadow:0 0 5px #134}.hit{color:#fff48b}#toast{position:absolute;top:27%;left:10%;right:10%;text-align:center;font-size:21px;color:#fff6b0;text-shadow:0 2px 5px #123;font-weight:800;z-index:3}#buffs{position:absolute;left:24px;top:215px;font-size:12px;text-shadow:0 2px 5px #124}#supplies{position:absolute;left:24px;top:145px;display:flex;gap:7px;align-items:center;z-index:5}#supplies button{pointer-events:auto;min-height:58px;border:1px solid #fff9;border-radius:16px;background:#24425ccc}#item-select{min-width:78px;display:flex;align-items:center;justify-content:center;gap:7px}#item-icon{font-size:30px}#item-count{font-size:15px}#item-use{padding:0 18px;color:#fff3b2;font-size:15px}#armor{font-size:11px;max-width:70px}#weapon{pointer-events:auto;position:absolute;bottom:max(24px,env(safe-area-inset-bottom));left:24px;display:grid;gap:7px;padding:14px 20px;min-height:80px;min-width:165px;text-align:left;background:#24425cbb;border-radius:18px;border:1px solid #fff7;z-index:5}#weapon small{font-size:11px}#weaponname{font-size:18px}#energy{font-size:12px;color:#ffeb9e}#mapbutton{pointer-events:auto;position:absolute;right:24px;bottom:24px;width:240px;border-radius:18px;border:1px solid #a8ffe7aa;background:#16374d77;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);padding:12px;text-align:left;z-index:5}#mapbutton span{font-size:12px}#mapbutton i{float:right;font-style:normal;color:#b9ffe5}#map{width:100%;display:block}#mapbutton.expanded{width:min(500px,80vw);position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);background:#16374de8}#overlay{position:fixed;inset:0;padding:7vh 6vw;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;z-index:10;background:linear-gradient(90deg,#183549e0,#23395580 65%,#243e5700)}.eyebrow{font-size:15px;color:#d0ffe6;max-width:600px;line-height:1.6}h1{font-size:clamp(32px,5vw,64px);line-height:1.25;margin:20px 0 8px;letter-spacing:1px;text-shadow:0 4px 0 #213658}h1 em{font-style:normal;color:#ffec96}#description{font-size:16px;line-height:1.8;white-space:pre-line;color:#fff4dd;margin:10px 0}.chips{display:flex;gap:10px;margin:12px 0 20px}.chips span{padding:7px 12px;border-radius:25px;border:1px solid #ffffff60;font-size:12px}#start,#restart,#card-close{background:#baffd8;color:#233c53;min-height:54px;padding:12px 30px;border-radius:16px;font-weight:800;font-size:19px;box-shadow:0 4px #68b49c}#restart{margin-top:12px;background:#ffe6a3}#listen{margin-top:18px;background:#234563bb;border:1px solid #baffd8aa;color:#d5ffe9;padding:10px 16px;border-radius:12px;min-height:44px;font-size:13px}.settings{display:flex;gap:18px;align-items:center;margin-top:18px;font-size:13px}.settings label{display:flex;gap:7px;align-items:center;min-height:44px}.settings input{accent-color:#aaf5cd}.settings select{color:#efffdc;background:#24425c;border:1px solid #fff9;border-radius:9px;min-height:36px;padding:4px}.instructions{font-size:12px;line-height:1.8;color:#daf4e7;margin-top:8px}footer{position:absolute;bottom:max(18px,env(safe-area-inset-bottom));font-size:11px;color:#d9f0e9}#touch{display:none}.touch #touch{display:block}#look{position:absolute;inset:13% 0 0 38%;pointer-events:auto;touch-action:none;z-index:1}#stick{position:absolute;left:max(24px,env(safe-area-inset-left));bottom:max(24px,env(safe-area-inset-bottom));width:124px;height:124px;display:grid;place-items:center;border:2px solid #fff9;border-radius:50%;background:#1b455450;pointer-events:auto;touch-action:none;z-index:4}#knob{width:55px;height:55px;border:2px solid white;border-radius:50%;background:#c4ffddb0}#stick span{position:absolute;bottom:8px;font-size:11px}#attack,#jump,#dash{position:absolute;pointer-events:auto;z-index:4;border:1px solid #fffb;border-radius:50%;display:grid;place-content:center;text-align:center;background:#24425c9f;font-size:24px}#attack small,#jump small,#dash small{font-size:12px}#attack{width:80px;height:80px;right:max(24px,env(safe-area-inset-right));bottom:max(28px,env(safe-area-inset-bottom));background:#ffe08cdd;color:#263b58}#jump{width:60px;height:60px;right:max(116px,calc(env(safe-area-inset-right) + 116px));bottom:max(30px,env(safe-area-inset-bottom))}#dash{width:58px;height:58px;right:max(30px,env(safe-area-inset-right));bottom:124px}#interact{position:absolute;left:50%;bottom:26px;transform:translate(-50%);pointer-events:auto;z-index:6;min-width:105px;min-height:52px;border-radius:16px;background:#ffe29ce8;color:#263b58;font-size:18px;font-weight:800}#danger{position:absolute;inset:0;pointer-events:none;transition:box-shadow .4s}.active{box-shadow:inset 0 0 80px 12px #f28c9470}.poison{box-shadow:inset 0 0 55px 10px #97d47495}.lava{box-shadow:inset 0 0 55px 10px #ff934c90}#threat{position:absolute;left:50%;top:20%;transform:translate(-50%);font-size:13px;padding:6px 12px;border-radius:14px;background:#243c5ab0;color:#fff4b0;z-index:4}#threat:empty{display:none}#bossbar{position:absolute;left:50%;top:112px;transform:translate(-50%);width:min(420px,40vw);font-size:13px;text-align:center;color:#fff0a9}#bossbar div{height:9px;margin-top:5px;background:#203555;border-radius:10px;overflow:hidden}#bosshp{display:block;height:100%;background:linear-gradient(90deg,#b89ce9,#ffa6bd,#fff2a1);transition:width .15s}#card{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:#203a55a0;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);padding:18px}.card-box{width:min(450px,90vw);max-height:95vh;overflow:auto;text-align:center;border:2px solid #fff6bd;background:linear-gradient(145deg,#fff7d7,#cdf0e4);color:#293f59;border-radius:28px;padding:25px;box-shadow:0 20px 70px #18304970}#card-icon{font-size:78px;filter:drop-shadow(0 4px 0 #b7d6c3)}.card-box h2{font-size:23px;line-height:1.4;margin:10px 0}.card-box p{white-space:pre-line;font-size:15px;line-height:1.8;color:#3c566b}.card-box button{margin-top:8px;min-width:160px}#orientation{position:fixed;inset:0;z-index:50;background:#c7ebe6f5;color:#264458;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:28px}#orientation span{font-size:80px;color:#548db0}#orientation b{font-size:23px}#orientation p{font-size:13px;line-height:1.8}.touch .score{display:none}.touch #hud{padding:14px max(16px,env(safe-area-inset-right)) 14px max(16px,env(safe-area-inset-left))}.touch .health{width:106px;padding:8px 12px}.touch .health b{font-size:25px}.touch .health small{font-size:10px}.touch .mission small{font-size:11px}.touch .mission b{font-size:12px;max-width:260px}.touch .mission span{font-size:20px}.touch .top{gap:16px}.touch #pause{margin-left:auto;width:46px;height:46px}.touch #mapbutton:not(.expanded){top:80px;bottom:auto;right:16px;width:112px;padding:8px}.touch #weapon{left:165px;bottom:max(22px,env(safe-area-inset-bottom));min-width:150px;min-height:64px;padding:10px 15px}.touch #weapon small{display:none}.touch #weaponname{font-size:13px}.touch #supplies{left:165px;top:auto;bottom:103px;gap:5px}.touch #supplies button{min-height:52px}.touch #item-select{min-width:68px}.touch #item-use{padding:0 10px;font-size:13px}.touch #armor{display:none}.touch #item-icon{font-size:25px}.touch #buffs{left:165px;top:auto;bottom:163px;font-size:10px}.touch #interact{bottom:155px;font-size:16px}.touch #toast{top:29%;font-size:16px}.touch #threat{top:23%;font-size:11px}.touch #bossbar{top:85px;width:210px;font-size:11px}@media(min-width:1000px){#stick{width:148px;height:148px}#attack{width:84px;height:84px}#jump{width:68px;height:68px;right:130px}#dash{width:64px;height:64px}.touch #supplies,.touch #weapon,.touch #buffs{left:200px}.touch #mapbutton:not(.expanded){width:155px;top:96px}.touch .health{width:130px}.touch .mission b{font-size:15px}}@media(max-height:500px){#overlay{padding:18px 5vw}.eyebrow{font-size:11px;max-width:380px}h1{font-size:32px;margin:9px 0 4px}#description{font-size:12px;margin:5px 0;max-width:350px}.chips{margin:5px 0 10px;gap:7px}.chips span{font-size:10px;padding:5px 8px}#start,#restart{min-height:48px;font-size:16px;padding:9px 22px}#listen{position:absolute;left:56%;top:36%;margin:0}.settings{position:absolute;left:56%;top:52%;display:flex;flex-wrap:wrap;gap:8px;max-width:300px;margin:0}.instructions{position:absolute;left:56%;top:76%;font-size:10px;max-width:270px}footer{font-size:9px;bottom:12px}#restart{position:absolute;left:56%;top:20%;margin:0}.card-box{padding:12px 22px}#card-icon{font-size:48px}.card-box h2{font-size:20px;margin:5px 0}.card-box p{font-size:12px;margin:8px 0;line-height:1.6}.card-box button{min-height:48px;font-size:16px;margin:0}}@media(max-width:760px)and (orientation:portrait){h1{font-size:35px}#overlay{padding:8vw}.eyebrow{font-size:12px}.chips{gap:5px}.chips span{font-size:10px;padding:6px}footer{font-size:9px;max-width:84vw}.settings{gap:10px;flex-wrap:wrap}#description{font-size:14px}}#card-icon img{width:135px;height:135px;object-fit:contain;display:block;margin:auto}@media(max-height:500px){#card-icon img{width:88px;height:88px}}@media(min-height:501px)and (max-height:800px){#overlay{padding-top:30px;padding-bottom:60px}h1{font-size:48px;margin-top:12px}#description{font-size:14px;margin:7px 0}.chips{margin:8px 0 14px}#listen{margin-top:12px}.settings{margin-top:10px}.instructions{font-size:11px}footer{bottom:14px}}.touch #look{inset:0;z-index:1}.touch #supplies{left:max(16px,env(safe-area-inset-left));bottom:max(16px,env(safe-area-inset-bottom));top:auto}.touch #weapon{left:auto;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));min-width:135px}.touch #buffs{left:16px;bottom:78px}.touch #interact{bottom:24px}#item-picker{position:absolute;left:0;bottom:62px;display:flex;gap:8px;padding:10px;border-radius:16px;background:#24425cf0}#item-picker button{min-width:110px;padding:10px;font-size:13px}#quit{display:block;margin-top:12px;min-width:140px;min-height:48px;padding:10px 24px;border-radius:14px;background:#ffe6a3;color:#233c53;font-size:17px;font-weight:800;box-shadow:0 4px #c1a567}#challenge{border:0;margin:8px 0;padding:0;max-width:560px}#challenge legend{font-weight:800;margin:0 auto 8px}#challenge-options{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}#challenge-options button{padding:10px 14px;font-size:16px;border:2px solid #8ad9d4;border-radius:14px;background:#15334b;color:#fff;min-height:44px}#challenge-options button[aria-pressed=true]{background:#b6f5cc;color:#173347;border-color:#fff}#challenge-info{font-size:12px;margin:8px 0;line-height:1.5}#challenge[hidden]{display:none}@media(max-height:500px){#challenge{margin:2px 0}#challenge legend{margin-bottom:3px}#challenge-info{margin:3px 0}#challenge-options button{padding:6px 12px}}@media(max-height:500px){#challenge{position:absolute;left:56%;top:25%;width:40%;max-width:340px}#challenge-options{justify-content:flex-start}#challenge legend{margin-left:0}#challenge-info{max-width:320px;font-size:11px}}#overlay h1.game-logo{width:min(540px,58vw);margin:12px 0 4px;line-height:1.25;text-shadow:none}h1.game-logo img{display:block;width:100%;height:auto;filter:drop-shadow(0 5px 10px #1235)}@media(max-height:500px){#overlay h1.game-logo{width:min(350px,43vw);margin:5px 0 3px}}@media(orientation:portrait){#overlay h1.game-logo{width:min(540px,84vw)}}#overlay.game-over{align-items:center;text-align:center;background:#16324cdd;gap:18px}#overlay.game-over .eyebrow,#overlay.game-over h1,#overlay.game-over .chips,#overlay.game-over .instructions,#overlay.game-over footer{display:none}#overlay.game-over #description{font-size:clamp(32px,5.5vw,76px);font-weight:900;line-height:1.35;max-width:90vw;color:#ffed9b;text-shadow:0 4px 0 #243653;margin:0 0 12px}#overlay.game-over #start,#overlay.game-over #quit{font-size:clamp(20px,3vw,32px);min-width:220px;min-height:62px;padding:12px 28px;border-radius:20px}#overlay.game-over #quit{background:#e1eaf3;color:#26405b}@media(max-height:500px){#overlay.game-over{gap:12px}#overlay.game-over #description{font-size:clamp(32px,5vw,48px)}#overlay.game-over #start,#overlay.game-over #quit{min-height:52px}}#practice{margin-top:14px;min-height:48px;padding:10px 24px;border:2px solid #b9ffe0;border-radius:16px;background:#2b5269;color:#fff;font-weight:800}#practice-menu{position:fixed;inset:15% 20%;z-index:11;background:#effff7;color:#284454;border:3px solid #92debc;border-radius:24px;padding:20px;display:grid;gap:10px;overflow:auto}#practice-menu button{background:#c0f4d8;color:#294658;border-radius:14px;min-height:48px}#practice-hud{position:fixed;top:125px;left:50%;transform:translate(-50%);width:min(560px,65vw);z-index:7;padding:12px 18px;border:1px solid #d7fff5;background:#173d55dc;border-radius:18px;text-align:center;pointer-events:none}#practice-hud p{white-space:pre-line;margin:6px 0;font-size:13px;line-height:1.6}#practice-hud button{pointer-events:auto;min-height:44px;border-radius:12px;padding:8px 18px;background:#bbffdb;color:#264257;margin:3px}body.practicing #bossbar,body.practicing #interact,#overlay.game-over #practice,#overlay.game-over #practice-menu{display:none!important}@media(max-height:500px){#practice{position:absolute;left:56%;top:52%;margin:0}#practice-hud{top:70px;width:56vw;padding:6px 10px}#practice-hud p{font-size:11px;line-height:1.4}#practice-menu{inset:8% 12%;grid-template-columns:1fr 1fr}#practice-menu p{grid-column:1/-1}}@media(max-height:500px){#practice-hud{top:auto;bottom:max(12px,env(safe-area-inset-bottom));width:56vw}}.weapon-meter{display:block;height:7px;width:100%;background:#ffffff25;border-radius:8px;overflow:hidden;margin-top:4px}.weapon-meter i{display:block;height:100%;background:#ffe599;border-radius:8px}.cooldown-meter i{background:#9affde}#shot-status{font-size:11px!important;line-height:1.2}#pause-controls{white-space:pre-line;text-align:left;line-height:1.6;background:#203952eb;border:1px solid #a7ddd8;border-radius:18px;padding:16px 24px;font-size:14px;max-width:90vw}#overlay:has(#pause-controls:not([hidden])) .game-logo,#overlay:has(#pause-controls:not([hidden])) .eyebrow,#overlay:has(#pause-controls:not([hidden])) .chips,#overlay:has(#pause-controls:not([hidden])) .instructions,#overlay:has(#pause-controls:not([hidden])) footer,#overlay:has(#pause-controls:not([hidden])) #practice{display:none}@media(max-height:500px){#pause-controls{font-size:12px;padding:10px 16px;line-height:1.45}#overlay:has(#pause-controls:not([hidden])){overflow:auto;justify-content:center}#overlay:has(#pause-controls:not([hidden])) #start,#overlay:has(#pause-controls:not([hidden])) #restart{position:static;margin:5px;padding:10px 20px;font-size:18px}}#ending-caption{position:fixed;bottom:max(8%,env(safe-area-inset-bottom));left:5%;right:5%;text-align:center;color:#fff9e4;font-weight:800;font-size:clamp(16px,3vw,30px);text-shadow:0 2px 8px #193b43;background:#193b4380;padding:14px;border-radius:18px;pointer-events:none}body:has(#ending-caption:not([hidden])) #scene{border-top:22px solid #18353b;border-bottom:22px solid #18353b}#ending-story{position:fixed;inset:22px 0;pointer-events:none;background:#eacdad;overflow:hidden;z-index:8}.ending-panel{position:absolute;inset:0;overflow:hidden;transition:opacity 1.7s;background:#ffe8bf}.ending-panel img{position:absolute;width:200%;max-width:none;height:auto;top:50%;left:0;transform:translateY(-50%) scale(1.02);animation:memory-pan 13s ease-in-out forwards}.school-panel{opacity:0}.school-panel img{left:-100%;animation:none}.school .room-panel{opacity:0}.school .school-panel{opacity:1}.school .school-panel img{animation:memory-pan 15s ease-in-out forwards}#ending-caption{z-index:10}.memory-stars{position:absolute;bottom:15%;left:8%;color:#fff5ba;font-size:26px;animation:memory-spark 4s ease-in-out infinite}@keyframes memory-pan{to{transform:translateY(-52%) scale(1.09)}}@keyframes memory-spark{50%{opacity:.3;transform:translateY(-18px)}}@media(prefers-reduced-motion:reduce){.ending-panel img,.memory-stars{animation:none}}.ending-panel{background:radial-gradient(ellipse,#eec987,#ac8d69)}.ending-panel img{width:auto;height:100%;min-height:0;left:50%;--pan-x:-25%;transform:translate(var(--pan-x),-50%) scale(1.02)}.school-panel{background:radial-gradient(ellipse,#d5e6cb,#9cbfae)}.school-panel img{left:50%;--pan-x:-75%}@keyframes memory-pan{to{transform:translate(var(--pan-x),-50%) scale(1.06)}}.ending-panel{width:min(100%,calc(100vh - 44px));left:50%;right:auto;transform:translate(-50%)}#ending-story{background:radial-gradient(ellipse,#efd8aa,#ac8d69)}
