@font-face{font-family:GeorgiaLocal;src:local(Georgia)}
:root{color-scheme:dark;--cream:#f1e9d7;--gold:#d7b77b;--green:#14241e}*{box-sizing:border-box}body{margin:0;background:#101815;color:var(--cream);font-family:Arial,Helvetica,sans-serif;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:5px}[hidden]{display:none!important}#world,canvas,.film{position:fixed;inset:0;width:100%;height:100%}canvas{display:block;touch-action:none}.film{pointer-events:none;background:linear-gradient(90deg,rgba(5,13,11,.76),rgba(8,13,10,.2) 50%,transparent 72%),linear-gradient(0deg,rgba(7,13,10,.75),transparent 23%,transparent 78%,rgba(7,13,10,.5));transition:opacity 1s}body.playing .film{opacity:.14}header{position:fixed;left:3.5vw;right:3.5vw;top:30px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.brand{color:var(--cream);text-decoration:none;display:flex;gap:13px;align-items:center;font-size:11px;font-weight:bold;letter-spacing:2px;line-height:1.6;pointer-events:auto}.brand small{font-size:8px;letter-spacing:2.25px;color:#bdbda9}.crest{font:italic 30px Georgia,serif;border:1px solid #bda578;width:44px;height:49px;display:grid;place-items:center;border-radius:22px 22px 4px 4px;color:var(--gold)}.edition{display:flex;gap:14px;align-items:center;font-size:9px;letter-spacing:2px;color:#e0ddcc}.edition i{height:3px;width:3px;background:var(--gold);border-radius:100%}#intro{position:fixed;left:8vw;top:50%;transform:translateY(-43%);max-width:650px}.eyebrow{color:var(--gold);font-size:10px;letter-spacing:2.5px;display:flex;align-items:center;gap:14px}.eyebrow>span{width:29px;height:1px;background:var(--gold)}h1{font-family:GeorgiaLocal,Georgia,serif;font-weight:400;font-size:clamp(60px,7.5vw,116px);letter-spacing:-4.5px;line-height:.99;margin:29px 0 26px;text-shadow:0 3px 35px #0b1212}h1 em{font-weight:400;color:#dac398}p.description{font-size:14px;line-height:1.9;color:#c1c6bc;letter-spacing:.2px}#enter,#resumeButton{border:1px solid #cfb17c;color:#19251e;background:#d9c396;min-width:254px;padding:18px 22px;display:flex;justify-content:space-between;gap:30px;margin-top:30px;font-size:12px;font-weight:bold;letter-spacing:.5px}#enter:hover,#resumeButton:hover{background:#f0dab0}#enter:disabled{opacity:.5;cursor:wait}#enter b{font-size:17px;font-weight:400}.introkeys{display:flex;gap:20px;margin-top:23px;align-items:center;font-size:10px;color:#b6bbae}.introkeys>span{display:flex;align-items:center;gap:4px}kbd{font:9px Arial,sans-serif;border:1px solid #88948566;border-radius:2px;padding:4px 5px;color:#d1d6c7;display:inline-block}.footnote{font-size:9px;color:#919b8f;margin-top:23px;letter-spacing:.5px}#bottomIntro{position:fixed;left:3.5vw;right:3.5vw;bottom:28px;display:flex;justify-content:space-between;border-top:1px solid #b1c7b526;padding-top:19px;font-size:9px;letter-spacing:2px;color:#b7c3b2}.location{position:fixed;left:35px;top:112px;display:flex;flex-direction:column;gap:8px;text-shadow:0 2px 8px #000}.location .eyebrow{font-size:8px;letter-spacing:1.8px}.location strong{font:29px Georgia,serif;font-weight:normal}.location #trainStatus{font-size:10px;color:#c4cabf}.toolbar{position:fixed;right:28px;top:105px;display:flex;gap:6px}.toolbar button{background:#101b17bf;border:1px solid #b4b59b45;color:#d3d8c7;padding:10px 12px;font-size:10px;backdrop-filter:blur(12px)}.toolbar button:hover{border-color:#d7b77b}.controls{position:fixed;bottom:27px;left:32px;display:flex;gap:20px;color:#c2c8b9;font-size:9px;text-shadow:0 1px 5px #000}.controls kbd{margin-right:5px;background:#0c1719a3}.arrival{position:fixed;bottom:26px;right:32px;display:flex;align-items:center;gap:11px;background:#14251ddb;border:1px solid #c1b18744;padding:13px 16px;font-size:9px;letter-spacing:1px}.arrival small{color:#bfa87c;padding-left:11px;border-left:1px solid #bfa87c55;font-size:8px}.signal{background:#d7b77b;border-radius:50%;width:6px;height:6px;box-shadow:0 0 10px #d7b77b}#crosshair{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);font-size:24px;color:#ffffff80;pointer-events:none}#resume{position:fixed;left:50%;top:70%;transform:translate(-50%,-50%);text-align:center}#resumeButton{margin:0 auto;box-shadow:0 8px 40px #0009}#resume p{font-size:10px;text-shadow:0 1px 4px #000}dialog{background:#17231f;color:#e6decb;border:1px solid #8d7954;width:440px;max-width:92vw;padding:34px;box-shadow:0 30px 120px #000;max-height:90vh;overflow:auto}dialog::backdrop{background:#0008;backdrop-filter:blur(5px)}dialog h2{font:36px/1.1 Georgia,serif;font-weight:400}dialog p{font-size:12px;line-height:1.8;color:#c2c7bc}dialog dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;font-size:11px}dialog dd{margin:0;color:#b4bdae}.close{position:absolute;right:15px;top:8px;background:none;border:0;color:#c3c6b7;font-size:29px}dialog .muted{font-size:10px;color:#839587}#error{position:fixed;inset:15%;background:#18201df5;padding:40px;z-index:10;border:1px solid #c4a56b}#error p{line-height:1.8}#error button{padding:12px}#touch{position:fixed;inset:0;pointer-events:none}#stick{position:absolute;bottom:85px;left:32px;width:110px;height:110px;border:1px solid #eadacb66;background:#172c2066;border-radius:50%;pointer-events:auto;touch-action:none}#stick div{position:absolute;left:35px;top:35px;width:40px;height:40px;border:1px solid #e1d3afaa;background:#d6c59e66;border-radius:50%}#touch>span{position:absolute;right:25px;bottom:90px;font-size:9px;color:#d4d8c6}
@media(max-width:700px){header{top:20px;left:22px;right:22px}.edition{font-size:8px;letter-spacing:1px}.edition i,.edition{display:none}#intro{left:8vw;right:6vw}h1{font-size:clamp(52px,12vw,80px);letter-spacing:-2px}.description{font-size:12px!important}.introkeys{gap:10px;font-size:9px}.footnote{font-size:8px}#bottomIntro span:last-child{display:none}.location{left:23px;top:95px}.toolbar{top:22px;right:18px;max-width:55%;flex-wrap:wrap;justify-content:flex-end}.toolbar button{font-size:9px;padding:8px}.controls{display:none}.arrival{left:22px;right:22px;bottom:21px;justify-content:center}.arrival small{display:none}body.playing .brand>span:last-child{display:none}#resume{top:65%;width:85%}.location strong{font-size:25px}}
