*{box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;margin:0}body{background:#eee7d6;color:#312b26;font-family:Georgia,"Times New Roman",serif}button{font:inherit;cursor:pointer}button:focus-visible{outline:2px solid #a1694f;outline-offset:3px}#app{position:relative;width:100%;height:100dvh;min-height:500px;isolation:isolate}#scene{position:absolute;inset:0;width:100%;height:100%;z-index:-2;touch-action:none}.grain{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.4;background:repeating-linear-gradient(0deg,transparent 0 4px,#78695206 5px 6px)}#header{position:absolute;left:0;right:0;top:0;display:flex;justify-content:space-between;align-items:center;padding:20px clamp(16px,3vw,40px);font-size:11px;letter-spacing:.17em}.brand span{margin-left:13px;opacity:.6}.header-actions{display:flex;gap:16px}.header-actions button,#pause{background:transparent;border:0;color:inherit;letter-spacing:.12em;font-size:11px}.header-actions button:hover,#pause:hover{text-decoration:underline}.intro{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);max-width:440px;width:calc(100% - 32px);text-align:center;padding:22px}.eyebrow{font-size:10px;letter-spacing:.35em;color:#9d7056}.intro h1{font-size:clamp(56px,8vw,93px);line-height:1.1;font-weight:400;margin:22px 0 24px;letter-spacing:.035em}.intro p{font-size:15px;line-height:1.9;color:#6d6258}.intro button{margin-top:30px;border:1px solid #62574b;background:transparent;padding:13px 25px;letter-spacing:.18em;font-size:12px}.intro button:hover{background:#3e352e;color:#fff}.seals{position:absolute;top:70px;left:50%;transform:translateX(-50%);max-width:min(800px,calc(100% - 80px));display:flex;gap:8px;overflow-x:auto;scrollbar-width:thin;padding:4px}.seals button{border:1px solid #71604a30;border-radius:99px;background:#f5eee294;color:#806f5d;padding:6px 10px;white-space:nowrap;font-size:10px}.seals button.got{background:#b37a60;color:#fff;border-color:#b37a60}.hint{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);font-size:11px;letter-spacing:.12em;white-space:nowrap;color:#706759;text-align:center;text-shadow:0 1px 4px #f3eee8}#south{position:absolute;bottom:76px;left:50%;transform:translateX(-50%);padding:10px 20px;border:1px solid #68584b;background:#ece3d4;color:#433c33;font-size:12px;letter-spacing:.16em}.travel{position:absolute;right:18px;bottom:19px;display:flex;gap:15px;align-items:center;color:#796e62;font:10px system-ui,sans-serif}.connection{position:absolute;left:18px;bottom:14px;font:9px system-ui,sans-serif;color:#827769}#menu{position:absolute;top:0;left:0;bottom:0;width:min(340px,90vw);background:#eee7d6f7;box-shadow:10px 0 45px #382a1c33;padding:50px 28px 28px;z-index:5}#menu-close{position:absolute;right:18px;top:16px;background:transparent;border:0;font-size:26px}#menu h2{font-size:28px;font-weight:400}#menu p{font-size:12px;color:#796f63;line-height:1.7}#chapters{display:grid;gap:8px;margin-top:20px}#chapters button{background:#f9f4eb;border:1px solid #aa9c894a;text-align:left;padding:12px;color:#40362f;font-size:13px}#chapters button.current{border-color:#a66a50}dialog{border:1px solid #a9957b;background:#f2ebdf;color:#312c26;box-shadow:0 20px 70px #3529206b;padding:35px;max-width:min(490px,calc(100% - 28px))}dialog::backdrop{background:#211b1680}dialog h2{font-size:31px;line-height:1.2;font-weight:400;margin:15px 0}dialog p{font-size:17px;line-height:1.8;color:#5c5148}dialog button{border:1px solid #756150;background:transparent;padding:11px 18px;margin-top:16px;letter-spacing:.12em;font-size:11px}#lens{text-align:center}#lens h2{font-size:42px}#coda{text-align:center}#coda h2{font-size:34px}@media(max-width:600px){.intro h1{font-size:59px}.intro p{font-size:13px}.seals{top:60px;left:10px;right:10px;max-width:none;transform:none}.hint{bottom:62px;white-space:normal;width:85%;line-height:1.5}.travel{right:12px;bottom:12px}.connection{left:10px;bottom:11px}.brand{max-width:60%;line-height:1.4;font-size:9px}.brand span{display:block;margin-left:0}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.encounters{position:absolute;left:50%;bottom:91px;transform:translateX(-50%);display:flex;gap:8px}.encounters button{border:1px solid #79695677;background:#f4ecdbbd;color:#54493f;padding:8px 11px;font-size:10px;white-space:nowrap}.encounters button:disabled{opacity:.45;cursor:default}@media(max-width:600px){.encounters{bottom:112px}.encounters button{font-size:9px;padding:7px}}
[hidden]{display:none!important}
.intro{max-width:650px}.intro h1{white-space:nowrap}.intro p{max-width:440px;margin-inline:auto}@media(max-width:600px){.intro h1{font-size:clamp(39px,11vw,59px)}}
#scene{z-index:0}.grain{z-index:1}#header,.intro,#journey,.connection{z-index:2}
