:root{--ink: #2b2119;--paper: #efe3c4;--paper-2: #e3d3ad;--brass: #c9a24a;--brass-2: #e9c46a;--night: #0b0806;--night-2: #17110c;--text: #f1e6cb;--muted: #b8a985;--accent: #b8322a;--teal: #3fe0c5;--serif: "Cormorant Garamond", "Iowan Old Style", Georgia, serif;--sans: Inter, system-ui, -apple-system, sans-serif;--hand: "Caveat", "Bradley Hand", cursive;--radius: 12px;--fs: 16px;color-scheme:dark}html.large-text{--fs: 19px}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--night);color:var(--text);font-family:var(--sans);font-size:var(--fs)}body{overflow:hidden;-webkit-tap-highlight-color:transparent}#app{height:100dvh;transition:opacity .12s}#app.fade{opacity:0}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,[role=button]:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid var(--brass-2);outline-offset:2px}h1,h2,h3,h4{font-family:var(--serif);font-weight:700;margin:.2em 0 .4em}.muted{color:var(--muted)}.small{font-size:.85em}.primary{background:linear-gradient(#d9b25a,#a8802e);color:#1c140a;border:0;border-radius:999px;padding:.7em 1.4em;font-weight:600;box-shadow:0 2px #6b4e18,0 6px 20px #0006;min-height:44px}.primary:hover{filter:brightness(1.08)}.primary.alt{background:linear-gradient(#5a7fa8,#2f4d6e);color:#f1e6cb;box-shadow:0 2px #1b2c40}.primary.big{font-size:1.2em;padding:.8em 2em}.ghost{background:#ffffff10;border:1px solid #ffffff28;border-radius:999px;padding:.55em 1.1em;min-height:44px}.ghost.icon{padding:.4em .8em}.ghost.danger{border-color:#b8322a88;color:#f3b1a8}.linkish{background:none;border:0;color:var(--brass-2);text-decoration:underline;padding:0 .2em}.btns{display:flex;gap:.6em;flex-wrap:wrap;margin-top:1em}code{background:#0005;padding:.1em .4em;border-radius:4px}.title-screen{position:relative;height:100%;overflow:hidden;display:grid;place-items:center}.title-svg{position:absolute;inset:0;width:100%;height:100%}.title-copy{position:relative;text-align:center;padding:16px;max-width:640px}.title-copy h1{font-size:clamp(3rem,11vw,6.5rem);letter-spacing:.04em;margin:0;color:#f6e7bf;text-shadow:0 4px 30px #f5b45055}.title-copy .eyebrow{letter-spacing:.3em;text-transform:uppercase;font-size:.8em;color:var(--brass)}.title-copy .sub{font-family:var(--serif);font-style:italic;font-size:1.3em;color:#e6d5ae;margin:.2em 0 1.6em}.title-copy .ghost{margin-left:.6em}.proto-note{position:absolute;bottom:12px;width:100%;text-align:center;font-size:.75em;color:#8a7a5a}.title-moth{transform-origin:1010px 560px;animation:flutter 6s ease-in-out infinite}@keyframes flutter{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(-30px,-20px) rotate(-8deg)}50%{transform:translate(-10px,-50px) rotate(6deg)}75%{transform:translate(20px,-25px) rotate(-4deg)}}.library{height:100%;overflow:auto;padding:16px max(16px,env(safe-area-inset-left)) 40px;background:radial-gradient(ellipse at 50% 0%,#3a2614,var(--night) 70%)}.lib-head{display:flex;align-items:center;justify-content:space-between;gap:8px;max-width:1100px;margin:0 auto}.lib-head h1{font-size:2em;margin:0}.lib-actions{display:flex;gap:8px}.archivist{text-align:center;font-family:var(--serif);font-style:italic;font-size:1.2em;color:#e6d5ae;max-width:700px;margin:1em auto 1.5em}.archivist span{font-style:normal;color:var(--muted);font-size:.8em}.shelf{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px;max-width:1000px;margin:0 auto}.book-card{text-align:center}.book-card .cover{border:0;padding:0;background:none;width:100%;max-width:260px;aspect-ratio:2/3;border-radius:10px;box-shadow:0 18px 40px #000a,6px 0 #0004;transition:transform .25s,box-shadow .25s}.book-card .cover:hover{transform:translateY(-8px) rotate(-1deg);box-shadow:0 28px 50px #000c}.cover-svg{width:100%;height:100%;display:block;border-radius:10px}.book-card h3{font-size:1.35em;margin:.5em 0 .1em}.shelf-label{text-transform:uppercase;letter-spacing:.15em;font-size:.7em;color:var(--brass);margin:.8em 0 0}.tagline{font-family:var(--serif);font-style:italic;color:#e6d5ae;margin:.2em 0}.price{font-weight:600;color:var(--brass-2)}.shelf-floor{height:18px;max-width:1040px;margin:10px auto 0;background:linear-gradient(#5a3a22,#2a1a10);border-radius:4px;box-shadow:0 10px 30px #000}.egg-count{text-align:center;color:var(--muted);font-size:.85em}.moth-mark{color:var(--brass-2);font-style:italic}.ink-pill{background:#2a1d10;border:1px solid var(--brass);color:var(--brass-2);border-radius:999px;padding:.45em 1em;min-height:40px;font-weight:600}.modal-back{position:fixed;inset:0;background:#000a;display:grid;place-items:center;z-index:50;padding:16px;animation:fadein .2s}.modal{position:relative;background:linear-gradient(#f3e8cc,#e6d4ab);color:var(--ink);border-radius:var(--radius);padding:24px;max-width:560px;width:100%;max-height:90dvh;overflow:auto;box-shadow:0 30px 80px #000c}.modal.wide{max-width:820px}.modal .muted{color:#6a5a3a}.modal .ghost{background:#0000000d;border-color:#00000030;color:var(--ink)}.modal .close{position:absolute;top:8px;right:10px;background:none;border:0;font-size:1.8em;line-height:1;color:#6a5a3a;min-width:44px;min-height:44px}.modal label.row{display:flex;align-items:center;gap:.6em;margin:.8em 0 .2em;font-weight:600;flex-wrap:wrap}.modal label.check{display:flex;gap:.6em;align-items:flex-start;margin:.7em 0}.modal select,.modal input[type=text],.modal input:not([type]){font:inherit;padding:.4em .6em;border-radius:8px;border:1px solid #8a7a5a;background:#fff8e6;color:var(--ink);min-height:40px}.modal input[type=checkbox]{width:20px;height:20px;margin-top:2px}.sim{background:#0000000d;padding:.6em .8em;border-radius:8px;font-size:.85em;color:#5a4a2a}.book-open{display:grid;grid-template-columns:180px 1fr;gap:24px}.mini-cover{width:180px;aspect-ratio:2/3}@media (max-width: 600px){.book-open{grid-template-columns:1fr}.mini-cover{width:120px;margin:0 auto}}.skus{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:1em 0}.sku{background:#fff8e6;border:1px solid #b9a77d;border-radius:10px;padding:.8em;display:grid;gap:.2em;color:var(--ink);min-height:64px}.balance{font-size:1.1em}.page-modal{background:linear-gradient(#f6eed8,#e9dab6);font-family:var(--serif);font-size:1.2em}.opening p{opacity:0;animation:inkin .9s forwards;animation-delay:calc(var(--i) * .7s);line-height:1.5}.opening .primary{font-family:var(--sans);margin-top:.8em}@keyframes inkin{0%{opacity:0;filter:blur(4px);transform:translateY(6px)}to{opacity:1;filter:none;transform:none}}.notebook h3{margin-top:1.2em;border-bottom:1px solid #b9a77d}.clues{list-style:none;padding:0;margin:0}.clues li{padding:.5em 0;border-bottom:1px dashed #c8b78f}.clues p{margin:.2em 0 0;font-family:var(--serif);font-size:1.05em}.rungs{list-style:none;padding:0}.rungs li{padding:.6em .8em;border-radius:8px;margin:.4em 0;background:#0000000d}.rungs li span{font-weight:700;font-size:.8em;text-transform:uppercase;letter-spacing:.1em;color:#6a5a3a}.rungs li.open p{margin:.3em 0 0;font-family:var(--serif);font-size:1.1em}.rungs li.closed{opacity:.55}.ending-choice .btns{justify-content:center}.toast{position:fixed;left:50%;top:70px;transform:translate(-50%);background:#1d150dee;border:1px solid var(--brass);color:var(--text);padding:.7em 1.2em;border-radius:12px;z-index:60;box-shadow:0 10px 30px #000a;animation:drop .3s;max-width:min(92vw,520px);text-align:center}.toast.out{opacity:0;transition:opacity .4s}.toast.chapter{font-family:var(--serif);font-size:1.15em;top:90px}.toast.achievement{border-color:var(--brass-2);background:#2a1d0aee}.toast.solve .solved{color:var(--teal);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.8em;margin-right:.4em}.toast .ach{color:var(--brass-2);font-weight:700;margin-right:.3em}.toast .ink{color:var(--brass-2)}.toast .who{color:var(--teal)}@keyframes drop{0%{transform:translate(-50%,-12px);opacity:0}}@keyframes fadein{0%{opacity:0}}.game{height:100%;display:grid;grid-template-rows:auto 1fr auto}.hud{display:flex;align-items:center;gap:8px;padding:6px max(10px,env(safe-area-inset-left));background:linear-gradient(#17110cf0,#17110cc0);border-bottom:1px solid #ffffff14;z-index:5}.where{flex:1;display:grid;line-height:1.15;min-width:0}.where .chapter{font-size:.72em;color:var(--brass);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.where .room{font-family:var(--serif);font-size:1.2em;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hud-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.hint-btn{background:linear-gradient(#3fe0c5,#1f9c88);color:#062a24;border:0;border-radius:999px;padding:.5em 1.1em;font-weight:700;min-height:40px}.hint-btn.small{min-height:34px;padding:.3em .9em}.ribbon-btn{background:linear-gradient(#a8322a,#6a1a14);color:#fbe7d0;border:0;border-radius:6px 6px 14px 14px;padding:.5em 1em;font-family:var(--serif);font-weight:700;min-height:40px}.ribbon-btn.on{background:linear-gradient(#e9c46a,#b8892f);color:#2a1d0a}.coop-pill{color:var(--teal);font-size:.85em;border:1px solid #3fe0c566;border-radius:999px;padding:.3em .7em}.stage{position:relative;min-height:0;display:grid;grid-template-rows:1fr auto}.scene{position:relative;min-height:0;display:grid;place-items:center;background:#000;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}.scene-svg{width:100%;height:100%;max-height:100%;display:block;transform-origin:0 0}.scene-svg.cam-anim{transition:transform .22s ease-out}.scene.zoomed{cursor:grab}.zoom-ctl{position:absolute;left:max(8px,env(safe-area-inset-left));top:8px;display:flex;flex-direction:column;gap:6px;z-index:5;touch-action:manipulation}.zoom-ctl button{width:44px;height:44px;border-radius:22px;border:1px solid #e9d9a899;background:#120d09cc;color:#f1e6cb;font-size:1.3em;line-height:1;cursor:pointer;padding:0}.zoom-ctl button:disabled{opacity:.4;cursor:default}.zoom-ctl button:focus-visible{outline:3px solid #ffe9a8;outline-offset:2px}.reduce-motion .scene-svg.cam-anim{transition:none}.hotspot{fill:transparent;cursor:pointer;transition:fill .2s,stroke .2s}.hotspot:hover,.hotspot:focus-visible{fill:#ffe9a81a;stroke:#ffe9a8aa;stroke-width:3;outline:none}html.show-hotspots .hotspot{stroke:#ffe9a8cc;stroke-width:3;stroke-dasharray:10 8;fill:#ffe9a810}.hotspot.glint{animation:glint 1.6s ease-in-out 3}@keyframes glint{50%{fill:#ffe9a830;stroke:#fff3c4;stroke-width:5}}.exit rect{fill:#0005;stroke:#e9d9a855;stroke-width:2;cursor:pointer}.exit:hover rect,.exit:focus-visible rect{fill:#e9d9a822;stroke:var(--brass-2)}.exit text{fill:#f1e6cb;font-size:26px;font-family:var(--serif);pointer-events:none}.exit{outline:none}.partner circle{fill:#3fe0c5}.partner text{fill:#062a24;font-weight:700;font-size:18px}.ping{fill:none;stroke-width:6;animation:ping 2.2s ease-out forwards}.ping.mine{stroke:var(--brass-2)}.ping.theirs{stroke:var(--teal)}@keyframes ping{0%{r:10;opacity:1}to{r:90;opacity:0}}.then .scene-svg{filter:sepia(.35) saturate(1.1)}.then-overlay{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 120px 40px #3a2410;border:10px solid #9a2a2a55}.narration{background:linear-gradient(#e9dcb9,#dccb9f);color:var(--ink);font-family:var(--serif);font-size:1.15em;padding:.6em max(16px,env(safe-area-inset-left));min-height:3.4em;border-top:3px solid #b9a77d}.narration p{margin:0;max-width:1100px;margin-inline:auto}.narration.pulse{animation:npulse .5s}@keyframes npulse{0%{background:#fff6dc}}.inventory{display:flex;gap:8px;align-items:center;padding:8px max(10px,env(safe-area-inset-left)) max(8px,env(safe-area-inset-bottom));background:#120d09;overflow-x:auto;min-height:64px}.item{display:flex;align-items:center;gap:6px;background:#2a1d12;border:1px solid #5a4028;border-radius:10px;padding:4px 10px 4px 4px;min-height:48px;white-space:nowrap}.item.sel{border-color:var(--brass-2);background:#4a3416;box-shadow:0 0 0 2px var(--brass-2) inset}.using{color:var(--muted);font-size:.9em;white-space:nowrap}.rain{animation:rain .6s linear infinite}@keyframes rain{to{transform:translate(-10px,30px)}}.spin-slow{animation:spin 10s linear infinite}.spin-slower{animation:spin 30s linear infinite reverse}@keyframes spin{to{transform:rotate(360deg)}}.beam-rotate{animation:beam 30s linear infinite}@keyframes beam{to{transform:rotate(360deg)}}.blink{animation:blink 1.4s steps(2) infinite}@keyframes blink{50%{opacity:.1}}.sail-once{animation:sail 3s ease-in-out 1}@keyframes sail{50%{transform:translate(26px) rotate(-3deg)}}.puzzle-layer{position:absolute;inset:0;background:#000b;z-index:20;display:grid;place-items:center;padding:10px}.puzzle-panel{background:linear-gradient(#f3e8cc,#e3d0a3);color:var(--ink);border-radius:var(--radius);width:min(1000px,100%);max-height:100%;overflow:auto;box-shadow:0 30px 80px #000}.puzzle-panel header{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid #b9a77d;position:sticky;top:0;background:#efe2c0;z-index:1}.puzzle-panel header h2{flex:1;margin:0}.puzzle-panel .variant{font-size:.75em;text-transform:uppercase;letter-spacing:.1em;color:#6a5a3a}.puzzle-panel .close{background:none;border:0;font-size:1.8em;color:#6a5a3a;min-width:44px;min-height:44px}.puzzle-body{padding:14px 18px 20px}.prompt{font-family:var(--serif);font-size:1.15em;font-style:italic}.feedback{min-height:1.5em;color:#8a2a1a;font-weight:600}.puzzle-panel .muted{color:#6a5a3a}.logbook{display:grid;grid-template-columns:1.4fr 1fr;gap:20px}@media (max-width: 760px){.logbook{grid-template-columns:1fr}}.entries{list-style:none;padding:0;margin:0}.entry{width:100%;text-align:left;display:grid;grid-template-columns:70px 1fr auto;gap:10px;align-items:baseline;background:#fbf4e0;border:1px solid #d4c39b;border-radius:6px;padding:8px 10px;margin:4px 0;color:var(--ink);min-height:44px}.entry .date{font-weight:700;font-size:.85em;color:#6a5a3a}.entry .hand{font-family:var(--hand);font-size:1.45em;line-height:1.1}.entry.marked{background:#f7dcc8;border-color:#b8322a}.entry .tag{font-size:.7em;text-transform:uppercase;color:#b8322a;font-weight:700}.entry.wrongmark{box-shadow:0 0 0 3px #e0524288}.ref{background:#fff8e6;border-left:4px solid var(--brass);padding:6px 10px;margin-bottom:8px}.ref p{margin:.2em 0;font-family:var(--serif)}.padlock{text-align:center}.dials{display:flex;justify-content:center;align-items:center;gap:10px;margin:1em 0}.dial{display:grid;gap:4px;justify-items:center}.dial button{width:56px;height:44px;border-radius:8px;border:1px solid #8a6a2a;background:linear-gradient(#e9c46a,#b8892f);color:#2a1d0a}.dial output{width:56px;height:64px;display:grid;place-items:center;font-family:var(--serif);font-size:2.2em;font-weight:700;background:#2a1d10;color:var(--brass-2);border-radius:8px}.dlabel{font-size:.7em;letter-spacing:.1em;color:#6a5a3a;min-height:1.2em}.sep{font-size:2em;color:#6a5a3a}.gear-svg{width:100%;max-height:300px;background:#1e2228;border-radius:10px}.peg{cursor:pointer;outline:none}.peg.active circle:first-child{filter:drop-shadow(0 0 10px #ffd36b)}.tray{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.tray button{display:grid;justify-items:center;gap:2px;background:#fff8e6;border:1px solid #b9a77d;border-radius:10px;padding:6px 10px;min-width:64px;min-height:64px;color:var(--ink)}.preview{text-align:center;font-weight:600;color:#1f6c5e}.ringwrap{text-align:center}.ring-svg{width:min(400px,100%)}.slot{cursor:pointer;outline:none}.rhythm{font-family:var(--serif);font-size:1.1em;letter-spacing:.05em}.signals{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 760px){.signals{grid-template-columns:1fr}}.scope-svg{width:100%;max-width:420px;display:block;margin:0 auto}.engraving{text-align:center;font-size:.85em;color:#6a5a3a}.codebook ol{padding-left:1.2em;margin:0}.codebook li{display:flex;align-items:center;gap:6px;margin:4px 0;font-size:.9em}.codebook details{margin-top:.6em;font-size:.85em}.codebook details li{display:flex;gap:6px}.answers{grid-column:1 / -1}.answers label{display:flex;gap:10px;align-items:center;margin:6px 0;font-weight:600;flex-wrap:wrap}.answers select,.margin select{font:inherit;padding:.4em;border-radius:8px;border:1px solid #8a7a5a;background:#fff8e6;color:var(--ink);min-height:40px;max-width:100%}.margin{display:grid;grid-template-columns:1fr 1.2fr;gap:20px;align-items:start}@media (max-width: 760px){.margin{grid-template-columns:1fr}}.margin .printed{font-family:var(--serif);font-size:1.25em;padding:16px;background:#fbf4e0;border:1px solid #d4c39b}.margin .note{border-left:3px solid #9a2a2a;padding-left:16px}.sentence{font-family:var(--hand);font-size:1.6em;line-height:2;color:#3a2a6a}.sentence select{font-family:var(--hand);font-size:.9em;color:#3a2a6a}.ending{height:100%;overflow:auto;display:grid;place-items:center;padding:16px;background:linear-gradient(#0b080644,#0b080677),var(--end-art, none) center / cover no-repeat,var(--night)}.ending .page{background:linear-gradient(#f6eed8,#e9dab6);color:var(--ink);font-family:var(--serif);font-size:1.2em;max-width:680px;padding:32px 36px;border-radius:6px;box-shadow:0 30px 80px #000}.ending .page p{opacity:0;animation:inkin 1s forwards;animation-delay:calc(var(--i, 0) * .8s);line-height:1.55}.ending .eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:.7em;color:#6a5a3a;animation:none!important;opacity:1!important}.ending .fin,.ending .ink-earned,.ending .muted{animation-delay:3.5s!important}.ending .fin{text-align:center;font-style:italic}.ending .btns{font-family:var(--sans);font-size:.85em}.ending .muted{color:#6a5a3a}.veil{position:fixed;inset:0;z-index:100;pointer-events:none}.veil-ink{background:#0b0806;clip-path:circle(0% at 50% 50%);animation:inkspread .42s ease-in forwards}.veil-ink.out{animation:inkrecede .5s ease-out forwards}@keyframes inkspread{to{clip-path:circle(75% at 50% 50%)}}@keyframes inkrecede{0%{clip-path:circle(75% at 50% 50%)}to{clip-path:circle(0% at 50% 50%)}}.veil-page{background:linear-gradient(90deg,#e9dab6,#f6eed8 60%,#c8b78f);transform-origin:left center;transform:perspective(1400px) rotateY(-90deg);animation:pagein .42s ease-in forwards}.veil-page.out{animation:pageout .5s ease-out forwards;transform-origin:right center}@keyframes pagein{to{transform:perspective(1400px) rotateY(0)}}@keyframes pageout{0%{transform:perspective(1400px) rotateY(0)}to{transform:perspective(1400px) rotateY(90deg)}}.veil-book{background:radial-gradient(circle at 50% 50%,#f6eed8,#c8a86a 60%,#3a2410);transform:scale(.2);opacity:0;border-radius:20px;animation:bookin .65s cubic-bezier(.6,0,.4,1) forwards}.veil-book.out{animation:bookout .5s ease-out forwards}@keyframes bookin{to{transform:scale(1.05);opacity:1;border-radius:0}}@keyframes bookout{0%{opacity:1}to{opacity:0;transform:scale(1.3)}}html.reduce-motion *,html.reduce-motion *:before,html.reduce-motion *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html.reduce-motion .opening p,html.reduce-motion .ending .page p{opacity:1}@media (max-width: 700px){.hud-actions .ghost:not(.icon){padding:.45em .7em}.where .chapter{display:none}.ink-pill{padding:.35em .7em}.skus{grid-template-columns:1fr}}@media (orientation: portrait) and (max-width: 700px){.hud{flex-wrap:wrap}.hud-actions{width:100%;justify-content:space-between}}.puzzle-layer[hidden]{display:none}.game{position:relative}.modal .tagline{color:#6a4a2a}.toast-stack{position:fixed;left:50%;bottom:150px;transform:translate(-50%);display:flex;flex-direction:column-reverse;align-items:center;gap:8px;z-index:60;pointer-events:none;width:min(92vw,520px)}.toast-stack .toast{position:static;transform:none;pointer-events:none;animation:drop2 .3s}.toast-stack .toast.interactive{pointer-events:auto}@keyframes drop2{0%{transform:translateY(-10px);opacity:0}}@media (orientation: portrait) and (max-width: 600px){.scene{display:flex;align-items:center;background:radial-gradient(ellipse at 50% 50%,#1a120c,#070504)}.scene-svg{height:78%;width:auto;flex:none;aspect-ratio:16 / 9;max-width:none}.scene:after{content:"drag to look around · pinch to zoom";position:absolute;right:10px;bottom:14px;font-size:.72em;color:#f1e6cbaa;pointer-events:none}.scene.zoomed:after{display:none}.hud{flex-wrap:nowrap;gap:4px;padding:4px 6px}.hud-actions{width:auto;flex-wrap:nowrap;gap:4px}.hud .ghost,.hud .hint-btn,.hud .ink-pill,.hud .ribbon-btn{padding:.35em .6em;font-size:.85em;min-height:40px}.where .room{font-size:1em}.coop-pill{display:none}.narration{font-size:1.02em}}@media (max-width: 520px){.lbl{display:none}}.item .item-img{width:40px;height:40px;object-fit:contain;background:none;filter:drop-shadow(0 2px 2px #0008)}.item svg{background:#f1e6cb;border-radius:8px}.ending .page{background:linear-gradient(#f6eed8f2,#e9dab6f2);backdrop-filter:blur(2px)}@media (min-width: 1000px){.ending{place-items:center start;padding-left:6vw}.ending .page{max-width:560px}}.moth-flutter{animation:mothdrift 7s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@keyframes mothdrift{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(-40px,-30px) rotate(-10deg)}50%{transform:translate(10px,-60px) rotate(8deg)}75%{transform:translate(35px,-25px) rotate(-6deg)}}.library{padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(40px,env(safe-area-inset-bottom))}.hud{padding-top:max(6px,env(safe-area-inset-top));padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right))}.title-screen .title-copy{padding-top:env(safe-area-inset-top)}.proto-note{bottom:max(12px,env(safe-area-inset-bottom))}.ending,.modal-back{padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom))}.toast-stack{bottom:calc(150px + env(safe-area-inset-bottom))}.narration{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.lib-head h1{font-size:1.6em;white-space:nowrap}.ink-pill,.ghost,.primary,.hint-btn{white-space:nowrap}.modal:focus{outline:none}@media (max-width: 430px){.lib-head{gap:4px}.lib-head .ghost{padding:.45em .8em}.lib-head h1{font-size:1.35em}}.hud .ghost.icon{min-width:40px;min-height:40px;padding:.35em .5em;display:grid;place-items:center}.stage{position:relative}.dialogue{position:absolute;left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));display:flex;gap:12px;align-items:center;background:linear-gradient(#f6eed8f5,#e9dab6f5);color:var(--ink);border:2px solid #b9a77d;border-radius:14px;padding:10px 14px;box-shadow:0 12px 30px #000a;animation:drop2 .3s;z-index:15;cursor:pointer;max-width:760px;margin-inline:auto}.dialogue .portrait{width:84px;height:84px;object-fit:contain;flex:none;border-radius:50%;background:#1d150d;border:3px solid var(--brass);padding:2px}.dialogue .who{margin:0;font-family:var(--serif);font-weight:700;font-size:.85em;text-transform:uppercase;letter-spacing:.12em;color:#6a4a2a}.dialogue .said{margin:.15em 0 0;font-family:var(--serif);font-size:1.15em;line-height:1.35}.assign-grid{display:grid;grid-template-columns:minmax(220px,1fr) 1.1fr;gap:16px;align-items:start}@media (max-width: 760px){.assign-grid{grid-template-columns:1fr}}.plan{background:#1c1712;border-radius:12px;padding:8px}.table-svg{width:100%;max-width:420px;display:block;margin:0 auto}.table-svg .seat{cursor:pointer;outline:none}.table-svg .seat:hover circle,.table-svg .seat:focus-visible circle{stroke:#ffd36b;stroke-width:4}.arow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 8px;border-radius:8px}.arow span{font-weight:600}.arow select{font:inherit;padding:.4em;border-radius:8px;border:1px solid #8a7a5a;background:#fff8e6;color:var(--ink);min-height:40px;max-width:58%}.arow.wrongrow{background:#f7dcc8}.rule{font-family:var(--serif);font-size:1.05em;color:#3a2a1a;background:#0000000d;padding:.5em .8em;border-radius:8px}h1.room{margin:0;font-size:1.2em}.ribbon-btn .short{display:none}@media (max-width: 520px){.ribbon-btn .full{display:none}.ribbon-btn .short{display:inline}.where .room{min-width:0}}.steer .strip{width:100%;max-width:560px;display:block;margin:.4em auto;background:#0e1418;border-radius:10px;padding:4px}.zones{display:grid;gap:6px;margin:.6em 0}.zone{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#0000000d;border-radius:8px;padding:6px 10px}.zname{font-weight:600;min-width:9em}.pips{color:#1f9c88;letter-spacing:2px;min-width:4em}.pips.none{color:#8a7a5a}.seg{display:inline-flex;gap:4px;margin-left:auto}.pbtn{border:1px solid #8a7a5a;border-radius:8px;padding:.35em .7em;min-height:40px;background:#fff8e6;color:var(--ink)}.pbtn.white.on{background:#fff;box-shadow:0 0 0 2px #1f9c88 inset;font-weight:700}.pbtn.red.on{background:#c0503a;color:#fff;font-weight:700}.pbtn.off.on{background:#2a3a44;color:#e9f4f1;font-weight:700}.sim-note{font-family:var(--serif);font-size:1.05em;color:#1f6c5e;min-height:1.4em}.toast.partner{border-color:var(--teal)}.partner-note{background:#1f9c8822;border-left:3px solid #1f9c88;padding:.5em .8em;border-radius:6px}@media (orientation: landscape) and (max-height: 520px){.game{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto minmax(0,1fr)}.hud{grid-column:1 / -1;gap:4px;padding-top:2px;padding-bottom:2px}.hud .ghost,.hud .hint-btn,.hud .ink-pill,.hud .ribbon-btn{min-height:38px;padding:.25em .7em;font-size:.88em}.where .chapter{display:none}.where .room{font-size:1em}.stage{grid-column:1;grid-row:2;display:block}.scene{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,#1a120c,#070504)}.scene-svg{width:100%;height:100%;max-height:none;aspect-ratio:auto;flex:none}.scene:after{display:none}.narration{position:absolute;left:0;right:0;bottom:0;z-index:6;min-height:0;padding:.25em max(12px,env(safe-area-inset-left));font-size:.9em;line-height:1.25;max-height:4.6em;overflow:hidden;border-top-width:2px;background:linear-gradient(#e9dcb9ee,#dccb9fee);cursor:pointer}.narration.collapsed{max-height:1.6em}.narration.collapsed p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.zoom-ctl{top:6px;flex-direction:row}.zoom-ctl button{width:40px;height:40px}.inventory{grid-column:2;grid-row:2;flex-direction:column;align-items:stretch;width:84px;min-height:0;overflow-x:hidden;overflow-y:auto;padding:6px max(6px,env(safe-area-inset-right)) 6px 6px;gap:6px}.inventory .muted{display:none}.inventory .item{flex-direction:column;gap:2px;padding:4px 2px;min-height:56px;white-space:normal;text-align:center;font-size:.66em;line-height:1.1}.inventory .using{position:fixed;left:50%;bottom:40px;transform:translate(-50%);z-index:20;white-space:normal;background:#120d09f2;border:1px solid #5a4028;border-radius:12px;padding:.4em .8em;max-width:60vw;text-align:center}.dialogue{padding:6px 10px;max-width:620px}.dialogue .portrait{width:52px;height:52px}.dialogue .said{font-size:1em}.modal-back{padding:8px}.modal{padding:14px 18px;max-height:94dvh}}body:has(.modal-back) .dialogue{display:none}.fx-canvas{position:absolute;pointer-events:none;object-fit:contain;transform-origin:0 0;z-index:1}.fx-canvas.cam-anim{transition:transform .22s ease-out}.fx-moth{position:absolute;left:-60px;width:52px;height:52px;padding:6px;border:0;background:none;z-index:4;cursor:pointer;animation:moth-fly 14s linear forwards,moth-bob 1.9s ease-in-out infinite alternate;touch-action:manipulation}.fx-moth svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 6px #ffe9a8aa)}.fx-moth .wing{fill:#f1e6cb;opacity:.92;transform-box:fill-box;animation:moth-flap .16s ease-in-out infinite alternate}.fx-moth .wing.l{transform-origin:100% 50%}.fx-moth .wing.r{transform-origin:0% 50%}.fx-moth .body{fill:#8a6a3a}.fx-moth:focus-visible{outline:3px solid #ffe9a8;border-radius:50%}@keyframes moth-fly{0%{left:-60px}to{left:calc(100% + 20px)}}@keyframes moth-bob{0%{margin-top:-26px}to{margin-top:26px}}@keyframes moth-flap{0%{transform:scaleX(1)}to{transform:scaleX(.35)}}.fx-fly{position:fixed;width:44px;height:44px;z-index:70;pointer-events:none;filter:drop-shadow(0 0 10px #ffe9a8cc)}.fx-fly svg,.fx-fly img{width:100%;height:100%;object-fit:contain;border-radius:8px}.reduce-motion .fx-moth{display:none}@media (prefers-reduced-motion: reduce){.fx-moth{display:none}}.modal.closeup{background:radial-gradient(ellipse at 50% 40%,#2a1d12,#0e0906);color:#f1e6cb;max-width:520px;padding:18px 18px 16px;text-align:center;border:1px solid #5a4028;animation:closeup-in .28s ease-out;cursor:pointer}.modal.closeup .close{color:#f1e6cb}.closeup-fig{margin:0;display:grid;gap:12px;justify-items:center}.closeup-fig img{width:min(100%,440px);max-height:56dvh;object-fit:contain;filter:drop-shadow(0 8px 22px #000c)}.closeup-fig figcaption{display:grid;gap:4px;font-family:var(--serif)}.closeup-fig figcaption strong{font-size:1.15em;letter-spacing:.04em}.closeup-fig figcaption span{font-style:italic;color:#d8c9a4}.closeup-fig.noimg img{display:none}@keyframes closeup-in{0%{transform:scale(.94);opacity:0}}.reduce-motion .modal.closeup{animation:none}.modal.closeup.wide{max-width:min(860px,96vw);padding:12px 12px 14px}.modal.closeup.wide .closeup-fig img{width:100%;max-height:62dvh;border-radius:10px;filter:none;box-shadow:0 10px 30px #000c}body:has(.modal.closeup) .toast-stack{opacity:0;transition:opacity .15s}.seen-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px}.seen{background:radial-gradient(ellipse at 50% 40%,#2a1d12,#0e0906);border:1px solid #5a4028;border-radius:10px;padding:4px;min-height:76px;cursor:pointer}.seen:focus-visible{outline:3px solid #ffe9a8;outline-offset:2px}.seen img{width:100%;aspect-ratio:1;object-fit:contain;display:block}.scene:before{content:"";position:absolute;inset:-6%;background:var(--plate-bg, none) center / cover no-repeat;filter:blur(28px) brightness(.36) saturate(1.15);pointer-events:none;z-index:0}.scene-svg{position:relative;z-index:1}@media (prefers-reduced-motion: reduce){.scene:before{filter:blur(28px) brightness(.36) saturate(1.15)}}:root{--fs: 18px}html.large-text{--fs: 22px}.small{font-size:.92em}.shelf-label{font-size:.8em}.egg-count{font-size:.95em}.where .chapter{font-size:.8em}.where .room{font-size:1.3em}.narration{font-size:1.3em;line-height:1.35;padding-block:.7em}.narration p{line-height:1.35}.puzzle-panel .variant,.dlabel,.entry .tag,.rungs li span{font-size:.85em}.entry .date,.engraving,.codebook li{font-size:.95em}.codebook details{font-size:.95em}.clues p{font-size:1.2em;line-height:1.3}.rungs li.open p{font-size:1.25em;line-height:1.3}.prompt,.dialogue .said{font-size:1.3em}.dialogue .who{font-size:.95em}.rule{font-size:1.2em}.item{padding-right:12px;font-size:1.02em}.using{font-size:1em}.modal{padding:28px;line-height:1.4}.toast{font-size:1.05em;line-height:1.3}.sim-note{font-size:1.2em}.exit text{font-size:30px}.hud .ghost,.hud .hint-btn,.hud .ink-pill,.hud .ribbon-btn{font-size:1em}.tray button{min-width:72px;min-height:72px}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}@keyframes popin{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.1);opacity:1}to{transform:none}}@keyframes modalin{0%{opacity:0;transform:translateY(16px) scale(.97)}}@keyframes shimmer{to{background-position:200% 0}}@keyframes breathe{50%{transform:scale(1.035);box-shadow:0 2px #6b4e18,0 8px 28px #e9c46a66}}@keyframes dust{0%{opacity:0;transform:translateY(8px)}20%{opacity:.5}to{opacity:0;transform:translateY(-30px)}}@keyframes bump{40%{transform:translateY(-5px) scale(1.12)}}@keyframes ringpulse{0%{box-shadow:0 0 #3fe0c577}to{box-shadow:0 0 0 14px #3fe0c500}}@keyframes tick{0%{transform:translateY(-14px);opacity:0}to{transform:none;opacity:1}}button{transition:transform .12s ease,filter .15s,box-shadow .2s,background-color .2s,border-color .2s}button:not(:disabled):active{transform:scale(.94)}.primary:not(:disabled):hover,.ghost:not(:disabled):hover{transform:translateY(-2px)}.ghost:hover{background:#ffffff1c;border-color:#fff4}.primary.big{animation:breathe 3.2s ease-in-out infinite}.primary.big:hover{animation-play-state:paused}.title-copy h1{background:linear-gradient(100deg,#f6e7bf 35%,#fff8e0,#f6e7bf 65%) 0 0 / 200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 4px 24px #f5b45066);animation:shimmer 7s linear infinite}.title-copy>*{animation:rise .7s both}.title-copy>*:nth-child(2){animation-delay:.12s}.title-copy>*:nth-child(3){animation-delay:.24s}.title-copy>*:nth-child(4){animation-delay:.36s}.title-copy>*:nth-child(5){animation-delay:.48s}.book-card{animation:rise .6s both}.book-card:nth-child(2){animation-delay:.1s}.book-card:nth-child(3){animation-delay:.2s}.book-card:nth-child(4){animation-delay:.3s}.book-card:nth-child(5){animation-delay:.4s}.book-card .cover:active{transform:translateY(-3px) scale(.98)}.modal{animation:modalin .28s cubic-bezier(.2,.9,.3,1.2)}.toast{animation:drop .35s cubic-bezier(.2,.9,.3,1.3)}.toast.achievement,.toast.solve{background-image:linear-gradient(110deg,transparent 30%,#ffe9a833 50%,transparent 70%);background-size:200% 100%;animation:drop .35s cubic-bezier(.2,.9,.3,1.3),shimmer 1.6s .3s 1}.inventory .item{animation:popin .4s both;transition:transform .15s,border-color .2s,background .2s}.inventory .item:hover{transform:translateY(-3px)}.item.sel{animation:ringpulse 1.6s ease-out infinite}.narration:not(.pulse) p{animation:inkin .45s both}.hotspot{transition:fill .2s,stroke .2s,stroke-width .2s}.hotspot:hover{stroke-width:4}.exit rect{transition:fill .2s,stroke .2s}.exit:hover rect{stroke-width:3}.exit:hover text{fill:#fff3c4}.zoom-ctl button:not(:disabled):hover{background:#2a1d12;border-color:var(--brass-2)}.hint-btn{transition:transform .12s,box-shadow .2s}.hint-btn:hover{box-shadow:0 0 18px #3fe0c566}.ink-pill:hover{box-shadow:0 0 14px #e9c46a55}.ink-pill.bump{animation:bump .4s}.dial button:not(:disabled):active{transform:scale(.9);filter:brightness(1.15)}.dial output{transition:color .2s,box-shadow .2s;animation:tick .22s;box-shadow:inset 0 2px 8px #000a}.tray button{transition:transform .15s,box-shadow .2s,border-color .2s}.tray button:hover{transform:translateY(-3px);box-shadow:0 6px 14px #0003;border-color:var(--brass)}.entry{transition:background .25s,box-shadow .25s,transform .15s}.entry:hover{transform:translate(3px)}.seen{transition:transform .15s,border-color .2s,box-shadow .2s;animation:popin .35s both}.seen:hover{transform:translateY(-3px) scale(1.04);border-color:var(--brass-2);box-shadow:0 0 14px #e9c46a44}.puzzle-layer{animation:fadein .2s}.puzzle-panel{animation:modalin .3s cubic-bezier(.2,.9,.3,1.2)}.preview,.sim-note{transition:color .3s}.ending .page{animation:rise .8s both}.library .shelf-floor,.shelf-floor{background:linear-gradient(#5a3a22,#2a1a10);box-shadow:0 10px 30px #000,inset 0 2px #8a5a34}@media (max-width: 520px){.narration{font-size:1.2em}.modal{padding:22px 18px}.hud .ghost,.hud .hint-btn,.hud .ink-pill,.hud .ribbon-btn{min-height:44px}.inventory .item{min-height:56px}}@media (orientation: landscape) and (max-height: 520px){.narration{font-size:.95em}.item{font-size:.9em}.exit text{font-size:26px}.modal{padding:18px}}@media (prefers-reduced-motion: reduce){.primary.big,.title-copy h1,.title-copy>*,.book-card,.modal,.toast,.inventory .item,.narration p,.item.sel,.seen,.puzzle-panel,.ending .page,.dial output{animation:none!important}button:not(:disabled):active,.primary:hover,.ghost:hover,.tray button:hover,.seen:hover,.entry:hover{transform:none}}html.reduce-motion .primary.big,html.reduce-motion .title-copy h1,html.reduce-motion .title-copy>*,html.reduce-motion .book-card,html.reduce-motion .modal,html.reduce-motion .toast,html.reduce-motion .inventory .item,html.reduce-motion .narration p,html.reduce-motion .item.sel,html.reduce-motion .seen,html.reduce-motion .puzzle-panel,html.reduce-motion .ending .page,html.reduce-motion .dial output{animation:none!important}.lib-shelf{max-width:1000px;margin:0 auto 28px}.lib-shelf>h2{font-size:1.05em;text-transform:uppercase;letter-spacing:.16em;color:var(--brass);margin:0 0 12px;border-bottom:1px solid #ffffff1a;padding-bottom:6px}.picks-note{margin:-6px 0 12px;color:var(--muted)}.resume-list{display:grid;gap:14px}.resume-card{display:grid;grid-template-columns:84px 1fr;gap:16px;align-items:center;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:12px;padding:12px}.resume-card .cover{border:0;padding:0;background:none;width:84px;aspect-ratio:2/3;border-radius:6px;box-shadow:0 8px 18px #000a}.resume-card h3{margin:0 0 .15em;font-size:1.2em}.where-line{margin:0 0 .6em;color:#e6d5ae;font-family:var(--serif);font-size:1.05em}.resume-btn{min-height:44px}.new-tag{margin:.2em 0 0;color:var(--brass-2);font-weight:600;font-size:.9em}.pick-note{font-family:var(--serif);font-style:italic;color:#e6d5ae;margin:.3em 0 0}.pick-note span{font-style:normal;color:var(--muted);font-size:.8em}.contents{margin:1em 0}.contents h3{margin:0 0 .3em;border-bottom:1px solid #b9a77d}.contents-list{list-style:none;margin:0;padding:0}.ch{padding:.6em 0;border-bottom:1px dashed #c8b78f}.ch-head{margin:0;display:flex;flex-wrap:wrap;gap:.4em;align-items:baseline}.ch-mark{display:inline-block;min-width:1.4em;text-align:center;color:#6a5a3a}.ch-status{color:#6a5a3a;font-size:.85em}.ch-locked,.ch-upcoming{opacity:.75}.ch .numeral{font-family:var(--serif)}.ch[aria-current=step]{background:#fff8e655;margin:0 -8px;padding-left:8px;padding-right:8px;border-radius:8px}.bookmark-line{margin:.25em 0 0;font-family:var(--serif);font-size:1.05em}.bookmark-line.kept{color:#4a3a1a}.bookmark-box{border-bottom:1px solid #b9a77d;padding-bottom:.6em;margin-top:1em}.bookmark-box h3{margin:0 0 .3em;border:0}.modal .ghost.danger{color:#8a1c1c;border-color:#8a1c1c}.lobby-moths{position:fixed;inset:0;pointer-events:none;z-index:3;overflow:hidden}.moth-sprite{position:absolute}.lamp-glow{position:absolute;left:50%;top:14%;width:240px;height:240px;margin:-120px 0 0 -120px;border-radius:50%;background:radial-gradient(#f5b4508a,#f5b45022 45%,transparent 68%);animation:lampbreath 4.5s ease-in-out infinite}@keyframes lampbreath{50%{opacity:.55;transform:scale(1.12)}}.lm{position:absolute;left:0;top:0;will-change:transform;backface-visibility:hidden}.lm svg{position:absolute;inset:0;width:100%;height:100%;display:block;overflow:visible}.lm .moth-side{opacity:0;transform-origin:50% 73%}@media (prefers-reduced-motion: reduce){.lobby-moths{display:none}}html.reduce-motion .lobby-moths{display:none}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.loupe-lens{position:absolute;display:none;border-radius:50%;pointer-events:none;z-index:4;border:3px solid #e9d9a8;box-shadow:0 0 0 2px #120d09aa,inset 0 0 24px #ffe9a855,0 6px 22px #000a}.loupe-lens:after{content:"";position:absolute;right:-18px;bottom:-22px;width:8px;height:30px;border-radius:4px;background:#c8a85a;transform:rotate(-38deg);box-shadow:0 0 0 2px #120d09aa}.scene.loupe-on{cursor:none}.zoom-ctl button[aria-pressed=true]{background:#e9d9a8;color:#1a120c}.zoom-ctl button svg{display:block;margin:auto}.zoom-ctl button.pulse{animation:loupepulse 1.4s ease-in-out 3}@keyframes loupepulse{50%{box-shadow:0 0 0 6px #ffe9a8aa}}.reduce-motion .zoom-ctl button.pulse{animation:none;box-shadow:0 0 0 4px #ffe9a8aa}.toast.loupe-found{max-width:min(92vw,460px)}.fork h2{margin-top:0}.fork-prompt{font-family:var(--serif)}.fork-pages{display:grid;grid-template-columns:1fr;gap:12px;margin:1em 0 .6em}@media (min-width: 640px){.fork-turn .fork-pages{grid-template-columns:1fr 1fr}}.fork-page{display:grid;gap:.35em;text-align:left;padding:14px 16px;min-height:96px;background:#fff8e6;color:var(--ink);border:1px solid #b9a77d;border-radius:6px;box-shadow:2px 3px #0002;font-family:var(--serif);font-size:1em;cursor:pointer}.fork-page strong{font-size:1.15em}.fork-page span{font-size:.95em;color:#5a4a2a}.fork-page:hover,.fork-page:focus-visible{background:#fffdf0;outline:3px solid #b8892b;outline-offset:2px}.fork-page.chosen{border-color:#4a6a3a;box-shadow:inset 0 0 0 2px #4a6a3a}.fork-contract{font-style:italic;text-align:center}.hero-lock .dial output{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;background:none;box-shadow:none;animation:none;border:0}.hero-lock .dial{position:relative}.hero-lock .lock-body{position:relative;z-index:1;display:inline-block;margin:0 auto;padding:10px 14px 12px;border-radius:18px;background:linear-gradient(145deg,#f1d479,#c79a38 45%,#7a5a1c);box-shadow:inset 0 2px 3px #fff6c8aa,inset 0 -3px 6px #3a2808aa,0 14px 24px #0007}.hero-lock .shackle{display:block;position:relative;z-index:0;width:240px;max-width:70vw;height:auto;margin:0 auto -30px;overflow:visible}.hero-lock .shackle-g{transform-origin:62px 96px;transform-box:view-box;transition:transform .55s cubic-bezier(.3,1.8,.5,1)}.hero-lock.unlocking .shackle-g{transform:translateY(-20px) rotate(-16deg)}.hero-lock .dials{margin:.2em 0 .4em;gap:8px}.hero-lock .dial button{width:60px;height:44px;touch-action:manipulation}.reel{position:relative;width:60px;height:92px;border-radius:10px;overflow:hidden;background:linear-gradient(#17100a,#3b2a18 50%,#17100a);box-shadow:inset 0 3px 8px #000c,inset 0 -3px 8px #000c,0 0 0 3px #5a3f12,0 0 0 5px #e9c46a99;perspective:220px;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;outline:none}.reel:before,.reel:after{content:"";position:absolute;left:0;right:0;height:30%;z-index:2;pointer-events:none}.reel:before{top:0;background:linear-gradient(#000d,transparent)}.reel:after{bottom:0;background:linear-gradient(transparent,#000d)}.reel .reel-cells{position:absolute;inset:0;transform-style:preserve-3d;background:repeating-linear-gradient(90deg,#ffffff10 0 2px,transparent 2px 5px)}.reel .cell{position:absolute;left:0;right:0;top:calc(50% - 22px);height:44px;display:grid;place-items:center;font-family:var(--serif);font-size:2.1em;font-weight:700;color:#f4d98a;text-shadow:0 1px 0 #000,0 0 10px #ffb84a55;will-change:transform;backface-visibility:hidden}.reel:focus-visible{box-shadow:inset 0 3px 8px #000c,inset 0 -3px 8px #000c,0 0 0 3px #5a3f12,0 0 0 6px #fff}.reel.grab{cursor:grabbing}@media (max-width: 420px){.hero-lock .dial button,.reel{width:52px}.hero-lock .dials{gap:5px}}.hero-overlay{position:fixed;inset:0;z-index:80;background:#000c;display:grid;place-items:center;padding:12px;animation:fadein .2s;touch-action:none}.hero-overlay.leaving{opacity:0;transition:opacity .4s ease-in}.hero-card{background:linear-gradient(#2a1d12,#150e08);border:1px solid #5a4028;border-radius:16px;color:#f1e6cb;width:min(460px,100%);max-height:100%;overflow:auto;padding:16px 16px 14px;text-align:center;box-shadow:0 30px 80px #000}.hero-card h2{margin:0 0 .2em;font-family:var(--serif);color:var(--brass-2, #f0d58a)}.hero-hint{margin:0 0 .6em;font-size:.95em;color:#d9c9a0}.hero-stage{display:grid;place-items:center}.hero-svg{width:min(100%,62vh,380px);height:auto;touch-action:none;user-select:none;-webkit-user-select:none;outline:none;cursor:grab;will-change:transform;overflow:visible}.hero-svg:focus-visible{outline:3px solid #fff;outline-offset:4px;border-radius:12px}.hero-svg .d-body,.hero-svg .d-things,.hero-svg .l-lever,.hero-svg .c-wheel,.hero-svg .c-pawl{will-change:transform}.hero-actions{display:flex;gap:10px;justify-content:center;margin-top:12px;flex-wrap:wrap}.hero-actions button{min-height:48px;min-width:120px}.hero-overlay .ghost{color:#f1e6cb;border-color:#8a6a4a}.hero-spark{position:fixed;width:8px;height:8px;border-radius:50%;background:radial-gradient(#fff6c8,#f4c242 60%,transparent 72%);z-index:90;pointer-events:none;box-shadow:0 0 8px #ffd36b}html.reduce-motion .hero-lock .shackle-g{transition:none}html.reduce-motion .hero-overlay{animation:none}html.reduce-motion .hero-overlay.leaving{transition:none}.daily-card{margin:0 0 14px}.daily-open{display:flex;align-items:center;gap:14px;width:100%;min-height:64px;text-align:left;padding:12px 16px;border-radius:var(--radius);border:1px solid var(--brass);background:linear-gradient(#2a1d0ae0,#1d150de0);color:var(--text);box-shadow:0 6px 22px #0008}.daily-open:hover{filter:brightness(1.1)}.daily-icon{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:50%;background:#0005;border:1px solid #c9a24a66;color:var(--brass-2)}.daily-text{display:grid;flex:1;min-width:0;line-height:1.25}.daily-text strong{font-family:var(--serif);font-size:1.2em}.daily-sub{color:var(--muted);font-size:.88em}.daily-go{font-size:1.5em;color:var(--brass-2)}.daily-card.solved .daily-open{border-color:#ffffff2a;background:#ffffff0c;box-shadow:none}.daily-card.solved .daily-icon,.daily-card.solved .daily-sub{color:var(--teal)}.daily-card .daily-streak{margin:4px 6px 0;text-align:right}.daily{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr)}.daily-body{overflow:auto;padding:0 max(14px,env(safe-area-inset-left)) max(28px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px;max-width:980px;width:100%;margin:0 auto}.daily-body>*{flex:none}.daily-stage{position:relative;overflow:hidden;border-radius:var(--radius);padding:clamp(80px,22vw,190px) 18px 16px;margin-top:12px;background:var(--night-2);isolation:isolate}.daily-plate{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.daily-stage:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to bottom,#0b080600 5%,#0b0806ee 62%)}.daily-note{font-family:var(--serif);font-size:1.15em;line-height:1.4;max-width:720px}.daily-note p{margin:.4em 0}.archivist-line{font-family:var(--serif);font-size:1.1em}.archivist-line .by{font-family:var(--sans);font-size:.72em;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.moth-mark{color:var(--brass-2);margin-right:.4em;vertical-align:-3px}.moth-icon{display:inline-block}.daily-h{margin:6px 2px 0;font-size:1.15em;color:var(--brass-2);letter-spacing:.04em}.daily-clues{list-style:none;margin:0;padding:0;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))}.clue-card{background:linear-gradient(#f3e8cc,#e3d0a3);color:var(--ink);border-radius:8px;padding:10px 14px 12px;box-shadow:0 6px 18px #0007}.clue-card h3{margin:0 0 .15em;font-family:var(--sans);font-size:.72em;letter-spacing:.12em;text-transform:uppercase;color:#6a5a3a}.clue-card p{margin:0;font-family:var(--serif);font-size:1.22em;line-height:1.3}.daily-widget{width:100%;max-height:none;overflow:visible}.daily.result{padding:0}.daily.result .daily-stage{height:100%;margin:0;border-radius:0;display:grid;place-items:center;padding:16px max(16px,env(safe-area-inset-left)) max(16px,env(safe-area-inset-bottom));overflow:auto}.daily.result .daily-stage:after{background:#0b080699}.daily-page{background:linear-gradient(#f6eed8f2,#e9dab6f2);color:var(--ink);font-family:var(--serif);font-size:1.2em;max-width:620px;width:100%;padding:26px 28px;border-radius:6px;box-shadow:0 30px 80px #000}.daily-page h1{margin:.1em 0 .3em;outline:none}.daily-page .eyebrow{margin:0;text-transform:uppercase;letter-spacing:.2em;font-family:var(--sans);font-size:.6em;color:#6a5a3a}.daily-page .verdict{line-height:1.45}.daily-answer{list-style:none;padding:8px 12px;margin:10px 0;background:#0000000d;border-radius:8px;font-family:var(--sans);font-size:.7em;display:grid;gap:3px}.daily-answer li span{color:#6a5a3a}.daily-page .archivist-line{color:var(--ink)}.daily-page .archivist-line .by{color:#6a5a3a}.daily-page .moth-mark{color:#8a6a22}.daily-streak{display:inline-flex;align-items:center;gap:.5em;margin:.2em 0;color:#5a4a2a;font-family:var(--sans);font-size:.8em}.daily-page .come-back{font-style:italic;text-align:center;margin:.9em 0}.daily-page .btns{justify-content:center;font-family:var(--sans);font-size:.8em}.daily-page[data-fresh]{animation:inkin 1s both}@media (max-width: 520px){.daily-page{padding:20px 18px;font-size:1.1em}}.sequence{display:grid;gap:12px;justify-items:center}.seq-rules{max-width:640px;background:linear-gradient(#f3e8cc,#e3d0a3);color:var(--ink);border-radius:6px;padding:10px 14px;font-family:var(--serif);font-size:.95em;line-height:1.35}.seq-rules p{margin:.3em 0 0}.seq-board{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;padding:18px 20px;border-radius:12px;background:linear-gradient(#1a1410,#0d0a08);box-shadow:inset 0 0 0 2px #c9a24a66,inset 0 8px 24px #000a}.rosette{all:unset;box-sizing:border-box;display:grid;justify-items:center;gap:4px;width:104px;min-height:112px;padding:4px;cursor:pointer;color:var(--brass-2);font-family:var(--serif);font-size:.85em;text-align:center;border-radius:12px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.rosette svg{width:88px;height:88px;overflow:visible;filter:drop-shadow(0 4px 3px #000a);transition:transform .12s,filter .12s}.rosette .bezel{fill:#7a5a22;stroke:#e9c46a;stroke-width:3}.rosette .motif{fill:#e9c46a;stroke:#2a1d0a;stroke-width:1;stroke-linejoin:round}.rosette .motif [stroke-width]{stroke:#2a1d0a}.rosette:hover svg{filter:drop-shadow(0 4px 3px #000a) brightness(1.1)}.rosette:focus-visible{outline:3px solid var(--brass-2);outline-offset:2px}.rosette.down svg{transform:translateY(3px) scale(.95);filter:drop-shadow(0 1px 1px #000a) brightness(.8)}.rosette.down .bezel{fill:#4a3614}.seq-count{margin:0;color:var(--muted);font-size:.9em}.sequence .btns{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}@media (prefers-reduced-motion: no-preference){html:not(.reduce-motion) .sequence.sprung .rosette svg{animation:rosette-rattle .5s}}@keyframes rosette-rattle{0%,to{transform:none}20%{transform:translate(-3px,2px) rotate(-3deg)}40%{transform:translate(3px) rotate(3deg)}60%{transform:translate(-2px,1px) rotate(-2deg)}80%{transform:translate(2px) rotate(2deg)}}@media (max-width: 520px){.rosette{width:92px}.rosette svg{width:76px;height:76px}}.seen-title{display:grid;place-items:center;min-height:66px;padding:2px;font-family:var(--serif);font-size:.72em;line-height:1.15;color:var(--brass-2);text-align:center}.preview-card.coda{margin-top:14px}.daily .where .room{white-space:normal;font-size:1.1em;line-height:1.1}.daily.result{grid-template-rows:minmax(0,1fr)}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/mothbound/play/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/mothbound/play/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/mothbound/play/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/mothbound/play/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff")}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:500;src:url(/mothbound/play/assets/caveat-latin-500-normal-B9SDL8cy.woff2) format("woff2"),url(/mothbound/play/assets/caveat-latin-500-normal-Do9veZfZ.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/mothbound/play/assets/cormorant-garamond-latin-500-normal-BsRWmXhO.woff2) format("woff2"),url(/mothbound/play/assets/cormorant-garamond-latin-500-normal-zIXX3Q-H.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/mothbound/play/assets/cormorant-garamond-latin-500-italic-Y14P-dkT.woff2) format("woff2"),url(/mothbound/play/assets/cormorant-garamond-latin-500-italic-DhNIfkTX.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:700;src:url(/mothbound/play/assets/cormorant-garamond-latin-700-normal-DajfzrDU.woff2) format("woff2"),url(/mothbound/play/assets/cormorant-garamond-latin-700-normal-O25Qpphb.woff) format("woff")}.conduct{display:grid;gap:10px}.conduct .cstrip{width:100%;max-width:640px;display:block;margin:.2em auto;background:#0e1418;border-radius:10px;padding:4px}.conduct .edge{stroke:#3b5560;stroke-width:3;stroke-dasharray:2 5}.conduct .zbox rect{fill:#16202a;stroke:#6b7f88;stroke-width:2}.conduct .zbox.light-white rect{fill:#e8f0ea}.conduct .zbox.light-red rect{fill:#7a1f18}.conduct .zbox.heat-warm rect{stroke:#f2b33d;stroke-width:4}.conduct .zbox.heat-cold rect{stroke:#6fb7ee;stroke-width:4;stroke-dasharray:6 3}.conduct .zbox.life rect{stroke-dasharray:3 3;stroke:#2fd3c4}.conduct .zbox.narrow rect{stroke-width:1.5}.conduct .zlabel{font:600 11.5px var(--sans, system-ui);fill:#c3d0d2}.conduct .zbox.light-white .zlabel{fill:#1c2b2e}.conduct .zlife{font:700 12px var(--sans, system-ui);fill:#2fd3c4}.conduct .pip{fill:#3fe0c5;opacity:.92}.conduct .zbox.light-red .pip{fill:#ff8f7e}.conduct .knotmark,.conduct .narrowmark{stroke:#f06a5a;stroke-width:3;fill:none;stroke-linecap:round}.conduct .narrowmark{stroke:#f2b33d}.conduct .crows{display:grid;gap:6px}.conduct .crow{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;background:#0000000d;border-radius:8px;padding:6px 10px}.conduct .cname{min-width:8.5em;font-weight:600}.conduct .cname em{font-weight:400;opacity:.7;font-size:.9em}.conduct .cseg{display:inline-flex;flex-wrap:wrap;gap:4px}.conduct .cbtn{border:1px solid #8a7a5a;border-radius:8px;padding:.35em .8em;min-height:48px;min-width:56px;background:#fff8e6;color:var(--ink, #2b2119);font:inherit;cursor:pointer}.conduct .cbtn:focus-visible{outline:3px solid #1f9c88;outline-offset:2px}.conduct .cbtn.l-white.on{background:#fff;box-shadow:0 0 0 2px #1f9c88 inset;font-weight:700}.conduct .cbtn.l-red.on{background:#c0503a;color:#fff;font-weight:700}.conduct .cbtn.l-off.on{background:#2a3a44;color:#e9f4f1;font-weight:700}.conduct .cbtn.h-warm.on{background:#f2b33d;color:#2b1c05;font-weight:700}.conduct .cbtn.h-cold.on{background:#6fb7ee;color:#0b2236;font-weight:700}.conduct .cbtn.h-neutral.on{background:#d8cfb5;font-weight:700}.conduct .cbtn.t-low.on{background:#2f8f84;color:#fff;font-weight:700}.conduct .cbtn.t-high.on{background:#8a3a5a;color:#fff;font-weight:700}.conduct .cbtn.t-none.on{background:#2a3a44;color:#e9f4f1;font-weight:700}.conduct .cbtn.phase.on{background:#2fd3c4;color:#06312c;font-weight:700}.conduct .cnote{font-family:var(--serif, Georgia, serif);font-size:.92em;opacity:.8}.conduct .cgauge{font-family:var(--serif, Georgia, serif);margin:0;color:#1f6c5e}.conduct .cgauge.low{color:#a1301f;font-weight:700}.conduct .cripple{position:relative;width:44px;height:44px;display:inline-block}.conduct .cripple i{position:absolute;inset:0;border-radius:50%;border:2px solid #2f8f84;opacity:0;animation:cripple 1.8s ease-out infinite}.conduct .cripple i:nth-child(2){animation-delay:.6s}.conduct .cripple i:nth-child(3){animation-delay:1.2s}.conduct .cripple.high i{border-color:#8a3a5a;border-style:dashed;animation-duration:.7s}.conduct .cripple.high i:nth-child(2){animation-delay:.23s}.conduct .cripple.high i:nth-child(3){animation-delay:.46s}@keyframes cripple{0%{transform:scale(.25);opacity:.9}to{transform:scale(1);opacity:0}}.reduce-motion .conduct .cripple i,html.reduce-motion .conduct .cripple i{animation:none!important;opacity:.7;transform:none}.reduce-motion .conduct .cripple i:nth-child(2),.reduce-motion .conduct .cripple i:nth-child(3){inset:8px}@media (prefers-reduced-motion: reduce){.conduct .cripple i{animation:none!important;opacity:.7;transform:none}.conduct .cripple i:nth-child(2),.conduct .cripple i:nth-child(3){inset:8px}}@media (max-width: 520px){.conduct .cname{min-width:100%}.conduct .cbtn{flex:1 1 30%}}
