*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:#10101b;color:#ebd8b6;font:12px monospace;overflow:hidden}#room-canvas{display:block;width:100vw;height:100dvh;touch-action:manipulation;filter:contrast(1.04)}header{position:absolute;inset:0 0 auto;padding:25px 4vw;pointer-events:none;background:linear-gradient(#090b17aa,transparent);display:flex;align-items:flex-start;justify-content:space-between}header small{font-size:9px;letter-spacing:3px;color:#c0ab8b}h1{font:normal 36px Georgia;margin:10px 0}header p{font-size:10px;color:#afadbb;line-height:1.8}a{color:inherit;text-decoration:none}button,a,input,select,summary{touch-action:manipulation}button{font:11px monospace;background:none;color:#eddbb9;border:0;border-bottom:1px solid #7e7459;padding:12px 0;cursor:pointer}button:hover,button[aria-pressed=true]{color:#ffd38b;border-color:#ffd38b}button:disabled{opacity:.45;cursor:wait}button:focus-visible,a:focus-visible,summary:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid #efc178;outline-offset:4px}.universe-back{pointer-events:auto;border-top:1px solid #ad986f;padding:10px 0;font-size:10px}footer{position:absolute;bottom:0;padding:20px 4vw;width:100%;background:linear-gradient(transparent,#070914ee);pointer-events:none}footer nav,footer a,footer button{pointer-events:auto}nav{display:flex;align-items:center;gap:26px;flex-wrap:wrap}#hint{font-size:10px;color:#bcb4b4;line-height:1.7;margin-bottom:10px}#motion,#sound,.fallback{font-size:9px}#sound{margin-left:auto}.fallback{color:#aba4a2}.pixel-room-preview{display:flex;align-items:center;min-height:44px;padding:10px 0;border-bottom:1px solid #8e7850;color:#d8c9a8;font-size:9px;letter-spacing:.08em;white-space:nowrap}.pixel-room-preview:hover{color:#f0c18b;border-color:#f0c18b}#back{position:absolute;left:4vw;top:150px}#panel{position:absolute;right:3vw;top:100px;bottom:115px;width:250px;background:#080e19e8;border-left:1px solid #ac8b57;padding:20px;overflow:auto;scrollbar-width:thin;line-height:1.7}.eyebrow{font-size:9px;letter-spacing:2px;color:#c2a87d;margin:0 0 15px}#panel p{font-size:11px}#panel small{display:block;font-size:9px;color:#a7a7b3;line-height:1.6}.choices{display:grid;gap:3px}.choices button{text-align:left}#target{font-size:9px!important;color:#c49c66}#start-game{width:100%;text-align:left;color:#bcd0ae}#game-hud{color:#e7c487;font-size:10px!important}#game-message,#chess-status{color:#c6d2b4;min-height:20px}#score-form{display:grid;gap:10px;margin-top:15px}input,select{font:11px monospace;background:#0d1621;color:#f2dfb7;border:1px solid #ac8b5766;border-radius:0;padding:10px;max-width:100%;width:100%}label{font-size:10px}.controls-note{font-size:9px!important;color:#b9b2a8}.touch{display:flex;gap:5px}.touch button{touch-action:none;user-select:none;min-width:30px;min-height:42px;border:1px solid #8f835944}details{margin-top:20px}summary{cursor:pointer;font-size:10px;padding:8px 0}ol{padding-left:22px;font-size:10px}li{padding:4px 0}li b{float:right;color:#e7b87b}.chess-actions{display:flex;justify-content:space-between}#chess-source{display:block;font-size:9px;color:#aab7c2;margin-top:20px}#chess-line{color:#b7a37b}#accessible-board{display:grid;grid-template-columns:repeat(8,1fr);margin:12px 0;width:100%;aspect-ratio:1}#accessible-board button{padding:0;min-width:0;border:0;color:#1a1720;font:20px Georgia;background:#c3b394}#accessible-board button.dark{background:#657077}#accessible-board button.selected{background:#c79857}#promotion{display:flex;gap:10px;flex-wrap:wrap}#promotion span{width:100%}#celebration{position:fixed;left:50%;top:24%;color:#ffd58a;font-size:90px;opacity:0;pointer-events:none}.celebrate #celebration{animation:star 2s ease-out}@keyframes star{0%{opacity:0;transform:scale(.2) rotate(-30deg)}35%{opacity:1;transform:scale(1) rotate(0)}100%{opacity:0;transform:scale(1.3) translateY(-30px)}}[hidden]{display:none!important}body:after{content:'';position:fixed;inset:0;pointer-events:none;box-shadow:inset 0 0 100px #05071244}.load-failed #room-canvas{display:none}.load-failed #hint{font-size:16px}.load-failed footer{bottom:35%}.load-failed [data-go],.load-failed #motion,.load-failed #sound{display:none}body[data-mode=computer] header p,body[data-mode=chess] header p{display:none}body[data-mode=computer] h1,body[data-mode=chess] h1{font-size:24px}body.room-entering{animation:arrive .7s ease-out}@keyframes arrive{from{opacity:0}to{opacity:1}}
@media(max-width:800px){#panel{width:220px;right:16px;padding:14px}nav{gap:16px}header{padding:20px}.universe-back{font-size:9px}}@media(max-width:650px){header small{font-size:8px}h1{font-size:28px}.universe-back{max-width:120px;line-height:1.5}#panel{top:auto;bottom:90px;left:16px;right:16px;width:auto;max-height:29dvh;padding:12px 16px;border-left:0;border-top:1px solid #ac8b57}#back{top:80px;left:20px;font-size:9px}.choices{display:flex;gap:18px}footer{padding:10px 16px}nav{gap:5px 16px}nav button{font-size:8px;padding:8px 0}#sound{margin-left:0}.fallback{font-size:8px}#hint{font-size:8px;margin:0 0 5px}.touch{position:sticky;bottom:-12px;padding:7px 0;background:#080e19}.touch button{flex:1}#accessible-board{max-width:260px}body[data-mode=room] #hint{margin-bottom:10px}}@media(prefers-reduced-motion:reduce){.celebrate #celebration{animation:none}body.room-entering{animation:none}}
/* A readable companion to the notepad beside the chess table. */
body[data-mode=chess] #panel{background:repeating-linear-gradient(transparent 0 31px,#7e806122 31px 32px),#e4d4b0;color:#392f24;border:0;border-top:9px solid #8a714b;box-shadow:3px 8px 25px #0006;line-height:1.9}body[data-mode=chess] #panel:before{content:'';position:absolute;top:0;bottom:0;left:10px;width:1px;background:#b47b6966;pointer-events:none}body[data-mode=chess] #panel .eyebrow{color:#716046;font-size:8px}.notepad-title{font:italic 26px Georgia;margin:0 0 20px}body[data-mode=chess] #panel button,body[data-mode=chess] #panel a{color:#4c4634;border-color:#7a6c4a66}body[data-mode=chess] #panel select{color:#392f24;background:#eee2c8;border-color:#9b8660}body[data-mode=chess] #chess-status{font:17px/1.65 Georgia;color:#302d25}body[data-mode=chess] #chess-line{color:#5e654f;font-size:11px}body[data-mode=chess] #panel small{color:#615745}body[data-mode=chess] #accessible-board button{font-size:20px;color:#211c16}body[data-mode=chess] #panel button:focus-visible{outline-color:#594728}body.room-embedded:not(.embed-active) header,body.room-embedded:not(.embed-active) footer,body.room-embedded:not(.embed-active) #panel,body.room-embedded:not(.embed-active) #back{display:none!important}body.room-embedded:not(.embed-active) #room-canvas{pointer-events:none}body.room-embedded{animation:none!important}body.embed-active header,body.embed-active footer{animation:arrive .6s ease-out}body.room-embedded:after{box-shadow:none}
#room-arrival{position:fixed;inset:0;z-index:100;background:#151411;display:flex;align-items:center;justify-content:center;flex-direction:column;transition:opacity .85s ease;pointer-events:none}#room-arrival span{color:#bfa17c;letter-spacing:.3em;font:10px monospace}#room-arrival p{font:italic 32px Georgia;color:#e8d7b9}#room-arrival.arrived{opacity:0}
#walk-controls{position:fixed;left:30px;bottom:155px;z-index:3;text-align:center}#walk-controls button{width:44px;height:42px;margin:3px;touch-action:none;background:#14151bdd;border:1px solid #8a7350;color:#eed9b7}#walk-controls small{display:block;font-size:10px;margin-top:7px}body[data-mode=walk] #room-canvas{touch-action:none;cursor:grab}body[data-mode=walk] header p{display:none}#music-panel h2,#tv-panel h2{font:italic 25px Georgia;color:#dfcba9}#music-panel input{width:100%;accent-color:#b79b68}#music-panel small{display:block;margin-top:20px;color:#a59a89}#tv-panel button{display:block;margin:12px 0}footer nav{flex-wrap:wrap;gap:8px 17px}footer nav button,footer nav a{font-size:10px}#panel{bottom:145px}#walk-controls[hidden]{display:none!important}
@media(max-width:650px){footer{padding:12px 16px}footer nav{gap:7px 13px}footer nav button,footer nav a{font-size:9px}#walk-controls{left:16px;bottom:155px}#panel{bottom:145px;max-height:32dvh}body[data-mode=walk] header h1{font-size:24px}#back{top:115px}#room-arrival p{font-size:27px}}
@media(prefers-reduced-motion:reduce){#room-arrival{transition:none}}
#rest-cue{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);z-index:4;opacity:.5;font-size:10px;transition:opacity .6s;background:#100f18aa;padding:12px 20px;border:1px solid #bfa37344}#rest-cue:hover,#rest-cue:focus-visible{opacity:1}body[data-mode=sofa] header,body[data-mode=sofa] footer,body[data-mode=sofa] #back{transition:opacity 1.4s}.lounge-resting header,.lounge-resting footer,.lounge-resting #back{opacity:0;pointer-events:none}body[data-mode=sofa] footer{padding-bottom:90px}#mementos-panel h2{font:italic 26px Georgia;color:#e2ceb0}#mementos-panel details{border-top:1px solid #a6875655;padding-top:10px}#mementos-panel summary{color:#cbb68d}body[data-mode=mementos] header p{display:none}@media(prefers-reduced-motion:reduce){body[data-mode=sofa] header,body[data-mode=sofa] footer,body[data-mode=sofa] #back,#rest-cue{transition:none}}
.room-quality-label{font:9px monospace;display:flex;align-items:center;gap:8px;pointer-events:auto}.room-quality-label select{width:auto;font-size:10px;padding:7px;background:#14151bcc}.spatial-choice{display:flex;align-items:center;gap:9px;margin-top:16px;font-size:10px}.spatial-choice input{width:auto!important}#folded-note-panel{color:#d8caad}#folded-note-panel h2{font:italic 29px Georgia}#folded-note-panel blockquote{margin:25px 0;font:italic 23px/1.6 Georgia;color:#eeddbd}#folded-note-panel p{font:17px/1.8 Georgia}#folded-note-panel small{font-size:10px}footer nav button{min-height:40px}#panel{scrollbar-gutter:stable;overscroll-behavior:contain}#room-canvas:focus-visible{outline:1px solid #c7ad7b;outline-offset:-3px}@media(max-width:650px){footer nav{gap:2px 12px}footer nav button{padding:7px 0;min-height:35px}#panel{bottom:195px;top:auto;max-height:38dvh}#walk-controls{bottom:200px}.room-quality-label{font-size:8px}#folded-note-panel blockquote{font-size:20px}}@media(prefers-reduced-motion:reduce){.room-entering{animation:none!important}}

.record-sleeves{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0}.record-sleeve{position:relative;aspect-ratio:1;text-align:left!important;padding:14px!important;overflow:hidden;border:1px solid #9b805950!important;box-shadow:4px 5px 0 #0004;background:#24302c!important;color:#e5d2aa!important;transition:transform .2s}.record-sleeve:hover,.record-sleeve:focus-visible{transform:translateY(-4px)}.record-sleeve[aria-pressed=true]{outline:1px solid #d8b575;outline-offset:3px}.record-sleeve small{font-size:9px;letter-spacing:.16em}.record-sleeve span{display:block;font:italic 23px Georgia,serif;margin-top:16px;position:relative;z-index:1}.record-sleeve i{position:absolute;width:110px;height:110px;border:1px solid #b6a77c70;border-radius:50%;bottom:-45px;right:-15px;box-shadow:0 0 0 8px #0002,0 0 0 9px #b6a77c30,0 0 0 19px #0002}.velvet-sleeve{background:#432b35!important}.own-record input{width:100%;box-sizing:border-box}.solved-notes ol{padding-left:18px;line-height:1.8;color:#b9a078}.solved-notes small{display:block}#playlist-remove{font-size:10px} @media(prefers-reduced-motion:reduce){.record-sleeve{transition:none}.record-sleeve:hover{transform:none}}

footer{padding-bottom:max(16px,env(safe-area-inset-bottom))}#panel{bottom:var(--room-toolbar,150px)}#walk-controls{bottom:var(--room-toolbar,150px)}#panel a,#panel button{overflow-wrap:anywhere}#playlist-url{min-width:0}#folded-note-panel blockquote{font-style:italic}#panel button:focus-visible{outline-offset:2px}
@media(max-width:650px){footer nav{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;max-width:100%;padding-bottom:7px;pointer-events:auto;gap:18px}footer nav>*{flex:0 0 auto}footer nav button{min-height:44px}#panel{bottom:var(--room-toolbar,130px);max-height:var(--room-panel-height,38dvh)}#walk-controls{bottom:var(--room-toolbar,130px)}footer{padding-bottom:max(10px,env(safe-area-inset-bottom))}.universe-back{min-height:44px}.record-sleeve span{font-size:21px}#hint{max-width:100%;font-size:9px}#panel input,#panel select{font-size:16px}}
@media(max-height:500px) and (min-width:651px){header h1{font-size:24px}header p{display:none}#back{top:90px}#panel{top:65px;bottom:var(--room-toolbar,100px)}footer nav{flex-wrap:nowrap;overflow-x:auto;pointer-events:auto}footer nav>*{flex:0 0 auto}}
