:root{color-scheme:dark;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#e7e0d1;background:#191b20;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button{font:inherit}#app{min-height:100svh;max-width:1600px;margin:auto;padding:24px 42px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center}header,footer{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px}header{max-width:1160px;margin-bottom:8px}h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(23px,2.5vw,32px);margin:5px 0 0;letter-spacing:-.5px}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:600;color:#bfae87}#stage{position:relative;width:min(100%,calc((100svh - 220px)*1.33333));aspect-ratio:4/3;flex-shrink:0}canvas{display:block;width:100%;height:100%;image-rendering:pixelated}#loading{position:absolute;inset:0;display:grid;place-items:center;background:#191b20;font-family:Georgia,serif;font-size:22px}#loading[hidden]{display:none}#bubble{display:none;position:absolute;transform:translate(-50%,-100%);padding:9px 12px;white-space:nowrap;border:2px solid #645337;background:#f7e8c7;color:#392d24;box-shadow:3px 3px 0 #14151988;font-family:ui-monospace,monospace;font-size:clamp(12px,1.3vw,17px);pointer-events:none;line-height:1.2}#bubble:after{content:"";position:absolute;left:50%;bottom:-7px;width:8px;height:8px;background:#f7e8c7;border-right:2px solid #645337;border-bottom:2px solid #645337;transform:rotate(45deg)}footer{max-width:1160px;border-top:1px solid #ffffff13;padding-top:18px;margin-top:4px}.now{min-width:220px}.now .eyebrow{font-size:12px;letter-spacing:1.5px;color:#9f9d94}.now p{font-family:Georgia,serif;font-style:italic;font-size:17px;line-height:1.5;margin:5px 0 0}.controls{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}button{min-height:44px;border:1px solid #ffffff20;border-radius:7px;padding:10px 13px;background:#25272b;color:#d9d7cf;font-size:14px;cursor:pointer;transition:background .15s,border-color .15s}button:hover{background:#353638;border-color:#bfae8777}button:focus-visible{outline:2px solid #dfc286;outline-offset:4px}button:disabled{opacity:.65;cursor:wait}.accent{color:#e7ca90;background:#393328;border-color:#88734666}.quiet{border:0;background:transparent;color:#b5b2a9}.hint{font-size:12px;color:#97968f;margin:10px 0 0;line-height:1.7}.hint span{margin-left:14px}.text-button{background:none;border:0;color:#aaa69a;font-size:12px;padding:4px 6px}#restore{display:none;position:absolute;bottom:18px;left:50%;transform:translateX(-50%);background:#191b20c9}.watching #app{padding:0}.watching header,.watching footer,.watching .hint{display:none}.watching #stage{width:min(100vw,133.333svh)}.watching #restore{display:block;opacity:0;transition:opacity .3s}.watching #stage:hover #restore,.watching #restore:focus-visible,.watching.reveal #restore{opacity:1}#app:fullscreen{max-width:none;background:#191b20;width:100%;overflow:auto}#splash{position:fixed;inset:0;background:#101219;z-index:10;display:grid;place-items:center;overflow:auto;padding:24px}#splash[hidden]{display:none}.splash-room{position:absolute;inset:0;background:linear-gradient(#10121988,#101219dd),url('assets/study-v2.png') center/contain no-repeat;opacity:.65}.splash-content{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;width:min(850px,100%)}#title-art{width:min(760px,100%);height:auto;max-height:63svh;object-fit:contain;image-rendering:pixelated}.splash-content p{font-family:Georgia,serif;font-style:italic;color:#d6c29b;font-size:18px;margin:12px 0 28px}.splash-content button{border:2px solid #b49653;border-radius:0;background:#242124;color:#f3d58a;box-shadow:4px 4px 0 #08090d;font-family:ui-monospace,monospace;padding:13px 28px;font-size:16px}.splash-content button:hover{background:#453820}@media(max-width:850px){#app{padding:20px 18px}footer{flex-direction:column;align-items:flex-start;gap:16px}.controls{justify-content:flex-start}#stage{width:min(100%,calc((100svh - 290px)*1.3333))}.hint span{display:none}}@media(max-width:540px){#app{justify-content:flex-start;padding:20px 12px 16px}header{padding:0 6px;margin-bottom:20px}.eyebrow{font-size:12px;letter-spacing:1px}h1{font-size:25px}.quiet{font-size:13px;padding:7px}#stage{width:100%;margin:auto 0}footer{padding:18px 6px 0;margin-top:14px}.controls{gap:7px}button{padding:10px 12px}.now p{font-size:18px}.watching #app{justify-content:center;min-height:100svh}.hint{align-self:flex-start;margin-left:6px}}@media(prefers-reduced-motion:reduce){button{transition:none}}
/* The normal scene has no permanent behavior labels or diagnostic overlays. */
.now{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}footer{justify-content:center}.controls{justify-content:center}#bubble{max-width:calc(100% - 12px);white-space:normal;text-align:center}#developer{width:min(1100px,100%);margin-top:24px;padding:20px;border:1px solid #666;display:flex;flex-wrap:wrap;gap:12px;background:#16181d}#developer[hidden]{display:none}#developer h2{width:100%;margin:0 0 8px;font-size:18px}#developer label{font-size:14px;display:flex;align-items:center;gap:8px}select{font:inherit;min-height:40px;padding:6px;background:#24262c;color:#eee;border:1px solid #666;max-width:100%}#developer details{width:100%}#diagnostics,#completed-log{font-size:12px;white-space:pre-wrap;max-height:240px;overflow:auto;color:#c5d9cb}dialog{color:#ede1ca;background:#25272b;border:1px solid #8c784f;max-width:430px;padding:24px}dialog::backdrop{background:#0009}dialog p{line-height:1.5}body[data-preview="mobile"] #app{max-width:390px;padding:16px 10px}body[data-preview="tablet"] #app{max-width:768px}body[data-preview="mobile"] #stage,body[data-preview="tablet"] #stage{width:100%}body[data-preview="mobile"] footer{flex-direction:column}body[data-preview="mobile"] header{gap:5px}body[data-preview="mobile"] h1{font-size:24px}body[data-preview="mobile"] .eyebrow{font-size:12px;letter-spacing:1px}#storage-note{font-size:14px;color:#e8c58b}#restart-dialog:not([open]){display:none}

#bubble:after{left:var(--tail-x,50%)}
