*{box-sizing:border-box}body{margin:0;background:#142630;color:#f9f5e9;font-family:"Comic Sans MS","Comic Sans","Comic Relief",cursive}main{max-width:1600px;margin:auto;padding:0 32px}header{height:86px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{font-weight:900;font-size:20px;letter-spacing:-.6px;color:inherit;text-decoration:none}.brand span{font-size:11px;letter-spacing:1px;display:inline-block;transform:rotate(-90deg);margin:0 -3px;color:#9eafac}.tools{display:flex;gap:10px}button{font:inherit;cursor:pointer;border:1px solid #ffffff24;border-radius:12px;background:#ffffff0c;color:inherit;padding:12px 16px}button:hover{background:#ffffff21}button:focus-visible{outline:3px solid #ffd163;outline-offset:3px}.game{position:relative;overflow:hidden;border-radius:22px;background:#b3e4e8;aspect-ratio:16/9;box-shadow:0 22px 70px #0004;isolation:isolate}canvas{width:100%;height:100%;display:block;outline:none}.hud{position:absolute;top:22px;left:22px;right:22px;display:flex;align-items:center;gap:12px;pointer-events:none}.pill{display:flex;align-items:center;gap:15px;background:#15313bda;border:1px solid #ffffff30;border-radius:12px;padding:13px 17px;font-size:16px;white-space:nowrap;backdrop-filter:blur(8px)}#hearts{color:#ff9a83;letter-spacing:4px}.pill i{height:18px;width:1px;background:#ffffff30}.progress{height:6px;background:#fff6;flex:1;border-radius:8px;max-width:240px;margin:auto}.progress div{height:100%;width:0;background:#173841;border-radius:8px}.timer{font-variant-numeric:tabular-nums}.hud button{pointer-events:auto;background:#15313bda}.overlay{position:absolute;inset:0;display:flex;align-items:center;padding:8%;background:linear-gradient(90deg,#14343be8,#14343b80 55%,#14343b10)}.overlay.hidden{display:none}.card{max-width:640px}.eyebrow{font-size:12px;font-weight:bold;letter-spacing:2px;color:#ffda79}h1{font-size:clamp(26px,3.8vw,58px);line-height:1.04;letter-spacing:-2px;margin:20px 0}p{color:#e1eeea;font-size:17px;line-height:1.6}.primary{background:#ffce5b;color:#25342c;border:0;font-weight:bold;font-size:18px;padding:17px 28px;margin-top:10px;box-shadow:0 5px 0 #c99532}.primary:hover{background:#ffdb80}.primary:disabled{opacity:.7;cursor:wait}.keys{font-size:14px;margin-top:24px}.keys span{color:#bdd0cc;margin:0 14px 0 5px}kbd{font:inherit;border:1px solid #ffffff50;padding:5px;border-radius:5px}footer{display:flex;justify-content:space-between;gap:12px;padding:23px 2px;color:#97b0b6;font-size:14px}footer b{color:#ffce5b;margin-right:10px}footer em{font-style:normal;margin-left:14px;color:#708990}.dot{margin:0 10px}.touch{position:absolute;bottom:18px;left:18px;right:18px;display:none;justify-content:space-between;pointer-events:none}.touch div{display:flex;gap:12px}.touch button{pointer-events:auto;touch-action:none;width:64px;height:60px;background:#18343bad;font-size:27px;user-select:none}#toast{position:absolute;left:50%;top:100px;transform:translateX(-50%);background:#17343bdd;border-radius:12px;padding:12px 22px;opacity:0;transition:opacity .2s;pointer-events:none;white-space:nowrap}.game:fullscreen{width:100vw;height:100vh;border-radius:0;aspect-ratio:auto}@media(pointer:coarse){.touch{display:flex}.keys{display:none}}@media(max-width:700px){main{padding:0 10px}header{height:64px}.brand{font-size:14px}.brand span{font-size:8px}.tools button{padding:9px;font-size:12px}.game{aspect-ratio:auto;height:calc(100svh - 116px);min-height:400px;border-radius:16px}.hud{left:10px;right:10px;top:10px;gap:7px}.pill{font-size:13px;padding:10px;gap:8px}.progress{max-width:90px}.hud button{padding:9px}.overlay{padding:7%}h1{font-size:37px;letter-spacing:-1px}p{font-size:15px}.eyebrow{font-size:10px;letter-spacing:1px}footer{padding:15px 2px;font-size:12px}footer>span:last-child{display:none}}
#bossHud{position:absolute;top:83px;left:50%;transform:translateX(-50%);width:min(390px,80%);text-align:center;background:#152e29e8;border:1px solid #ffda7955;padding:12px 18px;border-radius:12px;pointer-events:none}#bossHud[hidden]{display:none}#bossName{font-size:17px;color:#ffda79}.bossTrack{margin:8px 0;height:8px;border-radius:8px;background:#ffffff22;overflow:hidden}#bossLife{height:100%;background:#ef795a;transition:width .16s}#bossHint{font-size:13px;color:#f2e5c7}#toast{top:auto;bottom:100px;max-width:90%;white-space:normal;text-align:center}.hud .progress{max-width:180px}#hearts{font-size:17px;letter-spacing:1px}@media(max-width:700px){.hud{flex-wrap:wrap}.hud .progress{display:none}.pill{font-size:12px;gap:7px}#hearts{font-size:15px;letter-spacing:0}.pill i{display:none}.hud .timer{margin-left:auto}#bossHud{top:64px;width:90%;padding:9px}#bossName{font-size:15px}#bossHint{font-size:12px}.overlay h1{font-size:34px}.overlay p{font-size:15px}}
#powerHud,#survivalHud,#freezeHint{position:absolute;z-index:3;background:#133542ed;border:1px solid #b3f4ff88;border-radius:12px;padding:11px 18px;font-weight:bold;pointer-events:none}#powerHud{bottom:22px;left:50%;transform:translateX(-50%);color:#a3efff}#survivalHud{top:80px;left:50%;transform:translateX(-50%);font-size:24px;color:#ffe8a5}#freezeHint{top:140px;left:50%;transform:translateX(-50%);background:#611a36e8;color:#fff4bb;text-align:center}#endingButton{position:absolute;bottom:25px;right:25px;z-index:4}#saveStatus{font-size:13px;color:#ffdf91;margin:20px 0 10px}#newGame{font-size:13px;padding:8px 12px}.card .keys{margin-top:15px}[hidden]{display:none!important}@media(max-width:700px){#powerHud{bottom:93px;width:90%;text-align:center}#freezeHint{width:90%;top:123px;font-size:14px}#survivalHud{top:65px;font-size:19px}.overlay h1{font-size:29px}.overlay p{font-size:14px;line-height:1.4}.overlay{padding-top:65px;align-items:center}.primary{padding:12px 20px}}
#gateButton{position:absolute;bottom:23px;left:50%;transform:translateX(-50%);z-index:6;white-space:nowrap}

.start-screen .hud,.start-screen footer,.start-screen #saveStatus,.start-screen #newGame,.start-screen #description,.start-screen #eyebrow{display:none}.start-screen h1{font-size:clamp(26px,4vw,60px);letter-spacing:-1px}.start-screen .card{max-width:90%}

.start-screen header,.start-screen .touch{display:none}.start-screen main{max-width:none;padding:0}.start-screen .game{width:100%;height:100svh;min-height:420px;border-radius:0;aspect-ratio:auto;box-shadow:none}.start-screen .overlay{align-items:flex-end;justify-content:center;text-align:center;padding:4vh 18px 7vh;background:linear-gradient(180deg,transparent 35%,#07101430 52%,#071014df 100%)}.start-screen .card{width:100%;max-width:900px}.start-screen h1{margin:0 0 20px;font-size:clamp(28px,6vw,76px);font-weight:900;color:#ffdf84;text-shadow:0 3px 24px #0009;letter-spacing:-1.5px}.start-screen .keys{display:block;font-size:clamp(13px,1.5vw,17px);line-height:2;margin-top:23px}.start-screen .primary{padding:17px 42px;font-size:21px}.start-screen .keys span{margin-right:8px;color:#f5ead6}@media(max-width:450px){.start-screen h1{font-size:30px;letter-spacing:-1px}.start-screen .keys span{margin:0 4px}.start-screen .overlay{padding-bottom:8vh}}

.start-screen #newGame{display:block;margin:17px auto 0;padding:10px 22px;font-size:15px;background:#102329bb;color:#f8f0df;border-color:#f5e5b455}.start-screen #newGame:hover{background:#274432}.start-screen .keys{margin-top:17px}

.touch,.touch *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:none}.touch button{width:78px;height:78px;border-radius:50%;display:grid;place-items:center;padding:0;border:2px solid #e8f6ef70;background:#17343be0;box-shadow:0 5px 0 #081c24a0,inset 0 2px 0 #ffffff26}.touch button:active{background:#35606bea;transform:translateY(2px);box-shadow:0 2px 0 #081c24a0}.touch .control-icon{width:19px;height:19px;border-top:4px solid #fff0c6;border-right:4px solid #fff0c6;pointer-events:none}.touch [data-key="ArrowLeft"] .control-icon{transform:rotate(-135deg);margin-left:8px}.touch [data-key="ArrowRight"] .control-icon{transform:rotate(45deg);margin-right:8px}.touch [data-key="Space"] .control-icon{transform:rotate(-45deg);margin-top:8px}.touch{bottom:max(18px,env(safe-area-inset-bottom));left:14px;right:14px}.touch div{gap:12px}@media(max-width:360px){.touch button{width:72px;height:72px}.touch div{gap:9px}}

@font-face{font-family:EngravedTitle;src:url('assets/engraved-title.woff') format('woff');font-weight:700;font-style:normal;font-display:swap}.start-screen #title{font-family:MedievalTitle,Georgia,serif;font-weight:700;font-size:clamp(28px,7.8vw,88px);line-height:1.16;letter-spacing:.018em;color:#f6d16c;text-shadow:0 2px 0 #6e3c10,0 5px 8px #000d;margin-bottom:22px;padding:6px 0 10px;overflow:visible}@supports (background-clip:text) or (-webkit-background-clip:text){.start-screen #title{background-image:repeating-linear-gradient(125deg,transparent 0,transparent 3px,#5b310a3d 3.4px,transparent 4.2px),linear-gradient(180deg,#fff6cf 0%,#ffdf83 26%,#dba332 43%,#fff0af 49%,#f9d575 57%,#b47a20 78%,#ffe7a0 100%);background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent;-webkit-text-stroke:.35px #70430b80;text-shadow:none;filter:drop-shadow(0 2px 0 #643708) drop-shadow(0 5px 3px #000b) drop-shadow(0 0 16px #e6b94c30)}}

@font-face{font-family:"Comic Relief";src:url("assets/comic-relief.woff") format("woff");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:MedievalTitle;src:url("assets/medieval-title.woff") format("woff");font-style:normal;font-weight:400 900;font-display:swap}

/* The complete original UI; only game imagery uses the 8-bit rendering pass. */
canvas{image-rendering:pixelated;image-rendering:crisp-edges}
