:root{--ink:#1d2a33;--paper:#faf7eee0;--accent:#d9583b;--font:"Nunito", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{height:100%;font-family:var(--font);color:var(--ink);background:#bfd8ea;margin:0;overflow:hidden}#app canvas{display:block}.panel{background:var(--paper);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:14px;padding:10px 14px;position:fixed;box-shadow:0 6px 24px #14283c2e}:root{--mm:220px;--mm-left:calc(var(--mm) * .078);--mm-bottom:calc(var(--mm) * .067)}#hud-clock{left:0;bottom:calc(var(--mm-bottom) + var(--mm) * .872);width:calc(var(--mm) * .253);height:calc(var(--mm) * .128);padding:0 0 0 calc(var(--mm) * .03);box-sizing:border-box;font:800 13px var(--font);font-variant-numeric:tabular-nums;border-radius:0 999px 999px 0;align-items:center;display:flex}#hud-clock .ic{display:none}#hud-pois{min-width:230px;font-size:13px;top:16px;right:16px}#hud-pois .title{margin-bottom:4px;font-weight:800}#hud-pois ul{margin:0;padding:0;list-style:none}#hud-pois li{justify-content:space-between;gap:14px;padding:2px 0;display:flex}#hud-pois li.visited{color:#3c8a4a}#hud-hint{color:#fff;background:#1d2a33b3;border-radius:999px;padding:6px 14px;font-size:13px;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}#toast{background:var(--ink);color:#fff;opacity:0;pointer-events:none;border-radius:999px;padding:8px 16px;font-size:14px;transition:all .25s;position:fixed;bottom:14px;left:50%;transform:translate(-50%,16px)}#toast.show{opacity:1;transform:translate(-50%)}#poi-card{opacity:0;pointer-events:none;width:min(420px,100vw - 32px);transition:all .3s;bottom:60px;left:16px;transform:translateY(20px)}#poi-card.show{opacity:1;pointer-events:auto;transform:none}#poi-card h2{margin:0;font-size:22px}#poi-card .sub{color:var(--accent);margin-bottom:6px;font-size:13px;font-weight:700}#poi-card p{margin:0;font-size:14px;line-height:1.45}#poi-card .close{cursor:pointer;color:var(--ink);background:0 0;border:0;font-size:22px;position:absolute;top:6px;right:8px}#labels{pointer-events:none;position:fixed;inset:0}.label{white-space:nowrap;color:#fff;background:#1d2a33bf;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:700;position:absolute;top:0;left:0}#map{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1216109e;justify-content:center;align-items:center;display:none;position:fixed;inset:0}#map.show{display:flex}#map canvas{cursor:pointer;box-shadow:0 2px 4px #00000040,0 18px 50px #00000073}.map-close{color:#eee;width:36px;height:36px;font:400 24px/1 var(--font);cursor:pointer;background:#1e241ccc;border:0;border-radius:50%;position:fixed;top:10px;right:14px}#map-words{align-items:center;gap:.4em;font-size:15px;display:flex;position:fixed}#map-words input{min-width:0;font:300 1em Jost, var(--font);color:#3b3a28;background:0 0;border:0;outline:none;flex:1;padding:.2em 0}#map-words input::placeholder{color:#3b3a2873}#map-words button,#map-words .real{color:#c4532c;cursor:pointer;font:500 .9em Jost, var(--font);background:0 0;border:1px solid #c4532c;border-radius:4px;padding:.1em .5em;line-height:1.4;text-decoration:none}#map-words button:hover,#map-words .real:hover{color:#efe5c8;background:#c4532c}#map-words-msg{color:#c4532c;font:500 13px Jost, var(--font);position:fixed}#map-words-msg:empty{display:none}#help{z-index:65;color:#eef0ea;width:min(420px,100vw - 32px);max-height:calc(100vh - 48px);font-family:var(--font);-webkit-backdrop-filter:blur(10px);background:#1e241cdb;border:1px solid #ffffff1a;border-radius:22px;flex-direction:column;display:none;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 18px 50px #0006}#help.show{display:flex}#help .head{border-bottom:1px solid #ffffff1f;align-items:center;gap:12px;padding:16px 18px 14px 22px;display:flex}#help .head .ic{opacity:.9;width:22px;height:22px}#help .head b{flex:1;font-size:20px;font-weight:800}#help .head .close{color:#ffffffb3;cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:28px;line-height:1;position:static}#help .head .close:hover{color:#fff}#help .body{padding:4px 18px 14px 22px;overflow-y:auto}#help .sec{letter-spacing:.12em;text-transform:uppercase;color:#eef0ea80;margin:12px 0 2px;font-size:11px;font-weight:800}#help .sec:not(:first-child){border-top:1px solid #ffffff1a;padding-top:12px}#help .row{justify-content:space-between;align-items:center;gap:16px;padding:5px 0;font-size:15px;display:flex}#help .keys{flex-shrink:0;align-items:center;gap:5px;display:flex}#help kbd{box-sizing:border-box;min-width:30px;height:30px;font:600 14px var(--font);color:#fff;background:#ffffff0f;border:1px solid #ffffff4d;border-radius:8px;justify-content:center;align-items:center;padding:0 8px;display:inline-flex}#help .mouse{fill:none;stroke:#fff;stroke-width:1.4px;width:18px;height:27px}#help .mouse .w{fill:#fff;stroke:none}#help .move{opacity:.8;font-size:16px}#help .note{color:#eef0eaa6;margin:12px 0 0;font-size:12.5px;line-height:1.45}.muted{opacity:.6;font-size:12px}#loading{z-index:10;background:linear-gradient(#bfd8ea,#e9e2c9);flex-direction:column;justify-content:center;align-items:center;transition:opacity .6s;display:flex;position:fixed;inset:0}#loading.hidden{opacity:0;pointer-events:none}#loading .logo{letter-spacing:2px;margin-bottom:24px;font-size:64px;font-weight:900}#loading .tag{opacity:.7;letter-spacing:1px;font-size:20px}#loading .start{cursor:pointer;background:var(--ink);color:#fff;border-radius:50%;width:56px;height:56px;display:none}#loading .start svg{width:30px;height:30px;margin:14px auto 0;display:block}#whiteout{opacity:0;pointer-events:none;z-index:20;background:#fff;transition:opacity .55s ease-in;position:fixed;inset:0}#whiteout.on{opacity:1}#whiteout.off{opacity:0;transition:opacity 1.6s ease-out}#loading.ready{cursor:pointer}#loading.ready .start{animation:1.6s infinite pulse;display:block}@keyframes pulse{50%{transform:scale(1.06)}}#version{text-align:center;color:#28323a73;letter-spacing:.3px;font-size:11px;position:absolute;bottom:14px;left:0;right:0}#buttons{flex-direction:column;gap:8px;display:flex;position:fixed;bottom:16px;right:16px}#photo-tool{flex-direction:column}.round{cursor:pointer;color:#f4f1e8;width:44px;height:44px;font-weight:900;font-family:var(--font);background:#1d2a33e0;border:0;border-radius:50%;place-items:center;display:grid;box-shadow:0 6px 18px #14283c33}.round:hover{transform:scale(1.06)}#btn-sound .off,#btn-sound.off .on{display:none}#btn-sound.off .off{display:block}#minimap{left:var(--mm-left);bottom:var(--mm-bottom);width:var(--mm);height:var(--mm);cursor:pointer;z-index:3;border-radius:50%;position:fixed;box-shadow:0 6px 24px #14283c4d}#poi-card{left:calc(var(--mm-left) + var(--mm) * 1.3 + 16px);bottom:56px}@media (max-width:900px){:root{--mm:170px}}#btn-full.on{color:#ffd27a}.ferry-marker{pointer-events:auto;cursor:pointer;font:800 13px var(--font);color:#fff;background:#2a5a9e;border:0;border-radius:999px;align-items:center;gap:6px;padding:5px 12px 5px 8px;display:flex;position:absolute;top:0;left:0;box-shadow:0 4px 14px #0000004d}.ferry-marker:hover{background:#3570c4}.ferry-marker .ic{font-size:16px}.ferry-marker:after{content:"";border:6px solid #0000;border-top-color:#2a5a9e;border-bottom:0;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)}#schedule{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:5;background:#14232d80;justify-content:center;align-items:center;display:none;position:fixed;inset:0}#schedule.show{display:flex}#schedule .sheet{max-width:min(900px,94vw);max-height:86vh;padding:18px 22px;position:relative;overflow:auto}#schedule h2{margin:0;font-size:22px}#schedule .sub{color:var(--accent);margin-bottom:8px;font-size:13px;font-weight:700}#schedule .close{cursor:pointer;color:var(--ink);background:0 0;border:0;font-size:24px;position:absolute;top:8px;right:10px}#schedule .period{margin:6px 0 10px;font-size:14px}#schedule .tbl{overflow-x:auto}#schedule table{border-collapse:collapse;font-size:13px}#schedule th{text-align:left;white-space:nowrap;padding:6px 10px 6px 0}#schedule td{text-align:center;font-variant-numeric:tabular-nums;border-radius:6px;padding:6px 7px}#schedule td.past{opacity:.4}#schedule td.next{color:#fff;background:#2a5a9e;font-weight:800}#schedule td.tp{color:#b0743a;font-size:11px;font-weight:700}#schedule td.none{opacity:.3}#schedule .notes{margin:12px 0 6px;padding-left:18px;font-size:13px}#schedule .src{opacity:.75;margin:6px 0 0;font-size:12px}#schedule a{color:#2a5a9e}#hud-hint{transition:opacity .25s;top:auto;bottom:14px}body.toasting #hud-hint,body.no-hint #hud-hint{opacity:0}body.no-info #hud-pois,body.no-info #labels .label,body.no-info #poi-card,body.no-info .ferry-marker{display:none!important}#photo-tool{align-items:center;gap:10px;display:flex;position:relative}.photo-stack{left:calc(var(--mm-left) + var(--mm) * .8);bottom:calc(var(--mm) * .11);width:calc(var(--mm) * .36);height:calc(var(--mm) * .24);cursor:pointer;z-index:2;position:fixed}.photo-stack.empty{display:none}.photo-stack img{object-fit:cover;width:100%;height:100%;transform:rotate(calc(var(--i) * -13deg + 6deg)) translate(calc(var(--i) * 2px), calc(var(--i) * -3px));border-radius:2px;transition:transform .2s;position:absolute;inset:0;box-shadow:0 3px 10px #141e2859}.photo-stack:hover img{transform:rotate(calc(var(--i) * -20deg + 8deg)) translate(calc(var(--i) * 6px), calc(var(--i) * -6px))}.photo-stack img.fresh{animation:.6s ease-out print-in}@keyframes print-in{0%{opacity:0;transform:translateY(-40px)rotate(-14deg)scale(1.3)}}.photo-stack .count{background:var(--ink);color:#fff;z-index:2;border-radius:999px;padding:1px 6px;font-size:10px;font-weight:800;position:absolute;bottom:-6px;right:-6px}body.photo-mode #btn-camera{background:var(--accent);color:#fff}body.photo-mode #hud-clock,body.photo-mode #photo-stack,body.photo-mode #hud-pois,body.photo-mode #hud-hint,body.photo-mode #minimap,body.photo-mode #labels,body.photo-mode #poi-card,body.photo-mode .ferry-marker,body.photo-mode #buttons>button{display:none!important}body.photo-mode #buttons{z-index:31}#viewfinder{pointer-events:none;z-index:30;display:none;position:fixed;inset:0}body.photo-mode #viewfinder{animation:.25s ease-out vf-in;display:block}@keyframes vf-in{0%{opacity:0;transform:scale(1.04)}}.vf-window{aspect-ratio:1720/1000;border-radius:18px;width:min(80vw,130.72vh);position:absolute;top:47%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 200vmax #0a0a0aeb,inset 0 0 70px 10px #0000008c,inset 0 0 0 2px #0009}.vf-window .c{border:2px solid #ffffffbf;width:34px;height:34px;position:absolute}.vf-window .tl{border-bottom:0;border-right:0;top:9%;left:7%}.vf-window .tr{border-bottom:0;border-left:0;top:9%;right:7%}.vf-window .bl{border-top:0;border-right:0;bottom:9%;left:7%}.vf-window .br{border-top:0;border-left:0;bottom:9%;right:7%}.vf-focus{border:1.5px solid #fff9;border-radius:50%;width:76px;height:76px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.vf-focus span{background:linear-gradient(#0000 49%,#ffffff8c 49% 51%,#0000 51%);border:1px solid #ffffff73;border-radius:50%;width:30px;height:30px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.vf-info{color:#9fe07a;text-shadow:0 0 6px #8ce664b3;letter-spacing:2px;justify-content:center;gap:22px;font:700 15px Courier New,monospace;display:flex;position:absolute;bottom:-34px;left:0;right:0}.vf-info .vf-count:before{content:"▸ "}.vf-words{color:#9fe07a;text-shadow:0 0 6px #8ce664b3;letter-spacing:1px;white-space:nowrap;font:700 15px Courier New,monospace;position:absolute;top:-34px;right:0}.vf-lenses{pointer-events:auto;flex-direction:column;gap:16px;display:flex;position:absolute;top:50%;right:calc(100% + 22px);transform:translateY(-50%)}.vf-lenses button{cursor:pointer;color:#ffffff61;background:0 0;border:0;align-items:center;gap:10px;padding:0;transition:color .15s;display:flex}.vf-lenses button:hover{color:#ffffffb3}.vf-lenses button.on{color:#fff;filter:drop-shadow(0 0 6px #ffffff59)}.vf-lenses svg{fill:currentColor;width:42px;height:42px}.vf-lenses kbd.k{margin:0;font-size:14px}.vf-hint{text-align:center;color:#ffffff8c;font-size:13px;position:absolute;bottom:18px;left:0;right:0}.vf-shutter{opacity:0;background:#000;position:absolute;inset:0}.vf-shutter.go{animation:.42s ease-out shutter}@keyframes shutter{0%,22%{opacity:1}to{opacity:0}}.vf-button{pointer-events:auto;cursor:pointer;background:radial-gradient(circle,#e8e2d4 0 45%,#b9b2a2 46%);border:4px solid #d9d4c8;border-radius:50%;width:64px;height:64px;position:absolute;top:50%;right:28px;transform:translateY(-50%);box-shadow:0 4px 16px #0009}.vf-button:active{transform:translateY(-50%)scale(.92)}#album{z-index:40;background:#0f1418b8;place-items:center;display:none;position:fixed;inset:0}#album.open{display:grid}.album-sheet{background:#f4efe3;border-radius:14px;width:min(920px,94vw);max-height:88vh;padding:22px 24px;position:relative;overflow:auto;box-shadow:0 20px 60px #00000073}.album-sheet h2{margin:0 0 4px}.album-sheet .sub{opacity:.7;margin-bottom:14px}.album-sheet .close{cursor:pointer;color:var(--ink);background:0 0;border:0;font-size:28px;position:absolute;top:8px;right:12px}.album-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;display:grid}.print{cursor:pointer;font:600 11px var(--font);color:var(--ink);text-align:left;background:#fffdf8;border:0;flex-direction:column;gap:4px;padding:0;display:flex;box-shadow:0 2px 8px #281e1433}.print img{aspect-ratio:3/2;object-fit:cover;width:100%;display:block}.print span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.print:hover{transform:rotate(-1deg)scale(1.03)}.print.blank{cursor:default;aspect-ratio:3/2;opacity:.18;background:repeating-linear-gradient(90deg,#3a2b20 0 8px,#2c2019 8px 16px)}.print.blank:hover{transform:none}.album-actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.album-actions button,.view-actions button,.view-actions a{font:700 13px var(--font);cursor:pointer;background:var(--ink);color:#fff;border:0;border-radius:999px;padding:8px 16px;text-decoration:none}.album-actions button.confirm{background:var(--accent)}.album-view{background:#0a0c0ee6;place-items:center;display:none;position:absolute;inset:0}#album.viewing .album-view{display:grid}#album.viewing .album-sheet{display:none}.album-view figure{margin:0;transform:rotate(-.6deg);box-shadow:0 20px 60px #0009}.album-view img{aspect-ratio:3/2;width:min(84vw,111vh);display:block}.album-view .prev,.album-view .next{color:#fff;cursor:pointer;background:0 0;border:0;padding:10px 20px;font-size:56px;position:absolute;top:50%;transform:translateY(-50%)}.album-view .prev{left:10px}.album-view .next{right:10px}.view-actions{gap:10px;display:flex;position:absolute;bottom:22px}.view-actions .download{color:var(--ink);background:#f4efe3}.view-actions .onmap{color:var(--ink);background:#f4efe3;text-decoration:none}.view-actions .onmap[hidden]{display:none}#mobile-note{z-index:1000;color:#fff;text-align:center;font:700 20px/1.45 var(--font);background:#1d2a33;justify-content:center;align-items:center;padding:28px;display:none;position:fixed;inset:0}#mobile-note>div{max-width:420px}@media (pointer:coarse) and (hover:none){#mobile-note{display:flex}}#perf-notice{z-index:60;color:#eef2f4;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#14181ce0;border-radius:12px;max-width:min(560px,100vw - 32px);padding:12px 40px 12px 16px;font:14px/1.4 system-ui,sans-serif;position:fixed;top:14px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #00000059}#perf-notice .head{font-weight:600}#perf-notice .close{color:#cfd8dc;cursor:pointer;background:0 0;border:0;width:28px;height:28px;font-size:22px;position:absolute;top:6px;right:8px}#perf-notice .more{color:#ffd27a;font:inherit;cursor:pointer;background:0 0;border:0;margin-top:6px;padding:0;text-decoration:underline}#perf-notice .steps{margin:8px 0 0;padding-left:20px;display:none}#perf-notice.open .steps{display:block}#perf-notice .steps li{margin:4px 0}#perf-notice code{-webkit-user-select:all;user-select:all;background:#ffffff1f;border-radius:4px;padding:0 4px}#perf-notice .gpu{opacity:.6;margin-top:8px;font-size:12px}#pause-screen{z-index:70;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);cursor:pointer;color:#f2f4f5;text-shadow:0 2px 12px #0006;background:#0e141a73;flex-direction:column;justify-content:center;align-items:center;gap:10px;font-family:system-ui,sans-serif;display:none;position:fixed;inset:0}#pause-screen.show{display:flex}#pause-screen .t{letter-spacing:1px;font-size:44px;font-weight:800}#pause-screen .s{opacity:.85;font-size:15px}kbd.k{box-sizing:border-box;min-width:1.55em;height:1.55em;line-height:1.45em;font:700 .88em var(--font);text-align:center;vertical-align:.05em;color:inherit;background:#ffffff14;border:1px solid #ffffff73;border-radius:.42em;margin:-.2em .08em;padding:0 .38em;display:inline-block}#controls-hint{z-index:40;color:#eef2f4;opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#14181cc7;border-radius:16px;flex-direction:column;align-items:center;gap:10px;padding:14px 20px 12px;font:14px/1.3 system-ui,sans-serif;transition:opacity .5s,transform .5s;display:flex;position:fixed;bottom:96px;left:50%;transform:translate(-50%,16px)}#controls-hint.show{opacity:1;transform:translate(-50%)}#controls-hint .keys{grid-template-rows:repeat(2,46px);grid-template-columns:repeat(3,46px);gap:6px;display:grid}#controls-hint kbd{color:#1d2328;background:#f2f0ea;border-radius:9px;justify-content:center;align-items:center;font:700 22px system-ui,sans-serif;transition:transform 80ms,box-shadow 80ms,background .2s;display:flex;box-shadow:0 4px #a9a49a,0 6px 12px #00000059}#controls-hint kbd.hit{background:#ffd27a;transform:translateY(3px);box-shadow:0 1px #a9a49a}#controls-hint .cap{opacity:.85}#hud-clock,#hud-pois,#minimap,#buttons,.photo-stack,#labels{transition:opacity .8s}body.cine #hud-clock,body.cine #hud-pois,body.cine #hud-hint,body.cine #toast,body.cine #minimap,body.cine #buttons,body.cine .photo-stack,body.cine #labels{opacity:0;pointer-events:none}
