:root{--ink:#ece3d2;--ink-dim:#b9ad97;--ink-faint:#8b816f;--paper:#171611;--paper-2:#211f19;--line:#e8dcc42b;--line-strong:#e8dcc457;--accent:#d9b98a;--accent-dim:#a8895f;--accent-soft:#d9b98a24;--danger:#c67a63;--ok:#9db487;--shadow:0 24px 80px #0000008c;--serif:"Hiragino Mincho ProN", "Yu Mincho", "Noto Serif JP", "Iowan Old Style", Georgia, "Times New Roman", serif;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Yu Gothic", "Noto Sans JP", system-ui, sans-serif;--text-scale:1;--radius:3px;--ease:cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--sans);font-size:calc(15px * var(--text-scale));-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background:#14130f;margin:0;overflow:hidden}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:1px solid var(--accent);outline-offset:3px}#ui-root>*{pointer-events:none}#ui-root .interactive,#ui-root button,#ui-root a,#ui-root input,#ui-root select,#ui-root label,#ui-root .modal,#ui-root .screen.is-active{pointer-events:auto}.screen{opacity:0;transition:opacity .6s var(--ease);z-index:6;display:none;position:absolute;inset:0}.screen.is-active{opacity:1;display:flex}.screen.is-leaving{opacity:0}.loading-screen{background:radial-gradient(at 50% 118%,#5a341b8c 0%,#0000 62%),radial-gradient(at 50% -18%,#1f2d40b3 0%,#0000 58%),#12110e;flex-direction:column;justify-content:center;align-items:center;gap:1.5rem}.loading-mark{font-family:var(--serif);letter-spacing:.26em;color:#ecdcbc;text-shadow:0 2px 40px #0000008c;padding-left:.26em;font-size:clamp(3rem,10vw,5.4rem)}.loading-sub{letter-spacing:.34em;text-transform:uppercase;color:var(--ink-faint);margin-top:-.8rem;font-size:.72rem}.loading-track{background:var(--line);width:min(340px,64vw);height:1px;position:relative;overflow:hidden}.loading-bar{background:linear-gradient(90deg, var(--accent-dim), var(--accent));width:0%;transition:width .26s linear;position:absolute;inset:0 auto 0 0;box-shadow:0 0 18px #d9b98a66}.loading-meta{letter-spacing:.08em;width:min(340px,64vw);color:var(--ink-faint);justify-content:space-between;gap:1rem;font-size:.7rem;display:flex}.loading-note{text-align:center;max-width:38rem;font-family:var(--serif);color:var(--ink-dim);padding:0 1.5rem;font-size:.92rem;line-height:1.7}.loading-error{color:var(--danger);font-family:var(--sans);font-size:.85rem}.title-screen{background:linear-gradient(#0a090799 0%,#0a09070f 38%,#0a09072e 70%,#0a0907c7 100%);flex-direction:column;justify-content:space-between;align-items:stretch;padding:clamp(1.4rem,4vw,3.4rem)}.title-top{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.title-kicker{letter-spacing:.28em;text-transform:uppercase;color:var(--ink-dim);font-size:.68rem}.title-place{font-family:var(--serif);letter-spacing:.08em;color:#f0e2c6;text-shadow:0 4px 46px #0000009e;margin:.55rem 0 0;font-size:clamp(3.4rem,8vw,6.4rem);font-weight:400;line-height:1}.title-place .title-kanji{letter-spacing:.12em;padding-left:.12em;display:block}.title-place small{font-family:var(--serif);letter-spacing:.28em;text-transform:uppercase;color:var(--ink-dim);margin-top:.85rem;font-size:clamp(.68rem,1.2vw,.82rem);display:block}.title-date{font-family:var(--serif);letter-spacing:.16em;color:#f3e7cf;white-space:nowrap;text-align:right;text-shadow:0 1px 14px #00000059;border-bottom:1px solid #d9b98a8c;min-width:9rem;padding-bottom:.55rem;font-size:clamp(1.4rem,2.6vw,2.1rem)}.title-bottom{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:2rem;display:flex}.title-menu{flex-direction:column;align-items:flex-start;gap:.15rem;min-width:15rem;display:flex}.title-menu .menu-button{appearance:none;text-transform:uppercase;letter-spacing:.22em;font-size:.92rem;font-family:var(--serif);letter-spacing:.14em;color:var(--ink-dim);transition:color .22s ease, transform .22s var(--ease);text-align:left;background:0 0;border:0;margin-left:-1.55rem;padding:.52rem 0 .52rem 1.55rem;font-size:1.18rem;position:relative}.title-menu .menu-button:before{content:"";background:var(--accent);transform-origin:0;width:.9rem;height:1px;transition:transform .26s var(--ease);position:absolute;top:50%;left:0;transform:scaleX(0)}.title-menu .menu-button:hover,.title-menu .menu-button:focus-visible{color:var(--ink);transform:translate(.2rem)}.title-menu .menu-button:hover:before,.title-menu .menu-button:focus-visible:before{transform:scaleX(1)}.title-menu .menu-button.primary{color:#f6ead2;margin-left:0;padding-left:0;font-size:1.25rem}.title-menu .menu-button.primary:before{background:var(--accent);width:100%;top:auto;bottom:.3rem;left:0;transform:scaleX(1)}.title-menu .menu-button[disabled]{opacity:.35;cursor:default}.title-side{flex-direction:column;align-items:flex-end;gap:1.1rem;max-width:32rem;display:flex}.title-note{text-align:right;max-width:26rem;font-family:var(--serif);color:var(--ink-dim);font-size:.84rem;line-height:1.75}.title-note em{color:var(--accent);font-style:normal}.title-controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.9rem;display:flex}.segmented{border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f0e0b80;display:inline-flex;overflow:hidden}.segmented button{appearance:none;border:0;border-right:1px solid var(--line);letter-spacing:.1em;color:var(--ink-faint);background:0 0;padding:.38rem .7rem;font-size:.72rem;transition:background .18s,color .18s}.segmented button:last-child{border-right:0}.segmented button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}.segmented button:hover{color:var(--ink)}.title-foot{letter-spacing:.12em;color:var(--ink-faint);text-transform:uppercase;gap:1.2rem;font-size:.65rem;display:flex}.title-foot button{color:inherit;letter-spacing:inherit;text-transform:inherit;background:0 0;border:0;padding:0}.title-foot button:hover{color:var(--ink)}.hud{z-index:5;opacity:0;transition:opacity .7s var(--ease);position:absolute;inset:0}.hud.is-active{opacity:1}.reticle{width:5px;height:5px;transition:transform .18s var(--ease), background .18s ease;background:#faf0dec7;border-radius:50%;margin:-2.5px 0 0 -2.5px;position:absolute;top:50%;left:50%;box-shadow:0 0 0 1px #00000040,0 0 12px #00000059}.reticle.is-hot{background:var(--accent);transform:scale(2.1)}.hud-location{font-family:var(--serif);letter-spacing:.08em;text-shadow:0 1px 18px #000000b3;position:absolute;top:clamp(1.1rem,3vw,2.2rem);left:clamp(1.1rem,3vw,2.4rem)}.hud-location .ja{color:#f2e7d2;font-size:1.05rem;display:block}.hud-location .other{font-family:var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-dim);margin-top:.2rem;font-size:.65rem;display:block}.hud-actions{gap:.35rem;display:flex;position:absolute;top:clamp(1.1rem,3vw,2.2rem);right:clamp(1.1rem,3vw,2.4rem)}.hud-button{appearance:none;border:1px solid var(--line);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);border-radius:var(--radius);color:var(--ink-dim);letter-spacing:.13em;text-transform:uppercase;background:#100f0c7a;padding:.45rem .62rem;font-size:.64rem;transition:color .18s,border-color .18s,background .18s}.hud-button:hover,.hud-button:focus-visible{color:var(--ink);border-color:var(--line-strong);background:#181611ad}.hud-button .key{color:var(--ink-faint);margin-left:.35rem;font-size:.58rem}.compass{width:7rem;height:1.6rem;color:var(--ink-dim);letter-spacing:.28em;text-shadow:0 1px 8px #000c;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:.62rem;display:flex;position:absolute;top:clamp(1.2rem,3.2vw,2.4rem);left:50%;transform:translate(-50%)}.compass:before,.compass:after{content:"";background:var(--line);width:1.4rem;height:1px;position:absolute;top:50%}.compass:before{left:0}.compass:after{right:0}.compass .needle{background:var(--accent);width:1px;height:.45rem;position:absolute;top:.1rem}.interact-prompt{opacity:0;transition:opacity .2s ease, transform .2s var(--ease);text-shadow:0 1px 12px #000000a6;flex-direction:column;align-items:center;gap:.5rem;display:flex;position:absolute;bottom:clamp(4.2rem,12vh,8rem);left:50%;transform:translate(-50%)}.interact-prompt.is-visible{opacity:1}.interact-prompt .glyph{place-items:center;width:2.1rem;height:2.1rem;display:grid}.interact-prompt .label{font-family:var(--serif);color:#f3e8d4;letter-spacing:.05em;text-align:center;max-width:26rem;font-size:.95rem}.interact-prompt .hint{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim);font-size:.6rem}.zone-toast{text-align:center;opacity:0;transition:opacity .9s var(--ease), transform .9s var(--ease);text-shadow:0 2px 22px #000000d9;position:absolute;top:22vh;left:50%;transform:translate(-50%,-8px)}.zone-toast.is-visible{opacity:1;transform:translate(-50%)}.zone-toast .ja{font-family:var(--serif);letter-spacing:.22em;color:#f4e9d4;font-size:clamp(1.6rem,3.6vw,2.4rem);display:block}.zone-toast .other{letter-spacing:.28em;text-transform:uppercase;color:var(--ink-dim);margin-top:.35rem;font-size:.64rem;display:block}.opening-hint{z-index:5;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-dim);text-shadow:0 1px 12px #000c;opacity:0;pointer-events:none;font-size:.62rem;transition:opacity .7s;position:absolute;bottom:2.4rem;left:50%;transform:translate(-50%)}.opening-hint.is-visible{opacity:.72}.hud-hint{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);opacity:.8;white-space:nowrap;font-size:.6rem;position:absolute;bottom:clamp(1rem,3vw,1.8rem);left:50%;transform:translate(-50%)}.fade{opacity:0;pointer-events:none;z-index:8;background:#0a0907;transition:opacity .42s;position:absolute;inset:0}.fade.is-visible{opacity:1}.modal-backdrop{z-index:10;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;visibility:hidden;pointer-events:none;background:#08080657;justify-content:center;align-items:center;padding:clamp(1rem,3vw,2.4rem);transition:opacity .26s,visibility .26s;display:flex;position:absolute;inset:0}.modal-backdrop.is-open{opacity:1;visibility:visible;pointer-events:auto}.modal{border:1px solid var(--line-strong);border-radius:var(--radius);width:min(960px,96vw);max-height:min(86vh,900px);box-shadow:var(--shadow);transition:transform .32s var(--ease);background:linear-gradient(#201e18f7,#161511fa);flex-direction:column;display:flex;position:relative;overflow:hidden;transform:translateY(12px)scale(.992)}.modal-backdrop.is-open .modal{transform:translateY(0)scale(1)}.modal.is-wide{width:min(1180px,97vw)}.modal.is-narrow{width:min(620px,96vw)}.modal-head{border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.3rem clamp(1.2rem,3vw,2rem) 1rem;display:flex}.modal-head .eyebrow{letter-spacing:.28em;text-transform:uppercase;color:var(--ink-faint);font-size:.6rem}.modal-head h2{font-family:var(--serif);letter-spacing:.09em;color:#f1e6d1;margin:.3rem 0 0;font-size:clamp(1.35rem,2.6vw,1.9rem);font-weight:400}.modal-head .sub{color:var(--ink-dim);margin-top:.4rem;font-size:.76rem;line-height:1.5}.modal-close{appearance:none;border:1px solid var(--line);border-radius:var(--radius);color:var(--ink-dim);background:0 0;flex:none;place-items:center;width:2rem;height:2rem;font-size:.95rem;display:grid}.modal-close:hover{color:var(--ink);border-color:var(--line-strong)}.modal-body{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;padding:clamp(1.1rem,2.6vw,1.8rem) clamp(1.2rem,3vw,2rem);overflow:auto}.modal-foot{border-top:1px solid var(--line);color:var(--ink-faint);flex:none;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem clamp(1.2rem,3vw,2rem);font-size:.68rem;display:flex}.modal.narrow-panel .modal-body{padding-top:1.4rem}.teleport-intro{font-family:var(--serif);color:var(--ink-dim);max-width:60ch;margin:0 0 1rem;font-size:.86rem;line-height:1.7}.teleport-grid{grid-template-columns:repeat(auto-fill,minmax(275px,1fr));gap:.6rem;display:grid}.zone-card{border:1px solid var(--line);border-radius:var(--radius);background:#ffffff04;overflow:hidden}.zone-card-head{cursor:pointer;-webkit-user-select:none;user-select:none;text-align:left;background:0 0;border:0;align-items:center;gap:.7rem;width:100%;padding:.7rem .8rem;display:flex}.zone-card-head:hover{background:#ffffff06}.zone-thumb{border:1px solid var(--line);background:#1b1a16;flex:none;width:3.1rem;height:2.1rem;display:block}.zone-card-title{flex:1;min-width:0}.zone-card-title .ja{font-family:var(--serif);letter-spacing:.06em;color:var(--ink);font-size:.98rem;display:block}.zone-card-title .other{letter-spacing:.1em;color:var(--ink-faint);white-space:nowrap;text-overflow:ellipsis;margin-top:.15rem;font-size:.64rem;display:block;overflow:hidden}.zone-card-title .meta{letter-spacing:.06em;color:var(--ink-faint);text-transform:uppercase;white-space:nowrap;flex-wrap:nowrap;gap:.45rem;margin-top:.28rem;font-size:.55rem;display:flex;overflow:hidden}.zone-card-title .meta .visited{color:var(--ok)}.zone-card-title .meta .unvisited{opacity:.55}.zone-card .chevron{border-right:1px solid var(--ink-faint);border-bottom:1px solid var(--ink-faint);width:.9rem;height:.9rem;transition:transform .22s var(--ease);flex:none;margin-right:.2rem;transform:rotate(45deg)}.zone-card.is-open .chevron{transform:rotate(225deg)}.subzone-list{border-top:1px solid var(--line);padding:.35rem;display:none}.zone-card.is-open .subzone-list{display:block}.subzone-button{appearance:none;width:100%;color:var(--ink-dim);text-align:left;background:0 0;border:0;border-radius:2px;align-items:center;gap:.55rem;padding:.48rem .55rem;font-size:.78rem;line-height:1.35;display:flex}.subzone-button:hover,.subzone-button:focus-visible{background:var(--accent-soft);color:var(--ink)}.subzone-button .dot{background:var(--accent-dim);border-radius:50%;flex:none;width:4px;height:4px}.subzone-button .count{color:var(--ink-faint);letter-spacing:.05em;margin-left:auto;font-size:.62rem}.teleport-back{margin-bottom:1rem}.button{appearance:none;border:1px solid var(--line-strong);color:var(--ink);border-radius:var(--radius);letter-spacing:.12em;text-transform:uppercase;background:#ffffff08;padding:.5rem .9rem;font-size:.7rem;transition:background .18s,border-color .18s}.button:hover{background:var(--accent-soft);border-color:var(--accent-dim)}.button.primary{background:var(--accent);color:#201c14;border-color:var(--accent);font-weight:600}.button.primary:hover{background:#e6c99a}.button.ghost{color:var(--ink-dim);background:0 0;border-color:#0000}.button.ghost:hover{color:var(--ink);background:#ffffff0a}.button.small{padding:.32rem .55rem;font-size:.6rem}.button[disabled]{opacity:.4;cursor:default}.map-layout{grid-template-columns:minmax(0,1fr) 18rem;align-items:start;gap:1.4rem;display:grid}.map-frame{border:1px solid var(--line);background:radial-gradient(circle at 30% 20%,#c8aa7814,#0000 60%),#1b1913;height:min(66vh,640px);min-height:360px;position:relative;overflow:hidden}.map-frame svg{width:100%;height:100%;display:block}.map-side h3{font-family:var(--serif);letter-spacing:.08em;margin:0 0 .5rem;font-size:1rem;font-weight:400}.map-side p{color:var(--ink-dim);margin:0 0 1rem;font-size:.76rem;line-height:1.65}.map-legend{color:var(--ink-dim);flex-direction:column;gap:.4rem;font-size:.68rem;display:flex}.map-legend span{align-items:center;gap:.5rem;display:flex}.map-legend i{border:1px solid var(--line-strong);width:.8rem;height:.8rem;display:inline-block}.map-scale{letter-spacing:.1em;color:var(--ink-faint);margin-top:1.2rem;font-size:.62rem}.fragment-layout{grid-template-columns:minmax(0,1.35fr) minmax(0,.95fr);gap:clamp(1.2rem,3vw,2.4rem);display:grid}.fragment-type{letter-spacing:.2em;text-transform:uppercase;color:var(--accent);align-items:center;gap:.55rem;font-size:.6rem;display:flex}.fragment-type .glyph{width:1.2rem;height:1.2rem}.fragment-title{font-family:var(--serif);letter-spacing:.05em;color:#f5ead6;margin:.55rem 0 .2rem;font-size:clamp(1.5rem,3.3vw,2.2rem);font-weight:400;line-height:1.25}.fragment-sub{letter-spacing:.06em;color:var(--ink-faint);font-size:.72rem}.fragment-text{font-family:var(--serif);color:#e3d9c6;max-width:46ch;margin:1.2rem 0 0;font-size:clamp(.98rem,1.5vw,1.08rem);line-height:1.9}.fragment-text p{margin:0 0 1rem}.fragment-lang-tabs{gap:.3rem;margin-top:1.4rem;display:flex}.fragment-source{border-left:1px solid var(--line);flex-direction:column;gap:1rem;padding-left:clamp(1rem,2.4vw,1.6rem);display:flex}.source-plate{border:1px solid var(--line);background:radial-gradient(circle at 20% 0,#d9b98a1a,#0000 55%),#1d1b16;flex-direction:column;justify-content:space-between;gap:1rem;min-height:11rem;padding:1rem;display:flex}.source-plate .mark{font-family:var(--serif);letter-spacing:.2em;color:var(--accent);font-size:1.7rem}.source-plate .caption{color:var(--ink-dim);font-size:.68rem;line-height:1.6}.evidence-seal{border:1px solid var(--line-strong);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);border-radius:2px;align-items:center;gap:.55rem;padding:.32rem .5rem;font-size:.6rem;display:inline-flex}.evidence-seal b{font-family:var(--serif);color:var(--accent);font-size:.95rem;font-weight:400}.evidence-seal[data-level=D]{border-color:#aa82be80}.evidence-seal[data-level=E]{border-color:#c67a638c}.source-list{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.source-list li{color:var(--ink-dim);padding-left:.8rem;font-size:.68rem;line-height:1.5;position:relative}.source-list li:before{content:"";background:var(--accent-dim);border-radius:50%;width:3px;height:3px;position:absolute;top:.5em;left:0}.source-list .src-title{color:var(--ink);display:block}.source-list .src-note{color:var(--ink-faint);font-size:.62rem;display:block}.fragment-status{color:var(--ink-faint);border-top:1px solid var(--line);padding-top:.8rem;font-size:.62rem;line-height:1.5}.fragment-status .warn{color:var(--danger)}.notebook-layout{grid-template-columns:15rem minmax(0,1fr);align-items:start;gap:1.4rem;display:grid}.notebook-groups{flex-direction:column;gap:.15rem;display:flex}.notebook-group-button{appearance:none;color:var(--ink-dim);text-align:left;background:0 0;border:0;border-radius:2px;justify-content:space-between;gap:.5rem;padding:.5rem .6rem;font-size:.76rem;display:flex}.notebook-group-button:hover,.notebook-group-button[aria-current=true]{background:var(--accent-soft);color:var(--ink)}.notebook-group-button .n{color:var(--ink-faint);font-size:.64rem}.notebook-entries{flex-direction:column;gap:.45rem;display:flex}.notebook-entry{border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;text-align:left;width:100%;color:inherit;background:#ffffff04;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.65rem .75rem;display:grid}.notebook-entry:hover,.notebook-entry:focus-visible{background:#ffffff09}.notebook-entry .glyph{width:1.3rem;height:1.3rem}.notebook-entry .t{font-family:var(--serif);color:var(--ink);letter-spacing:.03em;font-size:.9rem;display:block}.notebook-entry .s{color:var(--ink-faint);margin-top:.15rem;font-size:.62rem;display:block}.notebook-entry .seal{letter-spacing:.1em;color:var(--accent);border:1px solid var(--line);padding:.18rem .32rem;font-size:.58rem}.notebook-empty,.empty-state{text-align:center;font-family:var(--serif);color:var(--ink-dim);padding:2.4rem 1rem;font-size:.9rem;line-height:1.8}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.4rem 2rem;display:grid}.settings-section h3{border-bottom:1px solid var(--line);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 .7rem;padding-bottom:.45rem;font-size:.62rem;font-weight:500}.setting-row{color:var(--ink-dim);justify-content:space-between;align-items:center;gap:1rem;padding:.45rem 0;font-size:.78rem;display:flex}.setting-row>span{flex:1}.setting-row input[type=range]{width:8rem;accent-color:var(--accent)}.setting-row select{border:1px solid var(--line);background:#1c1a15;border-radius:2px;padding:.28rem .4rem;font-size:.72rem}.setting-row input[type=checkbox]{accent-color:var(--accent);width:1rem;height:1rem}.setting-note{color:var(--ink-faint);margin:.4rem 0 0;font-size:.64rem;line-height:1.55}.pause-menu{flex-direction:column;gap:.2rem;max-width:22rem;margin:0 auto;display:flex}.pause-menu .button{border:0;border-bottom:1px solid var(--line);text-align:left;font-family:var(--serif);letter-spacing:.1em;text-transform:none;color:var(--ink-dim);background:0 0;border-radius:0;padding:.8rem .2rem;font-size:1rem}.pause-menu .button:hover{color:var(--ink);background:0 0}.credits-body{font-family:var(--serif);color:var(--ink-dim);font-size:.86rem;line-height:1.8}.credits-body h3{font-family:var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);margin:1.4rem 0 .4rem;font-size:.62rem;font-weight:500}.credits-body p{margin:0 0 .6rem}.credits-body a{color:var(--accent);text-decoration:none}.credits-body a:hover{text-decoration:underline}.credits-body .small{color:var(--ink-faint);font-size:.7rem}.photo-hud{z-index:7;pointer-events:none;display:none;position:absolute;inset:0}.photo-hud.is-active{display:block}.photo-bar{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius);pointer-events:auto;background:#0e0d0b99;align-items:center;gap:.4rem;padding:.45rem;display:flex;position:absolute;bottom:1.2rem;left:50%;transform:translate(-50%)}.photo-bar .button{border:0;padding:.4rem .55rem;font-size:.6rem}.photo-bar .sep{background:var(--line);width:1px;height:1.4rem;margin:0 .2rem}.photo-bar label{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-dim);align-items:center;gap:.4rem;padding:0 .4rem;font-size:.6rem;display:flex}.photo-bar input[type=range]{width:5rem;accent-color:var(--accent)}.photo-top{letter-spacing:.22em;text-transform:uppercase;color:var(--ink-dim);text-shadow:0 1px 8px #000000b3;font-size:.62rem;position:absolute;top:1.2rem;left:1.4rem}.photo-grid{background-image:linear-gradient(90deg,#0000 calc(33.333% - .5px),#ffffff38 33.333%,#0000 calc(33.333% + .5px)),linear-gradient(90deg,#0000 calc(66.666% - .5px),#ffffff38 66.666%,#0000 calc(66.666% + .5px)),linear-gradient(#0000 calc(33.333% - .5px),#ffffff38 33.333%,#0000 calc(33.333% + .5px)),linear-gradient(#0000 calc(66.666% - .5px),#ffffff38 66.666%,#0000 calc(66.666% + .5px));display:none;position:absolute;inset:0}.photo-grid.is-on{display:block}.debug-panel{z-index:12;color:#b9d6b4;pointer-events:auto;background:#080907db;border:1px solid #8cc88c52;min-width:15rem;padding:.7rem .8rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.66rem;line-height:1.55;display:none;position:absolute;bottom:1rem;left:1rem}.debug-panel.is-visible{display:block}.debug-panel h3{color:#daead5;letter-spacing:.16em;text-transform:uppercase;margin:0 0 .4rem;font-size:.62rem}.debug-panel .row{justify-content:space-between;gap:1rem;display:flex}.debug-panel .hint{color:#7f997b;white-space:pre-line;margin-top:.4rem;font-size:.58rem}.debug-overlay-label{z-index:12;color:#d9b98a;letter-spacing:.06em;background:#080907cc;border:1px solid #dcb4644d;padding:.35rem .5rem;font-family:ui-monospace,monospace;font-size:.58rem;display:none;position:absolute;bottom:1rem;right:1rem}.debug-overlay-label.is-visible{display:block}.toast-stack{z-index:14;pointer-events:none;flex-direction:column;gap:.35rem;display:flex;position:absolute;bottom:2.2rem;left:50%;transform:translate(-50%)}.toast{border:1px solid var(--line);color:var(--ink-dim);letter-spacing:.04em;border-radius:var(--radius);animation:toast-in .26s var(--ease);background:#0e0d0bd1;padding:.4rem .7rem;font-size:.68rem}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.touch-notice{z-index:50;text-align:center;background:#14130f;place-items:center;padding:2rem;display:none;position:fixed;inset:0}.touch-notice.is-visible{display:grid}.touch-notice .box{max-width:30rem;font-family:var(--serif);color:var(--ink-dim);line-height:1.8}.touch-notice h2{letter-spacing:.12em;color:var(--ink);font-weight:400}body.high-contrast{--ink:#fff;--ink-dim:#e8e2d4;--ink-faint:#c9c1b1;--line:#ffffff59;--line-strong:#fff9;--accent:#ffd89a}body.reduce-motion *,body.reduce-motion :before,body.reduce-motion :after{transition-duration:.001ms!important;animation-duration:.001ms!important}@media (max-width:900px){.map-layout,.fragment-layout{grid-template-columns:1fr}.fragment-source{border-left:0;border-top:1px solid var(--line);padding-top:1.2rem;padding-left:0}.notebook-layout{grid-template-columns:1fr}.notebook-groups{flex-flow:wrap}}@media (max-width:620px){.title-bottom{flex-direction:column;align-items:flex-start}.title-side{align-items:flex-start}.title-note{text-align:left}.title-controls{justify-content:flex-start}.hud-actions{flex-wrap:wrap;justify-content:flex-end;max-width:50vw}.hud-button .key{display:none}}.title-screen .segmented{background:#12100c6b;border-color:#d9b98a6b;border-radius:999px}.title-screen .segmented button{color:var(--ink-dim);border-right-color:#d9b98a38;padding:.42rem .95rem}.title-screen .segmented button[aria-pressed=true]{color:#f6ead2;background:#d9b98a29;border-radius:999px;box-shadow:inset 0 0 0 1px #d9b98abf}.ar-panel{z-index:11;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0c0b09b8;justify-content:center;align-items:center;padding:1rem;display:none;position:absolute;inset:0}.ar-panel.is-open{display:flex}#ui-root>.ar-panel.is-open{pointer-events:auto}.ar-panel-box{border:1px solid var(--line-strong);border-radius:var(--radius);width:min(26rem,100%);box-shadow:var(--shadow);background:#171611f0;padding:1.6rem 1.4rem 1.3rem}.ar-panel-eyebrow{color:var(--accent);letter-spacing:.18em;font-size:.66rem}.ar-panel-title{font-family:var(--serif);letter-spacing:.06em;color:var(--ink);margin:.5rem 0 .7rem;font-size:1.3rem;font-weight:400}.ar-panel-message{font-family:var(--serif);color:var(--ink-dim);margin:0 0 1.3rem;line-height:1.7}.ar-panel-buttons{flex-wrap:wrap;gap:.6rem;display:flex}.ar-panel-buttons .button{flex:8rem;min-height:2.75rem}.ar-bar{top:max(.75rem, env(safe-area-inset-top));z-index:7;pointer-events:none;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.5rem;display:none;position:absolute;left:1rem;right:1rem}.ar-bar.is-active{display:flex}.ar-status{border:1px solid var(--line);border-left:2px solid var(--ok);border-radius:var(--radius);max-width:60%;color:var(--ink-dim);background:#0e0d0bb3;padding:.4rem .65rem;font-size:.72rem;line-height:1.45}.ar-status.is-weak{border-left-color:var(--danger)}.ar-actions{pointer-events:auto;gap:.4rem;display:flex}.ar-button{appearance:none;border:1px solid var(--line-strong);border-radius:var(--radius);min-width:2.75rem;min-height:2.75rem;color:var(--ink);letter-spacing:.08em;background:#0e0d0bb3;padding:0 .8rem;font-size:.72rem}.ar-hint{left:50%;bottom:max(1.6rem, env(safe-area-inset-bottom));z-index:7;border:1px solid var(--line);border-radius:var(--radius);max-width:calc(100% - 2rem);color:var(--ink);font-family:var(--serif);text-align:center;opacity:0;transition:opacity .4s var(--ease);pointer-events:none;background:#0e0d0bc7;padding:.5rem .85rem;font-size:.8rem;line-height:1.5;position:absolute;transform:translate(-50%)}.ar-hint.is-visible{opacity:1}body.ar-active .hud-actions,body.ar-active .hud-hint,body.ar-active .interact-prompt .hint{display:none}body.ar-active .hud-location{top:4.2rem}.title-screen .title-ar-note{max-width:22rem}.touch-stick-zone{left:max(.5rem, env(safe-area-inset-left));bottom:max(.75rem, env(safe-area-inset-bottom));z-index:6;touch-action:none;-webkit-user-select:none;user-select:none;width:11.5rem;height:11.5rem;display:none;position:absolute}.touch-stick-zone.is-active{display:block}#ui-root>.touch-stick-zone.is-active{pointer-events:auto}.touch-stick-zone .back{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border:1px solid #d9b98a8c;box-shadow:0 0 0 4px #0e0d0b47,inset 0 2px 14px #0000008c,0 10px 30px #00000059;background:radial-gradient(circle at 50% 10%, var(--accent) 0 2px, transparent 2.6px), radial-gradient(circle at 50% 90%, var(--accent) 0 2px, transparent 2.6px), radial-gradient(circle at 10% 50%, var(--accent) 0 2px, transparent 2.6px), radial-gradient(circle at 90% 50%, var(--accent) 0 2px, transparent 2.6px), radial-gradient(circle at 50% 50%, #d9b98a00 54%, #d9b98a29 55%, #d9b98a00 57%), radial-gradient(circle at 50% 38%, #28241c9e, #0e0d0bc7)!important}.touch-stick-zone .front{transition:box-shadow .16s var(--ease);border:1px solid #fff0d2b3;box-shadow:0 6px 16px #00000073,inset 0 -3px 6px #503c1e73;background:radial-gradient(circle at 38% 30%,#fff4de8c,#fff4de00 42%),radial-gradient(circle at 50% 55%,#e2c596,#a8895f 78%)!important}.touch-stick-zone.is-brisk .front{box-shadow:0 0 0 5px #d9b98a47,0 6px 18px #00000073,inset 0 -3px 6px #503c1e73}.look-mode-panel .ar-panel-box{width:min(28rem,100%)}.look-choices{gap:.7rem;margin-bottom:1.1rem;display:grid}.look-choice{appearance:none;border:1px solid var(--line-strong);border-radius:var(--radius);width:100%;min-height:4.6rem;color:var(--ink);text-align:left;background:#ffffff08;align-items:center;gap:.9rem;padding:.8rem .9rem;transition:background .18s,border-color .18s;display:flex}.look-choice:hover,.look-choice:focus-visible,.look-choice:active{background:var(--accent-soft);border-color:var(--accent)}.look-choice:disabled{opacity:.45}.look-choice-icon{border:1px solid #d9b98a73;border-radius:50%;flex:0 0 2.8rem;place-items:center;height:2.8rem;display:grid}.look-choice-icon svg{fill:none;width:1.9rem;height:1.9rem;stroke:var(--accent);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.look-choice-text{flex-direction:column;gap:.25rem;display:flex}.look-choice-text strong{font-family:var(--serif);letter-spacing:.04em;font-size:1rem;font-weight:400}.look-choice-text span{color:var(--ink-dim);font-size:.76rem;line-height:1.45}body.touch-play .hud-button .key,body.touch-play [data-testid=hud-photo]{display:none}body.touch-play .hud-button{min-height:2.75rem}body.touch-play .hud-hint{bottom:calc(max(.75rem, env(safe-area-inset-bottom)) + 12rem);white-space:normal;text-align:center;letter-spacing:.12em;color:var(--ink-dim);text-shadow:0 1px 6px #000000b3;line-height:1.7;left:1rem;right:1rem;transform:none}.rotate-notice{z-index:60;color:var(--ink);text-align:center;pointer-events:auto;background:radial-gradient(circle at 50% 40%,#24211a,#12110d 70%);flex-direction:column;justify-content:center;align-items:center;gap:.6rem;padding:2rem;display:none;position:fixed;inset:0}@media (pointer:coarse) and (orientation:portrait){.rotate-notice{display:flex}}.rotate-notice-icon svg{fill:none;width:6rem;height:6rem;stroke:var(--accent);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.rotate-notice-icon rect:first-child{opacity:.35}.rotate-notice-icon .landscape{fill:#d9b98a1f;transform-origin:30px 48px;animation:rotate-hint 2.6s var(--ease) infinite}@keyframes rotate-hint{0%,20%{opacity:0;transform:rotate(-90deg)}45%,85%{opacity:1;transform:rotate(0)}to{opacity:0;transform:rotate(0)}}.rotate-notice h2{font-family:var(--serif);letter-spacing:.08em;margin:.4rem 0 0;font-size:1.25rem;font-weight:400}.rotate-notice p{max-width:18rem;color:var(--ink-dim);font-family:var(--serif);margin:0;line-height:1.7}@media (pointer:coarse) and (orientation:landscape) and (max-height:520px){.ar-panel{padding:.6rem}.ar-panel-box{max-height:calc(100dvh - 1.2rem);padding:.9rem 1.2rem 1rem;overflow-y:auto}.look-mode-panel .ar-panel-box{width:min(42rem,100%)}.ar-panel-title{margin:.3rem 0 .4rem;font-size:1.1rem}.ar-panel-message{margin-bottom:.8rem;line-height:1.5}.look-choices{grid-template-columns:1fr 1fr;margin-bottom:.8rem}.touch-stick-zone{width:10rem;height:10rem}body.touch-play .hud-hint{bottom:max(1rem, env(safe-area-inset-bottom));left:11rem;right:1rem}.title-screen{padding:max(.8rem, env(safe-area-inset-top)) max(1.4rem, env(safe-area-inset-right)) .8rem max(1.4rem, env(safe-area-inset-left))}.title-kicker{font-size:.56rem}.title-place{margin-top:.25rem;font-size:2.2rem}.title-place small{letter-spacing:.2em;margin-top:.35rem;font-size:.56rem}.title-date{min-width:6rem;padding-bottom:.3rem;font-size:1.15rem}.title-bottom{flex-wrap:nowrap;align-items:flex-end;gap:1.2rem}.title-menu{gap:0;min-width:0}.title-menu .menu-button{padding-top:.28rem;padding-bottom:.28rem;font-size:.9rem}.title-menu .menu-button.primary{font-size:1rem}.title-side{gap:.45rem;max-width:58%}.title-note{font-size:.68rem;line-height:1.5}.title-screen .segmented button{padding:.28rem .7rem}.title-foot{font-size:.55rem}}
