:root{font-family:Segoe UI,system-ui,sans-serif;color:#e7f8f3;background:#071114;font-synthesis:none}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}button,input{font:inherit}.shell{position:relative;width:100%;height:100%;min-height:480px;background:#071114}#scene{display:block;width:100%;height:100%}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#020709d1,#02070933 48%,#0207099e),linear-gradient(0deg,rgba(2,7,9,.8),transparent 45%)}.title-screen{position:absolute;inset:0 auto 0 0;width:min(620px,100%);padding:clamp(34px,7vw,96px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.eyebrow{margin:0 0 14px;font-family:Bahnschrift,Segoe UI,sans-serif;color:#79d7cb;font-size:14px;letter-spacing:.18em}h1{margin:0;font-family:Bahnschrift,Segoe UI,sans-serif;font-size:clamp(58px,9vw,120px);font-weight:600;line-height:.82;letter-spacing:0;text-shadow:0 0 40px rgba(76,231,210,.18)}.subtitle{margin:14px 0 0;color:#9bded4;font-family:Bahnschrift,Segoe UI,sans-serif;font-size:clamp(22px,3vw,38px)}.intro{max-width:460px;margin:24px 0 30px;color:#b6cbc7;line-height:1.55}.menu{display:grid;width:min(320px,100%);gap:9px}button{min-height:46px;padding:10px 18px;border:1px solid rgba(154,218,208,.35);border-radius:4px;color:#daf4ee;background:#0a1b1dc2;text-align:left;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease}button:hover:not(:disabled),button:focus-visible{border-color:#6ce1d1;background:#143d3ce6;transform:translate(3px)}button.primary{color:#061412;border-color:#77e3d4;background:#77e3d4;font-weight:600}button:disabled{opacity:.42;cursor:not-allowed}.controls-hint{margin:24px 0 0;color:#7c9692;font-size:12px}.dialog{position:absolute;inset:0;display:grid;place-items:center;padding:20px;background:#02080ac7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.dialog.hidden{display:none}.hidden{display:none!important}.dialog-body{width:min(420px,100%);padding:28px;border:1px solid rgba(111,219,204,.35);border-radius:6px;background:#08181af5;box-shadow:0 22px 80px #0000006b}.dialog h2{margin:0 0 22px;font-family:Bahnschrift,Segoe UI,sans-serif;font-size:30px;font-weight:500}.dialog label{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:16px 0;color:#bad0cc}.dialog input[type=range]{width:180px;accent-color:#6fe0d0}.dialog input[type=checkbox]{width:20px;height:20px;accent-color:#6fe0d0}.dialog button{width:100%;margin-top:12px;text-align:center}.high-contrast{filter:contrast(1.18) saturate(1.05)}.reduced-motion *{transition-duration:0s!important}.vignette.playing{background:linear-gradient(90deg,rgba(2,7,9,.28),transparent 45%,rgba(2,7,9,.28))}.game-ui{position:absolute;inset:0;display:flex;align-items:flex-start;justify-content:space-between;padding:28px 34px;pointer-events:none;text-shadow:0 2px 8px #000}.game-ui h2{margin:-8px 0 0;font-family:Bahnschrift,Segoe UI,sans-serif;font-size:24px;font-weight:500}.game-ui .tutorial{align-self:flex-end;margin:0 auto;padding:10px 16px;border:1px solid rgba(111,219,204,.3);border-radius:4px;color:#d4e8e4;background:#051214c7;font-size:12px;letter-spacing:.08em}.game-ui .tutorial span{margin-left:20px;color:#84cfc5}.checkpoint-toast{position:absolute;top:22%;left:50%;transform:translate(-50%);margin:0;padding:9px 15px;border:1px solid rgba(165,100,224,.58);border-radius:4px;color:#e9d9f9;background:#1b0c27e0;font-size:12px;letter-spacing:.08em}.meter,.energy-meter,.target-meter{width:180px;height:5px;margin-top:10px;overflow:hidden;border-radius:4px;background:#ffffff1f}.meter span,.energy-meter span,.target-meter span{display:block;width:100%;height:100%;transition:width .18s ease}.meter span{background:#76dfd0}.energy-meter{width:150px;height:3px;margin-top:5px}.energy-meter span{background:#b96fe0}.target-meter{width:120px;height:3px;margin-top:6px}.target-meter span{background:#d28168}.puzzle-status{margin:8px 0 0;color:#8fb2ad;font-size:10px;letter-spacing:.06em}.room-objective{max-width:260px;margin:4px 0 0;color:#9cb5b1;font-size:11px}.boss-panel{margin-top:12px;color:#e5a6d4;font-size:10px;letter-spacing:.08em}.boss-meter{width:220px;height:5px;margin-top:5px;overflow:hidden;background:#ffffff1f}.boss-meter span{display:block;width:100%;height:100%;background:linear-gradient(90deg,#b85295,#ed8abf);transition:width .16s ease}.escape-status{position:absolute;top:28px;right:34px;margin:0;padding:8px 12px;border:1px solid rgba(229,91,78,.65);color:#ffc0b7;background:#2a0908c7;font-family:Bahnschrift,Segoe UI,sans-serif;font-size:13px;letter-spacing:.12em}.victory-screen .dialog-body{border-color:#c77eea9e;background:linear-gradient(145deg,#190c23fa,#081d1efa)}.pause-controls{color:#b8ccca;font-size:13px;line-height:1.8}.shell.pulse-active:after{content:"";position:absolute;inset:8%;pointer-events:none;border:3px solid rgba(202,129,242,.75);border-radius:50%;box-shadow:0 0 80px #b850e18c,inset 0 0 80px #b850e14d;animation:pulse-wave .65s ease-out both}@keyframes pulse-wave{0%{transform:scale(.15);opacity:1}to{transform:scale(1.25);opacity:0}}.story-caption{position:absolute;left:50%;bottom:82px;width:min(680px,calc(100% - 40px));transform:translate(-50%);margin:0;padding:12px 18px;border-left:2px solid #a86fd7;color:#e5dcef;background:linear-gradient(90deg,#12081be6,#071114b3);font-size:14px;line-height:1.45;text-align:center}.shell.perception #scene{filter:saturate(1.28) hue-rotate(18deg) brightness(1.08)}.shell.perception:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 120px #a95adc47}@media(max-width:620px){.title-screen{justify-content:flex-end;padding:28px 24px 34px}.vignette{background:linear-gradient(0deg,#020709f5,#0207094d 78%)}.intro{margin:18px 0 22px}.controls-hint{display:none}}@media(prefers-reduced-motion:reduce){*{transition-duration:0s!important}}
