@import "https://fonts.googleapis.com/css2?family=Press+Start+2P&family=VT323&display=swap";:root{--ink:#e9e4d8;--bg-deep:#0a0b10;--bg-panel:#1c1f2b;--stone:#2a2e3d;--stone-light:#3c4257;--gold:#f2c14e;--blue:#6fb3f2;--danger:#e0554f;--success:#59c97a}*{box-sizing:border-box}html{background:var(--bg-deep)}body{color:var(--ink);background:radial-gradient(ellipse at top, #232738 0%, transparent 60%), var(--bg-deep);margin:0;font-family:VT323,ui-monospace,monospace;font-size:1.4rem;line-height:1.5}.page{flex-direction:column;min-height:100vh;padding:1.5rem 1.25rem;display:flex}main{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;width:100%;max-width:34rem;margin:0 auto;padding:2rem 0;display:flex}a{color:var(--gold);text-decoration:none}a:hover,a:focus-visible{text-decoration:underline}header{justify-content:center;margin-bottom:1.5rem;display:flex}nav a{border:3px solid var(--stone-light);background:var(--bg-panel);letter-spacing:.05em;color:var(--gold);padding:.45rem 1rem;font-family:"Press Start 2P",monospace;font-size:.65rem;display:inline-block;box-shadow:3px 3px #000}h1{letter-spacing:.05em;color:var(--gold);text-shadow:4px 4px #000;margin:0 0 .75rem;font-family:"Press Start 2P",monospace;font-size:clamp(2rem,8vw,3.5rem);line-height:1.4}.subtitle{color:#a8adc2;max-width:26rem;margin:0 0 2rem;font-size:1.3rem}.game-frame{background:var(--bg-panel);border:4px solid var(--stone-light);box-shadow:inset 0 0 0 4px var(--bg-deep), 6px 6px 0 #000;justify-content:center;margin-bottom:1.25rem;padding:1rem;display:flex}footer{text-align:center;color:#7d8399;margin-top:2.5rem;font-size:1.1rem}#game-root{--tile:3rem;width:calc(var(--cols,1) * var(--tile));height:calc(var(--rows,1) * var(--tile));background-color:#12141c;background-image:url(/comp4020-crit5-zephyrieal/_astro/floor.H0lwW7qV.png);background-size:var(--tile) var(--tile);image-rendering:pixelated;border:2px solid #2a2e3d;position:relative}.tile{left:calc(var(--x) * var(--tile));top:calc(var(--y) * var(--tile));width:var(--tile);height:var(--tile);box-sizing:border-box;background-repeat:no-repeat;position:absolute}.wall{transform:rotate(var(--rot,0deg)) scale(var(--fx,1), var(--fy,1))}.wall-edge{background-image:url(/comp4020-crit5-zephyrieal/_astro/wall-edge.CNt50H_h.png);background-size:100% 100%}.wall-corner{background-image:url(/comp4020-crit5-zephyrieal/_astro/wall-corner.vZ0WQJ8b.png);background-size:100% 100%}.wall-corner-bottom{background-image:url(/comp4020-crit5-zephyrieal/_astro/wall-corner-bottom.Cka2a8PS.png);background-size:100% 100%}.wall-overlap{height:calc(var(--tile) * 90 / 78);top:calc(var(--y) * var(--tile) - (var(--tile) * 90 / 78 - var(--tile)))}.wall-side{background-image:url(/comp4020-crit5-zephyrieal/_astro/wall-side.DKeeqYLR.png);background-position:100%;background-repeat:no-repeat;background-size:auto 100%}.door{box-shadow:0 0 calc(var(--tile) * .25) #f2c14e80;background-image:url(/comp4020-crit5-zephyrieal/_astro/door.doZanzL4.png);background-size:100% 100%}.door.locked{filter:grayscale(.85)brightness(.6);box-shadow:none}.key{filter:drop-shadow(0 0 .3rem #f2c14e99);background-image:url(/comp4020-crit5-zephyrieal/_astro/key.D02l9WIC.png);background-position:50%;background-repeat:no-repeat;background-size:contain}.npc{background-image:url(/comp4020-crit5-zephyrieal/_astro/npc.DKJxNavQ.png);background-position:bottom;background-size:contain;transition:filter .15s}.npc:before{content:"";background-image:url(/comp4020-crit5-zephyrieal/_astro/speech-bubble.DtLM-T3a.png);background-position:50%;background-repeat:no-repeat;background-size:contain;width:65%;height:55%;position:absolute;top:-60%;left:50%;transform:translate(-50%)}.npc.glow{filter:drop-shadow(0 0 .4rem #cfe6ff)}.box{background-image:url(/comp4020-crit5-zephyrieal/_astro/box.D70FJacJ.png);background-size:100% 100%}.box.danger-obvious{background-image:url(/comp4020-crit5-zephyrieal/_astro/box-danger.muRPdK3F.png)}.box.danger-subtle{filter:saturate(1.3)brightness(.94)}.enemy{background-position:bottom;background-repeat:no-repeat;background-size:contain}.enemy-kind-demon{background-image:url(/comp4020-crit5-zephyrieal/_astro/enemy-demon.D58YQkEy.png)}.enemy-kind-slime{background-image:url(/comp4020-crit5-zephyrieal/_astro/enemy-slime.DBCXGAdt.png)}.enemy-kind-skeleton{background-image:url(/comp4020-crit5-zephyrieal/_astro/enemy-skeleton.D7dnD9QG.png)}.enemy-kind-ghost{background-image:url(/comp4020-crit5-zephyrieal/_astro/enemy-ghost.B8y6tURL.png)}.enemy-chase{animation:.5s ease-in-out infinite alternate enemy-pulse}@keyframes enemy-pulse{0%{filter:brightness()}to{filter:brightness(1.35)}}.player{background-position:bottom;background-repeat:no-repeat;background-size:contain}.player.facing-down{background-image:url(/comp4020-crit5-zephyrieal/_astro/player-down.CQgOAZiC.png)}.player.facing-up{background-image:url(/comp4020-crit5-zephyrieal/_astro/player-up.CDDSdXK0.png)}.player.facing-left{background-image:url(/comp4020-crit5-zephyrieal/_astro/player-left.yVY5HMoM.png)}.player.facing-right{background-image:url(/comp4020-crit5-zephyrieal/_astro/player-right.BQksyCTe.png)}#dialogue{border:3px solid var(--stone-light);border-left:4px solid var(--blue);background:var(--bg-panel);width:100%;color:var(--ink);text-align:left;margin:0 0 1rem;padding:.6rem .9rem;font-size:1.25rem;font-style:italic}#outcome{text-align:center;letter-spacing:.03em;min-height:1.8rem;color:var(--ink);font-family:"Press Start 2P",monospace;font-size:.75rem}#outcome[data-phase=lost]{color:var(--danger)}#outcome[data-phase=won]{color:var(--success)}
