:root{color-scheme:dark;--cream:#eee5d4;--gold:#c9ac73;--muted:#b5aa96;--ink:#171711;font-family:Arial,Helvetica,sans-serif;color:var(--cream);background:#15120f;font-synthesis:none}
.modal-backdrop.conversation{background:linear-gradient(90deg,transparent 25%,#0b0e0b44);backdrop-filter:none;justify-items:end;padding-right:4vw}.conversation .modal-card{width:min(440px,47vw);background:#20231df5;padding:32px}.conversation .modal-card h2{font-size:29px}.conversation .character-card{padding:12px 0;margin-bottom:15px}.conversation .character-seal{width:40px;height:46px;font-size:18px}.spoken-line{font-family:Georgia,serif!important;font-size:17px!important}#voice-controls{display:flex;align-items:center;gap:15px;margin-top:18px}#replay-voice{background:none;border:1px solid #c9ac7355;padding:10px;color:var(--gold);font-size:9px;letter-spacing:1px}#voice-status{font-size:10px;color:var(--muted)}#voice-value{font-size:10px;color:var(--gold)}.settings label:has(#voice-volume){gap:12px}#voice-volume{width:90px}@media(max-width:700px){.modal-backdrop.conversation{padding:15px;align-items:end}.conversation .modal-card{width:100%;max-height:65dvh}.conversation .modal-card h2{font-size:24px}.conversation .character-card{display:none}}
*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input{font:inherit}button{color:inherit;cursor:pointer}button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button{border:0}button:disabled{opacity:.5;cursor:wait}[hidden]{display:none!important}#app,#world,.vignette,.grain,#fade{position:fixed;inset:0;width:100%;height:100%}#world{display:block;outline:none;touch-action:none}.vignette,.grain,#fade{pointer-events:none}.vignette{background:radial-gradient(ellipse at 56% 45%,transparent 25%,#0b08074d 76%,#080706b8 100%);z-index:1}.grain{z-index:2;opacity:.065;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.7' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}#fade{z-index:4;background:#130a08;opacity:0;transition:opacity 1.6s}.intro{position:fixed;inset:0;z-index:5;background:linear-gradient(90deg,#111310f5 0%,#111310d9 27%,#11131075 48%,transparent 72%);padding:38px 4.5vw;display:flex;flex-direction:column;justify-content:space-between}.intro-header{display:flex;align-items:center;gap:17px;font-size:9px;letter-spacing:2.3px}.monogram{font-family:Georgia,serif;border:1px solid #c9ac7370;width:39px;height:44px;display:grid;place-items:center;font-size:27px;color:var(--gold);position:relative}.monogram:after{content:"";position:absolute;inset:4px;border:1px solid #c9ac7330}.edition{margin-left:auto;color:#ddd1b8}.intro-copy{margin-top:25px;margin-bottom:30px}.eyebrow{font-size:9px;letter-spacing:2.5px;color:var(--gold);line-height:1.8;font-weight:500}.line{display:inline-block;vertical-align:middle;width:30px;height:1px;background:var(--gold);margin-right:12px}h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(46px,6.9vw,106px);font-weight:400;letter-spacing:-3px;line-height:1.03;margin:27px 0 19px}h1 span{display:block;font:12px Arial,sans-serif;letter-spacing:9px;margin:0 0 13px 4px}.tagline{font:italic 23px Georgia,serif;color:#d8ccb7;margin:0 0 26px}.intro-description{font-size:13px;line-height:1.95;color:var(--muted)}.primary{margin-top:25px;background:var(--gold);color:#1b211b;padding:20px 24px;width:285px;display:flex;align-items:center;justify-content:space-between;font-size:10px;font-weight:600;letter-spacing:2px;transition:background .2s,transform .2s}.primary:hover{background:#e0c593;transform:translateY(-1px)}.primary span:last-child{font-size:20px;line-height:12px}.start-note{font-size:10px;letter-spacing:.2px;color:#9b9587;margin-top:17px}.intro-footer{display:flex;justify-content:space-between;align-items:center;font-size:8px;letter-spacing:1.6px;color:#bbb29f}.intro-footer i{font-style:normal;margin:0 8px}.scene-caption{position:absolute;right:4.5vw;bottom:108px;display:flex;flex-direction:column;gap:9px;text-align:right;font-size:9px;letter-spacing:2.5px}.scene-caption span:last-child{font-size:7px;color:var(--muted)}#hud{position:fixed;inset:0;z-index:3;pointer-events:none}.hud-top{display:flex;justify-content:space-between;align-items:center;padding:27px 34px;background:linear-gradient(#11110e99,transparent)}.brand{display:flex;gap:13px;align-items:center;font-size:12px;letter-spacing:3px}.small{width:31px;height:35px;font-size:21px}.brand small{display:block;color:var(--muted);font-size:7px;letter-spacing:1.5px;margin-top:7px}.hud-actions{display:flex;gap:9px;align-items:center}.hud-actions button{pointer-events:auto;background:#15140f66;border:1px solid #c9ac7333;padding:12px;font-size:8px;letter-spacing:1.2px}.hud-actions button:hover{background:#c9ac732b}.hud-actions span{color:var(--gold);margin-left:12px;font-size:8px}.objective{position:absolute;top:114px;left:35px;max-width:250px;padding-left:13px;border-left:1px solid #c9ac7370}.objective p{font:14px/1.5 Georgia,serif;margin:6px 0 0;color:#e6dbca}.objective .eyebrow{font-size:7px}#crosshair{position:absolute;left:50%;top:50%;width:4px;height:4px;border-radius:50%;transform:translate(-50%,-50%);background:#f5e6c2bb;box-shadow:0 0 2px #000}.interaction{position:absolute;top:58%;left:50%;transform:translateX(-50%);padding:11px 15px;background:#11130ddd;border:1px solid #c9ac7355;display:flex;gap:11px;align-items:center;font-size:12px;letter-spacing:.5px;pointer-events:auto;white-space:nowrap}kbd{font-family:inherit;font-size:9px;border:1px solid #d4c39870;padding:4px 6px;color:#e8d6b5}.subtitle{position:absolute;bottom:105px;left:50%;transform:translateX(-50%);font:italic 18px/1.7 Georgia,serif;text-align:center;max-width:650px;width:80%;text-shadow:0 2px 9px #000;background:linear-gradient(90deg,transparent,#0a0b09aa,transparent);padding:10px;opacity:0;transition:opacity .3s}.subtitle.visible{opacity:1}.hud-bottom{position:absolute;bottom:25px;left:34px;right:34px;display:flex;justify-content:space-between;gap:20px;font-size:8px;letter-spacing:1px;color:#c2b8a5}.hud-bottom i{margin:0 10px;font-style:normal;color:var(--gold)}.hud-bottom kbd{font-size:8px;padding:3px 4px;margin-right:4px}.modal-backdrop{position:fixed;inset:0;z-index:10;display:grid;place-items:center;background:#0b0e0bbb;backdrop-filter:blur(7px);padding:25px}.modal-card{position:relative;width:min(560px,100%);max-height:88dvh;overflow-y:auto;padding:40px 44px;background:#20231dec;border:1px solid #c9ac7355;box-shadow:0 20px 100px #0008}.modal-card:before{content:"";position:absolute;left:18px;right:18px;top:16px;height:1px;background:#c9ac7322}.close{position:absolute;right:17px;top:17px;font-size:24px;color:var(--muted);background:transparent}.modal-card h2{font:normal 34px/1.15 Georgia,serif;letter-spacing:-.7px;margin:14px 0 24px}.modal-card p{font-size:14px;line-height:1.8;color:#cdc4b2}.modal-card .eyebrow{font-size:9px;color:var(--gold)}.modal-card .document{background:#d8ccb0;color:#362e23;padding:24px;font:14px/1.9 'Courier New',monospace;transform:rotate(-.7deg);margin:22px 0;box-shadow:0 6px 25px #0004}.document small{display:block;margin-top:18px;font-size:10px}.choices{display:flex;flex-direction:column;gap:9px;margin-top:25px}.choices button{background:#c9ac7309;border:1px solid #c9ac7355;padding:15px;text-align:left;line-height:1.5;color:#e5d9c3;font-size:12px}.choices button:hover{background:#c9ac7322;border-color:var(--gold)}.choices button:before{content:'↗';color:var(--gold);margin-right:13px}.muted{color:var(--muted)!important}.journal-entry{padding:12px 0;border-top:1px solid #c9ac7325}.journal-entry b{font:17px Georgia,serif;color:var(--cream)}.journal-entry p{font-size:12px;margin:8px 0 2px}.journal-entry.pending{opacity:.45}.hotel-map{display:block;width:100%;height:auto;margin-top:20px}.settings{display:flex;flex-direction:column;gap:20px;margin-top:28px}.settings label{font-size:12px;color:#d1c7b6;display:flex;justify-content:space-between;align-items:center;gap:20px}.settings small{display:block;color:#939b88;font-size:10px;margin-top:6px}.settings input{accent-color:var(--gold)}.settings input[type=range]{width:120px}.pause-card .primary{width:100%;margin-top:32px}.text-button{background:transparent;color:var(--muted);font-size:11px;display:block;margin:24px auto 0}.error{position:fixed;inset:0;z-index:30;background:#17201a;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:30px;text-align:center}.error p{max-width:600px;line-height:1.6}.error button{padding:15px 25px;color:#182017;background:var(--gold)}#touch-controls{display:none}
@media(max-width:700px){.intro{padding:25px}.intro-header{font-size:7px;letter-spacing:1.2px}.edition,.scene-caption{display:none}.intro-copy{margin:0}h1{font-size:54px;letter-spacing:-2px}.tagline{font-size:20px}.intro-description{font-size:12px}.intro-footer{font-size:6px;letter-spacing:.7px;gap:10px}.intro{background:linear-gradient(90deg,#111310e8,#11131085 65%,#11131022)}.hud-top{padding:18px}.brand{font-size:9px;letter-spacing:1px}.brand small{font-size:6px}.hud-actions{gap:5px}.hud-actions button{padding:9px;font-size:7px}.hud-actions span{display:none}.objective{top:85px;left:20px;max-width:190px}.hud-bottom{left:20px;right:20px;font-size:6px}.hud-bottom span:last-child{display:none}.hud-bottom i{margin:0 4px}.modal-card{padding:32px 24px}.modal-card h2{font-size:28px}.subtitle{bottom:155px;font-size:16px}.primary{width:265px}.interaction{top:57%}}
@media(pointer:coarse){#touch-controls{display:flex;position:absolute;bottom:65px;left:22px;right:22px;justify-content:space-between;align-items:end;pointer-events:auto}.touch-pad{display:grid;grid-template-columns:repeat(3,44px);gap:5px}.touch-pad button,#touch-action{background:#171b16aa;border:1px solid #c9ac7360;height:44px;color:#edddb9;touch-action:none}.touch-pad button:first-child{grid-column:2}.touch-pad button:nth-child(2){grid-column:1;grid-row:2}.touch-pad button:nth-child(3){grid-column:2;grid-row:2}.touch-pad button:nth-child(4){grid-column:3;grid-row:2}#touch-action{width:54px;height:54px}.hud-bottom{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}.grain{display:none}}
.character-card{display:flex;gap:17px;align-items:center;padding:18px 0;border-top:1px solid #c9ac7333;border-bottom:1px solid #c9ac7333;margin:0 0 20px}.character-seal{width:58px;height:66px;display:grid;place-items:center;border:1px solid var(--portrait);color:var(--portrait);font:24px Georgia,serif;background:#0e120d66}.character-card b{font:18px Georgia,serif;font-weight:400}.character-card small,.person-entry small{display:block;font-size:10px;color:var(--muted);margin-top:7px;letter-spacing:.4px}.people-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.person-entry{display:flex;gap:10px;border-top:1px solid #c9ac7322;padding:17px 0;opacity:.6}.person-entry.met{opacity:1}.person-entry b{font:15px Georgia,serif}.travel-map{border-left:1px solid #c9ac7366;margin-left:6px;padding-left:20px}.travel-map>div{font-size:8px;letter-spacing:1.2px;color:var(--gold);padding:10px 0}.travel-map b{display:block;font:22px Georgia,serif;color:var(--cream);margin-top:5px;letter-spacing:0}.travel-map small{display:block;line-height:1.8;font-size:10px;color:var(--muted);letter-spacing:0}.travel-map>span{font-size:9px;color:#9f9785}.maze-plan{max-width:350px;margin-inline:auto}#music-value{color:var(--gold);font-size:10px}.settings label:has(#music-volume){gap:12px}#music-volume{width:90px}@media(max-width:700px){.brand .small{display:none}.hud-actions button{padding:9px 7px}.people-grid{grid-template-columns:1fr}.intro-footer{flex-wrap:wrap;line-height:2}.hud-top{gap:10px}.hud-actions{gap:4px}}
#clock-button{min-width:100px;text-align:left;padding:8px 13px}.hud-actions #clock-time{display:block;font:22px Georgia,serif;letter-spacing:1px;color:#e6cea0}#clock-period{display:block;font-size:6px;letter-spacing:1.1px;margin-top:5px;color:#b6aa92}.hud-actions #clock-button:hover{background:#a3874b33}body:has(#modal:not([hidden])) .subtitle{opacity:0}#touch-run{background:#171b16aa;border:1px solid #c9ac7360;color:#edddb9;touch-action:none;height:44px;padding:12px}@media(max-width:700px){#clock-button{min-width:70px;padding:6px}.hud-actions #clock-time{font-size:17px}#clock-period{font-size:5px}.hud-top{padding:12px}.brand{max-width:90px}.hud-bottom{font-size:6px}}

.second-floor-plan{max-height:490px;max-width:330px;margin-inline:auto}.basement-plan{max-height:250px}#touch-crouch{background:#302e23cc;border:1px solid #b5a07055;padding:14px;color:#e8d8b4}

.room-choice{display:block;margin:24px 0 18px;max-width:335px}.room-choice>span{display:block;font-size:8px;letter-spacing:1.8px;color:#c9ac73;margin-bottom:9px}.room-choice select{background:#1c211bd9;border:1px solid #a38c5b77;color:#e7d5b2;width:100%;padding:13px 12px;font:15px Georgia,serif}.room-choice small{display:block;font-size:10px;line-height:1.6;color:#b5ad99;margin-top:9px}#room-number{color:#d1b783;font-size:9px;letter-spacing:1px}.inventory-list{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:22px 0;background:#b69d6440;border:1px solid #b69d6440}.inventory-list div{padding:17px 12px;background:#1b2019;font:16px Georgia,serif}.inventory-list span{color:#c9ac73;margin-right:7px}@media(max-height:820px){.intro-copy{margin-top:15px}.intro-description{margin-block:14px}.room-choice{margin-top:15px}.intro-copy h1{font-size:clamp(58px,7vw,92px)}}@media(max-width:1000px){#room-number{display:none}.hud-actions{gap:3px}.hud-actions button{padding-inline:7px}.brand{font-size:8px;max-width:100px}}

#seat-actions{position:absolute;bottom:88px;left:35px;display:flex;align-items:center;gap:10px;pointer-events:auto;background:#131a13c9;padding:12px 15px;border:1px solid #c9ac7355}#seat-actions>span{font-size:8px;letter-spacing:1.6px;color:#c9ac73;margin-right:10px}#seat-actions button{padding:11px;background:#c9ac731c;border:1px solid #c9ac7366;color:#e8d7b5;font-size:9px;letter-spacing:.8px}.ballroom-photo{display:block;max-width:100%;max-height:48vh;object-fit:contain;margin:0 auto 20px;border:8px solid #4b3e25}@media(max-width:700px){#seat-actions{left:12px;bottom:125px;gap:6px;padding:8px}#seat-actions>span{display:none}}
.map-caption{letter-spacing:1.5px;font-size:11px;color:#d8bd87;margin:22px 0 8px}.hotel-map{max-height:none}
.modal-card:has(.hotel-map){width:min(980px,96vw)}.second-floor-plan,.basement-plan{max-height:none;max-width:none}.hotel-map{display:block;width:100%;height:auto;margin:12px 0 24px}

#ski-hud{position:fixed;bottom:106px;left:50%;transform:translateX(-50%);z-index:20;background:#172c2ae8;border:1px solid #bca874;color:#eee5c9;padding:12px 16px;display:flex;align-items:center;gap:16px;font-size:12px;white-space:nowrap}#ski-hud[hidden]{display:none}#ski-hud b{letter-spacing:.15em;font-size:11px}#ski-hud button{padding:7px 12px;background:#d3c18d;color:#192d28;border:0;cursor:pointer}
