:root{--font-serif:"Cormorant Garamond", "Shippori Mincho", Georgia, serif;--font-jp:"Shippori Mincho", "Cormorant Garamond", serif;--font-sans:"DM Sans", -apple-system, BlinkMacSystemFont, sans-serif;--ui-bg:#1218206b;--ui-border:#fffaf029;--ui-text:#fcf8f0eb;--ui-muted:#ebe4d79e;--ui-accent:#e6b86a;--ui-vermilion:#c8462f;--ui-glow:#e6b86a40}#ui-root[data-tod=dawn]{--ui-bg:#261c2c70;--ui-border:#f8d2dc38;--ui-accent:#f3b5c1;--ui-glow:#f3b5c147}#ui-root[data-tod=day]{--ui-bg:#121e2a61;--ui-border:#fff3;--ui-accent:#e8cfa0;--ui-glow:#e8cfa03d}#ui-root[data-tod=golden]{--ui-bg:#2a161475;--ui-border:#ffc3873d;--ui-accent:#f4a259;--ui-glow:#f4a25952}#ui-root[data-tod=dusk]{--ui-bg:#14162a80;--ui-border:#afb9f533;--ui-accent:#b8c5ff;--ui-glow:#b8c5ff42}#ui-root[data-tod=night]{--ui-bg:#0a0f1a8f;--ui-border:#91b4e12e;--ui-accent:#f0be6e;--ui-glow:#f0be6e47}*{box-sizing:border-box;-webkit-user-select:none;user-select:none;margin:0;padding:0}html,body{width:100%;height:100%;font-family:var(--font-sans);color:var(--ui-text);-webkit-font-smoothing:antialiased;background:#0d131c;overflow:hidden}#canvas-container{z-index:1;width:100vw;height:100vh;position:fixed;inset:0}#canvas-container canvas{width:100%;height:100%;display:block}.hidden{display:none!important}.loading-screen{z-index:100;background:radial-gradient(circle at 50% 42%,#1d2636 0%,#0d121b 100%);justify-content:center;align-items:center;transition:opacity .9s cubic-bezier(.22,1,.36,1),visibility .9s;display:flex;position:fixed;inset:0}.loading-screen.fade-out{opacity:0;visibility:hidden;pointer-events:none}.loading-inner{flex-direction:column;align-items:center;gap:10px;display:flex}.enso-loader{margin-bottom:6px}.enso-ring{transform-origin:60px 60px;animation:3.6s cubic-bezier(.45,.05,.55,.95) infinite ensoSpin}@keyframes ensoSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-jp{font-family:var(--font-jp);letter-spacing:.32em;color:#f3ece0;margin-left:.32em;font-size:1.55rem}.loading-en{font-family:var(--font-serif);letter-spacing:.36em;color:#ebe0cdad;margin-left:.36em;font-size:.85rem}.loading-bar-track{background:#ffffff1f;border-radius:2px;width:180px;height:2px;margin-top:8px;overflow:hidden}.loading-bar-fill{background:linear-gradient(90deg,#c8462f,#e6b86a);width:15%;height:100%;transition:width .25s ease-out}.loading-status{letter-spacing:.16em;text-transform:uppercase;color:#ebe0cd80;margin-top:4px;font-size:.68rem}.intro-card{z-index:25;text-align:center;pointer-events:none;opacity:0;transition:opacity 1.4s,transform 1.8s cubic-bezier(.22,1,.36,1);position:fixed;top:44%;left:50%;transform:translate(-50%,-50%)}.intro-card.visible{opacity:1;transform:translate(-50%,-54%)}.intro-seal{color:#f8dfd8;width:28px;height:28px;font-family:var(--font-jp);background:#c8462f38;border:1px solid #c8462fd9;border-radius:4px;justify-content:center;align-items:center;margin-bottom:12px;font-size:.78rem;display:inline-flex}.intro-title-jp{font-family:var(--font-jp);letter-spacing:.35em;color:#fffaf0;text-shadow:0 4px 28px #00000073;margin-left:.35em;font-size:2.7rem;font-weight:500}.intro-divider{background:linear-gradient(90deg,#0000,#fff5e1b3,#0000);width:72px;height:1px;margin:10px auto}.intro-title-en{font-family:var(--font-serif);letter-spacing:.42em;color:#fff8eae6;margin-left:.42em;font-size:1.05rem;font-weight:500}.intro-subtitle{font-family:var(--font-serif);color:#fff4e1ad;margin-top:6px;font-size:.92rem;font-style:italic}.ui-root{z-index:10;pointer-events:none;transition:opacity .65s cubic-bezier(.22,1,.36,1);position:fixed;inset:0}.ui-root.ui-idle{opacity:0}.ui-root.ui-hidden{opacity:0;pointer-events:none!important}.glass-panel{pointer-events:auto;background:var(--ui-bg);-webkit-backdrop-filter:blur(14px)saturate(135%);border:1px solid var(--ui-border);transition:background .6s,border-color .6s,transform .3s,opacity .4s;box-shadow:0 8px 32px #00000038,inset 0 1px #ffffff14}.ui-header{border-radius:12px;max-width:calc(100vw - 240px);padding:9px 15px 9px 11px;position:absolute;top:20px;left:22px}.brand-row{align-items:center;gap:10px;display:flex}.brand-seal{width:27px;height:27px;font-family:var(--font-jp);color:#fff6ee;background:#c8462fd1;border:1px solid #ffd7be59;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;display:flex;box-shadow:0 2px 10px #c8462f59}.brand-text{min-width:0}.brand-title{white-space:nowrap;text-overflow:ellipsis;align-items:baseline;gap:6px;display:flex;overflow:hidden}.brand-jp{font-family:var(--font-jp);letter-spacing:.12em;color:var(--ui-text);font-size:.94rem;font-weight:500}.brand-dot{color:var(--ui-accent);opacity:.8}.brand-en{font-family:var(--font-serif);letter-spacing:.05em;color:var(--ui-text);font-size:1rem;font-weight:500}.brand-line{background:linear-gradient(90deg, var(--ui-accent), transparent);opacity:.45;width:100%;height:1px;margin:3px 0}.brand-sub{letter-spacing:.18em;text-transform:uppercase;color:var(--ui-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.56rem;overflow:hidden}.ui-bottom-dock{pointer-events:auto;flex-direction:column;align-items:center;gap:8px;max-width:calc(100vw - 24px);display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.poi-bar{scrollbar-width:none;opacity:0;visibility:hidden;pointer-events:none;border-radius:999px;align-items:center;max-width:100%;padding:5px 8px;transition:opacity .24s,transform .24s cubic-bezier(.22,1,.36,1),visibility .24s;display:flex;overflow-x:auto;transform:translateY(8px)scale(.97)}.ui-bottom-dock.places-open .poi-bar,.ui-bottom-dock:hover .poi-bar{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)scale(1)}.poi-bar::-webkit-scrollbar{display:none}.poi-chips{align-items:center;gap:4px;display:flex}.poi-chip{color:var(--ui-muted);font-family:var(--font-sans);letter-spacing:.06em;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:999px;padding:4px 10px;font-size:.65rem;transition:all .2s}.poi-chip:hover{color:var(--ui-text);background:#ffffff14}.poi-chip.active{color:#fffaf0;border-color:var(--ui-accent);box-shadow:0 0 12px var(--ui-glow);background:#ffffff24}.tod-bar{border-radius:999px;align-items:center;gap:8px;max-width:100%;padding:5px 10px;display:flex}.icon-btn{border:1px solid var(--ui-border);color:var(--ui-text);cursor:pointer;background:#ffffff12;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;transition:all .2s;display:flex}.icon-btn:hover{border-color:var(--ui-accent);background:#ffffff29}.icon-btn.active{background:var(--ui-accent);color:#16181f;border-color:var(--ui-accent)}.tod-presets{align-items:center;gap:2px;display:flex}.tod-btn{color:var(--ui-muted);cursor:pointer;font-family:var(--font-sans);letter-spacing:.11em;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:5px;padding:4px 9px;font-size:.6rem;font-weight:500;transition:all .2s;display:flex}.tod-btn:hover{color:var(--ui-text);background:#ffffff12}.tod-btn.active{color:#fffcf5;border-color:var(--ui-accent);box-shadow:0 0 12px var(--ui-glow);background:#ffffff24}.tod-slider-wrap{border-left:1px solid var(--ui-border);align-items:center;padding-left:6px;display:flex}.tod-slider{appearance:none;cursor:pointer;background:linear-gradient(90deg,#d89aa8 0%,#88c4e8 26%,#f29b52 55%,#636fa8 76%,#253759 100%);border-radius:3px;outline:none;width:78px;height:3px}.tod-slider::-webkit-slider-thumb{appearance:none;border:2px solid var(--ui-accent);cursor:pointer;background:#fff8eb;border-radius:50%;width:11px;height:11px;transition:transform .15s;box-shadow:0 0 8px #00000080}.tod-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.places-trigger-btn{border:1px solid var(--ui-border);color:var(--ui-text);font-family:var(--font-sans);letter-spacing:.06em;cursor:pointer;background:#ffffff0f;border-radius:999px;flex-shrink:0;align-items:center;gap:5px;margin-left:2px;padding:4px 10px;font-size:.62rem;font-weight:500;transition:all .2s;display:flex}.places-trigger-btn:hover,.ui-bottom-dock.places-open .places-trigger-btn{border-color:var(--ui-accent);color:#fffcf5;background:#ffffff26}.ui-tools{border-radius:999px;align-items:center;gap:3px;padding:4px 6px;display:flex;position:absolute;top:20px;right:22px}.tool-btn{color:var(--ui-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;transition:all .2s;display:flex;position:relative}.tool-btn:hover{color:var(--ui-text);background:#ffffff1a}.tool-btn.active{color:var(--ui-accent)}.tool-btn[data-tooltip]:after{content:attr(data-tooltip);border:1px solid var(--ui-border);color:#fffaf0;font-family:var(--font-sans);letter-spacing:.08em;white-space:nowrap;pointer-events:none;opacity:0;z-index:30;background:#0c121ae0;border-radius:6px;padding:4px 8px;font-size:.58rem;transition:opacity .16s,transform .16s;position:absolute;top:calc(100% + 8px);right:0;transform:translateY(-3px)}.tool-btn[data-tooltip]:hover:after{opacity:1;transform:translateY(0)}.photo-exit-pill{z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff8ebb8;font-family:var(--font-sans);letter-spacing:.18em;cursor:pointer;background:#0f141c59;border:1px solid #ffffff24;border-radius:999px;padding:6px 14px;font-size:.6rem;transition:opacity .4s,background .2s;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.photo-exit-pill:hover{color:#fff;background:#0f141ca6}@media (max-width:720px){.ui-header{border-radius:10px;max-width:calc(100vw - 184px);padding:6px 10px 6px 8px;top:12px;left:12px}.brand-row{gap:7px}.brand-seal{width:22px;height:22px;font-size:.72rem}.brand-jp{letter-spacing:.06em;font-size:.76rem}.brand-en{font-size:.8rem}.brand-sub{letter-spacing:.12em;font-size:.46rem}.ui-tools{gap:2px;padding:3px 5px;top:12px;right:12px}.tool-btn{width:26px;height:26px}.ui-bottom-dock{gap:6px;width:calc(100vw - 20px);bottom:12px}.poi-bar{max-width:100%;padding:4px 6px}.poi-chip{padding:3px 7px;font-size:.58rem}.tod-bar{justify-content:center;gap:4px;width:auto;max-width:100%;padding:4px 8px}.tod-btn{padding:4px 6px}.tod-btn span{display:none}.tod-slider-wrap{padding-left:4px}.tod-slider{width:58px}.places-trigger-btn{padding:4px 8px;font-size:.58rem}}
