:root{--ink:#f4ead8;--ink-dim:#f4ead8b8;--panel:#1210169e;--panel-strong:#0e0c12db;--accent:#e8b460;--accent-2:#7fc4c0;--line:#f4ead82e;--serif:"Cormorant Garamond", Georgia, serif;--sans:"Inter", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--sans);background:#0b0e18;margin:0;overflow:hidden}#view{touch-action:none;width:100vw;height:100vh;display:block;position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}#ui .interactive,#ui button,#ui input,#ui select,#ui a{pointer-events:auto}.hidden{display:none!important}.hud{pointer-events:none;font-family:var(--sans);color:var(--ink);text-shadow:0 1px 3px #0000008c;transition:opacity .4s;position:absolute;inset:0}.hud.hidden-soft{opacity:0}.compass{width:min(560px,70vw);height:42px;position:absolute;top:14px;left:50%;overflow:hidden;transform:translate(-50%);-webkit-mask-image:linear-gradient(90deg,#0000,#000 18% 82%,#0000);mask-image:linear-gradient(90deg,#0000,#000 18% 82%,#0000)}.compass .tick{background:#f4ead88c;width:1px;height:7px;position:absolute;top:4px}.compass .tick.major{background:#f4ead8d9;height:12px}.compass .lbl{font:600 12px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);position:absolute;top:16px;transform:translate(-50%)}.compass .lbl.minor{color:var(--ink-dim);font-size:10px;font-weight:500}.compass .mk{font-size:13px;position:absolute;top:2px;transform:translate(-50%)}.compass .mk.dest{color:var(--accent);font-size:15px}.compass .mk.town{color:#cfe6e2;white-space:nowrap;letter-spacing:.06em;font-size:9px;top:30px}.compass .center{background:var(--accent);border-radius:1px;width:2px;height:14px;margin-left:-1px;position:absolute;top:0;left:50%}.dest-dist{font:500 11px var(--sans);color:var(--accent);letter-spacing:.08em;position:absolute;top:58px;left:50%;transform:translate(-50%)}.section-card{border:1px solid var(--line);background:#121016bd;border-radius:10px;align-items:center;gap:10px;padding:8px 12px 8px 10px;display:flex;position:absolute;top:14px;left:16px}.section-card canvas{display:block}.section-card .t1{font:600 13px/1.2 var(--serif);letter-spacing:.04em}.section-card .t2{font:500 11px/1.3 var(--sans);color:var(--ink-dim)}.clock{border:1px solid var(--line);font:500 12px var(--sans);background:#121016bd;border-radius:10px;align-items:center;gap:8px;padding:7px 12px;display:flex;position:absolute;top:14px;right:16px}.clock .sun{background:radial-gradient(circle at 40% 40%,#fff3c4,#f0a040);border-radius:50%;width:14px;height:14px;box-shadow:0 0 10px #f0a040b3}.clock .sun.night{background:radial-gradient(circle at 35% 35%,#e8ecff,#8a96c8);box-shadow:0 0 8px #a0aae699}.banner{text-align:center;opacity:0;transition:opacity 1.2s;position:absolute;top:18%;left:50%;transform:translate(-50%)}.banner.show{opacity:1}.banner .glyphs{opacity:.9;height:46px;margin:0 auto 4px;display:block}.banner .name{font:600 54px/1 var(--serif);letter-spacing:.06em;color:#fff6e4;text-shadow:0 2px 18px #00000080}.banner .sub{font:500 13px var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--ink-dim);margin-top:8px}.prompt{background:var(--panel);border:1px solid var(--line);font:500 13px var(--sans);opacity:0;border-radius:999px;padding:8px 14px;transition:opacity .25s;position:absolute;bottom:12%;left:50%;transform:translate(-50%)}.prompt.show{opacity:1}.key{min-width:20px;font:600 11px var(--sans);text-align:center;border:1px solid #f4ead880;border-radius:5px;margin-right:6px;padding:1px 6px;display:inline-block}.breath{opacity:0;width:54px;height:54px;margin-top:-27px;transition:opacity .3s;position:absolute;top:50%;right:22%}.breath.show{opacity:1}.toasts{flex-direction:column;align-items:flex-end;gap:6px;display:flex;position:absolute;top:64px;right:16px}.toast{background:var(--panel-strong);border:1px solid var(--line);font:500 12px var(--sans);border-radius:8px;padding:7px 12px;animation:.3s toastIn,.5s 3.2s forwards toastOut}@keyframes toastIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@keyframes toastOut{to{opacity:0;transform:translateY(-6px)}}.hints{background:var(--panel);border:1px solid var(--line);max-width:420px;font:400 12px/1.7 var(--sans);color:var(--ink-dim);border-radius:10px;padding:10px 12px;transition:opacity 1s;position:absolute;bottom:16px;left:16px}.hints b{color:var(--ink);font-weight:600}.crosshair{background:#fff9;border-radius:50%;width:4px;height:4px;margin:-2px 0 0 -2px;position:absolute;top:50%;left:50%;box-shadow:0 0 3px #0009}.fade{opacity:0;pointer-events:none;background:#000;transition:opacity .6s;position:absolute;inset:0}.touch-stick{background:#00000026;border:2px solid #ffffff59;border-radius:50%;width:110px;height:110px;margin:-55px 0 0 -55px;display:none;position:absolute}.touch-stick .nub{background:#ffffff59;border-radius:50%;width:44px;height:44px;margin:-22px 0 0 -22px;position:absolute;top:50%;left:50%}.touch-buttons{pointer-events:auto;flex-wrap:wrap;justify-content:flex-end;gap:10px;width:170px;display:none;position:absolute;bottom:22px;right:18px}.touch-buttons button{color:#fff;width:52px;height:52px;font:600 12px var(--sans);background:#0000004d;border:1px solid #fff6;border-radius:50%}body.touch .touch-buttons{display:flex}.screen{pointer-events:auto;display:none;position:absolute;inset:0}.screen.open{animation:.35s screenIn;display:block}@keyframes screenIn{0%{opacity:0}to{opacity:1}}.btn{color:var(--ink);font:500 13px var(--sans);cursor:pointer;background:#18141cb3;border:1px solid #f4ead859;border-radius:999px;align-items:center;gap:8px;padding:9px 16px;transition:background .2s,border-color .2s,transform .1s;display:inline-flex}.btn:hover{border-color:var(--accent);background:#3c3028d9}.btn:active{transform:translateY(1px)}.btn.primary{color:#20160c;background:linear-gradient(#e8b460,#c98a3a);border-color:#f0c880;font-weight:600}.btn.primary:hover{background:linear-gradient(#f2c270,#d69640)}.btn[disabled]{opacity:.4;pointer-events:none}.map-screen{cursor:grab;background:#1b1510}.map-screen:active{cursor:grabbing}.map-canvas{position:absolute;inset:0}.map-tip{pointer-events:none;color:#3b2a1a;font:12px var(--sans);background:#f0e4c8f5;border:1px solid #3b2a1a80;border-radius:6px;max-width:260px;padding:8px 11px;display:none;position:absolute;box-shadow:0 6px 18px #00000059}.map-tip .n{font:600 17px/1.1 var(--serif)}.map-tip .k{opacity:.8;margin-top:2px}.map-tip .r{font-style:italic;font-family:var(--serif);margin-top:4px;font-size:14px}.map-panel{color:#3b2a1a;cursor:default;background:#f0e4c8f7;border:1px solid #3b2a1a8c;border-radius:10px;width:330px;padding:16px 18px;display:none;position:absolute;bottom:22px;right:22px;box-shadow:0 12px 30px #00000073}.map-panel.show{animation:.25s screenIn;display:block}.map-panel .glyphs{height:34px;margin-bottom:2px;display:block}.map-panel .n{font:600 28px/1.05 var(--serif)}.map-panel .k{font:500 12px var(--sans);letter-spacing:.06em;text-transform:uppercase;opacity:.7;margin-top:4px}.map-panel .r{font:italic 15px/1.3 var(--serif);margin-top:8px}.map-panel .btns{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.map-panel .btn{color:#3b2a1a;background:#3b2a1a14;border-color:#3b2a1a66}.map-panel .btn:hover{background:#3b2a1a29;border-color:#8a5a2a}.map-panel .btn.primary{color:#20160c;background:linear-gradient(#e8b460,#c98a3a);border-color:#b07a30}.map-panel .note{font:12px/1.4 var(--sans);opacity:.7;margin-top:10px}.map-help{font:12px var(--sans);color:var(--ink-dim);pointer-events:none;background:#0006;border-radius:999px;padding:6px 12px;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.map-close{position:absolute;top:18px;right:18px}.titlecard{pointer-events:none;opacity:0;justify-content:center;align-items:center;transition:opacity .7s;display:flex;position:absolute;inset:0}.titlecard.show{opacity:1}.titlecard .card{text-align:center;color:#3b2a1a;background:radial-gradient(#f3e6c8 0%,#e2cfa6 70%,#cdb584 100%);border-radius:6px;width:min(720px,86vw);padding:38px 40px 34px;position:relative;box-shadow:0 30px 80px #0009,inset 0 0 60px #78501e40}.titlecard .card:before{content:"";border:1.5px solid #3b2a1a73;border-radius:3px;position:absolute;inset:10px}.titlecard .glyph{height:64px;margin:4px auto 10px;display:block}.titlecard .name{font:600 46px/1.05 var(--serif);letter-spacing:.05em;opacity:0;transition:opacity 1.2s .9s}.titlecard.show .name{opacity:1}.titlecard .kind{font:500 12px var(--sans);letter-spacing:.3em;text-transform:uppercase;opacity:.65;margin-top:6px}.titlecard .flavour{max-width:520px;font:italic 17px/1.45 var(--serif);opacity:.85;margin:18px auto 0}.titlecard .loading{font:500 11px var(--sans);letter-spacing:.2em;text-transform:uppercase;opacity:.5;margin-top:16px}.anek-bird{pointer-events:none;width:180px;height:90px;position:absolute;top:30%;left:-200px}.anek-bird.fly{animation:1.4s cubic-bezier(.5,.1,.4,1) forwards birdSwoop}@keyframes birdSwoop{0%{transform:translate(0)scale(.6)rotate(8deg)}55%{transform:translate(60vw,10vh)scale(2.8)rotate(-6deg)}to{transform:translate(120vw,-20vh)scale(9)rotate(-15deg)}}.menu-screen{background:radial-gradient(#0a080ead,#060509e6)}.menu-card{background:var(--panel-strong);border:1px solid var(--line);border-radius:16px;flex-direction:column;width:min(720px,94vw);max-height:90vh;display:flex;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 30px 80px #00000080}.menu-head{padding:22px 26px 6px}.menu-head .title{font:600 34px/1 var(--serif);letter-spacing:.04em}.menu-head .sub{font:italic 15px var(--serif);color:var(--ink-dim);margin-top:4px}.menu-actions{flex-wrap:wrap;gap:10px;padding:14px 26px;display:flex}.menu-tabs,.book .tabs{border-bottom:1px solid var(--line);gap:4px;padding:0 22px;display:flex}.menu-tabs button,.book .tabs button{color:var(--ink-dim);font:500 13px var(--sans);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 12px}.menu-tabs button.on,.book .tabs button.on{color:var(--ink);border-bottom-color:var(--accent)}.menu-body{padding:16px 26px 24px;overflow-y:auto}.menu-body .group{margin-bottom:18px}.menu-body .gt{font:600 11px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}.menu-body .row{font:13px var(--sans);cursor:pointer;border-bottom:1px dashed #f4ead814;grid-template-columns:1fr 180px 64px;align-items:center;gap:12px;padding:6px 0;display:grid}.menu-body .row input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);justify-self:start}.menu-body .row select{color:var(--ink);border:1px solid var(--line);font:13px var(--sans);background:#ffffff0f;border-radius:6px;grid-column:2/4;padding:4px 6px}.menu-body .row input[type=range]{accent-color:var(--accent);width:100%}.menu-body .val{font:500 12px var(--sans);color:var(--ink-dim);text-align:right}.menu-body .lbl[title]{-webkit-text-decoration:underline dotted #f4ead866;text-decoration:underline dotted #f4ead866}.controls{border-collapse:collapse;width:100%;font:13px var(--sans)}.controls td{border-bottom:1px dashed #f4ead814;padding:7px 4px}.controls td:first-child{width:190px}.about p{font:15px/1.55 var(--serif);margin:0 0 12px}.about a{color:inherit;text-underline-offset:2px;text-decoration:underline}.dim{color:var(--ink-dim)}.journal-screen{background:#08060ad1}.book{color:#3b2a1a;background:linear-gradient(#f1e3c4,#e4d1a8);border-radius:10px;flex-direction:column;width:min(820px,94vw);height:min(640px,88vh);display:flex;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 30px 80px #0000008c,inset 0 0 70px #78501e38}.book-head{flex-wrap:wrap;align-items:center;gap:16px;padding:18px 22px 0;display:flex}.book-head .title{font:600 30px var(--serif)}.book .tabs{border-bottom-color:#3b2a1a40;flex:1;padding:0}.book .tabs button{color:#3b2a1a99}.book .tabs button.on{color:#3b2a1a;border-bottom-color:#a86a2a}.book .btn{color:#3b2a1a;background:#3b2a1a14;border-color:#3b2a1a59}.book .btn.sm{margin-left:6px;padding:3px 10px;font-size:11px}.book-body{font:15px/1.55 var(--serif);padding:14px 26px 24px;overflow-y:auto}.book-body h3{font:600 20px var(--serif);margin:14px 0 6px}.book-body .dim{color:#3b2a1a99;font-size:13px;font-family:var(--sans)}.book-body ul.places{margin:0;padding:0;list-style:none}.book-body ul.places li{border-bottom:1px dashed #3b2a1a33;padding:6px 0}.book-body .nm{font:600 17px var(--serif)}.photo-panel{border:1px solid var(--line);font:12px/1.7 var(--sans);color:var(--ink-dim);pointer-events:none;background:#121016c7;border-radius:10px;padding:10px 14px;position:absolute;bottom:16px;left:16px}.photo-panel b{color:var(--ink);font-weight:600}.photo-status{background:var(--panel);border:1px solid var(--line);font:500 12px/1.2 var(--sans);letter-spacing:.04em;color:var(--ink);pointer-events:none;border-radius:8px;padding:6px 10px;position:absolute;bottom:16px;right:16px}.photo-flash{opacity:0;pointer-events:none;background:#fff;position:absolute;inset:0}.photo-flash.go{animation:.45s ease-out photoflash}@keyframes photoflash{0%{opacity:.75}to{opacity:0}}.title-screen{z-index:40;pointer-events:auto;background:radial-gradient(at 50% 60%,#1e140e80,#08070ceb 75%);justify-content:center;align-items:center;transition:opacity .8s;display:flex;position:absolute;inset:0}.title-screen.out{opacity:0;pointer-events:none}.title-screen .tt-inner{text-align:center;max-width:560px;padding:24px}.title-screen .tt-glyph{opacity:.9;height:58px;margin-bottom:6px}.title-screen h1{font:500 clamp(40px, 8vw, 76px)/1 var(--serif);letter-spacing:.04em;color:#f6e7c8;text-shadow:0 2px 24px #ffb45a59;margin:0}.title-screen .tt-sub{font:italic 400 clamp(16px, 2.6vw, 21px)/1.3 var(--serif);color:var(--ink-dim);margin:12px 0 30px}.title-screen .tt-start{font:600 15px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#1b140c;cursor:pointer;background:linear-gradient(#f3cf8a,#d9a452);border:0;border-radius:999px;padding:14px 42px;box-shadow:0 6px 24px #e6a04659}.title-screen .tt-start:hover{filter:brightness(1.08)}.title-screen .tt-opt{font:13px var(--sans);color:var(--ink-dim);cursor:pointer;margin-top:18px;display:block}.title-screen .tt-opt input{accent-color:var(--accent);vertical-align:-2px;margin-right:6px}.title-screen .tt-credit{font:12px/1.5 var(--sans);color:#f4ead880;margin-top:42px}.look-hint{background:var(--panel);border:1px solid var(--line);font:500 13px var(--sans);letter-spacing:.06em;color:var(--ink);pointer-events:none;opacity:0;border-radius:999px;padding:8px 16px;transition:opacity .5s;position:absolute;top:66%;left:50%;transform:translate(-50%)}.touch-ui{pointer-events:none;position:absolute;inset:0}.tstick-base,.tstick-knob{opacity:0;border-radius:50%;transition:opacity .15s;position:absolute;top:0;left:0}.tstick-base{background:#1210162e;border:2px solid #f4ead859;width:120px;height:120px}.tstick-knob{background:#f4ead873;width:52px;height:52px;box-shadow:0 0 12px #0000004d}.touch-ui .tbtn{pointer-events:auto;color:var(--ink);font:600 12px var(--sans);letter-spacing:.04em;touch-action:none;-webkit-user-select:none;user-select:none;background:#12101673;border:1px solid #f4ead859;border-radius:50%;width:58px;height:58px;padding:0;position:absolute}.touch-ui .tbtn.on{background:#e8b4608c}.touch-ui .b-jump{width:78px;height:78px;font-size:14px;bottom:34px;right:28px}.touch-ui .b-dive{bottom:24px;right:118px}.touch-ui .b-run{bottom:96px;right:116px}.touch-ui .b-use{background:#e8b46066;bottom:126px;right:40px}.touch-ui .b-map,.touch-ui .b-eyes,.touch-ui .b-sky,.touch-ui .b-photo{width:46px;height:46px;font-size:10px;top:76px}.touch-ui .b-map{right:16px}.touch-ui .b-eyes{right:68px}.touch-ui .b-sky{right:120px}.touch-ui .b-photo{right:172px}.touch-ui .b-menu{width:46px;height:46px;font-size:18px;top:128px;right:16px}.hud .hints.touch{max-width:46vw;top:76px;bottom:auto;left:16px}.read-card{background:var(--panel-strong);border:1px solid var(--line);opacity:0;text-align:center;border-radius:12px;max-width:min(520px,86vw);padding:14px 20px 16px;transition:opacity .6s;position:absolute;bottom:120px;left:50%;transform:translate(-50%)}.read-card.show{opacity:1}.read-card .rc-title{font:600 22px/1.2 var(--serif);letter-spacing:.03em;color:#f6e7c8;margin-bottom:6px}.read-card .rc-text{font:400 14px/1.55 var(--sans);color:var(--ink-dim)}.map-panel .rename{font:500 11px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:#3b2a1a99;cursor:pointer;background:0 0;border:0;margin:2px 0 4px;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.map-panel .rename-input{font:600 20px var(--serif);box-sizing:border-box;color:#3b2a1a;background:#fffaeecc;border:1px solid #3b2a1a66;border-radius:6px;width:100%;padding:2px 6px}
