
:root{color-scheme:dark;--ink:#e4ebe7;--muted:#a6b8b3;--line:#ffffff23;--glass:#101b20d9;--accent:#d9e6cb}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#0a1114;color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px}
button,input,select{font:inherit}button,select{color:inherit}button{cursor:pointer}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid #e4eac7;outline-offset:4px}button:disabled{cursor:default;opacity:.45}
#scene{position:fixed;inset:0;touch-action:none;display:block;width:100%;height:100%;outline:none;transition:opacity .28s ease}
#vignette{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,transparent 43%,#03090d55 100%)}
.header{position:fixed;top:30px;left:34px;right:34px;display:flex;justify-content:space-between;align-items:flex-start;gap:24px;pointer-events:none}
.identity .eyebrow{font-size:12px;letter-spacing:.25em;text-transform:uppercase;color:#c5d3cd;margin:0 0 10px}.identity h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(27px,3.2vw,42px);font-weight:400;letter-spacing:.02em;margin:0;line-height:1.08;text-shadow:0 2px 25px #000}.identity .sub{font-size:12px;color:#a8bab5;letter-spacing:.12em;text-transform:uppercase;margin:10px 0 0}
.header-tools{display:flex;gap:8px;pointer-events:auto}.icon-button{width:44px;height:44px;display:grid;place-items:center;background:var(--glass);border:1px solid var(--line);border-radius:50%;backdrop-filter:blur(14px)}.icon-button:hover{background:#26373ae6}.icon-button svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.5;fill:none}
.viewpoints{position:fixed;left:34px;top:50%;transform:translateY(-40%);display:flex;flex-direction:column;gap:10px}.viewpoint{padding:10px 12px 10px 0;display:flex;align-items:center;gap:12px;border:0;background:transparent;color:#b5c2bd;text-shadow:0 2px 8px #000;font-size:12px;letter-spacing:.09em;text-align:left;min-height:42px}.viewpoint i{display:block;width:18px;height:1px;background:#92a9a27a;transition:width .25s,background .25s}.viewpoint[aria-pressed="true"]{color:#f0f0d9}.viewpoint[aria-pressed="true"] i{width:32px;background:#e2e8c6}.viewpoint:hover{color:white}
.caption{position:fixed;left:34px;bottom:110px;pointer-events:none;text-shadow:0 2px 15px #000}.caption .index{font-size:12px;letter-spacing:.18em;color:#bdc8c2;margin-bottom:9px}.caption .place{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:24px;margin:0}.caption .detail{font-size:13px;color:#b4c2bb;margin:9px 0 0}
.dock-wrap{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:20px;right:20px;display:flex;justify-content:center;pointer-events:none}.dock{display:flex;align-items:center;gap:4px;padding:6px;background:#0e191ee0;border:1px solid #cbdad32b;border-radius:16px;box-shadow:0 12px 45px #0005;backdrop-filter:blur(20px);pointer-events:auto}.dock button{display:flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:10px;background:transparent;padding:13px 16px;font-size:14px;white-space:nowrap;color:#c1cfca;min-height:46px}.dock button:hover{background:#d2e3d814}.dock button[aria-pressed="true"]{background:#dce5d4;color:#152428}.dock svg{height:17px;width:17px;stroke:currentColor;stroke-width:1.5;fill:none}.divider{height:25px;width:1px;background:var(--line);margin:0 5px}
#hint{position:fixed;right:34px;bottom:116px;text-align:right;color:#b7c7c0;font-size:13px;max-width:265px;line-height:1.7;pointer-events:none;text-shadow:0 2px 7px #000}kbd{font:11px Arial,sans-serif;border:1px solid #bacfc448;border-radius:4px;padding:3px 5px;color:#e2e9dc;background:#0b141c6b}
#reticle{position:fixed;left:50%;top:50%;width:4px;height:4px;margin:-2px;border-radius:50%;background:#f0ebd69c;box-shadow:0 0 4px #000;pointer-events:none;display:none}body.walking #reticle{display:block}
.panel{position:fixed;top:88px;right:34px;width:min(340px,calc(100vw - 36px));max-height:calc(100dvh - 180px);overflow:auto;padding:24px;background:#111c22f5;border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 70px #0007;backdrop-filter:blur(20px);z-index:5}.panel[hidden]{display:none}.panel h2{font-family:Georgia,serif;font-size:23px;font-weight:400;margin:0 0 22px}.panel label{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:14px;margin:22px 0 12px}.panel select{background:#223037;border:1px solid var(--line);border-radius:7px;padding:8px;max-width:160px}.panel input[type=range]{width:100%;accent-color:#d2dec0}.panel p{font-size:14px;line-height:1.7;color:#b3c4be;margin:14px 0}.panel .controls{display:grid;grid-template-columns:1fr 1.35fr;gap:14px;font-size:14px;line-height:1.5}.panel .controls span:nth-child(even){color:#b3c4be}.close-panel{float:right;border:0;background:transparent;color:#e4eade;width:32px;height:32px;font-size:24px;line-height:20px;margin-top:-6px;margin-right:-8px}.panel small{font-size:12px;color:#92a69f;line-height:1.6;display:block;margin-top:22px}
#loader{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;background:#0a1114;transition:opacity .7s;pointer-events:auto}.loader-inner{width:min(380px,80vw)}.loader-inner .eyebrow{font-size:12px;color:#9aad9f;letter-spacing:.23em;text-transform:uppercase}.loader-inner h2{font-family:Georgia,serif;font-weight:400;font-size:42px;margin:20px 0 28px}.track{width:100%;height:2px;background:#ffffff18;margin:0 0 15px}.track span{display:block;width:4%;height:100%;background:#d3debf;transition:width .2s}#load-message{font-size:14px;line-height:1.7;color:#acbfb4}#reload{margin-top:15px;border:1px solid #d4dfc74a;background:#d7dfc9;color:#182823;border-radius:8px;padding:11px 20px}
#toast{position:fixed;left:50%;top:28px;transform:translateX(-50%);background:#142227ed;border:1px solid var(--line);padding:12px 18px;border-radius:12px;max-width:calc(100vw - 40px);text-align:center;z-index:9;font-size:14px;line-height:1.5;opacity:0;transition:opacity .3s;pointer-events:none}
#joystick{display:none;position:fixed;left:26px;bottom:115px;width:110px;height:110px;border:1px solid #deebd438;border-radius:50%;background:#10212450;touch-action:none}#stick{position:absolute;width:42px;height:42px;left:33px;top:33px;border-radius:50%;border:1px solid #e4ebd755;background:#b9cab42c;pointer-events:none}
#location-label{display:none;font-size:14px;line-height:1.5;color:#cbd8c5;margin:13px 0 0;text-shadow:0 2px 7px #000}body.walking #location-label{display:block}body.walking .viewpoints,body.walking .caption,body.walking .identity .sub{display:none}.viewpoints{max-height:calc(100dvh - 290px);overflow-y:auto;scrollbar-width:thin;gap:3px;top:47%}.viewpoint{font-size:14px;min-height:38px}.caption .detail{font-size:14px;max-width:480px}#hint{font-size:14px}#hint kbd{font-size:12px}@media(max-height:600px){.identity h1{font-size:27px}.identity .sub{display:none}.viewpoints{max-height:calc(100dvh - 190px);top:48%}.caption{display:none}.header{top:16px}#hint{bottom:90px}.dock-wrap{bottom:12px}}
@media(max-width:760px){.header{left:20px;right:20px;top:22px}.identity .sub{display:none}.viewpoints{left:20px;top:40%}.viewpoint{font-size:12px;gap:8px}.caption{left:20px;bottom:155px}.caption .detail{max-width:240px;line-height:1.6}.caption .place{font-size:22px}.dock-wrap{left:12px;right:12px;bottom:max(16px,env(safe-area-inset-bottom))}.dock{padding:5px;gap:0}.dock button{padding:12px 10px;gap:6px;font-size:12px}.dock .divider{margin:0 3px}.dock svg{width:15px}#hint{right:20px;bottom:87px;font-size:12px;max-width:230px}.panel{right:18px;top:80px}.header-tools{gap:6px}.icon-button{width:40px;height:40px}body.walking .caption,body.walking .viewpoints{display:none}}
@media(pointer:coarse){body.walking #joystick{display:block}body.walking #hint{max-width:165px;bottom:135px}.dock button{min-height:48px}}
@media(max-width:390px){.dock button{padding:11px 8px}.dock svg{display:none}.identity .eyebrow{letter-spacing:.16em}.header{gap:10px}.header-tools{gap:3px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important}}

/* Compact original dock; the original palette, type and architectural UI remain. */
.dock-wrap{bottom:max(14px,env(safe-area-inset-bottom));left:12px;right:12px}
.dock{padding:4px;gap:2px;border-radius:12px}.dock button{min-height:32px;padding:7px 10px;gap:6px;font-size:11px;border-radius:8px}.dock svg{width:14px;height:14px}.dock .divider{height:19px;margin:0 3px}
#hint{bottom:71px;font-size:11px;max-width:300px;line-height:1.75}body.walking #hint{bottom:128px}
#survival-hud{position:fixed;left:34px;top:164px;display:none;gap:12px;align-items:center;padding:10px 13px;border:1px solid var(--line);border-radius:12px;background:#101b20c9;backdrop-filter:blur(14px);pointer-events:none;font-size:11px}
body.walking #survival-hud{display:flex}.meter{width:76px}.meter-label{display:flex;justify-content:space-between;gap:10px;color:#c6d3c8;font-size:10px}.meter-track{height:3px;background:#d1dcc222;margin-top:5px;overflow:hidden;border-radius:4px}#health-fill{height:100%;width:100%;background:#d7dfbe}#stamina-fill{height:100%;width:100%;background:#8caeb0}.hud-ammo strong{display:block;font-weight:400;font-size:17px;font-variant-numeric:tabular-nums;margin-top:3px}.hud-ammo small,#inventory-value{color:var(--muted);font-size:10px}#survival-state{display:block;color:#d8ddbb;margin-top:5px;font-size:10px}.hud-meta{line-height:1.5}
#survival-actions{display:none;position:fixed;right:24px;bottom:76px;gap:5px;align-items:center}body.walking #survival-actions{display:flex}#survival-actions button{border:1px solid var(--line);background:#101b20d9;border-radius:9px;color:#d4dfd1;min-width:44px;min-height:36px;padding:7px 9px;font-size:11px;backdrop-filter:blur(12px);touch-action:none}#survival-actions button:hover{background:#2c403ee6}#survival-actions button[aria-pressed=true]{background:#dce5d4;color:#152428}#survival-actions #fire-action{background:#dce5d4;color:#152428;font-weight:bold}#survival-actions kbd{font-size:9px;margin-left:3px;padding:1px 3px;background:transparent;color:inherit}
#interaction-prompt{position:fixed;left:50%;top:58%;transform:translateX(-50%);border:1px solid var(--line);border-radius:9px;padding:8px 12px;background:#101b20dc;font-size:12px;max-width:80vw;text-align:center;pointer-events:none}#interaction-prompt[hidden]{display:none}#reticle{width:5px;height:5px;box-shadow:0 0 0 3px #0a111445}#reticle.hit{width:13px;height:13px;margin:-6px;background:transparent;border:2px solid #e8d9a3;transform:rotate(45deg);border-radius:0}
#damage-overlay{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 40%,#9c2121d9);opacity:0}#beast-warning{position:fixed;top:100px;right:34px;width:200px;color:#e7bcac;font-size:10px;letter-spacing:.08em;text-align:right;text-shadow:0 1px 5px #000}#beast-warning[hidden]{display:none}#beast-warning .meter-track{height:2px;margin-top:8px}#beast-health{height:100%;background:#b06a57;width:100%}
#death-screen{position:fixed;inset:0;z-index:15;display:grid;place-items:center;background:#081013c9;backdrop-filter:blur(6px)}#death-screen[hidden]{display:none}.death-card{width:min(390px,90vw);padding:32px;border:1px solid var(--line);border-radius:16px;background:var(--glass);text-align:center}.death-card h2{font-family:Georgia,serif;font-size:34px;font-weight:400;margin:12px 0}.death-card p{color:var(--muted);font-size:13px;line-height:1.7}.death-card button{background:#dce5d4;color:#152428;border:0;border-radius:9px;padding:12px 22px;margin-top:10px}.dead #survival-actions,.dead #reticle,.dead #joystick,.dead #interaction-prompt{display:none!important}
@media(max-width:760px){#survival-hud{left:20px;top:137px;gap:9px;padding:9px 10px}.meter{width:62px}.hud-meta{display:none}#survival-actions{right:16px;bottom:75px;display:none;max-width:222px;flex-wrap:wrap;justify-content:flex-end}#survival-actions button{font-size:10px;padding:6px 8px;min-width:43px}#survival-actions kbd{display:none}#hint,body.walking #hint{display:none}#beast-warning{right:20px;top:204px;width:165px;font-size:9px}#toast{top:auto;bottom:230px;font-size:12px}.dock button{padding:7px 9px;font-size:10px}.dock svg{display:block;width:13px}#joystick{bottom:82px;width:100px;height:100px}#stick{left:28px;top:28px}#location-label{font-size:12px}}
@media(pointer:coarse){.dock button{min-height:40px;padding:7px 9px}#survival-actions button{min-height:44px;min-width:44px}#fire-action{min-width:66px!important}}
@media(max-width:390px){#survival-actions{right:12px;max-width:190px}#joystick{left:16px;width:90px;height:90px}#stick{left:23px;top:23px}}
@media(max-height:600px){#survival-hud{top:98px;left:20px}#location-label{display:none!important}#beast-warning{top:70px}#survival-actions{bottom:64px}#hint{display:none}.dock-wrap{bottom:8px}.identity .eyebrow{margin-bottom:5px}.header{top:14px}}


.panel{z-index:8}#summon-storm,#summon-pageant{border:1px solid #9db7a955;background:#263c36;border-radius:7px;padding:8px 10px;font-size:12px;margin-bottom:4px}#summon-pageant{background:#44233f;border-color:#d784c566}
#minimap{position:fixed;right:20px;top:90px;width:144px;height:144px;border:1px solid #a6beac55;border-radius:50%;background:#061414c9;z-index:5;pointer-events:none;box-shadow:0 8px 30px #0004}body:not(.walking) #minimap{display:none}
#drive-hud{position:fixed;bottom:150px;left:50%;transform:translateX(-50%);text-align:center;z-index:6;color:#eaf4dc;text-shadow:0 2px 8px #000}#drive-hud strong{font-size:40px;font-weight:500}#drive-hud span{margin-left:6px;font-size:12px}#drive-hud small{display:block;font-size:10px;letter-spacing:.04em;margin-top:4px}
#box-veil{position:fixed;inset:0;pointer-events:none;z-index:4;background:linear-gradient(to bottom,#241c13ed 0%,#241c13ed 38%,transparent 42%,transparent 57%,#241c13ed 61%)}#box-veil>div{position:absolute;top:25%;width:100%;text-align:center;font-size:11px;letter-spacing:.22em;color:#dac6a3}#box-veil small{display:block;letter-spacing:.05em;margin-top:12px}
#beast-warning{top:250px;right:20px;z-index:4;border:1px solid #e0a7df44;border-radius:8px;background:#140c19c9;padding:10px 18px}#beast-warning .meter-track{margin-top:7px}
@media(max-width:700px){#minimap{right:12px;top:73px;width:92px;height:92px}#drive-hud{bottom:210px}#drive-hud small{max-width:220px}#beast-warning{top:180px;font-size:9px;max-width:230px}}

/* CAMPUS RESCUE — responsive play and optional interface. */
[hidden]{display:none!important}
.panel fieldset{border:0;border-top:1px solid #ffffff20;padding:18px 0 6px;margin:18px 0 0;min-width:0}.panel legend{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#d8e1c6;padding-right:10px}.panel label{margin:12px 0 10px;font-size:12px}.panel input[type=checkbox]{accent-color:#b8d6ad;width:18px;height:18px;flex:none}.panel select{max-width:172px;font-size:11px}.panel .settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:16px}.settings-grid button,.wide-button{border:1px solid #b3cbb933;background:#28433b;color:#e1eadd;padding:10px 8px;border-radius:7px;font-size:11px}.wide-button{width:100%;margin-top:8px}.panel p{font-size:12px;line-height:1.6}.panel small{margin-top:10px}.panel{max-height:calc(100dvh - 120px);scrollbar-width:thin}
#objective-panel{position:fixed;top:253px;left:34px;width:265px;padding:13px 15px;border-left:2px solid #ddce94;background:linear-gradient(90deg,#0d1c20df,#0d1c2080);pointer-events:none;z-index:3;border-radius:0 9px 9px 0}#level-number{font-size:9px;letter-spacing:.17em;color:#dccc9c}#level-name{font:22px Georgia,serif;margin:6px 0;color:#edf1df}#objective-task{font-size:11px;line-height:1.5;color:#c3d0c6;margin:6px 0}#objective-progress{display:block;font-size:10px;line-height:1.6;color:#dfd5a9}body:not(.walking) #objective-panel{display:none}
#effect-status{position:fixed;left:50%;bottom:65px;transform:translateX(-50%);z-index:6;padding:7px 13px;border:1px solid #6edee788;border-radius:16px;background:#12393eea;color:#9af3f0;font-size:11px;letter-spacing:.08em;pointer-events:none}
#quick-settings{position:fixed;left:max(12px,env(safe-area-inset-left));bottom:max(12px,env(safe-area-inset-bottom));z-index:12;border:1px solid #b3cbb940;background:#112524db;border-radius:8px;padding:10px 12px;color:#d9e8d8;font-size:11px}
.hide-actions #survival-actions,.hide-hud #survival-hud,.hide-hints #hint,.hide-hints #interaction-prompt,.hide-minimap #minimap,.hide-title .identity,.hide-objectives #objective-panel{display:none!important}
.game-overlay{position:fixed;inset:0;display:grid;place-items:center;background:radial-gradient(ellipse at 72% 24%,#455c4f66,transparent 60%),#071416d9;backdrop-filter:blur(6px);z-index:22;padding:24px;overflow:auto}.start-card,.complete-card,.rotate-card{width:min(480px,100%);padding:32px 36px;border:1px solid #d1dfc837;border-radius:18px;background:linear-gradient(155deg,#20362ff7,#0b1e22f5);box-shadow:0 25px 100px #0006}.chapter-kicker{font-size:10px;color:#d2d7ba;letter-spacing:.21em;margin:0 0 22px}.start-card h2{font:64px/.92 Georgia,serif;margin:0 0 24px;color:#ecedd9;letter-spacing:-.04em}.start-card em{font-style:italic;color:#bad4bd}.start-intro{font-size:14px;line-height:1.7;color:#bbd0c4}.start-tags{display:flex;flex-wrap:wrap;gap:6px;margin:23px 0}.start-tags span{font-size:10px;padding:6px 8px;border:1px solid #91b1a140;border-radius:5px;color:#c2d6c7}.primary-button,.secondary-button{display:block;width:100%;padding:14px;border-radius:9px;border:1px solid #c7dab838;font-size:13px;min-height:48px}.primary-button{background:#d3dfbc;color:#142925;font-weight:600}.secondary-button{background:transparent;color:#c4d6c8;margin-top:8px}.start-card small{display:block;font-size:10px;color:#8cae9d;margin-top:18px;line-height:1.5}.complete-card h2,.rotate-card h2{font:36px Georgia,serif;font-weight:400;margin:14px 0}.complete-card p,.rotate-card p{font-size:14px;line-height:1.6;color:#c1d4c5}.phone-symbol{font-size:56px;color:#c6d5b8}.rotate-card{text-align:center}#rotate-screen{z-index:30}
@media(pointer:coarse){button,input,select{-webkit-tap-highlight-color:transparent}.panel{touch-action:pan-y}.game-overlay{padding:max(12px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}#scene{height:100dvh}#joystick{left:max(18px,env(safe-area-inset-left));bottom:max(72px,calc(env(safe-area-inset-bottom) + 55px))}}
@media(max-width:760px){#objective-panel{left:20px;top:220px;width:218px;padding:10px 12px}#level-name{font-size:19px}#objective-task{font-size:10px}#objective-progress{font-size:9px}#beast-warning{top:193px;right:12px;max-width:150px;font-size:8px}#effect-status{bottom:220px;font-size:10px}#quick-settings{padding:8px;font-size:10px;bottom:10px}.dock-wrap{left:90px;right:8px}.dock button{padding:7px;font-size:10px}.panel{top:66px;right:10px;max-height:calc(100dvh - 90px);width:min(370px,calc(100vw - 20px));padding:19px}}
@media(orientation:landscape) and (max-height:560px){.header{top:10px;left:max(16px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right))}.identity h1{font-size:22px}.identity .eyebrow{font-size:8px;margin-bottom:3px}.header-tools .icon-button{width:32px;height:32px}#survival-hud{top:66px;left:16px;padding:7px 10px;gap:8px}.meter{width:53px}.hud-meta{display:none}#objective-panel{top:137px;left:16px;width:197px;padding:8px 10px}#level-name{font-size:17px;margin:4px 0}#objective-task{font-size:9px}#objective-progress{font-size:9px}#minimap{top:50px;right:12px;width:86px;height:86px}#beast-warning{top:145px;right:12px;max-width:148px;width:148px;padding:7px;font-size:8px}#survival-actions{right:max(12px,env(safe-area-inset-right));bottom:53px;max-width:248px;flex-wrap:wrap;justify-content:flex-end;gap:4px}#survival-actions button{min-height:40px;min-width:48px;font-size:10px;padding:5px 7px}#survival-actions kbd{display:none}#joystick{width:88px;height:88px;bottom:57px}#stick{left:22px;top:22px}#drive-hud{bottom:67px}#drive-hud strong{font-size:28px}#drive-hud small{max-width:230px;font-size:9px}#effect-status{bottom:51px;font-size:9px}.panel{top:47px;right:10px;max-height:calc(100dvh - 60px)}.dock-wrap{left:110px;right:110px;bottom:8px}.dock button{min-height:32px;font-size:9px;padding:5px 8px}#toast{top:8px;bottom:auto;font-size:11px;max-width:52vw;padding:8px 12px}.start-card{width:min(640px,96vw);padding:20px 28px;display:grid;grid-template-columns:1fr 1fr;column-gap:28px}.chapter-kicker{grid-column:1/-1;margin-bottom:10px}.start-card h2{font-size:48px;grid-column:1;grid-row:2/5;margin-bottom:0}.start-intro{font-size:12px;margin:0 0 6px;grid-column:2}.start-tags{grid-column:2;margin:4px 0 10px}.start-tags span{font-size:8px;padding:4px}.start-card .primary-button,.start-card .secondary-button{grid-column:2;min-height:38px;padding:9px;font-size:11px}.start-card small{grid-column:2;margin-top:8px;font-size:9px}.complete-card,.rotate-card{padding:20px 28px}.complete-card h2{font-size:28px;margin:8px 0}.complete-card p{font-size:12px}}
@media(orientation:portrait) and (max-width:600px){.start-card{padding:28px 24px}.start-card h2{font-size:60px}.start-intro{font-size:13px}.start-tags{margin:18px 0}#objective-panel{width:195px;top:220px}#survival-actions{max-width:206px}#effect-status{bottom:217px}.panel .controls{font-size:12px}}
