:root{color-scheme:dark;--bg:#101c20;--panel:#15262a;--paper:#f4ead3;--muted:#b6c4bc;--gold:#dfb970;--line:#43605b;--mint:#b9e6d2;--red:#682c37}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden}body{background:var(--bg);color:var(--paper);font:15px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}button,a,input,select{touch-action:manipulation}button,select{border:1px solid #64756a;border-radius:5px;background:#22383a;color:#f8f1df;padding:10px 14px;min-height:44px;font:600 14px/1.2 system-ui;cursor:pointer}button:hover,button:focus-visible{background:#e8c987;color:#152226;border-color:#fff0c8}button:disabled{background:#263236;color:#b7c1bb;border-color:#465250;cursor:default;opacity:.8}button.primary{background:#dfb970;color:#142225;border-color:#f1d79e}button.primary:hover{background:#fff0c7;color:#112025}button.danger{background:#662e38;color:#fff3e0}button.active{background:#c8e5d7;color:#132728;border-color:#effff5}a{color:#f2d597}a:hover{color:white}:focus-visible{outline:3px solid #b8efed;outline-offset:3px}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.12;margin:0}h1{font-size:30px}h2{font-size:25px}h3{font-size:21px;margin:18px 0 10px}p{margin:12px 0}#app{height:100vh;height:100svh;height:100dvh;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;padding:env(safe-area-inset-top) max(14px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(14px,env(safe-area-inset-left));max-width:2000px;margin:auto}.topbar{min-height:64px;display:flex;align-items:center;gap:20px;border-bottom:1px solid var(--line)}.return{font-size:14px;font-weight:600;text-decoration:none;padding:12px 0;white-space:nowrap}.brand{font-size:10px;letter-spacing:2.2px;color:var(--muted);flex:1}.brand b{color:var(--gold);margin:0 10px}.topbar nav{display:flex;gap:7px}.topbar nav button{background:transparent}.topbar nav button:hover{background:var(--gold)}.roomhead{display:flex;justify-content:space-between;align-items:center;padding:17px 4px 16px;gap:12px}.eyebrow{font:600 10px/1.5 system-ui;letter-spacing:2px;color:var(--gold);display:block;margin-bottom:4px}.roomcount{font-size:12px;letter-spacing:1px;color:var(--muted);text-align:right}#play{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;min-height:0}.sceneColumn{min-width:0;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto auto}#viewport{background:#070d12;position:relative;overflow:hidden;border:1px solid #6f6754;border-radius:4px;min-height:0}canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}#loadStatus{position:absolute;inset:0;display:grid;place-items:center;background:#101c20d9;pointer-events:none}#loadStatus[hidden]{display:none}.corner{position:absolute;width:28px;height:28px;pointer-events:none;border-color:#dfb970;opacity:.8}.topLeft{top:8px;left:8px;border-top:1px solid;border-left:1px solid}.bottomRight{bottom:8px;right:8px;border-right:1px solid;border-bottom:1px solid}.sceneTools{display:flex;gap:7px;align-items:center;padding-top:10px}.zoomTools{display:flex;gap:5px;align-items:center;margin-right:auto}.zoomTools button{padding:8px 12px;min-width:44px}.zoomTools output{min-width:38px;text-align:center;font:13px system-ui;color:var(--muted)}#sceneHelp{font-size:11px;color:var(--muted);text-align:center;margin:6px 0}.riddlePanel{min-height:0;background:linear-gradient(160deg,#203638,#14272b);border:1px solid var(--line);border-radius:5px;display:grid;grid-template-rows:auto 3px minmax(0,1fr) auto auto;overflow:hidden}.riddleHeading{padding:20px 18px;display:flex;align-items:center;justify-content:space-between;gap:10px}.riddleHeading h2{font-size:23px}.riddleHeading strong{font:24px Georgia;color:var(--gold);white-space:nowrap}.progressTrack{background:#071317}#progressBar{height:3px;background:var(--gold);transition:width .3s}#clues{overflow:auto;padding:8px 10px;scrollbar-color:#8c967c #13272a;overscroll-behavior:contain}.clue{display:flex;width:100%;text-align:left;gap:10px;font-weight:400;line-height:1.55;background:transparent;border:1px solid transparent;border-bottom:1px solid #435951;border-radius:4px;padding:12px 8px;margin-bottom:3px}.clue.selected{background:#2e4847;border-color:#dfb970;color:#fff5df}.clue:hover{background:#3b5450;color:#fff5df}.clue.done{color:#c6d7c8;background:#192f2f}.clue.done .clueText{text-decoration:none}.clueNumber{font:18px Georgia;color:var(--gold);min-width:21px;padding-top:2px}.clueText{font-size:14px}.clue small{display:block;font-size:11px;color:var(--mint);font-weight:600}.riddleActions{display:flex;gap:8px;padding:10px}.riddleActions button{flex:1;padding:10px 7px}#wispLine{font-size:12px;color:#ced9d0;padding:0 14px 13px;min-height:42px}footer{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:12px;color:var(--muted);min-height:38px}#status{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#saveStatus{font-size:10px;white-space:nowrap}dialog{background:#172b2e;color:var(--paper);border:1px solid #b59863;border-radius:10px;width:min(760px,calc(100% - 24px));max-height:calc(100dvh - 30px);padding:24px;box-shadow:0 20px 100px #000b;overflow:auto}dialog::backdrop{background:#020a10c9;backdrop-filter:blur(5px)}.dialogTop{display:flex;align-items:center;justify-content:space-between;gap:15px}.dialogTop .eyebrow{margin:0}#closeDialog{font-size:25px;padding:4px;min-width:44px;background:transparent}#dialogTitle{font-size:34px;margin:8px 0 20px}#dialogBody{color:#e1e6d8}#dialogBody p{line-height:1.7}#dialogActions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}#dialogActions button{flex:1;min-width:130px}.introImage{height:170px;background:linear-gradient(0deg,#172b2e22,#172b2e00),url('assets/room-00.jpg') center 55%/cover;border:1px solid var(--line);border-radius:5px;margin-bottom:20px}.lead{font:22px/1.5 Georgia!important;color:#ffedca}.ghost{display:inline-block;font-size:15px;color:var(--mint);letter-spacing:1px}.mapGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.mapCard{display:flex;flex-direction:column;align-items:stretch;text-align:left;padding:0;overflow:hidden}.mapCard img{width:100%;aspect-ratio:1.8;object-fit:cover}.mapCard span{padding:8px;line-height:1.5}.mapCard small{display:block;font-weight:400;color:inherit}.mapCard:disabled img{filter:grayscale(1);opacity:.32}.seals{display:flex;flex-wrap:wrap;gap:8px}.seal{padding:8px 12px;border:1px solid var(--gold);border-radius:30px;color:#f6d99e;font-size:12px}.journalEntry{border-left:2px solid var(--line);padding-left:15px;margin:18px 0}.journalEntry p{font-size:14px}.setting{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:20px 0}.setting input[type=range]{width:180px;max-width:45%}.setting input[type=checkbox]{width:24px;height:24px;accent-color:var(--gold)}.note{font-size:12px;color:var(--muted)}.puzzleArea{padding:16px;background:#0b1b21;border:1px solid var(--line);border-radius:6px;margin:14px 0}.puzzleButtons{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.puzzleButtons button{min-width:72px}.bookShelf{display:flex;justify-content:center;align-items:flex-end;gap:8px;min-height:160px}.bookSpine{width:78px;height:145px;border:2px solid #c5a864;background:linear-gradient(90deg,#254849,#376460,#193234);color:#fbedcc;writing-mode:vertical-rl;font:20px Georgia;letter-spacing:2px}.bookSpine:nth-child(2n){height:127px;background:linear-gradient(90deg,#632e42,#93435b,#451d32)}.bookSpine.selected{outline:3px solid #dcefe2}.portraitGrid{display:grid;grid-template-columns:repeat(3,1fr);aspect-ratio:1;max-width:380px;margin:auto;gap:4px}.portraitTile{padding:0;position:relative;background-image:url('assets/room-05.jpg');background-size:1050% 714%;border:2px solid #c4a564;border-radius:0}.portraitTile span{position:absolute;bottom:0;right:0;font:11px system-ui;color:white;background:#000a;padding:2px 4px}.portraitTile.selected{outline:3px solid #e1ffff;z-index:1}.clockRow{display:flex;gap:15px;flex-wrap:wrap;justify-content:center}.clockDial{border-radius:50%;width:105px;height:105px;background:#ecd9ae;color:#233036;position:relative;border:6px double #9f753e;margin:6px auto}.clockDial .hand{position:absolute;left:calc(50% - 2px);bottom:50%;width:4px;height:30px;background:#203232;transform-origin:50% 100%}.clockDial span{position:absolute;top:36px;left:25px;width:44px;text-align:center;font:bold 16px Georgia}.clockItem{text-align:center}.clockItem button{width:100%}.keyRows{display:grid;gap:12px}.keyRows label{display:flex;gap:14px;align-items:center;justify-content:space-between}.keyRows select{width:55%}.starsBoard{position:relative;aspect-ratio:1.55;max-width:480px;margin:auto;background:radial-gradient(ellipse at 40% 40%,#1c3e57,#081019);border:1px solid #486277;border-radius:6px}.starsBoard button{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;min-width:44px;border:1px solid #9faebb;border-radius:50%;padding:0;font:17px Georgia;background:#122b3d}.starsBoard button.active{background:#f3d17f;color:#0c1a29}.starsBoard svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.engineRings{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.engineRing{width:120px;height:120px;border-radius:50%;border:8px double #b59b60;background:radial-gradient(circle,#23535c,#091a23);font:19px Georgia;box-shadow:0 0 22px #70ffff12}.engineRing:hover{background:#f0d794}.puzzleFeedback{min-height:30px;color:var(--mint);margin:10px 0}.sequence{font:32px Georgia;letter-spacing:8px;text-align:center;padding:20px;background:#14323a}.piano button{min-width:54px;min-height:96px;background:#f7ebd2;color:#1b282a;border-bottom:8px solid #b5a383}.piano button:hover,.piano button.active{background:#e7bd70}.viewing .riddlePanel{display:none}.viewing #play{grid-template-columns:1fr}.viewing #sceneHelp{visibility:hidden}.viewing .corner{display:none}.reduced *{scroll-behavior:auto!important;transition:none!important;animation:none!important}.completion{font:19px/1.7 Georgia;color:#f8dfab}.welcomeDetail{font-size:12px;letter-spacing:1px;color:var(--gold)}
@media(min-width:1600px){#play{grid-template-columns:minmax(0,1fr) 380px}.clueText{font-size:15px}}
@media(max-width:760px) and (orientation:portrait){#app{padding-right:max(7px,env(safe-area-inset-right));padding-left:max(7px,env(safe-area-inset-left))}.topbar{min-height:48px;gap:6px;justify-content:space-between}.brand{display:none}.topbar nav{gap:4px}.topbar nav button{font-size:12px;padding:8px 9px;min-height:40px}.return{font-size:12px}.roomhead{padding:8px 3px}.roomhead .eyebrow{font-size:8px;letter-spacing:1.3px;margin:0}h1{font-size:23px}.roomcount{font-size:10px;max-width:86px}#play{grid-template-columns:1fr;grid-template-rows:minmax(160px,1fr) minmax(170px,30%);gap:8px}.sceneColumn{grid-template-rows:minmax(0,1fr) auto}#sceneHelp{display:none}.sceneTools{padding-top:5px;gap:4px}.sceneTools button{font-size:12px;padding:8px;min-height:40px}.zoomTools{gap:3px}.zoomTools button{min-width:40px}.zoomTools output{min-width:27px;font-size:11px}.riddleHeading{padding:8px 10px}.riddleHeading h2{font-size:19px}.riddleHeading strong{font-size:20px}.riddleHeading .eyebrow{font-size:8px;letter-spacing:1px;margin:0}.riddlePanel{grid-template-rows:auto 3px minmax(0,1fr) auto auto}#clues{padding:4px 7px}.clue{padding:7px 6px;margin:0;gap:8px}.clueText{font-size:13px;line-height:1.45}.riddleActions{padding:5px 7px;gap:6px}.riddleActions button{min-height:40px;padding:8px;font-size:12px}#wispLine{font-size:11px;padding:0 10px 5px;min-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}footer{min-height:27px;font-size:10px}#saveStatus{display:none}.viewing #play{grid-template-rows:1fr}.mapGrid{grid-template-columns:repeat(2,1fr)}dialog{padding:16px}#dialogTitle{font-size:27px;margin:8px 0 15px}.introImage{height:130px}.lead{font-size:20px!important}.portraitGrid{max-width:290px}}
@media(max-height:540px) and (orientation:landscape){#app{padding-left:max(7px,env(safe-area-inset-left));padding-right:max(7px,env(safe-area-inset-right))}.topbar{min-height:44px}.topbar nav button{min-height:36px;padding:7px 12px}.brand{font-size:8px}.roomhead{padding:5px 2px}.roomhead .eyebrow{display:none}h1{font-size:21px}.roomcount{font-size:10px}#play{grid-template-columns:minmax(0,1fr) 275px;gap:8px}.sceneTools{padding-top:4px;gap:4px}.sceneTools button{min-height:36px;font-size:12px;padding:6px 9px}.zoomTools button{min-width:38px}#sceneHelp{display:none}.sceneColumn{grid-template-rows:minmax(0,1fr) auto}.riddleHeading{padding:7px 10px}.riddleHeading h2{font-size:18px}.riddleHeading .eyebrow{font-size:8px}.riddleHeading strong{font-size:20px}.clue{padding:7px 5px}.clueText{font-size:12px}.riddleActions{padding:5px;gap:5px}.riddleActions button{font-size:12px;min-height:38px;padding:7px}#wispLine{min-height:0;padding:0 9px 4px;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}footer{min-height:23px;font-size:10px}dialog{max-height:calc(100dvh - 16px);padding:15px 22px}#dialogTitle{font-size:25px}.introImage{height:90px}}

.wispIntro{display:flex;gap:15px;align-items:center}.wispIntro img{width:64px;height:72px;animation:wispFloat 4s ease-in-out infinite}@keyframes wispFloat{50%{transform:translateY(-5px)}}
@media(prefers-reduced-motion:reduce){.wispIntro img{animation:none}}
