@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap');
:root{--ink:#1b4348;--cream:#fffbed;--muted:#718982;--peach:#e9ac87}*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#c2e7e1;color:var(--ink);font-family:'DM Sans',sans-serif}button,select,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #df947d;outline-offset:4px}canvas{display:block;width:100vw;height:100dvh;touch-action:none}#loading{position:fixed;inset:0;background:#eaf1df;display:grid;place-content:center;text-align:center;z-index:20}#loading>span{font-size:60px;animation:spin 8s linear infinite}#loading p{font-size:13px;letter-spacing:1px}#loading[hidden]{display:none}@keyframes spin{to{transform:rotate(360deg)}}.grain{position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,#edf2e5ed 0%,#edf2e5bd 27%,transparent 65%)}header{position:fixed;z-index:4;top:0;left:0;width:100%;padding:24px 4%;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(#edf2e53d,transparent)}.brand{display:flex;align-items:center;gap:9px;color:var(--ink);text-decoration:none;font-size:39px;line-height:1}.brand span{font:800 15px/.9 'Outfit';letter-spacing:1px}.brand sup{font-size:8px;margin-left:2px}nav{display:flex;gap:28px}nav button{border:0;background:none;padding:10px 0;font-size:12px;font-weight:600}.top-right{display:flex;gap:9px;align-items:center}.top-right button{width:36px;height:36px;border:1px solid #ffffff80;background:#fff9;border-radius:50%;font-size:20px}select{background:#fff5;color:var(--ink);border:0;border-radius:20px;padding:8px;font:600 11px 'DM Sans'}#intro{position:fixed;left:7%;top:26%;z-index:2}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:700;color:#718a79}h1{font:500 clamp(66px,7vw,110px)/.98 'Outfit';letter-spacing:-5px;margin:24px 0}h1 em{font:italic 400 1em Georgia;color:#54826d}#intro>p{font-size:13px;line-height:1.9;color:#668175}.primary{border:0;border-radius:40px;background:var(--ink);color:var(--cream);padding:18px 24px;display:flex;gap:35px;align-items:center;font-size:12px;margin-top:25px;box-shadow:0 5px 20px #183e4520}.primary b{font-size:20px}.intro-chips{display:flex;gap:10px;align-items:center;margin-top:30px;font-size:9px;color:#708779}.intro-chips i{font-style:normal;color:#b78d61}#hero-caption{position:fixed;right:6%;bottom:15%;text-align:right;transform:rotate(-3deg)}#hero-caption span{font-size:9px;letter-spacing:3px}#hero-caption b{display:block;font:500 28px 'Outfit';margin:8px 0}#hero-caption small{font-size:10px}#hud{position:fixed;z-index:3;top:98px;left:25px;width:285px;background:#fffbedef;padding:16px 18px;border:1px solid #ffffff90;border-radius:22px;box-shadow:0 8px 40px #1b434812;backdrop-filter:blur(14px)}.hud-row{display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:1px;text-transform:uppercase}.hud-row button{border:0;border-radius:12px;background:#e7ecd9;padding:5px 8px;font-size:9px;letter-spacing:0}#hud h2{font:500 18px/1.3 'Outfit';margin:12px 0}.quest-progress{display:flex;justify-content:space-between;font-size:10px;color:#718375}.hud-bottom{display:flex;gap:20px;font-size:11px;margin-top:15px}.hud-bottom>span:last-child{margin-left:auto;color:#d78a86;white-space:nowrap;font-size:9px}.stamina{height:4px;border-radius:3px;background:#dfe6d1;margin-top:12px}.stamina i{display:block;height:4px;border-radius:3px;background:#93b8a3;width:100%}#objective{position:fixed;right:25px;top:106px;display:flex;gap:10px;max-width:250px;font-size:11px;background:#fffbeddf;border:1px solid #fff8;border-radius:20px;padding:14px 18px;align-items:center}#objective[hidden]{display:none}#objective>span:first-child{font-size:22px;color:#c29c62}#raceTimer{position:fixed;top:180px;right:25px;background:#fffbeded;border-radius:20px;padding:13px 20px;font:500 24px 'Outfit'}#toast{position:fixed;z-index:9;bottom:150px;left:50%;transform:translateX(-50%);border-radius:20px;padding:13px 22px;color:var(--cream);background:#163f47ed;max-width:85vw;width:max-content;font-size:12px;text-align:center;opacity:0;pointer-events:none;transition:opacity .3s}#nearby{position:fixed;bottom:145px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;border:1px solid #ffffff99;background:#fffbeded;padding:8px 9px 8px 18px;border-radius:40px;font-size:11px;width:max-content;max-width:90vw;z-index:3}#nearby[hidden]{display:none}#nearby button{border:0;background:#285157;color:#fffbed;border-radius:30px;padding:11px 16px;font-size:11px;white-space:nowrap}#controls{position:fixed;bottom:65px;left:25px;right:25px;display:flex;justify-content:space-between;pointer-events:none}#controls[hidden]{display:none}.left-controls,.right-controls{display:flex;gap:9px;pointer-events:auto}#controls button{background:#fffbeddf;border:1px solid #fff9;border-radius:30px;padding:12px 20px;font-size:11px;min-height:44px;touch-action:none}#controls .left-controls button{font-size:20px;padding:8px 17px}footer{position:fixed;bottom:20px;left:4%;right:4%;display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:8px;letter-spacing:1px;color:#244d4b;z-index:2;text-shadow:0 1px 3px #fff8}footer>span:first-child{display:flex;gap:6px;align-items:center}.dot{display:block;width:5px;height:5px;border-radius:50%;background:#558f78}footer button{border:0;background:#fff5;border-radius:20px;padding:7px 12px;font-size:9px}#crosshair{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);font:34px sans-serif;color:white;text-shadow:0 0 5px #244}.playing .grain{background:linear-gradient(0deg,#183e4520,transparent 20%)}.playing #intro,.playing #hero-caption{display:none}.playing header{background:linear-gradient(#eff3e599,transparent)}dialog{width:min(720px,94vw);max-height:84dvh;overflow:auto;border:1px solid #fff;border-radius:28px;padding:30px;color:var(--ink);background:#fffbed;box-shadow:0 30px 100px #133f4b44}dialog::backdrop{background:#123e4b66;backdrop-filter:blur(5px)}#close{float:right;border:0;border-radius:50%;background:#e8eddf;width:36px;height:36px;font-size:22px}.kicker{font-size:9px;letter-spacing:2px;color:#a68a65}dialog h2{font:500 32px 'Outfit';letter-spacing:-1px;margin:10px 0}dialog p{font-size:12px;line-height:1.8;color:#6d857b}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}.card{border:1px solid #e2e6d8;background:#fffdf6;border-radius:19px;padding:17px}.card .preview{height:55px;display:flex;align-items:center;justify-content:center;font-size:37px}.card h3{font-size:13px;margin:8px 0}.card p{font-size:10px;min-height:30px}.card button,.action{display:block;width:100%;padding:12px;border:0;border-radius:30px;background:var(--ink);color:#fffbed;font-size:11px;min-height:42px}button:disabled{opacity:.4;cursor:default}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #e1e6d8;padding:14px 0;font-size:12px}.badge{display:inline-block;padding:6px 10px;background:#e7eddd;border-radius:20px;font-size:10px}.muted{font-size:10px!important;color:#849384!important}.tabs{display:flex;gap:7px;margin:18px 0;flex-wrap:wrap}.tabs button{border:1px solid #dbe4d4;background:#fff;border-radius:25px;padding:10px 15px;font-size:11px}.tabs button.active{background:var(--ink);color:white}.world-card{padding:20px;border-radius:20px;background:linear-gradient(135deg,var(--tile),#fffbed);margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.world-card h3{margin:0 0 5px;font:500 23px 'Outfit'}.world-card p{margin:0;font-size:10px}.world-card button{border:0;background:#fffbed;border-radius:25px;padding:12px 18px;font-size:11px}.settings-label{display:flex;gap:12px;align-items:center;margin:18px 0;font-size:13px}.settings-label input[type=range]{flex:1;accent-color:#649582}.settings-label input[type=checkbox]{accent-color:#649582;width:18px;height:18px}.symbols{display:flex;gap:12px;justify-content:center;font-size:32px;margin:20px 0}.symbols span{background:#e8eddb;border-radius:18px;padding:14px 20px}.questline{padding:16px;border:1px solid #e2e6d8;border-radius:18px;margin-top:10px}.questline h3{font-size:13px;margin:0 0 5px}.questline p{margin:0 0 12px}#joystick{position:fixed;bottom:145px;left:30px;width:100px;height:100px;border-radius:50%;border:1px solid #fff8;background:#ffffff22;pointer-events:none;z-index:3}#stick{display:block;position:absolute;left:32px;top:32px;width:36px;height:36px;background:#fff9;border:1px solid #fffb;border-radius:50%}#lookHint{position:fixed;right:26px;bottom:130px;font-size:9px;color:#fff;text-shadow:0 1px 3px #26474b;pointer-events:none}body:not(.playing) #controls{display:none}@media(max-width:750px){header{padding:18px}.brand{font-size:29px;gap:5px}.brand span{font-size:11px}nav{gap:12px}nav button{font-size:9px}nav button:nth-child(2){display:none}.top-right{gap:4px}.top-right button{width:31px;height:31px;font-size:17px}select{padding:6px;font-size:9px}#intro{left:7%;top:23%}h1{font-size:72px;letter-spacing:-4px}#intro>p{font-size:12px}.intro-chips{font-size:8px;gap:7px;flex-wrap:wrap;max-width:280px}.eyebrow{font-size:8px}#hero-caption{right:7%;bottom:16%}#hero-caption b{font-size:22px}#hero-caption small{font-size:9px}#hud{left:14px;top:82px;width:235px;padding:13px 15px}#hud h2{font-size:16px}.hud-row{font-size:8px;letter-spacing:.3px}.hud-row button{font-size:8px}#objective{top:auto;right:14px;bottom:210px;max-width:155px;font-size:9px;padding:10px 12px;background:#fffbedbc}#raceTimer{top:245px;right:14px;font-size:20px}#keyboardHint{display:none}footer{bottom:14px;font-size:6px;letter-spacing:.5px}footer button{font-size:8px}#controls{bottom:57px;left:18px;right:18px}#controls button{padding:12px 17px}.grid{grid-template-columns:repeat(2,1fr);gap:9px}.card{padding:14px}dialog{padding:23px}dialog h2{font-size:28px}#nearby{bottom:115px;max-width:95vw;font-size:10px;padding-left:13px;gap:8px}#nearby button{font-size:10px;padding:11px 13px}#toast{bottom:175px;font-size:11px}.grain{background:linear-gradient(90deg,#edf2e5ee,transparent 95%)}}@media(max-width:390px){nav{gap:8px}nav button{font-size:8px}.brand span{font-size:10px}.top-right #camera{display:none}h1{font-size:62px}.intro-chips{max-width:235px}}@media(prefers-reduced-motion:reduce){#loading>span{animation:none}}
/* AFTER DARK: atmosphere and interactions use the compositor, not frame-by-frame layout. */
:root{--ink:#d7d4c2;--cream:#101713;--muted:#87948a;--peach:#c5a47b}body{background:#0b1315;color:#d7d4c2;user-select:none}input,textarea{user-select:text}button,a,select{transition:background-color .18s,color .18s,transform .18s,box-shadow .18s}button:not(:disabled):hover{filter:brightness(1.12)}button:not(:disabled):active{transform:translateY(1px) scale(.97)}button:focus-visible,select:focus-visible{outline-color:#c6b48b}.grain{background:linear-gradient(90deg,#070d11f5 0%,#070d11bb 35%,transparent 80%)}header{background:linear-gradient(#060b0fc9,transparent)}.brand{color:#ddd9c5}.brand span{font-size:12px;letter-spacing:1.2px}nav button{color:#c0c8ba}select{background:#1a2421;color:#d8ddcf;border:1px solid #52605250}.top-right button{background:#14211ccc;border-color:#52605270;color:#cbd2bf}.eyebrow{font:600 9px/1.6 'DM Sans';color:#c3a581;letter-spacing:2px;max-width:310px}h1{font-size:clamp(65px,8vw,120px);line-height:.94;letter-spacing:-5px;color:#dddcca;text-shadow:0 7px 50px #000}h1 em{color:#a4b59b}#intro>p{color:#99a89b;font-size:13px}.primary{background:#b4bca2;color:#101711;border:1px solid #d6d6be70;box-shadow:0 7px 45px #0008}.secondary{display:block;margin-top:12px;background:#13211da8;border:1px solid #88987b66;color:#c3cab7;border-radius:40px;padding:15px 25px;font-size:12px;min-width:210px}.intro-chips{color:#798a7b;margin-top:24px;max-width:360px;flex-wrap:wrap}.intro-chips i{color:#927c5e}#intro,#hero-caption{transition:opacity .5s,transform .6s}.playing #intro{display:block;opacity:0;transform:translateY(15px);pointer-events:none}.playing #hero-caption{display:block;opacity:0;pointer-events:none}.playing header{background:linear-gradient(#050a0dc9,transparent)}.playing .grain{background:linear-gradient(0deg,#02060677,transparent 25%)}#hero-caption{color:#b5bdaa}#hero-caption small{color:#7a8d7c}#loading{background:#080e11;color:#aebca7}#loading>span{color:#9fa985}#hud{background:#0c1713e6;border-color:#58614c66;backdrop-filter:blur(10px);color:#c8d0bb;box-shadow:0 12px 50px #0006}.hud-row{color:#8f9f8d}.hud-row button{background:#253125;color:#b1c1a4}#hud h2{color:#d2d9c3}.quest-progress{color:#829a83}.hud-bottom>span:last-child{color:#ad8a77}.stamina{background:#273126;overflow:hidden}.stamina i{background:#a1b28b;transform-origin:left;width:100%;will-change:transform;transition:transform .12s linear}#objective{background:#102018c9;border-color:#52604a66;color:#9bb193}#objective>span:first-child{color:#b2a17c}#raceTimer{background:#0c1713e8;color:#bec8b0;font-variant-numeric:tabular-nums}#nearby{background:#102018eb;border-color:#71836077;color:#aebfa0;animation:hint-in .2s ease-out}#nearby button{background:#b3bfa0;color:#111b12}#controls button{background:#14201bd9;border-color:#78876c66;color:#b9c6ac}footer{color:#829581;text-shadow:0 1px 4px #000}footer button{background:#111c17b8;color:#a5b29a}.dot{background:#8c9e78}#toast{background:#aab899f0;color:#122015;transition:opacity .23s,transform .23s;box-shadow:0 8px 35px #0005}dialog{background:#111b16;color:#d3d7c3;border-color:#6d785655;box-shadow:0 25px 120px #000b;animation:panel-in .22s ease-out}dialog::backdrop{background:#030708b8;backdrop-filter:blur(5px);animation:veil-in .2s}#close{background:#293627;color:#b7c6a5}.kicker{color:#899875}dialog p{color:#8fa087}.card{background:#172119;border-color:#52604455;transition:border-color .2s,transform .2s}.card:hover{border-color:#8c9a6655;transform:translateY(-2px)}.card h3{color:#c6d0b7}.card button,.action{background:#a0af88;color:#14200e}.badge{background:#293624;color:#b7c7a1}.tabs button{background:#17231a;border-color:#53614877;color:#8e9f7e}.tabs button.active{background:#a0af88;color:#14200e}.row{border-color:#52614844}.world-card{background:linear-gradient(135deg,var(--tile),#142019);border:1px solid #7b886144}.world-card button{background:#a0af88;color:#14200e}.questline{border-color:#53614855;background:#162219}.symbols span{background:#293725;color:#bfcca8}.settings-label input[type=range],.settings-label input[type=checkbox]{accent-color:#a2b385}.muted{color:#71836b!important}.symbols{font-family:Georgia,serif}#horror-vignette{position:fixed;inset:0;pointer-events:none;z-index:1;box-shadow:inset 0 0 140px 35px #0009;background:radial-gradient(ellipse at center,transparent 35%,#0005 100%)}#scare{position:fixed;inset:0;z-index:100;pointer-events:none}#transition{position:fixed;inset:0;background:#020607;pointer-events:none;z-index:18;opacity:0;transition:opacity .25s}#transition.active{opacity:1}#duoStatus{position:fixed;right:25px;bottom:75px;background:#1c2b20d9;border:1px solid #889d6d66;color:#b9cba3;border-radius:16px;padding:10px 14px;font-size:10px;z-index:3}.room-code{font:500 38px 'Outfit';letter-spacing:10px;text-align:center;color:#c8d8b4;padding:18px;border:1px dashed #687d4c;background:#1c2c1b;margin:18px 0;border-radius:15px}.room-entry{display:flex;gap:8px;margin:20px 0}.room-entry input{min-width:0;flex:1;background:#0c1510;color:#c9d5b9;border:1px solid #687b4f;border-radius:15px;padding:14px;text-transform:uppercase;letter-spacing:5px;font:500 16px 'DM Sans'}.room-entry button{width:auto;padding:12px 20px}#joystick{background:#18251a66;border-color:#adb98a66}#stick{background:#a9ba8c88;border-color:#d2dfb2aa}#lookHint{color:#869b77}#crosshair{color:#cfdbb8}body.hurt #horror-vignette{box-shadow:inset 0 0 130px 40px #69332a70;transition:box-shadow .25s}@keyframes panel-in{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}@keyframes veil-in{from{opacity:0}to{opacity:1}}@keyframes hint-in{from{opacity:0;translate:0 5px}to{opacity:1;translate:0 0}}@media(max-width:750px){.brand span{font-size:9px}nav{gap:10px}nav button{font-size:8px}nav button[data-action=race]{display:none}.top-right{gap:4px}#intro{top:21%}h1{font-size:74px;letter-spacing:-4px}.eyebrow{font-size:8px;max-width:270px}.secondary{padding:13px 23px;font-size:11px}.intro-chips{font-size:8px;max-width:260px}#hud{background:#0c1713dc;backdrop-filter:blur(5px);width:218px}#objective{background:#132319ba;font-size:8px;max-width:140px;bottom:210px}#duoStatus{right:15px;bottom:155px;max-width:180px;font-size:9px}#horror-vignette{box-shadow:inset 0 0 80px 15px #0007}}@media(prefers-reduced-motion:reduce){button,a,select,#intro,#hero-caption,#transition{transition:none}dialog,dialog::backdrop,#nearby{animation:none}.card:hover{transform:none}}
#intro{top:20%}h1{font-size:clamp(65px,7.6vw,112px)}.playing #intro,.playing #hero-caption{visibility:hidden;transition:opacity .4s,transform .5s,visibility 0s .5s}@media(max-width:750px){#intro{top:17%}h1{font-size:62px;margin:19px 0}#intro>p{font-size:11px;line-height:1.7}.intro-chips{margin-top:16px;max-width:290px;font-size:7px}.primary{margin-top:20px;padding:15px 22px}.secondary{margin-top:9px;padding:12px 22px}.eyebrow{font-size:7px;max-width:260px}}@media(max-height:640px){#intro{top:16%}h1{font-size:54px;margin:15px 0}.intro-chips{max-width:300px}.eyebrow{max-width:300px}}
#scare[hidden]{display:none}.playing #intro button{pointer-events:none}

body[data-chapter="0"]{--ink:#294d48;--cream:#fff5df;color:#294d48}body[data-chapter="0"] #horror-vignette{opacity:0}body[data-chapter="1"] #horror-vignette{opacity:.32}#horror-vignette{transition:opacity 2s}body[data-chapter="0"] #hud,body[data-chapter="0"] #objective{background:#fff8e7e8;color:#35594d;border-color:#b5c99a}body[data-chapter="0"] #hud h2,body[data-chapter="0"] .hud-row,body[data-chapter="0"] .quest-progress,body[data-chapter="0"] #objective>span{color:#476b58}body[data-chapter="0"] #intro,body[data-chapter="0"] #hero-caption{color:#294d48}

/* Clear navigation, readable controls and a compact mission card. */
.journey-track{height:5px;background:#82936c33;border-radius:8px;margin-top:14px;overflow:hidden}.journey-track i{display:block;height:100%;background:linear-gradient(90deg,#a5c99c,#ead597);transform-origin:left;transform:scaleX(0);transition:transform .5s}#objective{min-width:190px;max-width:270px;z-index:3}#objective>div{display:grid;grid-template-columns:1fr auto;gap:5px 12px;align-items:center}#waypointLabel{font-size:10px;font-weight:600;letter-spacing:.4px}#waypointDistance{font:600 21px 'Outfit',sans-serif;font-variant-numeric:tabular-nums}#objectiveText{grid-column:1/-1;font-size:10px;line-height:1.5;opacity:.8}#compassArrow{display:block;font-size:32px!important;transition:transform .15s linear;flex-shrink:0}#nearby button{min-height:44px}#nearby{box-shadow:0 8px 32px #0003}.playing header{background:linear-gradient(#0a171ce8,#0a171c77 65%,transparent)!important}.playing .brand,.playing nav button{color:#f4efd9!important}#hud{box-shadow:0 12px 36px #0002}#intro{max-width:90vw}.playing #intro,.playing #hero-caption{visibility:hidden;transition:opacity .3s,visibility .3s}button:active:not(:disabled){transform:translateY(1px)}.card button{font-weight:600}#toast{bottom:190px}footer{font-weight:600}body[data-chapter="0"] #hud .hud-bottom>span:last-child{color:#a15b60}.room-code{user-select:all;cursor:text}#copyRoom{max-width:240px;margin:0 auto 12px}#world:focus{outline:none}@media(max-width:750px){#objective{top:auto;bottom:202px;min-width:0;max-width:165px;padding:10px}#waypointLabel{font-size:9px}#waypointDistance{font-size:17px}#objectiveText{display:none}#compassArrow{font-size:26px!important}#hud{width:210px}#toast{bottom:260px;max-width:90vw}header nav{gap:9px}#nearby{bottom:119px}.room-code{font-size:30px;letter-spacing:7px}}

#dangerStatus{position:fixed;z-index:3;top:302px;left:30px;padding:8px 12px;border:1px solid #8b9d7b44;border-radius:12px;background:#15201ad9;color:#d9dfc3;font-size:9px;letter-spacing:1.5px;pointer-events:none;transition:background .8s,color .8s}#dangerStatus[hidden]{display:none}#dangerStatus[data-level=safe]{color:#b9d4ae}#dangerStatus[data-level=close]{background:#482221df;border-color:#a66b58;color:#f0b995}#encounterCaption{position:fixed;z-index:101;left:10%;right:10%;top:74%;text-align:center;color:#e4d6b6;text-shadow:0 2px 12px #000;font:500 clamp(14px,2vw,24px) 'Outfit',sans-serif;letter-spacing:.24em;opacity:0;transform:translateY(6px);transition:opacity .4s,transform .4s;pointer-events:none}#encounterCaption.visible{opacity:1;transform:none}.playing .grain{box-shadow:inset 0 0 calc(70px + var(--danger,0)*70px) #080f17a0;transition:box-shadow 1s}#objective{transition:background .6s}@media(max-width:750px){#dangerStatus{top:264px;left:17px;font-size:8px;max-width:210px;padding:7px 10px}#encounterCaption{top:63%;font-size:15px;letter-spacing:.14em}}
