@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Libre+Caslon+Text:ital,wght@0,400;0,700;1,400&display=swap');
:root{color-scheme:dark;--paper:#eee7d5;--ink:#25251f;--gold:#c5a361}*{box-sizing:border-box}body{margin:0;background:#11100e;color:#eee9da;font-family:Georgia,serif}button,a,input,textarea{touch-action:manipulation}button,a{color:inherit}button{cursor:pointer;font:inherit}button:focus-visible,a:focus-visible{outline:2px solid #edbd61;outline-offset:6px}#world{height:100svh;min-height:610px;position:relative;overflow:hidden}.scene{position:absolute;inset:-2%;background:center/cover no-repeat;filter:saturate(.6) brightness(.6);transition:background-image .3s,filter .8s;animation:breathe 25s alternate infinite}.shadow{position:absolute;inset:0;background:linear-gradient(90deg,#05060491,transparent 55%),linear-gradient(0deg,#070806c9,transparent 40%,#04050445);pointer-events:none}.grain{position:absolute;inset:0;opacity:.09;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.55' filter='url(%23n)'/%3E%3C/svg%3E");pointer-events:none}header{position:absolute;top:0;left:0;right:0;padding:32px 4vw;display:flex;justify-content:space-between;align-items:center;z-index:3}#brand{font:bold 42px Georgia;text-decoration:none;color:#dab77a}#brand span{font:12px 'DM Mono',monospace;letter-spacing:3px;color:#dedacb;vertical-align:middle;margin-left:16px}header button{border:1px solid #a2927350;background:#13140e55;width:40px;height:40px;margin-left:10px}.room-title{position:absolute;left:7vw;top:24%;max-width:550px;pointer-events:none}.room-title small{font:12px 'DM Mono',monospace;letter-spacing:3px;text-transform:uppercase;color:#d2be91}.room-title h1{font:400 clamp(40px,6.3vw,88px)/1.04 'Libre Caslon Text',Georgia,serif;letter-spacing:-3px;margin:26px 0;text-wrap:balance}.room-title p{font:italic 16px/1.7 Georgia;max-width:300px;color:#d0c6b3}.objects,.doors{position:absolute;inset:0;pointer-events:none}.object,.door,.read-object{pointer-events:auto;position:absolute;border:0;box-shadow:3px 8px 22px #0007;transition:transform .4s,filter .4s}.object{background:var(--paper);color:var(--ink);width:92px;height:118px;transform:rotate(var(--tilt));clip-path:polygon(0 0,90% 0,100% 12%,100% 100%,0 100%);padding:12px 10px;text-align:left;font:10px/1.7 'DM Mono',monospace;letter-spacing:1px}.object:before{content:'';position:absolute;inset:35px 10px 15px;background:repeating-linear-gradient(transparent 0 6px,#3334 7px 8px)}.object:hover{transform:rotate(0deg) scale(1.1);filter:brightness(1.15)}.object.done:after{content:'FILED';position:absolute;bottom:12px;left:7px;color:#6c211e;border:1px solid;padding:1px 8px;transform:rotate(-17deg)}.door{bottom:18%;background:#1117;border:1px solid #c3b08136;color:#e3cb94;width:45px;height:58px;box-shadow:none;font:12px 'DM Mono',monospace;opacity:.6;transform:rotate(var(--tilt))}.door:hover{opacity:1;background:#d8b26b25;transform:scale(1.12)}.read-object{right:8%;top:18%;width:150px;height:205px;background:#d1c5a9;color:#29261e;transform:rotate(7deg);padding:20px}.read-object:before{content:'';position:absolute;inset:25px 20px 55px;background:repeating-linear-gradient(transparent 0 11px,#27261e44 12px 13px)}.read-object:hover{transform:rotate(2deg)}.scribble{position:absolute;bottom:20px;left:18px;font:italic 18px Georgia}.crease{position:absolute;left:50%;top:0;height:100%;width:1px;background:#60584133}footer{position:absolute;left:4%;bottom:24px;right:4%;display:flex;align-items:center;gap:30px;font:11px 'DM Mono',monospace;letter-spacing:2px}footer button{background:none;border:0;padding:10px;font:inherit}#terms{margin-left:auto;font-size:10px;color:#afa797}#toast{position:absolute;bottom:90px;left:7%;max-width:80%;font:14px/1.6 'DM Mono',monospace;background:#111d;white-space:pre-wrap}#toast:not(:empty){padding:10px 16px;border-left:2px solid var(--gold)}dialog{border:0;max-width:850px;width:calc(100% - 36px);max-height:89svh;padding:45px 65px;background:var(--paper);color:var(--ink);box-shadow:0 20px 100px #0009;font:16px/1.85 'Libre Caslon Text',Georgia,serif;overflow-y:auto}dialog::backdrop{background:#050606c9;backdrop-filter:blur(6px)}dialog .close{position:sticky;top:-32px;float:right;background:var(--paper);border:0;font:30px Georgia;z-index:3}dialog h2{font:400 clamp(25px,4vw,42px)/1.2 Georgia;margin:24px 0}dialog p{margin:18px 0}dialog pre{font:13px/1.8 'DM Mono',monospace;white-space:pre-wrap;overflow-wrap:anywhere;padding:18px;border-block:1px solid #94815a55;color:#292820}dialog svg{display:block;max-width:100%;height:auto;margin:25px auto}dialog table{width:100%;border-collapse:collapse;font:13px/1.6 'DM Mono',monospace}dialog td,dialog th{padding:9px;border-bottom:1px solid #b6a888;text-align:left}dialog input,dialog textarea{background:transparent;border:0;border-bottom:1px solid #8b7955;border-radius:0;color:#272620;padding:12px;font:15px 'DM Mono',monospace;max-width:100%}dialog textarea{width:100%;min-height:80px}dialog button:not(.close):not(.square):not(.bit){background:transparent;border:1px solid #85755366;padding:8px 16px;font:12px 'DM Mono',monospace;letter-spacing:1px}dialog form{margin:35px 0 10px}dialog form label{font:11px 'DM Mono',monospace;letter-spacing:2px;text-transform:uppercase}.marginal{font:italic 12px Georgia;writing-mode:vertical-rl;position:relative;float:right;height:180px;color:#625b4f}.reverse-note{transform:rotate(180deg);font:12px 'DM Mono',monospace;word-break:break-all;opacity:.7;margin-top:60px}.provenance{font:11px 'DM Mono',monospace;letter-spacing:2px}.underleaf{border-top:1px dashed #9c8c6a;margin-top:30px;padding-top:20px;font-size:15px}.underleaf summary{cursor:pointer;font:11px 'DM Mono',monospace;letter-spacing:3px;list-style:none}.underleaf summary:after{content:'⌁'}.case-tabs{display:flex;gap:12px;margin:25px 0}.case-save{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:25px;font:13px 'DM Mono',monospace}.case-save input{max-width:220px}.labels{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.label{border:1px dashed #9b8b67;padding:12px;font:12px/1.7 'DM Mono',monospace;white-space:pre-wrap}.places{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.places a{font-size:17px;text-decoration:none;border-bottom:1px solid #988763;padding:12px}.feedback{font:13px/1.6 'DM Mono',monospace}.board{display:grid;grid-template-columns:repeat(8,1fr);width:min(100%,440px);margin:24px auto;border:5px solid #413c30}.square{aspect-ratio:1;border:0;padding:0;background:#d7c5a1;font:clamp(20px,5vw,40px) Georgia;color:#111;position:relative}.square.dark{background:#8a7453}.square.whitepiece{color:#fff;text-shadow:0 1px 2px #000,1px 0 #000,-1px 0 #000}.square small{position:absolute;bottom:1px;left:3px;font:8px monospace;color:#241e13}.square.selected{box-shadow:inset 0 0 0 4px #966123}.square.legal{background-image:radial-gradient(#3335 15%,transparent 16%)}.bit-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;max-width:350px;margin:25px auto}.bit{aspect-ratio:1;background:#343731;border:1px solid #ada586;color:#eee}.bit.on{background:#caa760;color:#242219}.sliders label{display:block;font:12px monospace}.sliders input{width:100%;accent-color:#88602c}.strips{display:grid;gap:6px}.strip{display:flex;align-items:center;justify-content:space-between;border:1px solid #a89a78;padding:7px 12px;font:14px monospace}.nodes{display:flex;gap:10px;flex-wrap:wrap}.node.chosen{background:#bda77c!important}.ending{font-size:17px;line-height:1.9}.address{display:block;margin-top:25px;font:18px 'DM Mono',monospace;overflow-wrap:anywhere}.film-ghost{position:absolute;right:5%;bottom:27%;font:10px 'DM Mono',monospace;letter-spacing:4px;transform:rotate(-90deg);opacity:.38;color:#e5d5b6}.scene.ink{background-size:contain;background-color:#10100f}.reduced *{animation:none!important;transition:none!important;scroll-behavior:auto!important}@keyframes breathe{from{transform:scale(1)}to{transform:scale(1.025)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(max-width:650px){header{padding:20px}#brand span{font-size:9px;letter-spacing:1px;margin-left:5px}.room-title{left:6%;top:22%;max-width:67%}.room-title h1{letter-spacing:-1.5px;font-size:44px}.room-title p{font-size:14px;max-width:220px}.read-object{width:85px;height:118px;right:5%;top:55%}.read-object .scribble{font-size:12px;left:8px;bottom:10px}.read-object:before{inset:12px 8px 35px}.object{width:63px;height:84px;font-size:8px;padding:8px}.object:before{inset:25px 8px 10px}.door{width:34px;height:44px}.doors{bottom:3%}dialog{padding:28px 23px;font-size:15px;line-height:1.8}.labels{grid-template-columns:repeat(2,1fr)}footer{gap:10px;font-size:9px}#coordinate{max-width:160px}#terms{max-width:95px}dialog .close{top:-18px}.places{grid-template-columns:1fr}.board .square{font-size:31px}}
/* Responsive reading and navigation, revision 2. */
:root{--reading-size:18px}#world{min-height:900px;height:100svh;overflow:hidden}.room-title{top:150px;left:6%;max-width:39%;}.room-title h1{font-size:clamp(40px,5.5vw,76px);margin:20px 0}.room-title p{font-size:var(--reading-size);max-width:390px;line-height:1.65}.objects{left:50%;right:6%;top:390px;bottom:170px;display:flex;gap:28px;flex-wrap:wrap;align-content:center;align-items:center}.object{position:relative!important;left:auto!important;top:auto!important;flex:0 0 118px;width:118px;height:160px;overflow-wrap:anywhere}.read-object{top:140px;right:10%}.doors{inset:auto 6% 76px;display:flex;flex-wrap:wrap;gap:12px;justify-content:center;max-height:130px;overflow:auto;padding:10px}.door{position:relative!important;left:auto!important;bottom:auto!important;flex:0 0 44px}.room-title{pointer-events:auto}.room-title p{user-select:text}header{z-index:4}header button{margin-left:4px}dialog{box-sizing:border-box;max-height:88svh;overflow:auto;width:min(780px,94vw);font-size:var(--reading-size);padding:32px;color:#29261e;background:#eee7d5}dialog .close{position:sticky;top:0;float:right;z-index:2;background:#eee7d5;color:#29261e;min-width:40px;min-height:40px;border:1px solid #84775d}dialog::backdrop{background:#000b}dialog svg{max-width:100%;height:auto}dialog pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}dialog table{display:block;max-width:100%;overflow:auto}#menuDialog label{display:block;margin:12px 0 6px}#menuDialog input:not([type=checkbox]):not([type=range]){width:100%;padding:12px;font:inherit;border:1px solid #8e8065;background:#fffdf5;color:#25251f}#menuDialog section{border-top:1px solid #a89a7d;margin-top:24px;padding-top:12px}.menu-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}#menuDialog button{padding:10px 16px;background:#29261e;color:#f8efd8;border:1px solid #84775d}#manualDialog{width:min(960px,96vw)}#manualContent{max-width:70ch;margin:auto;line-height:1.8}#manualContent section{border-top:1px solid #b8a78a;padding:24px 0}#manualContent .solution{background:#e0d4bb;padding:16px}.original-record{padding:16px;border-left:2px solid #aa8e54}.high-contrast .shadow{background:#000b}.high-contrast .room-title p{color:#fff}.board{display:grid!important;grid-template-columns:repeat(8,1fr);width:min(100%,440px);margin:20px auto}.board .square{aspect-ratio:1;padding:0;position:relative;font-size:34px;min-width:0}.board .square small{font-size:9px}.board .square.selected{outline:3px solid #dcb458;outline-offset:-3px}#toast{position:fixed;bottom:15px;left:50%;transform:translateX(-50%);z-index:100;max-width:90vw;background:#17160f;color:#f8efd8;padding:10px}#toast:empty{display:none}button:disabled{opacity:.55;cursor:wait}
@media(max-width:720px){#world{height:auto;min-height:1200px}header{padding:18px 5%}#brand{font-size:34px}#brand span{font-size:8px}header button{width:34px;height:36px}.room-title{top:115px;max-width:none;width:88%;left:6%}.room-title h1{font-size:46px;max-width:100%}.room-title p{max-width:100%;font-size:var(--reading-size)}.read-object{top:590px;right:9%;width:90px;height:130px}.objects{left:7%;right:34%;top:620px;bottom:180px;gap:18px}.object{flex-basis:90px;width:90px;height:130px;font-size:10px}.doors{bottom:70px;max-height:150px}.door{flex-basis:36px;height:40px}dialog{padding:22px}.board .square{font-size:28px}}
@media(max-width:720px){#world{padding:115px 0 210px;min-height:100svh;overflow:hidden}.room-title{position:relative;top:auto;left:auto;width:auto;margin:0 6%}.objects{position:relative;inset:auto;margin:160px 7% 20px;min-height:210px;justify-content:center}.read-object{top:auto;bottom:440px;right:8%}.doors{bottom:65px}.scene{position:absolute;height:100%}.room-title p{max-width:none}}
