:root{--bg-deep: #070e1b;--panel-bg: rgba(12, 21, 38, .84);--panel-border: rgba(148, 163, 184, .24);--gold-accent: #facc15;--pink-mimi: #f472b6;--text-main: #f8fafc;--text-sub: #cbd5e1;--text-muted: #94a3b8;font-family:Hiragino Kaku Gothic ProN,Noto Sans JP,system-ui,-apple-system,sans-serif;color:var(--text-main);background-color:var(--bg-deep)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;height:100dvh;overflow:hidden;-webkit-user-select:none;user-select:none;overscroll-behavior:none}.app-shell{display:flex;flex-direction:column;width:100vw;height:100vh;height:100dvh;padding-bottom:env(safe-area-inset-bottom,0px);background:var(--bg-deep)}.top-bar{position:relative;height:54px;display:flex;align-items:center;justify-content:space-between;gap:10px;box-sizing:content-box;padding:env(safe-area-inset-top,0px) 14px 0;background:linear-gradient(90deg,#0a1222f5,#111827f0);border-bottom:1px solid var(--panel-border);z-index:45}.brand-block{display:flex;align-items:center;gap:10px;min-width:0}.brand-text{min-width:0}.brand-mimi-icon{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid var(--pink-mimi);box-shadow:0 0 10px #f472b680;flex-shrink:0}.brand-subtitle{font-size:10px;color:#f9a8d4;font-weight:700;letter-spacing:.03em}.brand-title{font-size:14.5px;font-weight:800;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-bar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.hamburger-menu-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:10px;border:1px solid rgba(148,163,184,.45);background:#1e293beb;color:#fff;font-size:12.5px;font-weight:800;cursor:pointer;transition:background .15s ease,border-color .15s ease}.hamburger-menu-btn:hover,.hamburger-menu-btn.open{background:linear-gradient(135deg,#f59e0b,#ea580c);border-color:#fde047}.hamburger-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0206178c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:48}.hamburger-menu-panel{position:absolute;top:calc(100% + 8px);right:12px;width:min(360px,calc(100vw - 24px));max-height:calc(100dvh - 76px);overflow-y:auto;background:#0c1526f5;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(250,204,21,.45);border-radius:16px;padding:14px;box-shadow:0 18px 42px #000000b8;z-index:50;display:flex;flex-direction:column;gap:12px}.hamburger-section{display:flex;flex-direction:column;gap:8px}.hamburger-section-title{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:800;color:#fde047}.hamburger-region-list{display:flex;flex-direction:column;gap:6px}.hamburger-region-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 11px;border-radius:10px;border:1px solid rgba(148,163,184,.28);background:#1e293bbf;color:#f8fafc;text-align:left;cursor:pointer;transition:all .14s ease}.hamburger-region-item:hover{background:#334155eb;border-color:#fde047}.hamburger-region-item.active{background:linear-gradient(135deg,#f59e0b47,#ea580c47);border-color:#facc15}.hamburger-region-main{display:flex;flex-direction:column;gap:2px}.hamburger-region-main strong{font-size:13px;color:#fff}.hamburger-region-main small{font-size:10.5px;color:var(--text-sub)}.hamburger-active-mark{font-size:10px;font-weight:800;padding:2px 7px;border-radius:999px;background:#f59e0b;color:#0f172a;white-space:nowrap}.hamburger-block-list{display:grid;grid-template-columns:1fr 1fr}.hamburger-block-list .hamburger-region-item{flex-wrap:wrap}.hamburger-region-item:disabled{opacity:.5;cursor:not-allowed}.hamburger-region-item:disabled:hover{background:#1e293bbf;border-color:#94a3b847}.hamburger-soon-mark{font-size:10px;font-weight:800;padding:2px 7px;border-radius:999px;background:#94a3b859;color:#e2e8f0;white-space:nowrap}.block-loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:flex;align-items:center;justify-content:center;background:#0206179e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.block-loading-card{display:flex;align-items:center;gap:10px;padding:14px 20px;border-radius:14px;border:1px solid rgba(250,204,21,.45);background:#0c1526f5;color:#f8fafc;font-size:14px;font-weight:700}.block-loading-spinner{width:18px;height:18px;border-radius:50%;border:3px solid rgba(250,204,21,.3);border-top-color:#facc15;animation:block-loading-spin .8s linear infinite}@keyframes block-loading-spin{to{transform:rotate(360deg)}}.hamburger-divider{height:1px;background:#94a3b840}.hamburger-rally-card{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:11px;background:#0f172ad9;border:1px solid rgba(250,204,21,.3)}.hamburger-rally-row{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--text-sub)}.rally-numbers{font-size:12px;white-space:nowrap}.rally-numbers strong{font-size:15px;color:#fef08a}.hamburger-progress-track{width:100%;height:8px;background:#334155d9;border-radius:999px;overflow:hidden}.rally-progress-fill{height:100%;background:linear-gradient(90deg,#facc15,#f97316);transition:width .3s ease}.hamburger-rally-actions{display:flex;flex-direction:column;gap:7px;margin-top:2px}.catalog-open-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:8px 12px;border-radius:9px;border:1px solid rgba(250,204,21,.55);background:#eab30838;color:#fef08a;font-size:12.5px;font-weight:800;cursor:pointer}.catalog-open-btn:hover{background:#eab3085c}.hamburger-reset-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:7px 12px;border-radius:9px;border:1px solid rgba(248,113,113,.4);background:#7f1d1d40;color:#fca5a5;font-size:11.5px;font-weight:700;cursor:pointer}.hamburger-reset-btn:hover{background:#b91c1c66;color:#fff}.main-stage{position:relative;flex:1;width:100%;overflow:hidden}.diorama-stage-container,.diorama-webgl-mount{width:100%;height:100%;position:relative}.diorama-labels-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:10}.diorama-spot-label{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;border:2px solid #f59e0b;background:#0a1222eb;color:#fff;font-size:13.5px;font-weight:800;letter-spacing:.01em;white-space:nowrap;cursor:pointer;box-shadow:0 4px 12px #000000a6;text-shadow:0 1px 2px rgba(0,0,0,.8);transition:transform .12s ease,background .12s ease}.diorama-spot-label:hover,.diorama-spot-label.selected{transform:translate(-50%,-112%) scale(1.12);background:#1e293bfa;z-index:15}.spot-label-dot{width:9px;height:9px;border-radius:50%}.spot-label-star{color:#facc15;font-size:13px}.diorama-landmark-label{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;padding:3px 10px;border-radius:7px;background:#020617c7;border:1px dashed rgba(148,163,184,.52);font-size:13px;font-weight:700;color:#f1f5f9;text-shadow:0 1px 3px rgba(0,0,0,.85);white-space:nowrap}.diorama-landmark-label.place-imp-1{font-size:15px;font-weight:800;padding:4px 12px}.diorama-landmark-label.landmark-trench{color:#7dd3fc;border-color:#38bdf873}.diorama-landmark-label span{font-size:11px;color:#cbd5e1}.left-explorer-panel{position:absolute;top:12px;left:12px;width:296px;max-height:calc(100% - 52px);display:flex;flex-direction:column;gap:9px;padding:12px;background:var(--panel-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--panel-border);border-radius:16px;box-shadow:0 12px 32px #00000080;z-index:20}.tour-buttons-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.tour-action-btn{display:flex;align-items:center;gap:7px;padding:8px 9px;border-radius:10px;border:1px solid rgba(148,163,184,.32);background:#1e293bd9;color:#fff;text-align:left;cursor:pointer;transition:all .15s ease}.tour-action-btn strong{display:block;font-size:11.5px}.tour-action-btn small{display:block;font-size:9.5px;color:var(--text-sub)}.tour-action-btn.model-route:hover,.tour-action-btn.model-route.active{background:linear-gradient(135deg,#0284c7,#2563eb);border-color:#7dd3fc}.tour-action-btn.chrono-route:hover,.tour-action-btn.chrono-route.active{background:linear-gradient(135deg,#9333ea,#db2777);border-color:#f9a8d4}.era-filter-pills{display:flex;flex-wrap:wrap;gap:5px}.era-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px;border:1px solid rgba(148,163,184,.35);background:#0f172ab8;color:var(--text-sub);font-size:11px;font-weight:700;cursor:pointer}.era-pill.active{color:#fff;box-shadow:0 0 8px #ffffff2e}.era-dot{width:7px;height:7px;border-radius:50%}.spot-search-row{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:9px;color:var(--text-muted)}.spot-search-input{width:100%;padding:6px 10px 6px 28px;border-radius:8px;border:1px solid rgba(148,163,184,.3);background:#0f172ad9;color:#fff;font-size:12px}.spot-scroll-list{flex:1;min-height:150px;max-height:340px;overflow-y:auto;display:flex;flex-direction:column;gap:5px;padding-right:3px}.spot-list-item{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:10px;border:1px solid rgba(148,163,184,.16);background:#0f172aad;color:#f8fafc;text-align:left;cursor:pointer;transition:all .12s ease}.spot-list-item:hover{background:#1e293beb}.spot-list-item.selected{background:#334155f2;border-color:#fde047}.spot-item-badge{font-size:10px;font-weight:800;color:#fff;padding:2px 6px;border-radius:6px;white-space:nowrap}.spot-item-main{flex:1;min-width:0}.spot-item-name{font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spot-item-sub{font-size:10px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spot-block-badge{display:inline-block;margin-right:5px;padding:0 5px;border-radius:6px;border:1px solid rgba(148,163,184,.55);font-size:9px;font-weight:800;line-height:1.5;color:#cbd5e1;background:#47556999;white-space:nowrap}.spot-item-stamp{font-size:13px;color:#64748b}.spot-item-stamp.visited{color:#facc15}.data-attribution-box{font-size:10px;color:var(--text-muted);border-top:1px solid rgba(148,163,184,.18);padding-top:6px;line-height:1.4}.mimi-dock{position:absolute;top:12px;right:12px;width:376px;max-height:calc(100% - 242px);overflow-y:auto;background:var(--panel-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(244,114,182,.35);border-radius:16px;padding:12px;box-shadow:0 12px 32px #0000008c;z-index:20;display:flex;flex-direction:column;gap:10px}.spot-illustration-wrap{width:100%;flex-shrink:0;border-radius:11px;overflow:hidden;border:1px solid rgba(148,163,184,.28)}.spot-illustration-svg{display:block;width:100%;height:auto}.spot-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.spot-era-pill{display:inline-block;font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:999px;border:1px solid;margin-bottom:4px}.spot-main-title{font-size:16px;font-weight:800;line-height:1.25}.spot-reading{font-size:11px;font-weight:500;color:var(--text-sub)}.spot-meta-line{display:flex;gap:12px;font-size:11.5px;color:var(--text-sub);margin-top:3px}.spot-meta-line span{display:inline-flex;align-items:center;gap:3px}.spot-nav-buttons{display:flex;gap:4px}.spot-step-btn{width:28px;height:28px;border-radius:8px;border:1px solid rgba(148,163,184,.35);background:#1e293bcc;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.tour-progress-banner{background:linear-gradient(90deg,#db27774d,#7c3aed4d);border:1px solid rgba(244,114,182,.5);padding:5px 10px;border-radius:8px;font-size:11.5px;font-weight:700;color:#fbcfe8}.spot-summary-text{font-size:12.5px;line-height:1.55;color:#e2e8f0}.spot-highlights-list{display:flex;flex-wrap:wrap;gap:5px}.highlight-chip{font-size:10.5px;padding:3px 8px;border-radius:6px;background:#1e293be6;border:1px solid rgba(148,163,184,.25);color:#fde047}.mimi-commentary-box{display:flex;gap:10px;padding:10px;border-radius:12px;background:linear-gradient(135deg,#5007248c,#1e1b4bb8);border:1px solid rgba(244,114,182,.45)}.mimi-avatar-col{display:flex;flex-direction:column;align-items:center;gap:4px}.mimi-avatar-circle{width:56px;height:56px;border-radius:50%;object-fit:cover;border:2px solid #f472b6}.mimi-speaking-ring{box-shadow:0 0 0 4px #f472b673,0 0 14px #f472b6;animation:pulseRing 1.1s infinite ease-in-out}@keyframes pulseRing{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.mimi-avatar-name{font-size:10.5px;font-weight:800;color:#f9a8d4}.mimi-comment-col{flex:1;min-width:0}.mimi-comment-top{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:5px}.mimi-comment-label{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:800;color:#f9a8d4}.mimi-voice-controls{display:flex;align-items:center;gap:5px}.voice-btn{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;border:1px solid #f472b6;background:#db27774d;color:#fff;font-size:10.5px;font-weight:700;cursor:pointer}.voice-btn.playing{background:#db2777}.auto-voice-toggle{padding:3px 7px;border-radius:999px;border:1px solid rgba(148,163,184,.35);background:#0f172ab3;color:var(--text-sub);font-size:10px;cursor:pointer}.auto-voice-toggle.active{border-color:#34d399;color:#6ee7b7}.mimi-comment-body{font-size:12px;line-height:1.55;color:#fdf2f8}.stamp-collect-btn{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;border-radius:10px;border:1px solid #facc15;background:linear-gradient(135deg,#eab308,#ca8a04);color:#0f172a;font-size:12.5px;font-weight:800;cursor:pointer}.stamp-collect-btn.collected{background:#eab3082e;color:#fde047}.bottom-control-hud{position:absolute;bottom:30px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;padding:8px 14px;background:var(--panel-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--panel-border);border-radius:999px;box-shadow:0 10px 28px #0000008c;z-index:20}.dpad-cluster{display:flex;flex-direction:column;align-items:center;gap:2px}.dpad-mid-row{display:flex;gap:2px}.dpad-btn{width:24px;height:22px;border-radius:5px;border:1px solid rgba(148,163,184,.35);background:#1e293bd9;color:#e2e8f0;font-size:10px;cursor:pointer}.dpad-btn:active{background:#f59e0b;color:#0f172a}.hud-buttons-group{display:flex;align-items:center;gap:6px}.hud-pill-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 12px;border-radius:999px;border:1px solid rgba(148,163,184,.32);background:#1e293bd9;color:#f8fafc;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}.hud-pill-btn.active-bird{background:linear-gradient(135deg,#0284c7,#0369a1);border-color:#7dd3fc}.hud-pill-btn.active-ground{background:linear-gradient(135deg,#059669,#047857);border-color:#6ee7b7}.hud-pill-btn.active-boost{background:linear-gradient(135deg,#ea580c,#dc2626);border-color:#fde047;box-shadow:0 0 12px #ea580c8c}.hud-pill-btn.active-cam{background:#7c3aed8c;border-color:#c4b5fd}.hud-divider{width:1px;height:24px;background:#94a3b847}.hud-icon-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border-radius:999px;border:1px solid rgba(148,163,184,.25);background:#0f172ab8;color:var(--text-sub);font-size:11.5px;font-weight:700;cursor:pointer;white-space:nowrap}.hud-icon-btn.active{background:#f59e0b47;border-color:#facc15;color:#fef08a}.minimap-panel{position:absolute;bottom:12px;right:12px;width:232px;padding:8px;background:var(--panel-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--panel-border);border-radius:14px;box-shadow:0 10px 28px #0000008c;z-index:20}.minimap-header{display:flex;justify-content:space-between;font-size:10.5px;color:var(--text-sub);margin-bottom:5px}.minimap-title{font-weight:800;color:#fde047}.minimap-viewport{position:relative;width:216px;height:172px;border-radius:9px;overflow:hidden;border:1px solid rgba(148,163,184,.35);cursor:crosshair}.minimap-canvas{width:100%;height:100%;display:block}.minimap-crosshair-h{position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,#22d3ee26,#f43f5ec7,#22d3ee26);pointer-events:none;z-index:8}.minimap-crosshair-v{position:absolute;top:0;bottom:0;width:1px;background:linear-gradient(180deg,#22d3ee26,#f43f5ec7,#22d3ee26);pointer-events:none;z-index:8}.minimap-dot{position:absolute;width:6px;height:6px;border-radius:50%;transform:translate(-50%,-50%);border:1px solid #0f172a;cursor:pointer;padding:0;z-index:4}.minimap-dot.selected{width:10px;height:10px;border:2px solid #ffffff;z-index:12}.minimap-player-wrap{position:absolute;width:58px;height:58px;transform:translate(-50%,-50%);pointer-events:none;z-index:30}.minimap-player-pulse{position:absolute;top:50%;left:50%;width:24px;height:24px;margin-top:-12px;margin-left:-12px;border-radius:50%;border:2px solid #22d3ee;box-shadow:0 0 8px #22d3eecc;animation:minimapPulseRing 1.6s infinite ease-out}@keyframes minimapPulseRing{0%{transform:scale(.45);opacity:.95}to{transform:scale(1.65);opacity:0}}.minimap-player-beam-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 5px rgba(254,240,138,.85))}.minimap-player-center{position:absolute;top:50%;left:50%;width:11px;height:11px;transform:translate(-50%,-50%);border-radius:50%;background:#f43f5e;border:2px solid #ffffff;box-shadow:0 0 0 1.5px #0f172a,0 0 10px #f43f5e}.minimap-legend{display:flex;justify-content:space-between;font-size:10px;color:var(--text-sub);margin-top:5px}.legend-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:3px}.player-legend-dot{background:#f43f5e;border:1.5px solid #ffffff;box-shadow:0 0 6px #22d3ee}.visited-dot{background:#fde047;box-shadow:0 0 6px #fde047}.unvisited-dot{background:#94a3b8}.discovery-toast{position:absolute;top:16px;left:50%;transform:translate(-50%);display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border-radius:999px;background:linear-gradient(135deg,#eab308,#ea580c);color:#0f172a;font-size:13px;font-weight:800;box-shadow:0 8px 24px #eab30880;z-index:40}dialog.catalog-dialog{margin:auto;width:min(960px,92vw);max-height:84vh;border:1px solid rgba(250,204,21,.45);border-radius:18px;background:#0f172a;color:#f8fafc;padding:0;overscroll-behavior:contain;box-shadow:0 24px 60px #000c}dialog.catalog-dialog::backdrop{background:#020617c2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);overscroll-behavior:contain}.catalog-dialog-inner{padding:20px;display:flex;flex-direction:column;gap:16px;max-height:84vh;overflow-y:auto}.catalog-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid rgba(148,163,184,.25);padding-bottom:12px}.catalog-header-actions{display:flex;gap:8px}.catalog-all-btn,.catalog-close-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 13px;border-radius:9px;border:1px solid rgba(148,163,184,.35);background:#1e293be6;color:#fff;font-size:12px;font-weight:700;cursor:pointer}.catalog-all-btn{border-color:#facc15;color:#fef08a}.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(265px,1fr));gap:12px}.catalog-card{padding:12px;border-radius:12px;border:1px solid rgba(148,163,184,.24);background:#1e293ba6;cursor:pointer;transition:transform .14s ease,border-color .14s ease}.catalog-card:hover{transform:translateY(-2px);border-color:#fde047}.catalog-card.visited{border-color:#facc158c;background:#1e293beb}.catalog-card-top{display:flex;justify-content:space-between;margin-bottom:6px}.catalog-cat-tag{font-size:10px;font-weight:800;padding:2px 7px;border-radius:999px;color:#fff}.catalog-stamp-mark{font-size:11px;font-weight:800;color:#64748b}.catalog-stamp-mark.visited{color:#facc15}.catalog-card h3{font-size:14px;margin-bottom:3px}.catalog-card-meta{font-size:11px;color:var(--text-muted);margin-bottom:6px}.catalog-card-mimi{font-size:11.5px;color:#fbcfe8;line-height:1.45}.catalog-card-links{margin-top:8px;display:flex;justify-content:flex-end}.catalog-gmap-link{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:#38bdf8;text-decoration:none}.catalog-gmap-link:hover{text-decoration:underline}.spot-hero-photo-wrap{position:relative;width:100%;height:164px;min-height:164px;flex-shrink:0;border-radius:12px;overflow:hidden;border:1px solid rgba(148,163,184,.35);background:#0f172a}.spot-hero-photo-img{width:100%;height:100%;object-fit:cover;display:block}.spot-hero-overlay-top{position:absolute;top:8px;left:8px;right:8px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.spot-hero-cat-badge{font-size:10.5px;font-weight:800;padding:3px 9px;border-radius:999px;color:#fff;box-shadow:0 2px 8px #00000073}.spot-hero-visited-badge{font-size:10.5px;font-weight:800;padding:3px 9px;border-radius:999px;background:#0f172ad9;color:#fde047;border:1px solid #facc15}.spot-hero-credit{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;gap:4px;padding:4px 8px;background:linear-gradient(to top,#020617e0,#02061700);color:#cbd5e1;font-size:9.5px;flex-wrap:wrap}.spot-hero-credit a{color:inherit;text-decoration:underline}.spot-gmap-link-row{margin:2px 0}.spot-gmap-link-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:7px 12px;border-radius:9px;border:1px solid rgba(56,189,248,.55);background:#0ea5e929;color:#7dd3fc;font-size:11.5px;font-weight:700;text-decoration:none;transition:background .15s ease,border-color .15s ease}.spot-gmap-link-btn:hover{background:#0ea5e947;border-color:#38bdf8;color:#e0f2fe}.diorama-landmark-label.place-cat-city{border-color:#facc158c;background:#0f172ad1;color:#fef08a}.diorama-landmark-label.place-cat-water{border-color:#38bdf880;color:#7dd3fc}.diorama-landmark-label.place-cat-mountain{border-color:#4ade8080;color:#bbf7d0}.diorama-landmark-label.place-cat-island{border-color:#fb923c8c;color:#fed7aa}.catalog-card-thumb-wrap{width:100%;height:110px;border-radius:8px;overflow:hidden;margin-bottom:8px;background:#020617}.catalog-card-thumb{width:100%;height:100%;object-fit:cover;display:block}.edge-neighbor-hint{position:absolute;top:58px;left:50%;transform:translate(-50%);display:inline-flex;align-items:center;gap:8px;padding:6px 14px 6px 8px;border-radius:999px;border:1px solid rgba(250,204,21,.45);background:#0c1526eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#f8fafc;font-size:12px;font-weight:700;white-space:nowrap;pointer-events:none;z-index:24}.edge-neighbor-dir{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;border-radius:50%;background:#facc15;color:#0f172a;font-size:11px;font-weight:800}.diorama-zoom-controls{position:absolute;bottom:232px;right:14px;display:flex;flex-direction:column;gap:4px;z-index:22}.diorama-zoom-controls:not(.is-open){display:none}.view-controls-toggle{width:44px;height:44px;border-radius:50%;border:1px solid rgba(148,163,184,.5);background:#0f172aeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#f8fafc;font-size:11.5px;font-weight:800;box-shadow:0 5px 14px #00000073;cursor:pointer;touch-action:manipulation;z-index:22}.view-controls-toggle.active{border-color:#fde047;color:#fde047}.zoom-ctrl-btn{width:40px;height:32px;border-radius:9px;border:1px solid rgba(148,163,184,.42);background:#0f172ae6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#f8fafc;font-size:16px;font-weight:800;cursor:pointer;box-shadow:0 5px 14px #00000073;transition:background .15s ease,border-color .15s ease,transform .1s ease;touch-action:manipulation}.zoom-ctrl-btn.zoom-reset{font-size:11.5px;height:26px;color:#fde047}.zoom-ctrl-divider{height:1px;background:#94a3b859;margin:2px}.zoom-ctrl-btn.pitch-preset-btn{font-size:11px;height:28px;color:#cbd5e1}.zoom-ctrl-btn.pitch-preset-btn.active{background:linear-gradient(135deg,#0284c7,#2563eb);border-color:#7dd3fc;color:#fff}.zoom-ctrl-btn.pitch-step-btn{font-size:11px;height:27px;color:#fde047}.zoom-ctrl-btn:hover{background:#1e293bf5;border-color:#fde047}.zoom-ctrl-btn:active{transform:scale(.94)}.left-panel-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:6px;border-bottom:1px solid rgba(148,163,184,.22)}.left-panel-title{font-size:12px;font-weight:800;color:#fde047}.left-panel-collapse-btn{display:inline-flex;align-items:center;gap:2px;padding:4px 9px;border-radius:7px;border:1px solid rgba(148,163,184,.38);background:#1e293be0;color:#e2e8f0;font-size:11px;font-weight:700;cursor:pointer}.left-panel-collapse-btn:hover{border-color:#fde047;color:#fff}.left-panel-expand-btn{position:absolute;top:12px;left:12px;z-index:22;display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:999px;border:1px solid rgba(250,204,21,.55);background:#0c1526eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fef08a;font-size:12.5px;font-weight:800;cursor:pointer;box-shadow:0 8px 24px #0000008c}.left-panel-expand-btn:hover{background:#1e293bfa}.dock-close-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;border:1px solid rgba(148,163,184,.35);background:#0f172acc;color:#cbd5e1;cursor:pointer}.dock-close-btn:hover{color:#fff;border-color:#f87171}.mimi-speech-header{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:6px}.mimi-area-badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:800;color:#fde047}.mimi-speech-text{font-size:12.5px;line-height:1.55;color:#f1f5f9}.dpad-btn{width:30px;height:26px;border-radius:6px;border:1px solid rgba(148,163,184,.4);background:#1e293be6;color:#f8fafc;font-size:12px;font-weight:800;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.map-attribution{position:fixed;left:12px;bottom:4px;max-width:calc(100vw - 24px);padding:2px 8px;font-size:11px;line-height:1.4;color:#e2e8f0;background:#080c1899;border-radius:6px;z-index:12}.map-attribution a{color:#7dd3fc;text-decoration:underline}@media(max-width:960px){.top-bar{height:48px;padding:env(safe-area-inset-top,0px) 10px 0;gap:8px}.brand-subtitle{display:none}.brand-title{font-size:13px}.hamburger-menu-btn{padding:6px 10px;font-size:11.5px}.mimi-dock{width:min(356px,calc(100vw - 20px));max-height:52dvh;top:8px;right:10px}.left-explorer-panel{width:min(310px,calc(100vw - 20px));max-height:62dvh;z-index:35}.map-attribution{bottom:calc(4px + env(safe-area-inset-bottom,0px))}.bottom-control-hud{bottom:calc(44px + env(safe-area-inset-bottom,0px));left:8px;right:8px;transform:none;max-width:calc(100vw - 16px);overflow-x:auto;border-radius:20px;padding:7px 10px;gap:8px;justify-content:flex-start}.minimap-panel{bottom:calc(128px + env(safe-area-inset-bottom,0px));right:8px;width:148px;padding:5px}.minimap-viewport{width:136px;height:108px}.minimap-legend{font-size:8.5px}.diorama-zoom-controls{bottom:calc(128px + env(safe-area-inset-bottom,0px));left:8px;right:auto;display:grid;grid-template-columns:repeat(2,36px);gap:4px}.zoom-ctrl-divider{display:none}.zoom-ctrl-btn{width:36px;height:30px;font-size:13px}}@media(min-width:768px)and (min-height:481px){.view-controls-toggle{position:absolute;left:8px;right:auto;bottom:min(calc(128px + env(safe-area-inset-bottom,0px)),calc(100% - 52px));z-index:37}.diorama-zoom-controls{left:8px;right:auto;bottom:calc(180px + env(safe-area-inset-bottom,0px));grid-template-columns:repeat(2,36px);gap:4px;z-index:36}.diorama-zoom-controls.is-open{display:grid}.zoom-ctrl-divider{display:none}.zoom-ctrl-btn{width:36px;height:30px;font-size:13px}}@media(max-width:767px),(max-height:480px){.app-shell{position:relative}.main-stage{--sheet-open-h: min(55dvh, calc(100% - 240px) )}.brand-block{display:none}.top-bar{position:absolute;top:calc(8px + env(safe-area-inset-top,0px));right:8px;left:auto;height:auto;padding:0;background:transparent;border:none;box-shadow:none;z-index:45}.top-bar-right{flex-shrink:0}.hamburger-menu-btn{flex-shrink:0;height:40px;background:#0f172a8c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-color:#94a3b859}.hamburger-menu-panel{right:0;max-height:calc(100dvh - 64px - env(safe-area-inset-top,0px))}.mimi-dock-sheet{left:0;right:0;top:auto;bottom:calc(64px + env(safe-area-inset-bottom,0px));width:100%;max-height:min(55dvh,100% - 120px);padding:0 12px 12px;border-radius:16px 16px 0 0;overflow-y:auto;transition:max-height .2s ease;z-index:30}.mimi-dock-sheet.is-open{height:var(--sheet-open-h);max-height:var(--sheet-open-h)}.mimi-dock-sheet.is-collapsed{max-height:48px;padding:0;overflow:hidden}.sheet-handle-row{display:flex;align-items:center;gap:6px;height:48px;min-height:48px;flex-shrink:0;margin:0 -12px;padding:0 8px 0 12px;background:var(--panel-bg)}.mimi-dock-sheet.is-collapsed .sheet-handle-row{margin:0}.mimi-dock-sheet.is-open .sheet-handle-row{position:sticky;top:0;z-index:1}.sheet-handle-main{flex:1;min-width:0;height:100%;display:flex;align-items:center;gap:8px;padding:0;border:none;background:none;color:#fff;font-size:13px;font-weight:800;text-align:left;cursor:pointer}.sheet-handle-main .spot-era-pill{margin-bottom:0;flex-shrink:0;white-space:nowrap}.sheet-handle-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-voice-btn{width:36px;height:36px;flex-shrink:0;justify-content:center;padding:0}.sheet-handle-chevron{width:36px;height:36px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border:none;background:none;color:#e2e8f0;cursor:pointer}.mimi-dock-sheet .spot-hero-photo-wrap{height:120px;min-height:120px;flex-shrink:0}.minimap-panel{top:calc(56px + env(safe-area-inset-top,0px));right:8px;bottom:auto;z-index:21}.minimap-panel-compact{width:auto;padding:3px;cursor:pointer}.minimap-panel-compact .minimap-viewport{width:96px;height:72px;cursor:pointer}.minimap-panel.is-enlarged{width:148px;padding:5px}.minimap-panel.is-enlarged .minimap-viewport{width:136px;height:108px;cursor:default}.minimap-hint{margin:4px 0 0;font-size:9px;line-height:1.3;color:#cbd5e1}.minimap-panel.is-enlarged .minimap-title{font-size:9.5px}.minimap-panel.is-enlarged .minimap-coords{display:none}.minimap-shrink-btn{margin-left:auto;padding:0 4px;border:none;background:none;color:#e2e8f0;font-size:14px;line-height:1;cursor:pointer}.view-controls-toggle{position:absolute;left:8px;bottom:calc(216px + env(safe-area-inset-bottom,0px));width:44px;height:44px;border-radius:50%;border:1px solid rgba(148,163,184,.5);background:#0f172aeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#f8fafc;font-size:11.5px;font-weight:800;box-shadow:0 5px 14px #00000073;cursor:pointer;touch-action:manipulation;z-index:22}.view-controls-toggle.active{border-color:#fde047;color:#fde047}.diorama-zoom-controls{display:none;bottom:calc(268px + env(safe-area-inset-bottom,0px));left:8px}.diorama-zoom-controls.is-open{display:grid}.bottom-control-hud{bottom:calc(8px + env(safe-area-inset-bottom,0px));left:8px;right:8px;height:48px;padding:0 10px;gap:8px;border-radius:24px;transform:none;max-width:calc(100vw - 16px);overflow-x:auto;justify-content:flex-start;align-items:center}.bottom-control-hud>*{flex-shrink:0}.dpad-float{position:absolute;left:8px;bottom:calc(120px + env(safe-area-inset-bottom,0px));padding:4px;border-radius:12px;background:#0f172a99;z-index:22}.dpad-btn{width:32px;height:28px;font-size:13px}.hud-pill-btn{padding:6px 10px;font-size:11px}.map-attribution{position:absolute;top:calc(60px + env(safe-area-inset-top,0px));left:8px;bottom:auto;max-width:none;padding:0;background:none;z-index:23}.attribution-toggle{height:32px;padding:0 12px;border-radius:999px;border:1px solid rgba(148,163,184,.45);background:#0f172ae0;color:#e2e8f0;font-size:11.5px;font-weight:700;cursor:pointer}.attribution-popover{position:absolute;top:calc(100% + 6px);left:0;width:min(320px,calc(100vw - 16px));padding:8px 10px;border-radius:10px;border:1px solid var(--panel-border);background:#080c18f2;box-shadow:0 8px 24px #0000008c;font-size:11px;line-height:1.5}.install-hint{position:absolute;left:8px;right:8px;top:calc(112px + env(safe-area-inset-top,0px));bottom:auto;display:flex;align-items:center;gap:8px;padding:8px 8px 8px 12px;border-radius:12px;border:1px solid rgba(250,204,21,.55);background:#0c1526f5;color:#f8fafc;font-size:12px;line-height:1.4;box-shadow:0 8px 24px #0000008c;z-index:31}.install-hint-text{flex:1;min-width:0}.install-hint-action{flex:1;height:36px;border-radius:999px;border:1px solid #fde047;background:#facc1529;color:#fde047;font-size:13px;font-weight:800;cursor:pointer}.install-hint-close{width:36px;height:36px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border:none;background:none;color:#e2e8f0;cursor:pointer}.attribution-popover[hidden]{display:none}.left-explorer-panel{inset:calc(8px + env(safe-area-inset-top,0px)) 8px 8px 8px;width:auto;max-height:none;z-index:36}.left-panel-header{padding-right:98px}.left-panel-expand-btn{top:calc(8px + env(safe-area-inset-top,0px));left:8px}.discovery-toast{top:calc(8px + env(safe-area-inset-top,0px));max-width:calc(100vw - 16px)}}@media(max-width:767px)and (min-height:481px){.main-stage .view-controls-toggle{left:40px;bottom:calc(194px + env(safe-area-inset-bottom,0px))}.main-stage .diorama-zoom-controls{left:24px;bottom:calc(246px + env(safe-area-inset-bottom,0px))}.mimi-dock-sheet.is-open{left:124px;right:0;width:auto}.mimi-dock-sheet .spot-card-header{flex-wrap:wrap}.mimi-dock-sheet .spot-title-block{min-width:0;flex:1 1 140px;overflow-wrap:anywhere}.mimi-dock-sheet .spot-meta-line{flex-wrap:wrap;gap:4px 12px}.mimi-dock-sheet .spot-hero-photo-wrap{max-width:100%}}@media(max-height:480px){.mimi-dock-sheet{max-height:min(78dvh,100% - 64px)}.mimi-dock-sheet.is-open{left:232px;right:0;width:auto;height:auto;max-height:min(78dvh,100% - 64px - 56px)}.main-stage.sheet-open .diorama-zoom-controls{z-index:31}.view-controls-toggle{left:124px;bottom:calc(120px + env(safe-area-inset-bottom,0px))}.diorama-zoom-controls{left:124px;bottom:calc(172px + env(safe-area-inset-bottom,0px))}.diorama-zoom-controls{grid-template-columns:repeat(4,36px)}}.spot-main-title,.spot-reading,.spot-meta-line,.spot-summary-text,.highlight-chip,.mimi-comment-body,.spot-hero-credit,.mimi-area-badge,.mimi-speech-text,.spot-item-name,.spot-item-sub,.catalog-card h3,.catalog-card-meta,.catalog-card-mimi{-webkit-user-select:text;user-select:text}.hamburger-feedback-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:8px 12px;border-radius:9px;border:1px solid rgba(56,189,248,.55);background:#0ea5e929;color:#7dd3fc;font-size:12.5px;font-weight:800;cursor:pointer}.hamburger-feedback-btn:hover{background:#0ea5e947;color:#e0f2fe}.spot-report-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;width:100%;margin-top:6px;padding:6px 12px;border-radius:9px;border:1px solid rgba(148,163,184,.4);background:transparent;color:var(--text-sub);font-size:11.5px;font-weight:700;cursor:pointer}.spot-report-btn:hover{background:#94a3b829;color:#fff}.feedback-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:16px}.feedback-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#020617c2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.feedback-dialog{position:relative;width:min(480px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;padding:16px 18px 18px;border:1px solid rgba(250,204,21,.45);border-radius:18px;background:#0f172a;color:var(--text-main);box-shadow:0 24px 60px #000c;-webkit-user-select:text;user-select:text}.feedback-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:10px;margin-bottom:12px;border-bottom:1px solid rgba(148,163,184,.25)}.feedback-title{font-size:15px;font-weight:800;color:#fde047}.feedback-close-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;border-radius:999px;border:1px solid rgba(148,163,184,.4);background:#0f172ad9;color:var(--text-sub);cursor:pointer}.feedback-close-btn:hover{color:#fff;border-color:#fde047}.feedback-form{display:flex;flex-direction:column;gap:14px}.feedback-target{display:flex;flex-direction:column;gap:3px;padding:9px 12px;border-radius:10px;border:1px solid rgba(148,163,184,.3);background:#1e293bb3}.feedback-target-label{font-size:10.5px;color:var(--text-muted)}.feedback-target-name{display:inline-flex;align-items:center;gap:5px;font-size:13.5px;color:#f8fafc;overflow-wrap:anywhere}.feedback-kinds{display:flex;flex-wrap:wrap;gap:8px;border:0}.feedback-kinds legend,.feedback-field-label{font-size:11.5px;font-weight:700;color:var(--text-sub)}.feedback-kinds legend{width:100%;margin-bottom:6px}.feedback-kind{flex:1 1 0;min-width:96px}.feedback-kind input{position:absolute;opacity:0;pointer-events:none}.feedback-kind span{display:flex;align-items:center;justify-content:center;min-height:40px;padding:6px 10px;border-radius:10px;border:1px solid rgba(148,163,184,.4);background:#0f172ad9;color:var(--text-sub);font-size:12.5px;font-weight:700;text-align:center;cursor:pointer}.feedback-kind.selected span{border-color:#fde047;background:#facc1529;color:#fde047}.feedback-kind input:focus-visible+span{outline:2px solid #7dd3fc;outline-offset:2px}.feedback-place-fields{display:flex;flex-direction:column;gap:12px}.feedback-field{display:flex;flex-direction:column;gap:5px}.feedback-field-label em{margin-left:4px;font-style:normal;font-size:10px;color:#fca5a5}.feedback-input,.feedback-textarea{width:100%;padding:9px 10px;border-radius:8px;border:1px solid rgba(148,163,184,.4);background:#0f172ad9;color:#fff;font-family:inherit;font-size:14px;line-height:1.5;-webkit-user-select:text;user-select:text}.feedback-textarea{resize:vertical;min-height:110px}.feedback-input:focus,.feedback-textarea:focus{outline:2px solid #7dd3fc;outline-offset:1px}.feedback-counter{align-self:flex-end;font-size:11px;color:var(--text-muted)}.feedback-notice{font-size:11.5px;line-height:1.6;color:var(--text-sub)}.feedback-turnstile{display:flex;justify-content:center}.feedback-error{padding:8px 10px;border-radius:8px;border:1px solid rgba(248,113,113,.5);background:#7f1d1d59;color:#fecaca;font-size:12.5px;line-height:1.6}.feedback-turnstile-failed{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.feedback-turnstile-failed p{margin:0}.feedback-retry-btn{min-height:40px;padding:6px 14px;border-radius:8px;border:1px solid rgba(254,202,202,.7);background:#fecaca1f;color:#fecaca;font-size:13px;font-weight:700;cursor:pointer}.feedback-error-code{font-size:10.5px;opacity:.8;word-break:break-all}.feedback-submit{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:44px;padding:8px 12px;border-radius:10px;border:1px solid #facc15;background:linear-gradient(135deg,#eab308,#ca8a04);color:#0f172a;font-size:14px;font-weight:800;cursor:pointer}.feedback-submit:disabled{opacity:.45;cursor:not-allowed}.feedback-sent{display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 0 4px;text-align:center;color:#86efac}.feedback-sent strong{font-size:16px}.feedback-sent p{margin-bottom:8px;font-size:12.5px;color:var(--text-sub)}@media(max-width:767px),(max-height:480px){.feedback-overlay{align-items:flex-end;padding:0}.feedback-dialog{width:100%;max-height:92dvh;padding-bottom:calc(18px + env(safe-area-inset-bottom,0px));border-radius:18px 18px 0 0;border-bottom:0}.feedback-input,.feedback-textarea{font-size:16px}}
