@font-face{font-family:Dom;src:url(/fonts/CormorantGaramond.ttf) format("truetype");font-weight:300 700;font-display:swap}:root{font-family:Arial,Helvetica,sans-serif;color:#24291f;background:#e9e8df;font-synthesis:none;--ink:#24291f;--paper:#faf6e9;--bronze:#705421;--muted:#595c4c;--green:#344c38}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a,input{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #ae7728;outline-offset:4px}::selection{background:#c4ab76;color:#171b15}button{border:0;color:inherit}canvas{display:block;touch-action:none;width:100%;height:100%}#world{position:fixed;inset:0;background:#e7ebe5}#world:focus-visible{outline:3px solid #ae7728;outline-offset:-5px}.header{position:fixed;top:0;left:0;right:0;padding:26px 34px;display:flex;align-items:start;justify-content:space-between;gap:24px;pointer-events:none}.brand{pointer-events:auto}.brand h1{font-family:Dom,Georgia,serif;font-weight:600;font-size:40px;line-height:.9;letter-spacing:-.03em;margin:0}.brand p{font-size:12px;letter-spacing:.07em;margin:9px 0 0;color:#4b5246}.header-actions{display:flex;align-items:center;gap:8px;pointer-events:auto}.quiet{background:var(--paper);padding:11px 14px;font-size:12px;border-radius:4px;box-shadow:0 3px 12px #283c2520;display:flex;gap:7px;align-items:center}.quiet:hover{background:#fffdf5}.quiet svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7}.quiet[aria-pressed=true]{background:#e3dcc5}.places{position:fixed;left:50%;top:29px;transform:translate(-50%);display:flex;background:var(--paper);padding:4px;box-shadow:0 4px 18px #34462c18;border-radius:5px;gap:3px}.places button{background:transparent;padding:10px 17px;border-radius:3px;font-size:13px;white-space:nowrap}.places button:hover{background:#ede8d9}.places button[aria-current=true]{background:var(--green);color:#fff9e8}.places .dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:currentColor;vertical-align:middle;margin-left:7px}.objective{position:fixed;left:34px;bottom:38px;max-width:365px;max-height:calc(100dvh - 145px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#b4a98b var(--paper);padding:25px 28px 23px;background:var(--paper);box-shadow:0 8px 30px #25321e25;border-radius:4px}.objective h2{font-family:Dom,Georgia,serif;font-size:34px;font-weight:600;letter-spacing:-.025em;line-height:1.03;margin:8px 0 12px;text-wrap:balance}.objective p{font-size:13px;line-height:1.55;margin:0;color:#505447}.stage-progress{font-size:11px;letter-spacing:.045em;color:var(--bronze);display:flex;align-items:center;gap:9px}.progress-track{display:flex;gap:4px}.progress-track span{width:18px;height:3px;background:#d7d1bc}.progress-track span.done{background:var(--green)}.primary{background:var(--green);color:#fff9e8;border-radius:3px;padding:13px 17px;font-size:13px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px}.primary:hover{background:#263e2b}.primary svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.6}.objective .primary{margin-top:18px;width:100%}.secondary{background:transparent;font-size:12px;color:var(--bronze);padding:10px 0;text-decoration:underline;text-underline-offset:3px}.navigation{position:fixed;right:34px;bottom:38px;display:flex;gap:8px;align-items:center}.nav-button{width:44px;height:44px;background:var(--paper);border-radius:4px;display:grid;place-items:center;box-shadow:0 3px 14px #25321e18}.nav-button:hover{background:#fffdf5}.nav-button svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.7}.view-label{font-size:12px;padding:11px 13px;background:var(--paper);border-radius:3px;color:#555c4c}.scene-note{position:fixed;right:34px;bottom:98px;font-size:10px;color:#424b3d;max-width:300px;text-align:right;line-height:1.5}.drag-hint{position:fixed;left:50%;bottom:43px;transform:translate(-50%);font-size:11px;display:flex;gap:7px;align-items:center;color:#424b3d}.drag-hint svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5}.panel{position:fixed;right:34px;top:85px;width:355px;max-height:calc(100dvh - 120px);overflow:auto;padding:25px 27px;background:var(--paper);border-radius:4px;box-shadow:0 8px 32px #24321b32;z-index:5}.panel h2{font-family:Dom,Georgia,serif;font-size:29px;line-height:1.1;margin:0 0 15px}.panel h3{font-size:12px;margin:22px 0 7px;color:#715923}.panel p,.panel li{font-size:12px;line-height:1.6;color:#4e5446}.panel p{margin:10px 0}.panel ul{padding-left:17px;margin:7px 0}.panel a{color:#705421;text-underline-offset:3px}.panel .close{position:absolute;right:11px;top:10px;background:transparent;padding:7px}.panel .close svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.5}.panel .secondary{display:block}.panel::-webkit-scrollbar{width:7px}.panel::-webkit-scrollbar-thumb{background:#b4a98b;border-radius:3px}.hidden,[hidden]{display:none!important}.loading{position:fixed;inset:0;display:grid;place-items:center;background:#e9e8df;z-index:9;text-align:center;padding:24px}.loading h2{font-family:Dom,Georgia,serif;font-size:44px;line-height:1.05;max-width:420px;font-weight:500;letter-spacing:-.025em;margin:0 0 14px}.loading p{font-size:13px;line-height:1.6;color:#555c4d;margin:0 0 22px}.loading .loader-line{height:2px;width:170px;background:#c9c4b1;margin:24px auto;overflow:hidden}.loader-line:after{content:"";display:block;width:45%;height:100%;background:#705421;animation:loading 1.5s ease-in-out infinite}@keyframes loading{0%{transform:translate(-100%)}to{transform:translate(320%)}}.status{position:fixed;top:90px;left:50%;transform:translate(-50%);max-width:80%;padding:10px 18px;background:var(--green);color:#fff9e8;border-radius:3px;font-size:12px;box-shadow:0 4px 18px #25321e20;z-index:7}.bell-ui{margin-top:17px}.pattern{display:flex;gap:8px;margin:10px 0 16px}.pattern span{width:40px;height:40px;display:grid;place-items:center;border:1px solid #cdc3a6;border-radius:3px;font-weight:600;font-size:15px;color:#665128}.pattern span.active{background:#81591c;border-color:#81591c;color:#fff}.pattern span.entered{background:#344c38;border-color:#344c38;color:#fff9e8}.bell-buttons{display:flex;gap:7px}.bell-buttons button{background:#e7dfcb;flex:1;padding:13px 5px;min-height:50px;border-radius:3px;color:#534022;font-size:13px}.bell-buttons button:hover{background:#d8c7a0}.bell-buttons button.active{background:#81591c;color:#fff}.challenge-state{min-height:41px;padding-top:11px!important;font-size:12px!important}.completion{font-family:Dom,Georgia,serif;font-size:20px;color:#344c38;margin:13px 0 0}.reset-row{display:flex;gap:9px;margin-top:12px}.reset-row button{margin-top:0!important}@media(min-width:1600px){.objective{left:44px;bottom:44px}.header{padding:32px 44px}}@media(max-width:950px){.header{padding:20px}.places{top:77px}.objective{left:20px;bottom:23px;width:310px;padding:20px 22px}.objective h2{font-size:30px}.navigation{right:20px;bottom:23px}.scene-note{right:20px;bottom:79px;max-width:200px}.drag-hint{display:none}.panel{right:20px;top:130px}.status{top:135px}.brand h1{font-size:34px}}@media(max-width:600px){.header{padding:18px 17px}.brand h1{font-size:32px}.brand p{font-size:10px;letter-spacing:.04em;margin-top:6px}.quiet{font-size:0;padding:11px}.quiet svg{width:17px;height:17px}.header-actions{gap:6px}.places{top:74px;width:calc(100% - 34px);justify-content:center}.places button{flex:1;padding:10px 8px;font-size:12px}.objective{left:17px;right:17px;width:auto;bottom:max(18px,env(safe-area-inset-bottom));max-width:none;padding:19px 20px 17px}.objective h2{font-size:29px;margin:7px 0 8px}.objective p{font-size:12px;line-height:1.45}.objective .primary{margin-top:12px;padding:11px 14px;min-height:43px}.stage-progress{font-size:10px}.navigation{right:17px;bottom:255px}.scene-note{left:18px;right:auto;bottom:255px;font-size:9px;text-align:left;max-width:175px}.nav-button{width:38px;height:38px}.view-label{display:none}.panel{left:17px;right:17px;top:125px;width:auto;max-height:calc(100dvh - 148px)}.status{top:126px;font-size:11px;max-width:90%;width:max-content}.bell .objective{padding-top:17px}.bell .objective h2{font-size:27px}.bell .scene-note,.bell .navigation{bottom:425px}.pattern{margin-bottom:12px}.pattern span{width:35px;height:35px}.bell-ui{margin-top:12px}.bell-buttons button{min-height:45px;padding:9px}.challenge-state{min-height:32px}.loading h2{font-size:38px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}}@media(max-height:520px){.header{padding:14px 20px}.brand h1{font-size:29px}.brand p{font-size:9px}.places{top:15px}.objective{bottom:17px;max-height:calc(100dvh - 105px);padding:15px 19px;width:320px;right:auto}.objective h2{font-size:26px;margin:5px 0 7px}.objective p{font-size:12px}.objective .primary{margin-top:10px}.navigation{bottom:17px}.scene-note{bottom:72px}.panel{top:75px;max-height:calc(100dvh - 95px)}.status{top:70px}.drag-hint{display:none}.bell .navigation{bottom:17px}.bell .scene-note{bottom:72px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:600px)and (max-height:520px){.places{top:74px}.objective{max-height:calc(100dvh - 145px);left:17px;right:17px;width:auto}.panel{top:125px;max-height:calc(100dvh - 148px)}.status{top:126px}}
