
/* ===== merged from css/app.css ===== */
:root {
  --bg: rgba(255,255,255,0.08);
  --stroke: rgba(255,255,255,0.14);
  --text: rgba(255,255,255,0.96);
  --muted: rgba(255,255,255,0.64);
  --shadow: 0 12px 36px rgba(0,0,0,0.22);
  --blur: 22px;
  --accent: #8dffb1;
  --accent2: #ffd36a;
  --danger: #ff8e8e;
}

* { box-sizing: border-box; }
html, body { margin: 0; width: 100%; height: 100%; overflow: hidden; background: #000; }
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif; color: var(--text); }
button { font: inherit; }
.no-js { min-height: 100vh; display: grid; place-items: center; background: #05060a; color: white; padding: 24px; text-align: center; }

.app-root {
  position: relative;
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  background:
    radial-gradient(900px 500px at 50% 120%, rgba(255,255,255,0.08), rgba(255,255,255,0.00) 60%),
    radial-gradient(800px 600px at 10% 0%, rgba(82,120,255,0.22), rgba(82,120,255,0.00) 60%),
    radial-gradient(900px 600px at 90% 0%, rgba(255,120,200,0.20), rgba(255,120,200,0.00) 60%),
    linear-gradient(180deg, #05060a 0%, #020308 100%);
}
.app-root.light-scene {
  --text: rgba(10,16,32,0.96);
  --muted: rgba(10,16,32,0.62);
  --stroke: rgba(0,0,0,0.13);
  background: radial-gradient(900px 500px at 50% 120%, rgba(0,0,0,0.05), rgba(255,255,255,0) 60%), linear-gradient(180deg, #f5f7fb, #e8eef8);
}
.xr-root { position: absolute; inset: 0; z-index: 1; touch-action: none; }
.xr-root canvas { display: block; width: 100% !important; height: 100% !important; outline: none; }

.glass {
  backdrop-filter: blur(var(--blur)) saturate(140%);
  -webkit-backdrop-filter: blur(var(--blur)) saturate(140%);
  background: linear-gradient(180deg, rgba(255,255,255,0.12), rgba(255,255,255,0.07));
  border: 1px solid var(--stroke);
  box-shadow: var(--shadow);
}
.shell { position: fixed; inset: 0; z-index: 5; pointer-events: none; display: flex; flex-direction: column; justify-content: space-between; }
.topbar { position: relative; width: 100%; padding: 10px 16px; display: flex; align-items: center; justify-content: space-between; gap: 8px; pointer-events: auto; flex-shrink: 0; border-bottom: 1px solid var(--stroke); }
.brand-block { flex: 1; min-width: 0; overflow: hidden; }
.brand-dot { width: 14px; height: 14px; border-radius: 999px; background: rgba(255,255,255,0.96); box-shadow: 0 0 0 6px rgba(255,255,255,0.08); display: inline-block; vertical-align: middle; margin-right: 8px; }
.brand-title { font-size: 15px; line-height: 1.1; font-weight: 700; letter-spacing: -0.02em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.brand-sub { font-size: 11px; line-height: 1.2; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; opacity: 0.75; }
.topbar-right { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.status-pill { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 999px; font-size: 12px; color: var(--muted); background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.10); }
.status-button { cursor: pointer; color: var(--text); pointer-events: auto; }
.status-indicator { width: 8px; height: 8px; border-radius: 999px; background: rgba(255,255,255,0.38); }
.status-indicator.ready { background: var(--accent); }
.status-indicator.busy  { background: var(--accent2); }
.status-indicator.error { background: var(--danger); }
.middle-zone { flex: 1; position: relative; overflow: hidden; pointer-events: none; }

.control-dock { position: relative; width: 100%; padding: 10px 12px; padding-bottom: max(env(safe-area-inset-bottom, 10px), 10px); display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); gap: 8px; pointer-events: auto; flex-shrink: 0; border-top: 1px solid var(--stroke); }
.btn { appearance: none; border: none; border-radius: 20px; min-height: 58px; padding: 12px 16px; color: var(--text); background: linear-gradient(180deg, rgba(255,255,255,0.12), rgba(255,255,255,0.08)); border: 1px solid rgba(255,255,255,0.12); box-shadow: inset 0 1px 0 rgba(255,255,255,0.08), 0 10px 30px rgba(0,0,0,0.18); cursor: pointer; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; text-align: left; gap: 2px; transition: transform 0.18s ease, background 0.18s ease, opacity 0.18s ease; touch-action: manipulation; }
.btn:hover { transform: translateY(-1px); background: linear-gradient(180deg, rgba(255,255,255,0.17), rgba(255,255,255,0.10)); }
.btn:disabled { opacity: 0.42; cursor: not-allowed; transform: none; }
.btn-title { font-size: 14px; font-weight: 700; letter-spacing: -0.01em; line-height: 1.15; }
.btn-sub { font-size: 11px; line-height: 1.2; opacity: 0.72; }
.btn-more-toggle { display: none; }

.hint-card { position: absolute; right: 16px; bottom: 120px; width: 260px; padding: 14px 14px 13px; border-radius: 20px; pointer-events: auto; z-index: 12; }
.hint-label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); margin-bottom: 8px; font-weight: 700; }
.hint-text { font-size: 13px; line-height: 1.45; color: var(--text); }
.round-close, .modal-close { position: absolute; top: 10px; right: 10px; background: rgba(255,255,255,0.12); border: none; color: var(--text); font-size: 16px; width: 30px; height: 30px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; pointer-events: auto; }

.center-loader { position: absolute; inset: 0; z-index: 10; display: flex; align-items: center; justify-content: center; pointer-events: none; transition: opacity 0.35s ease, visibility 0.35s ease; border: 0; }
.center-loader.hidden { opacity: 0; visibility: hidden; }
.loader-card { width: min(420px, calc(100vw - 40px)); border-radius: 28px; padding: 22px; text-align: center; }
.loader-orb, .splash-orb { width: 58px; height: 58px; margin: 0 auto 14px; border-radius: 999px; background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.95), rgba(255,255,255,0.10) 38%, rgba(255,255,255,0.06) 55%, rgba(255,255,255,0.00) 72%); box-shadow: 0 0 40px rgba(255,255,255,0.16), inset 0 1px 10px rgba(255,255,255,0.25); animation: pulse 2.2s infinite ease-in-out; }
@keyframes pulse { 0%,100% { transform: scale(1); opacity: 0.95; } 50% { transform: scale(1.08); opacity: 1; } }
.loader-title { font-size: 18px; font-weight: 700; letter-spacing: -0.02em; margin-bottom: 8px; }
.loader-text { font-size: 13px; line-height: 1.5; color: var(--muted); margin-bottom: 10px; }
.loader-progress { width: 100%; height: 6px; border-radius: 999px; background: rgba(255,255,255,0.12); overflow: hidden; }
.loader-progress-inner { width: 0%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--accent), var(--accent2)); transition: width 0.2s ease; }

.splash { position: absolute; inset: 0; z-index: 200; display: flex; flex-direction: column; align-items: center; justify-content: center; background: linear-gradient(180deg, #05060a 0%, #0a0c18 100%); transition: opacity 0.7s ease, visibility 0.7s ease; text-align: center; padding: 24px; }
.splash.fade-out { opacity: 0; visibility: hidden; pointer-events: none; }
.splash-orb { width: 72px; height: 72px; margin-bottom: 22px; }
.splash-title { font-size: clamp(24px, 4vw, 36px); font-weight: 800; letter-spacing: -0.03em; margin-bottom: 8px; }
.splash-sub { font-size: 14px; color: var(--muted); line-height: 1.5; }

.progress-bar-wrap { position: absolute; top: 88px; left: 50%; transform: translateX(-50%); width: min(500px, calc(100vw - 40px)); z-index: 10; pointer-events: none; }
.progress-bar-label { font-size: 12px; color: rgba(255,255,255,0.65); text-align: center; margin-bottom: 5px; }
.progress-bar-track { height: 5px; border-radius: 999px; background: rgba(255,255,255,0.12); overflow: hidden; }
.progress-bar-fill { height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--accent), var(--accent2)); transition: width 0.4s ease; width: 0%; }

.hotspot-card, .tour-overlay, .fav-panel { position: absolute; left: 20px; top: 50%; transform: translateY(-50%); width: min(380px, calc(100vw - 40px)); padding: 18px; border-radius: 24px; pointer-events: auto; z-index: 30; display: none; }
.hotspot-card.open, .tour-overlay.active, .fav-panel.open { display: block; }
.hotspot-card-label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); margin-bottom: 8px; font-weight: 700; }
.hotspot-card-img { width: 100%; border-radius: 14px; max-height: 180px; object-fit: cover; margin-bottom: 10px; display: none; }
.hotspot-card-header { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.hotspot-type-pill { flex: 0 0 auto; font-size: 11px; padding: 4px 8px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.22); color: var(--muted); text-transform: uppercase; letter-spacing: 0.08em; }
.hotspot-card-title { font-size: 20px; line-height: 1.12; font-weight: 800; letter-spacing: -0.02em; }
.hotspot-card-text, .tour-text { font-size: 14px; line-height: 1.5; color: var(--text); opacity: 0.92; margin-bottom: 10px; }
.hotspot-actions { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.hotspot-actions.secondary { margin-top: 8px; }
.small-action { appearance: none; border: 1px solid rgba(255,255,255,0.12); border-radius: 16px; padding: 10px 12px; background: linear-gradient(180deg, rgba(255,255,255,0.18), rgba(255,255,255,0.10)); color: var(--text); font-weight: 700; cursor: pointer; }
.small-action.primary { background: linear-gradient(180deg, rgba(255,255,255,0.95), rgba(255,255,255,0.88)); color: #0b0b0d; }
.small-action.favorite { background: rgba(255,200,50,0.22); color: #ffd36a; }
.small-action.danger { background: rgba(255,80,80,0.18); color: #ffaaaa; border-color: rgba(255,80,80,0.35); }
.small-action.wide { width: 100%; justify-content: center; }
.hotspot-deep-text { display: none; font-size: 13px; line-height: 1.5; color: var(--muted); margin-top: 10px; padding-top: 10px; border-top: 1px solid rgba(255,255,255,0.12); }

.exhibit-panel { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; gap: 10px; padding: 10px; border-radius: 24px; z-index: 20; pointer-events: auto; }
.exhibit-btn { width: 74px; height: 74px; border-radius: 20px; border: 2px solid transparent; background: rgba(255,255,255,0.07); color: var(--text); cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; transition: border-color 0.25s ease, background 0.25s ease, transform 0.18s ease; }
.exhibit-btn:hover { transform: scale(1.05); background: rgba(255,255,255,0.14); }
.exhibit-btn.active { border-color: rgba(255,255,255,0.72); background: rgba(255,255,255,0.18); }
.exhibit-btn-icon { font-size: 24px; line-height: 1; }
.exhibit-btn-label { font-size: 10px; opacity: 0.85; text-align: center; line-height: 1.2; }

.help-fab { position: absolute; bottom: 110px; left: 16px; width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--stroke); backdrop-filter: blur(var(--blur)); -webkit-backdrop-filter: blur(var(--blur)); background: linear-gradient(180deg, rgba(255,255,255,0.18), rgba(255,255,255,0.10)); box-shadow: var(--shadow); color: var(--text); font-size: 22px; cursor: pointer; z-index: 20; display: flex; align-items: center; justify-content: center; pointer-events: auto; }
.modal-bg { position: absolute; inset: 0; z-index: 100; background: rgba(0,0,0,0.65); display: none; align-items: center; justify-content: center; pointer-events: auto; padding: 20px; }
.modal-bg.open { display: flex; }
.help-modal { width: min(440px, 100%); padding: 28px 24px 24px; border-radius: 28px; position: relative; }
.help-modal h2 { font-size: 20px; font-weight: 800; margin: 0 0 14px; }
.help-modal p { font-size: 13px; line-height: 1.6; color: var(--muted); margin: 0 0 10px; }
.help-modal strong { color: var(--text); }
.help-modal code { color: var(--accent2); }
.qr-box { margin: 0 auto 16px; width: 168px; height: 168px; background: #fff; border-radius: 16px; display: grid; place-items: center; overflow: hidden; }
.qr-box img { width: 160px; height: 160px; }

.fav-panel { max-height: 70vh; overflow: auto; }
.panel-title-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.panel-actions { display: flex; gap: 8px; }
.fav-list { display: flex; flex-direction: column; gap: 8px; }
.fav-item { border: 1px solid rgba(255,255,255,0.12); border-radius: 14px; padding: 10px; background: rgba(255,255,255,0.07); }
.fav-item-title { font-weight: 800; margin-bottom: 4px; }
.fav-item-text { color: var(--muted); font-size: 12px; line-height: 1.4; }

.camera-overlay { position: fixed; inset: 0; z-index: 150; display: none; flex-direction: column; background: #000; pointer-events: auto; }
.camera-overlay.open { display: flex; }
.camera-video, .camera-canvas-over { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.camera-canvas-over { opacity: 0.88; pointer-events: none; }
.camera-controls { position: absolute; bottom: 32px; left: 0; right: 0; display: flex; justify-content: center; align-items: center; gap: 24px; }
.cam-shutter { width: 72px; height: 72px; border-radius: 50%; background: rgba(255,255,255,0.92); border: 4px solid #fff; cursor: pointer; box-shadow: 0 0 0 6px rgba(255,255,255,0.25); }
.cam-record { width: 52px; height: 52px; border-radius: 50%; background: rgba(255,60,60,0.85); border: 3px solid rgba(255,80,80,0.6); cursor: pointer; font-size: 22px; display: flex; align-items: center; justify-content: center; color: #fff; }
.cam-record.recording { background: rgba(200,0,0,0.95); animation: pulse 1s infinite; }
.cam-close { position: absolute; top: 20px; right: 20px; width: 44px; height: 44px; border-radius: 50%; background: rgba(0,0,0,0.55); border: 1px solid rgba(255,255,255,0.3); color: #fff; font-size: 20px; cursor: pointer; }
.ios-install-toast { position: absolute; bottom: 110px; left: 50%; transform: translateX(-50%); width: min(340px, calc(100vw - 40px)); background: rgba(20,20,30,0.92); border: 1px solid rgba(255,255,255,0.18); border-radius: 20px; padding: 16px 18px; font-size: 13px; line-height: 1.5; color: rgba(255,255,255,0.9); z-index: 50; display: none; pointer-events: auto; backdrop-filter: blur(20px); }
.ios-install-toast strong { color: var(--accent); }
.ios-install-toast-close { position: absolute; top: 10px; right: 12px; background: none; border: none; color: rgba(255,255,255,0.5); font-size: 18px; cursor: pointer; }
.tour-title { font-size: 22px; font-weight: 800; margin-bottom: 8px; }
.tour-counter { font-size: 12px; color: rgba(255,255,255,0.5); text-transform: uppercase; letter-spacing: 0.1em; }
.model-spinner-overlay { position: absolute; inset: 0; z-index: 25; display: flex; align-items: center; justify-content: center; pointer-events: none; }
.model-spinner-orb { width: 42px; height: 42px; border-radius: 50%; border: 3px solid rgba(255,255,255,0.3); border-top-color: var(--accent2); animation: spin 0.9s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

.ar-button { position: absolute !important; bottom: 120px !important; left: 50% !important; transform: translateX(-50%) !important; z-index: 40 !important; padding: 11px 26px !important; border-radius: 999px !important; border: 1px solid rgba(255,255,255,0.8) !important; background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.95), rgba(0,0,0,0.65)) !important; backdrop-filter: blur(22px) !important; box-shadow: 0 14px 40px rgba(0,0,0,0.45), 0 0 22px rgba(255,255,255,0.15) !important; color: #fff !important; font: 700 14px system-ui !important; letter-spacing: 0.03em; cursor: pointer !important; animation: arPulse 2s infinite ease-in-out; }
.ar-button[disabled] { opacity: .55; animation: none; cursor: not-allowed !important; }
@keyframes arPulse { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.06); } }

@media (max-width: 900px) {
  .control-dock { grid-template-columns: repeat(5, 1fr); }
  .btn { padding: 10px 9px; }
}
@media (max-width: 768px) {
  .topbar { padding: 8px 12px; }
  .brand-title { font-size: 13px; }
  .status-pill { display: none; }
  .topbar-right .status-button { display: inline-flex; }
  .exhibit-panel { top: 0; left: 50%; right: auto; transform: translateX(-50%); flex-direction: row; overflow-x: auto; max-width: calc(100vw - 24px); scrollbar-width: none; padding: 6px; gap: 6px; white-space: nowrap; }
  .exhibit-panel::-webkit-scrollbar { display: none; }
  .exhibit-btn { width: 58px; height: 58px; border-radius: 14px; flex-shrink: 0; }
  .exhibit-btn-icon { font-size: 20px; }
  .progress-bar-wrap { top: 76px; }
  .hint-card { right: 10px; left: auto; bottom: 78px; width: calc(100vw - 20px); max-height: 110px; overflow: hidden; }
  .hotspot-card, .tour-overlay, .fav-panel { left: 10px; width: calc(100vw - 20px); max-height: 58vh; top: 50%; transform: translateY(-50%); overflow: auto; }
  .control-dock { grid-template-columns: repeat(4, 1fr); gap: 5px; padding: 7px 8px; padding-bottom: max(env(safe-area-inset-bottom, 7px), 7px); }
  .btn { min-height: 50px; padding: 6px 5px; border-radius: 12px; }
  .btn-title { font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
  .btn-sub { display: none; }
  #shareBtn, #lightBtn, #tourBtn, #installBtn, #cameraBtn, #favBtn, #soundBtn { display: none; }
  .dock-expanded #shareBtn, .dock-expanded #lightBtn, .dock-expanded #tourBtn, .dock-expanded #installBtn, .dock-expanded #cameraBtn, .dock-expanded #favBtn, .dock-expanded #soundBtn { display: flex; }
  .btn-more-toggle { display: flex; }
  .help-fab { bottom: 70px; }
  .ar-button { bottom: 82px !important; }
}
@media (max-width: 420px) {
  .control-dock { grid-template-columns: repeat(3, 1fr); }
  .splash-title { font-size: 22px; }
}


/* === 2027 visual/passability patch: readable light mode, grounded model, Meta Quest UI preservation === */
.app-root.light-scene {
  --text: rgba(9,15,29,0.98);
  --muted: rgba(36,49,72,0.74);
  --stroke: rgba(15,23,42,0.18);
  --shadow: 0 16px 48px rgba(15,23,42,0.13);
  color: var(--text);
  background:
    radial-gradient(900px 500px at 50% 120%, rgba(49,101,255,0.08), rgba(255,255,255,0) 60%),
    radial-gradient(700px 450px at 90% 0%, rgba(124,58,237,0.08), rgba(255,255,255,0) 60%),
    linear-gradient(180deg, #f8fbff 0%, #eaf1fb 100%) !important;
}
.app-root.light-scene .glass,
.app-root.light-scene .topbar,
.app-root.light-scene .control-dock,
.app-root.light-scene .hint-card,
.app-root.light-scene .hotspot-card,
.app-root.light-scene .tour-overlay,
.app-root.light-scene .fav-panel,
.app-root.light-scene .help-modal,
.app-root.light-scene .exhibit-panel {
  background: linear-gradient(180deg, rgba(255,255,255,.86), rgba(244,248,255,.72)) !important;
  border-color: rgba(15,23,42,.16) !important;
  color: #0f172a !important;
  box-shadow: 0 18px 54px rgba(15,23,42,.13) !important;
}
.app-root.light-scene .brand-title,
.app-root.light-scene .hotspot-card-title,
.app-root.light-scene .tour-title,
.app-root.light-scene .help-modal h2,
.app-root.light-scene .btn-title { color: #0f172a !important; }
.app-root.light-scene .brand-sub,
.app-root.light-scene .hint-label,
.app-root.light-scene .hotspot-card-label,
.app-root.light-scene .hotspot-card-text,
.app-root.light-scene .tour-text,
.app-root.light-scene .help-modal p,
.app-root.light-scene .btn-sub,
.app-root.light-scene .progress-bar-label,
.app-root.light-scene .status-pill { color: #334155 !important; }
.app-root.light-scene .btn,
.app-root.light-scene .small-action,
.app-root.light-scene .exhibit-btn,
.app-root.light-scene .status-pill,
.app-root.light-scene .round-close,
.app-root.light-scene .modal-close {
  background: rgba(255,255,255,.76) !important;
  border-color: rgba(15,23,42,.14) !important;
  color: #0f172a !important;
  box-shadow: 0 8px 22px rgba(15,23,42,.09) !important;
}
.app-root.light-scene .btn:hover,
.app-root.light-scene .exhibit-btn:hover,
.app-root.light-scene .small-action:hover { background: #ffffff !important; }
.app-root.light-scene .small-action.primary {
  background: linear-gradient(135deg, #2563eb, #7c3aed) !important;
  color: #fff !important;
}
.app-root.light-scene .small-action.favorite { background: rgba(245,158,11,.14) !important; color: #92400e !important; }
.app-root.light-scene .small-action.danger { background: rgba(239,68,68,.12) !important; color: #991b1b !important; }
.app-root.light-scene .hotspot-type-pill { color:#334155 !important; border-color:rgba(15,23,42,.16) !important; }
.app-root.light-scene .progress-bar-track { background: rgba(15,23,42,.13) !important; }
.app-root.light-scene .brand-dot { background:#2563eb; box-shadow:0 0 0 6px rgba(37,99,235,.10); }
.app-root.light-scene .ar-button {
  background: linear-gradient(135deg, #2563eb, #7c3aed) !important;
  color: #fff !important;
  border-color: rgba(255,255,255,.75) !important;
  box-shadow: 0 14px 38px rgba(37,99,235,.24) !important;
}
.hint-card { right: 18px; max-width: calc(100vw - 36px); }
@media (min-width: 769px) {
  .hint-card { width: min(300px, 22vw); }
}

/* === COMMERCIAL UPGRADE PACK: scenarios, completion, Quest mode, quality profiles === */
.scenario-panel {
  position: absolute;
  left: 20px;
  bottom: 110px;
  width: min(390px, calc(100vw - 40px));
  max-height: 70vh;
  overflow: auto;
  padding: 16px;
  border-radius: 24px;
  z-index: 32;
  pointer-events: auto;
  display: none;
}
.scenario-panel.open { display: block; }
.panel-subtitle { font-size: 12px; line-height: 1.35; color: var(--muted); margin-top: 4px; }
.scenario-options { display: grid; gap: 8px; margin-top: 12px; }
.scenario-option {
  width: 100%;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  background: rgba(255,255,255,.07);
  color: var(--text);
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  text-align: left;
  cursor: pointer;
}
.scenario-option:hover { background: rgba(255,255,255,.13); }
.scenario-option.active {
  border-color: rgba(141,255,177,.62);
  background: linear-gradient(135deg, rgba(141,255,177,.20), rgba(255,211,106,.10));
}
.scenario-icon { font-size: 26px; display: grid; place-items: center; }
.scenario-option b { display: block; font-size: 14px; margin-bottom: 3px; }
.scenario-option small { display: block; color: var(--muted); font-size: 11px; line-height: 1.35; }
.complete-modal { text-align: center; }
.complete-badge {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  margin: 0 auto 14px;
  background: linear-gradient(135deg, #8dffb1, #ffd36a);
  color: #07120b;
  font-size: 30px;
  font-weight: 900;
  box-shadow: 0 18px 50px rgba(141,255,177,.22);
}
.complete-actions { display: grid; grid-template-columns: 1fr; gap: 8px; margin-top: 16px; }
.app-root.light-scene .scenario-panel,
.app-root.light-scene .scenario-option,
.app-root.light-scene .complete-modal {
  background: rgba(255,255,255,.90) !important;
  color: #0f172a !important;
  border-color: rgba(15,23,42,.16) !important;
}
.app-root.light-scene .scenario-option small,
.app-root.light-scene .panel-subtitle { color: #475569 !important; }
.app-root.light-scene .scenario-option.active {
  border-color: rgba(37,99,235,.44) !important;
  background: linear-gradient(135deg, rgba(37,99,235,.12), rgba(124,58,237,.08)) !important;
}
/* Meta Quest / headset-friendly mode */
.quest-mode .btn { min-height: 72px; border-radius: 24px; }
.quest-mode .btn-title { font-size: 16px; }
.quest-mode .btn-sub { font-size: 12px; }
.quest-mode .hotspot-card,
.quest-mode .tour-overlay,
.quest-mode .hint-card,
.quest-mode .scenario-panel { font-size: 1.08em; }
.quest-mode .exhibit-btn { width: 86px; height: 86px; }
.quest-mode .exhibit-btn-icon { font-size: 30px; }
.quest-mode .small-action { min-height: 42px; padding-left: 15px; padding-right: 15px; }
.quest-mode .ar-button { padding: 14px 34px !important; font-size: 16px !important; }
.quest-mode .progress-bar-wrap { width: min(650px, calc(100vw - 80px)); }
/* stronger readable light mode */
.app-root.light-scene .modal-bg { background: rgba(226,232,240,.72); }
.app-root.light-scene .qr-box { background: #fff !important; }
.app-root.light-scene .ios-install-toast { background: rgba(255,255,255,.94); color: #0f172a; border-color: rgba(15,23,42,.14); }
.app-root.light-scene .ios-install-toast strong { color: #1d4ed8; }
@media (max-width: 768px) {
  #scenarioBtn, #qualityBtn { display: none; }
  .dock-expanded #scenarioBtn, .dock-expanded #qualityBtn { display: flex; }
  .scenario-panel { left: 10px; bottom: 74px; width: calc(100vw - 20px); max-height: 58vh; }
  .scenario-option { grid-template-columns: 34px 1fr; padding: 8px 10px; }
  .scenario-icon { font-size: 22px; }
}


/* === XR ADMIN PRO UPGRADE: admin, anchors, hands, night scene, route/certificate, collection QR === */
.btn.active-feature {
  border-color: rgba(141,255,177,.62) !important;
  background: linear-gradient(135deg, rgba(141,255,177,.20), rgba(96,165,250,.12)) !important;
}
.admin-modal { width: min(820px, calc(100vw - 34px)); max-height: 86vh; overflow:auto; }
.admin-note { font-size: 12px; line-height: 1.55; color: var(--muted); margin-bottom: 12px; }
.admin-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.admin-grid label { display:flex; flex-direction:column; gap:5px; font-size:11px; color:var(--muted); font-weight:700; }
.admin-grid input,.admin-grid select,.admin-json {
  width:100%; border:1px solid rgba(255,255,255,.14); border-radius:14px; background:rgba(255,255,255,.08); color:var(--text); padding:10px 12px; font:13px system-ui,sans-serif; outline:none;
}
.admin-json { min-height:240px; margin-top:12px; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; line-height:1.45; resize:vertical; }
.admin-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.route-list { display:grid; gap:10px; margin:14px 0; text-align:left; }
.route-item { padding:10px 12px; border:1px solid rgba(255,255,255,.12); border-radius:16px; background:rgba(255,255,255,.07); }
.route-item b { display:inline-flex; max-width:70%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.route-item span { float:right; color:var(--muted); font-weight:700; }
.route-track { height:6px; border-radius:999px; background:rgba(255,255,255,.12); overflow:hidden; clear:both; margin-top:8px; }
.route-track i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#8dffb1,#ffd36a); }
.collection-link { display:inline-flex; margin:4px 0 14px; color:#8dffb1; font-weight:800; text-decoration:none; border-bottom:1px dashed currentColor; }
.collection-qr { width:188px; height:188px; }
.collection-qr img { width:180px; height:180px; }
.app-root.night-kuren-scene {
  background:
    radial-gradient(circle at 50% 72%, rgba(255,136,48,.13), transparent 22%),
    radial-gradient(circle at 12% 0%, rgba(58,102,190,.18), transparent 34%),
    radial-gradient(circle at 92% 8%, rgba(124,58,237,.13), transparent 32%),
    linear-gradient(180deg,#02040a 0%,#050816 58%,#080b14 100%) !important;
}
.app-root.night-kuren-scene .topbar,
.app-root.night-kuren-scene .control-dock,
.app-root.night-kuren-scene .glass {
  border-color: rgba(255,180,92,.16);
  background: linear-gradient(180deg, rgba(12,18,34,.78), rgba(6,10,20,.56));
}
.app-root.night-kuren-scene .progress-bar-fill { background:linear-gradient(90deg,#ffb35c,#ffd36a); }
.app-root.light-scene .admin-modal,
.app-root.light-scene .route-modal,
.app-root.light-scene .collection-modal,
.app-root.light-scene .route-item,
.app-root.light-scene .admin-grid input,
.app-root.light-scene .admin-grid select,
.app-root.light-scene .admin-json {
  background: rgba(255,255,255,.94) !important;
  color: #0f172a !important;
  border-color: rgba(15,23,42,.16) !important;
}
.app-root.light-scene .admin-note,
.app-root.light-scene .admin-grid label,
.app-root.light-scene .route-item span { color:#475569 !important; }
@media (max-width: 768px) {
  #anchorBtn,#handBtn,#nightBtn,#questBtn,#routeBtn,#collectionBtn,#adminBtn { display:none; }
  .dock-expanded #anchorBtn,.dock-expanded #handBtn,.dock-expanded #nightBtn,.dock-expanded #questBtn,.dock-expanded #routeBtn,.dock-expanded #collectionBtn,.dock-expanded #adminBtn { display:flex; }
  .admin-grid { grid-template-columns:1fr; }
  .admin-modal { width:calc(100vw - 20px); }
}

/* === SECURE ADMIN + CLEAN DOCK PATCH === */
/* Hidden attribute must beat author display rules; fixes permanent center spinner overlay. */
[hidden], .model-spinner-overlay[hidden] { display: none !important; }
.model-spinner-overlay { pointer-events: none !important; }

/* Static non-pulsing hotspots: no distracting rotating/loading circle over the exhibit. */
.hotspot-static-note { display:none; }

/* Keep only frequent actions visible. Everything else goes under ⋯ Ещё. */
.control-dock {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}
#shareBtn,
#lightBtn,
#scenarioBtn,
#qualityBtn,
#anchorBtn,
#handBtn,
#nightBtn,
#routeBtn,
#questBtn,
#collectionBtn,
#installBtn,
#cameraBtn,
#favBtn,
#soundBtn {
  display: none !important;
}
.dock-expanded #shareBtn,
.dock-expanded #lightBtn,
.dock-expanded #scenarioBtn,
.dock-expanded #qualityBtn,
.dock-expanded #anchorBtn,
.dock-expanded #handBtn,
.dock-expanded #nightBtn,
.dock-expanded #routeBtn,
.dock-expanded #questBtn,
.dock-expanded #collectionBtn,
.dock-expanded #installBtn,
.dock-expanded #cameraBtn,
.dock-expanded #favBtn,
.dock-expanded #soundBtn {
  display: flex !important;
}
.btn-more-toggle { display:flex !important; }
.dock-expanded { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }

@media (max-width: 768px) {
  .control-dock { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .dock-expanded { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}


/* === COMMERCIAL UPGRADE 2: Quest toggle, camera focus, scenario clarity === */
.quest-mode .control-dock { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
.quest-mode .hotspot-card { width:min(460px, calc(100vw - 60px)); }
.quest-mode .hint-card { width:min(360px, calc(100vw - 60px)); }
.calibration-marker { display:none; }
.app-root.calibration-active .hint-card { outline:2px solid rgba(141,255,177,.5); }
.scenario-option small { display:block; margin-top:3px; opacity:.72; font-weight:500; line-height:1.35; }
.hotspot-card-text .scenario-question { display:block; margin-top:10px; color:#8dffb1; font-weight:800; }
.app-root.light-scene .hotspot-card-text .scenario-question { color:#2563eb; }


/* === UPGRADE NEXT: calmer dock, Quest UX, highlight and night atmosphere === */
.control-dock {
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
}
#shareBtn,#lightBtn,#qualityBtn,#anchorBtn,#handBtn,#nightBtn,#questBtn,#recenterBtn,#routeBtn,#collectionBtn,#installBtn,#cameraBtn,#favBtn,#soundBtn {
  display: none;
}
.dock-expanded #shareBtn,
.dock-expanded #lightBtn,
.dock-expanded #qualityBtn,
.dock-expanded #anchorBtn,
.dock-expanded #handBtn,
.dock-expanded #nightBtn,
.dock-expanded #questBtn,
.dock-expanded #recenterBtn,
.dock-expanded #routeBtn,
.dock-expanded #collectionBtn,
.dock-expanded #installBtn,
.dock-expanded #cameraBtn,
.dock-expanded #favBtn,
.dock-expanded #soundBtn {
  display: flex;
}
#rotateBtn,#scaleUpBtn,#scaleDownBtn,#tourBtn,#scenarioBtn,#moreBtn {
  display: flex;
}
.app-root.night-kuren-scene::after {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(circle at 52% 62%, rgba(255,132,43,.16), transparent 18%),
    radial-gradient(circle at 50% 15%, rgba(96,165,250,.10), transparent 30%);
}
.quest-mode .control-dock {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 12px !important;
}
.quest-mode #rotateBtn,
.quest-mode #scaleUpBtn,
.quest-mode #scaleDownBtn,
.quest-mode #tourBtn,
.quest-mode #scenarioBtn,
.quest-mode #recenterBtn,
.quest-mode #moreBtn {
  display:flex;
}
.quest-mode .dock-expanded #shareBtn,
.quest-mode .dock-expanded #lightBtn,
.quest-mode .dock-expanded #qualityBtn,
.quest-mode .dock-expanded #anchorBtn,
.quest-mode .dock-expanded #handBtn,
.quest-mode .dock-expanded #nightBtn,
.quest-mode .dock-expanded #routeBtn,
.quest-mode .dock-expanded #collectionBtn {
  display:flex;
}
.quest-mode .hotspot-card {
  width: min(520px, calc(100vw - 48px));
  font-size: 1.12em;
}
.quest-mode .hotspot-card-title { font-size: 26px; }
.quest-mode .hotspot-card-text { font-size: 17px; line-height: 1.58; }
.quest-mode .hint-card { width: min(420px, calc(100vw - 40px)); }
@media (max-width: 768px) {
  .control-dock { grid-template-columns: repeat(4, 1fr) !important; }
  #scenarioBtn { display:flex; }
}

.model-spinner-overlay{display:none!important;}


/* === PLATFORM PACK 2026: Quest setup, drag calibration, admin publishing === */
#questSetupBtn { display:none; }
.dock-expanded #questSetupBtn { display:flex; }
.quest-mode #questSetupBtn { display:flex; }
.quest-setup-modal p { margin: 0 0 10px; color: var(--muted); line-height: 1.55; }
.app-root.calibration-active canvas { cursor: grab; }
.app-root.calibration-active canvas:active { cursor: grabbing; }
.app-root.calibration-active .hint-card { border-color: rgba(141,255,177,.55); box-shadow: 0 0 0 2px rgba(141,255,177,.18), var(--shadow); }
@media (max-width: 768px) {
  .dock-expanded #questSetupBtn { display:flex; }
}


/* === ARSTUDIO footer + organic bottom signature === */
.developer-footer{position:absolute;left:12px;right:12px;bottom:8px;z-index:12;display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:7px 12px;border-radius:18px;font-size:10px;line-height:1.35;color:rgba(255,255,255,.70);pointer-events:auto}
.developer-footer a{color:#8dffb1;text-decoration:none;font-weight:900;border-bottom:1px dashed rgba(141,255,177,.35)}
.developer-footer a:hover{color:#fff;border-bottom-color:#fff}
.control-dock{padding-bottom:46px!important}
.app-root.light-scene .developer-footer,.app-root.light-mode .developer-footer{color:rgba(10,20,35,.70);background:rgba(255,255,255,.72);border-color:rgba(15,23,42,.12)}
.app-root.light-scene .developer-footer a,.app-root.light-mode .developer-footer a{color:#3165ff;border-bottom-color:rgba(49,101,255,.35)}
@media(max-width:768px){.developer-footer{position:relative;left:auto;right:auto;bottom:auto;margin:0 8px 8px;font-size:9px}.control-dock{padding-bottom:max(env(safe-area-inset-bottom,7px),7px)!important}}

/* === EXPERIENCE PACK: карта, пошаговый гид, мини-викторина === */
#mapBtn,#guidedBtn,#quizBtn{display:none!important}
.dock-expanded #mapBtn,.dock-expanded #guidedBtn,.dock-expanded #quizBtn{display:flex!important}
.experience-modal{position:relative;width:min(860px,calc(100vw - 28px));max-height:88vh;overflow:auto;border-radius:28px;padding:22px;background:linear-gradient(180deg,rgba(255,255,255,.14),rgba(255,255,255,.08));border:1px solid var(--stroke);box-shadow:var(--shadow);color:var(--text)}
.experience-modal h2{margin:0 0 8px;font-size:24px;letter-spacing:-.03em}.experience-modal h3{margin:16px 0 10px;font-size:16px}.experience-muted{color:var(--muted);line-height:1.5;margin:0 0 14px}.experience-map-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px}.experience-exhibit-card{position:relative;overflow:hidden;display:grid;gap:4px;text-align:left;border-radius:18px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.08);color:var(--text);padding:12px;cursor:pointer}.experience-exhibit-card.active{outline:2px solid rgba(141,255,177,.55)}.experience-exhibit-card i{position:absolute;left:0;bottom:0;height:4px;background:linear-gradient(90deg,#8dffb1,#ffd36a)}.experience-exhibit-icon{font-size:24px}.experience-exhibit-card small{color:var(--muted)}.experience-hotspot-list{display:grid;gap:8px}.experience-hotspot-row{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;text-align:left;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.08);color:var(--text);border-radius:16px;padding:10px 12px;cursor:pointer}.experience-hotspot-row small{color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.experience-guide-card,.quiz-box{border-radius:22px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.08);padding:16px;line-height:1.55}.experience-guide-card p,.quiz-box p{color:rgba(255,255,255,.84)}.experience-guide-card blockquote{margin:12px 0 0;padding:10px 12px;border-left:3px solid #8dffb1;background:rgba(141,255,177,.08);border-radius:12px;color:#dfffea}.experience-step-pill{display:inline-flex;margin-bottom:10px;border-radius:999px;padding:5px 9px;background:rgba(141,255,177,.12);border:1px solid rgba(141,255,177,.25);font-size:11px;font-weight:800;color:#b8ffd0}.experience-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.quiz-answers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.quiz-answers button{border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.09);color:var(--text);border-radius:16px;padding:12px;text-align:left;font-weight:800;cursor:pointer}.quiz-answers button.correct{background:rgba(141,255,177,.18);border-color:rgba(141,255,177,.55)}.quiz-answers button.wrong{background:rgba(255,105,105,.18);border-color:rgba(255,105,105,.55)}.quiz-feedback{margin-top:10px;font-weight:900;color:#b8ffd0}.app-root.light-scene .experience-modal,.app-root.light-mode .experience-modal{background:rgba(255,255,255,.92);color:#111827}.app-root.light-scene .experience-muted,.app-root.light-mode .experience-muted,.app-root.light-scene .experience-exhibit-card small,.app-root.light-mode .experience-exhibit-card small,.app-root.light-scene .experience-hotspot-row small,.app-root.light-mode .experience-hotspot-row small{color:#64748b}.app-root.light-scene .experience-exhibit-card,.app-root.light-mode .experience-exhibit-card,.app-root.light-scene .experience-hotspot-row,.app-root.light-mode .experience-hotspot-row,.app-root.light-scene .experience-guide-card,.app-root.light-mode .experience-guide-card,.app-root.light-scene .quiz-box,.app-root.light-mode .quiz-box,.app-root.light-scene .quiz-answers button,.app-root.light-mode .quiz-answers button{background:#f8fafc;color:#111827;border-color:rgba(15,23,42,.12)}.app-root.light-scene .experience-guide-card p,.app-root.light-mode .experience-guide-card p,.app-root.light-scene .quiz-box p,.app-root.light-mode .quiz-box p{color:#334155}
@media(max-width:768px){.experience-modal{width:calc(100vw - 18px);padding:18px}.quiz-answers{grid-template-columns:1fr}.dock-expanded #mapBtn,.dock-expanded #guidedBtn,.dock-expanded #quizBtn{display:flex!important}}

/* === ADMIN CALIBRATION + TOUR CONTROLS PACK === */
.tour-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.tour-controls .small-action{min-height:38px}.tour-controls .primary{grid-column:auto}.tour-overlay.manual-mode{box-shadow:0 0 0 2px rgba(141,255,177,.32),var(--shadow)}.tour-overlay.paused{box-shadow:0 0 0 2px rgba(255,211,106,.36),var(--shadow)}
@media(max-width:760px){.tour-controls{grid-template-columns:1fr 1fr}.tour-controls .small-action{font-size:12px;padding:9px 10px}}


/* === SLIM PRODUCTION PUBLIC UI PACK ===
   Публичная экспозиция: только нужные посетителю действия.
   Все технические и редкие функции спрятаны под ⋯ Инструменты. */
.control-dock{
  grid-template-columns: repeat(8, minmax(0, 1fr)) !important;
  gap: 7px !important;
}
#rotateBtn,#scaleUpBtn,#scaleDownBtn,#tourBtn,#scenarioBtn,#collectionBtn,#shareBtn,#moreBtn{
  display:flex !important;
}
#qualityBtn,#anchorBtn,#handBtn,#nightBtn,#questBtn,#questSetupBtn,#recenterBtn,#routeBtn,#installBtn,#cameraBtn,#favBtn,#soundBtn,#mapBtn,#guidedBtn,#quizBtn{
  display:none !important;
}
.dock-expanded #qualityBtn,
.dock-expanded #nightBtn,
.dock-expanded #questSetupBtn,
.dock-expanded #recenterBtn,
.dock-expanded #routeBtn,
.dock-expanded #cameraBtn,
.dock-expanded #favBtn,
.dock-expanded #soundBtn,
.dock-expanded #mapBtn,
.dock-expanded #guidedBtn,
.dock-expanded #quizBtn{
  display:flex !important;
}
/* Якоря и ручное управление руками не показываем обычным посетителям: это Quest/Dev-настройки. */
.dock-expanded #anchorBtn,
.dock-expanded #handBtn,
.dock-expanded #questBtn{
  display:none !important;
}
.btn-more-toggle .btn-title::after{ content:''; }
@media(max-width:980px){
  .control-dock{ grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
}
@media(max-width:520px){
  .control-dock{ grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  #shareBtn{ display:none !important; }
  .dock-expanded #shareBtn{ display:flex !important; }
}

/* RC5 Quest 2 performance profile: preserve legibility, remove expensive compositing. */
.quest-mode .glass,
.quest-mode .topbar,
.quest-mode .control-dock,
.quest-mode .hint-card,
.quest-mode .hotspot-card,
.quest-mode .tour-overlay,
.quest-mode .fav-panel,
.quest-mode .help-fab,
.quest-mode .ios-install-toast,
.quest-mode .ar-button,
.quest-mode .platform-float button,
.quest-mode .pf-public-chip,
.quest-mode .pf-event-banner,
.quest-mode .production-lock-badge {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.quest-mode .btn,
.quest-mode .ar-button,
.quest-mode .loader-orb,
.quest-mode .splash-orb {
  animation: none !important;
  transition-duration: .08s !important;
}
.quest-mode .glass,
.quest-mode .topbar,
.quest-mode .control-dock,
.quest-mode .hotspot-card,
.quest-mode .tour-overlay {
  box-shadow: 0 10px 28px rgba(0,0,0,.22) !important;
}

/* ===== merged from css/final-enhancements.css ===== */

/* FINAL PLATFORM ENHANCEMENTS: museum pedestal, about modal, certificate tools, Tilda-ready layout */
:root{--final-blue:#3165ff;--final-violet:#7c3aed;--final-green:#8dffb1;}
.xr-root::after{
  content:'';
  position:absolute;
  left:50%;
  bottom:13.5%;
  width:min(46vw,520px);
  height:min(12vw,120px);
  transform:translateX(-50%);
  border-radius:50%;
  pointer-events:none;
  opacity:.62;
  background:
    radial-gradient(ellipse at center,rgba(141,255,177,.16),rgba(49,101,255,.12) 34%,rgba(0,0,0,.10) 58%,transparent 73%),
    linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent);
  filter:blur(.2px);
  z-index:0;
}
.app-root.calibration-mode .xr-root::after{display:none;}
.project-about-btn{order:99;}
.final-about-modal .help-modal{max-width:min(760px,calc(100vw - 32px));}
.final-about-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0;}
.final-about-card{padding:14px;border-radius:18px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);}
.final-about-card b{display:block;margin-bottom:6px;color:#fff;}
.final-about-card span,.final-about-card p{font-size:13px;line-height:1.55;color:rgba(255,255,255,.72);}
.final-about-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;}
.final-certificate-extra{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;}
.certificate-preview{width:100%;border-radius:18px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);margin-top:12px;overflow:hidden;}
.certificate-preview canvas{width:100%;display:block;}
.developer-footer{font-size:11px!important;line-height:1.3!important;}
.production-lock-badge{position:absolute;left:12px;top:88px;z-index:35;display:none;padding:6px 10px;border-radius:999px;background:rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.16);font-size:11px;color:rgba(255,255,255,.72);backdrop-filter:blur(12px);pointer-events:none;}
.app-root[data-protected="true"] .production-lock-badge{display:block;}
@media(max-width:760px){
  .final-about-grid{grid-template-columns:1fr;}
  .xr-root::after{bottom:18%;width:74vw;height:18vw;opacity:.52;}
  .developer-footer{font-size:9px!important;gap:4px!important;padding:6px 8px!important;}
}
@media (prefers-reduced-motion: reduce){.xr-root::after{filter:none;}}

/* ===== merged from css/platform-next.css ===== */
.platform-grid{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.platform-modal .help-modal{max-width:min(720px,calc(100vw - 32px))}.scene-list{display:grid;gap:10px;margin:14px 0}.scene-choice{display:grid!important;gap:4px;text-align:left!important;border-radius:18px!important;padding:14px 16px!important;background:rgba(255,255,255,.09)!important;border:1px solid rgba(255,255,255,.14)!important}.scene-choice span{font-size:12px;color:rgba(255,255,255,.65)}.quest-steps{line-height:1.7;color:rgba(255,255,255,.78)}.quiz-answers{display:grid;gap:8px;margin:12px 0}.quiz-result{padding:16px;border-radius:18px;background:rgba(141,255,177,.11);border:1px solid rgba(141,255,177,.20)}.app-root[data-scene="day"]{background:linear-gradient(180deg,#e8f2ff,#f7fbff)!important}.app-root[data-scene="night"]{background:radial-gradient(circle at 50% 20%,rgba(60,70,130,.18),transparent 28%),#030711!important}.app-root[data-scene="museum"]{background:radial-gradient(circle at 50% 110%,rgba(141,255,177,.08),transparent 45%),#07101f!important}.app-root[data-scene="economy"] .smoke-particle,.app-root[data-scene="economy"] .fire-sprite{display:none!important}.scene-no-pedestal .xr-root::after{display:none!important}.quest-economy .smoke-particle,.quest-economy .fire-sprite{display:none!important}.quest-ui .hotspot-card{font-size:1.08em}.quest-ui .btn{min-height:64px}.platform-next-btn{order:98}@media(max-width:760px){.platform-next-btn{display:none!important}.dock-expanded .platform-next-btn{display:flex!important}.platform-modal .help-modal{max-width:calc(100vw - 16px)}}

/* ===== merged from css/platform-advanced.css ===== */

.platform-advanced-badge{position:fixed;right:14px;bottom:76px;z-index:35;padding:7px 12px;border-radius:999px;background:rgba(10,18,32,.72);color:#eaf4ff;border:1px solid rgba(255,255,255,.16);font:700 11px system-ui;backdrop-filter:blur(16px)}
.platform-diagnostics-ok{color:#8dffb1}.platform-diagnostics-warn{color:#ffd36a}.platform-diagnostics-err{color:#ff8e8e}
body.quest-ui .hotspot-card{font-size:120%;width:min(520px,calc(100vw - 48px))!important}body.quest-ui .btn{min-height:72px!important}.admin-scene-grid .floor-grid{display:block!important}.admin-scene-no-pedestal .museum-pedestal{display:none!important}
.admin-mini-nav{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.admin-mini-nav a{padding:8px 12px;border-radius:999px;background:rgba(49,101,255,.12);color:#cfe3ff;text-decoration:none;font-weight:800;border:1px solid rgba(255,255,255,.12)}

/* ===== merged from css/platform-enterprise.css ===== */
/* Platform Enterprise Pack — production UI, assistant, event/offline modes */
.platform-float{position:fixed;right:14px;bottom:92px;z-index:1600;display:flex;flex-direction:column;gap:8px;pointer-events:none}.platform-float button{pointer-events:auto;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(10,16,31,.82);color:#eef6ff;padding:10px 13px;font-weight:900;box-shadow:0 18px 52px rgba(0,0,0,.32);backdrop-filter:blur(18px);cursor:pointer}.platform-float button:hover{background:rgba(49,101,255,.95)}.platform-modal{position:fixed;inset:0;z-index:1700;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.58);padding:18px}.platform-modal.open{display:flex}.platform-box{width:min(760px,96vw);max-height:88vh;overflow:auto;border:1px solid rgba(255,255,255,.16);border-radius:28px;background:linear-gradient(160deg,rgba(12,20,38,.96),rgba(7,11,24,.94));box-shadow:0 30px 100px rgba(0,0,0,.5);color:#eef6ff;padding:22px}.platform-box h2{margin:0 0 10px}.platform-box p{color:rgba(238,246,255,.72);line-height:1.55}.platform-row{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.platform-box button,.platform-box a{border:0;border-radius:999px;background:rgba(255,255,255,.1);color:#eef6ff;text-decoration:none;padding:10px 14px;font-weight:900;cursor:pointer}.platform-box .primary{background:linear-gradient(135deg,#3165ff,#7c3aed)}.platform-box textarea,.platform-box input{width:100%;border:1px solid rgba(255,255,255,.14);border-radius:16px;background:rgba(255,255,255,.08);color:#eef6ff;padding:12px;font:inherit;outline:none}.platform-answer{white-space:pre-wrap;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:14px;margin-top:12px;line-height:1.55}.event-mode .topbar,.event-mode .progress-bar-wrap,.event-mode .hint-card{display:none!important}.event-mode .control-dock{grid-template-columns:repeat(3,minmax(0,1fr))!important;max-width:720px;margin:0 auto 14px;border-radius:28px}.event-mode .btn:not(#tourBtn):not(#scenarioBtn):not(#collectionBtn):not(#moreBtn){display:none!important}.event-mode #brandFooter{font-size:12px}.offline-ready-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:rgba(141,255,177,.14);color:#8dffb1;padding:7px 10px;font-size:12px;font-weight:900}@media(max-width:760px){.platform-float{right:8px;bottom:82px}.platform-float button{padding:9px 11px;font-size:12px}.platform-box{padding:16px;border-radius:22px}.event-mode .control-dock{grid-template-columns:repeat(2,1fr)!important}}

/* CONTROL CENTER PRO PACK */
.event-mode .control-dock .btn:not(#tourBtn):not(#collectionBtn):not(#fullscreenBtn):not(#moreBtn):not(#eventModeBtn){display:none!important}.event-mode #hintCardEl{display:none!important}.event-mode .developer-footer{font-size:12px}.platform-extra{background:linear-gradient(135deg,rgba(49,101,255,.20),rgba(124,58,237,.18))!important}

/* ===== merged from css/platform-final-product.css ===== */
:root{
  --pf-bg:#07101f;--pf-bg2:#0b1430;--pf-panel:rgba(255,255,255,.085);--pf-panel2:rgba(255,255,255,.055);
  --pf-line:rgba(255,255,255,.14);--pf-text:#eef6ff;--pf-muted:rgba(238,246,255,.68);
  --pf-blue:#3165ff;--pf-violet:#7c3aed;--pf-green:#8dffb1;--pf-gold:#ffd36a;--pf-red:#ff8e8e;
}
.pf-admin{margin:0;min-height:100vh;background:radial-gradient(circle at 12% 0,rgba(49,101,255,.22),transparent 35%),radial-gradient(circle at 88% 8%,rgba(124,58,237,.18),transparent 32%),linear-gradient(180deg,var(--pf-bg),#020613);color:var(--pf-text);font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif}
.pf-wrap{max-width:1480px;margin:0 auto;padding:18px}.pf-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:16px}.pf-top h1{margin:0;font-size:30px;letter-spacing:-.035em}.pf-top p{margin:6px 0 0;color:var(--pf-muted);line-height:1.55}.pf-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}.pf-card,.pf-panel{border:1px solid var(--pf-line);border-radius:26px;background:var(--pf-panel);box-shadow:0 24px 80px rgba(0,0,0,.28);backdrop-filter:blur(18px)}.pf-panel{padding:18px}.pf-card{padding:17px;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:9px;min-height:136px}.pf-card:hover{background:rgba(255,255,255,.12);transform:translateY(-1px)}.pf-card b{font-size:18px}.pf-card span,.pf-muted{color:var(--pf-muted);font-size:13px;line-height:1.55}.pf-span3{grid-column:span 3}.pf-span4{grid-column:span 4}.pf-span5{grid-column:span 5}.pf-span6{grid-column:span 6}.pf-span7{grid-column:span 7}.pf-span8{grid-column:span 8}.pf-span9{grid-column:span 9}.pf-span12{grid-column:span 12}.pf-actions{display:flex;gap:8px;flex-wrap:wrap}.pf-btn,.pf-admin button{border:0;border-radius:999px;padding:10px 14px;background:rgba(255,255,255,.12);color:var(--pf-text);font-weight:850;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px;font:inherit}.pf-btn:hover,.pf-admin button:hover{background:rgba(255,255,255,.18)}.pf-primary{background:linear-gradient(135deg,var(--pf-blue),var(--pf-violet))!important}.pf-danger{background:rgba(255,80,80,.18)!important;color:#ffd0d0!important}.pf-ok{color:var(--pf-green)}.pf-warn{color:var(--pf-gold)}.pf-err{color:var(--pf-red)}.pf-admin label{display:grid;gap:6px;margin:10px 0;color:var(--pf-muted);font-size:12px;font-weight:850}.pf-admin input,.pf-admin select,.pf-admin textarea{width:100%;border-radius:15px;border:1px solid var(--pf-line);background:rgba(255,255,255,.075);color:var(--pf-text);padding:11px 12px;outline:none;font:inherit}.pf-admin option{background:#07101f}.pf-admin textarea{min-height:126px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.45}.pf-table{width:100%;border-collapse:separate;border-spacing:0 8px}.pf-table th{text-align:left;color:var(--pf-muted);font-size:12px}.pf-table td{background:var(--pf-panel2);padding:10px;border-top:1px solid var(--pf-line);border-bottom:1px solid var(--pf-line);vertical-align:top}.pf-table td:first-child{border-left:1px solid var(--pf-line);border-radius:14px 0 0 14px}.pf-table td:last-child{border-right:1px solid var(--pf-line);border-radius:0 14px 14px 0}.pf-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.pf-three{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.pf-four{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.pf-pill{display:inline-flex;padding:4px 9px;border:1px solid var(--pf-line);border-radius:999px;color:var(--pf-muted);font-size:11px;font-weight:850}.pf-msg{margin-top:12px;font-weight:850;color:#9ed7ff}.pf-preview3d{min-height:560px;border-radius:24px;border:1px solid var(--pf-line);background:radial-gradient(circle at center,rgba(49,101,255,.18),transparent 36%),linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:auto,30px 30px,30px 30px;position:relative;overflow:hidden}.pf-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.pf-side{max-height:76vh;overflow:auto}.pf-status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.pf-status{padding:12px;border-radius:18px;background:var(--pf-panel2);border:1px solid var(--pf-line)}.pf-status strong{display:block;font-size:20px}.pf-status span{color:var(--pf-muted);font-size:12px}.pf-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.pf-tab{border-radius:999px;padding:8px 12px;border:1px solid var(--pf-line);background:rgba(255,255,255,.07);cursor:pointer}.pf-tab.active{background:linear-gradient(135deg,var(--pf-blue),var(--pf-violet));font-weight:900}.pf-hide{display:none!important}
.pf-public-chip{position:fixed;right:14px;bottom:14px;z-index:80;border-radius:999px;background:rgba(7,16,31,.72);border:1px solid rgba(255,255,255,.16);color:#eef6ff;padding:9px 12px;font:800 12px system-ui;backdrop-filter:blur(16px)}
.pf-quest-overlay{position:fixed;inset:0;z-index:140;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.66);padding:20px}.pf-quest-overlay.open{display:flex}.pf-quest-card{width:min(720px,calc(100vw - 28px));border-radius:30px;padding:24px;background:rgba(7,16,31,.9);border:1px solid rgba(255,255,255,.16);box-shadow:0 30px 100px rgba(0,0,0,.45);color:#eef6ff}.pf-quest-card h2{margin:0 0 10px;font-size:26px}.pf-quest-card p{color:rgba(238,246,255,.72);line-height:1.55}.pf-event-banner{position:fixed;left:50%;top:14px;transform:translateX(-50%);z-index:90;background:rgba(7,16,31,.72);border:1px solid rgba(255,255,255,.16);border-radius:999px;color:#eef6ff;padding:10px 14px;font:900 13px system-ui;backdrop-filter:blur(16px)}
@media(max-width:980px){.pf-grid,.pf-two,.pf-three,.pf-four,.pf-status-grid{grid-template-columns:1fr}.pf-span3,.pf-span4,.pf-span5,.pf-span6,.pf-span7,.pf-span8,.pf-span9,.pf-span12{grid-column:span 1}.pf-top{flex-direction:column}.pf-wrap{padding:12px}.pf-preview3d{min-height:420px}}

/* ===== merged from css/platform-pretest-polish.css ===== */
/* PRE-FINAL QUALITY & POLISH PACK */
:root {
  --qa-ok: #8dffb1;
  --qa-warn: #ffd36a;
  --qa-bad: #ff8e8e;
}

/* Public polish: soften visual noise before final QA */
.center-loader:not(.hidden) .loader-card { max-width: min(440px, calc(100vw - 36px)); }
.model-spinner-overlay[hidden], .model-spinner-overlay[style*="display:none"] { display: none !important; }
.developer-footer {
  backdrop-filter: blur(18px) saturate(130%);
  -webkit-backdrop-filter: blur(18px) saturate(130%);
}
.btn:focus-visible,
.small-action:focus-visible,
.status-button:focus-visible {
  outline: 2px solid rgba(141,255,177,.85);
  outline-offset: 3px;
}
.hotspot-card,
.hint-card,
.scenario-panel,
.fav-panel {
  max-width: min(390px, calc(100vw - 24px));
}

/* QA overlay */
.ar-qa-panel {
  position: fixed;
  right: 14px;
  bottom: 14px;
  z-index: 99999;
  width: min(420px, calc(100vw - 28px));
  max-height: min(540px, calc(100vh - 28px));
  overflow: auto;
  padding: 14px;
  border-radius: 20px;
  color: #f7fbff;
  background: rgba(8,14,26,.88);
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: 0 20px 70px rgba(0,0,0,.38);
  font: 13px/1.45 system-ui, -apple-system, Segoe UI, sans-serif;
}
.ar-qa-panel h3 { margin: 0 0 8px; font-size: 15px; }
.ar-qa-panel button { cursor: pointer; border: 0; border-radius: 999px; padding: 8px 10px; font-weight: 700; }
.ar-qa-panel .qa-row { display: flex; justify-content: space-between; gap: 12px; border-top: 1px solid rgba(255,255,255,.08); padding: 8px 0; }
.ar-qa-panel .qa-ok { color: var(--qa-ok); }
.ar-qa-panel .qa-warn { color: var(--qa-warn); }
.ar-qa-panel .qa-bad { color: var(--qa-bad); }
.ar-qa-panel .qa-muted { color: rgba(255,255,255,.62); }
.ar-qa-error-toast {
  position: fixed;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  z-index: 99998;
  max-width: min(620px, calc(100vw - 28px));
  border-radius: 18px;
  padding: 12px 14px;
  background: rgba(80,18,18,.92);
  color: #fff;
  border: 1px solid rgba(255,142,142,.35);
  box-shadow: 0 18px 60px rgba(0,0,0,.35);
  font: 13px/1.45 system-ui, -apple-system, Segoe UI, sans-serif;
}

@media (max-width: 760px) {
  .developer-footer { font-size: 10px; padding: 7px 8px; gap: 6px; }
  .ar-qa-panel { left: 10px; right: 10px; bottom: 10px; width: auto; }
  .hotspot-card { left: 10px !important; right: 10px !important; width: auto !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}

/* RC5.4 low-power profile: phones + Quest. Avoid expensive blur/compositing without changing layout. */
.low-power-mode .glass,
.low-power-mode .topbar,
.low-power-mode .control-dock,
.low-power-mode .hint-card,
.low-power-mode .hotspot-card,
.low-power-mode .tour-overlay,
.low-power-mode .fav-panel,
.low-power-mode .help-fab,
.low-power-mode .ios-install-toast,
.low-power-mode .ar-button,
.low-power-mode .platform-float button,
.low-power-mode .pf-public-chip,
.low-power-mode .pf-event-banner,
.low-power-mode .production-lock-badge {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.low-power-mode .btn,
.low-power-mode .ar-button,
.low-power-mode .loader-orb,
.low-power-mode .splash-orb {
  animation: none !important;
  transition-duration: .06s !important;
}
.low-power-mode .glass,
.low-power-mode .topbar,
.low-power-mode .control-dock,
.low-power-mode .hotspot-card,
.low-power-mode .tour-overlay {
  box-shadow: 0 8px 22px rgba(0,0,0,.18) !important;
}


/* RC5.4.1 Mobile WebXR hotspot safety:
   use DOM Overlay as a compact bottom sheet and keep the spatial exhibit visible. */
.xr-mobile-session .hotspot-card {
  top: auto !important;
  bottom: max(12px, env(safe-area-inset-bottom, 12px)) !important;
  left: 10px !important;
  right: 10px !important;
  width: auto !important;
  max-height: 36vh !important;
  transform: none !important;
  overflow: auto !important;
  background: rgba(5, 10, 20, 0.90) !important;
  box-shadow: 0 8px 24px rgba(0,0,0,.24) !important;
}
.xr-mobile-session .hotspot-card-img {
  max-height: 92px !important;
}
.xr-mobile-session .hotspot-card-title {
  font-size: 18px !important;
}
.xr-mobile-session .hotspot-card-text {
  font-size: 13px !important;
  line-height: 1.42 !important;
}


/* === RC5.5 EDUCATION UX: visitor-first, progressive disclosure === */
.education-welcome-bg{z-index:145;background:radial-gradient(circle at 50% 20%,rgba(184,120,62,.18),transparent 38%),rgba(3,6,10,.76)}
.education-welcome{width:min(560px,calc(100vw - 28px));padding:30px;text-align:left;background:linear-gradient(180deg,rgba(29,22,17,.94),rgba(10,12,15,.94));border-color:rgba(255,232,199,.18)}
.education-kicker{text-transform:uppercase;letter-spacing:.11em;font-size:10px;font-weight:900;color:#e5b67a;margin-bottom:9px}
.education-welcome h2{font-size:clamp(30px,7vw,48px);line-height:.98;letter-spacing:-.045em;margin:0;color:#fff}
.education-welcome h3{margin:8px 0 16px;font-size:18px;font-weight:750;color:#f1dcc4}
.education-lead{font-size:15px!important;line-height:1.62!important;color:rgba(255,247,237,.82)!important;max-width:50ch}
.education-start-actions{display:grid;gap:9px;margin-top:20px}
.education-primary,.education-secondary{border:1px solid rgba(255,255,255,.14);border-radius:18px;min-height:54px;padding:12px 16px;color:#fff;cursor:pointer;text-align:left;font-weight:850;background:rgba(255,255,255,.08)}
.education-primary{background:linear-gradient(135deg,#a65d2e,#c68145);box-shadow:0 15px 38px rgba(117,61,28,.28);display:flex;justify-content:space-between;align-items:center}
.education-primary span{font-size:11px;opacity:.78;font-weight:750}
.education-secondary:hover,.education-primary:hover{filter:brightness(1.07)}
.education-note{margin-top:15px;padding-top:13px;border-top:1px solid rgba(255,255,255,.10);font-size:11px;line-height:1.45;color:rgba(255,255,255,.55)}

/* Keep the collection of all six exhibits visible. */
.exhibit-panel{max-height:calc(100vh - 210px)}
.exhibit-btn{position:relative}
.exhibit-btn-label{font-weight:750;opacity:.9}

/* Educational hotspot card: short fact -> observation -> details. */
.hotspot-learning-prompt{display:grid;grid-template-columns:28px 1fr;gap:9px;align-items:flex-start;margin:12px 0 4px;padding:11px 12px;border-radius:15px;background:rgba(229,182,122,.11);border:1px solid rgba(229,182,122,.19);font-size:12px;line-height:1.45}
.hotspot-learning-prompt[hidden]{display:none!important}
.hotspot-learning-prompt b{display:block;color:#f4d4ad;margin-bottom:2px}
.hotspot-learning-prompt span:not(.hotspot-learning-icon){display:block;color:var(--text);opacity:.88}
.hotspot-learning-icon{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:rgba(229,182,122,.16);color:#f0bb7c;font-size:12px}
.hotspot-source-note{display:none;margin-top:9px;padding-top:9px;border-top:1px solid rgba(255,255,255,.10);font-size:10px;line-height:1.45;color:var(--muted)}
.hotspot-card.deep-open .hotspot-source-note{display:block}
#hotspotFavBtn{display:none!important}
.route-learning-summary{padding:12px 14px;border-radius:16px;background:rgba(141,255,177,.08);border:1px solid rgba(141,255,177,.16);color:var(--text)!important}
.route-certificate-secondary{opacity:.72}

/* Main visitor navigation: three persistent actions. AR stays as the contextual center button. */
.control-dock{grid-template-columns:repeat(3,minmax(0,1fr))!important;max-height:42vh;overflow:auto}
#tourBtn,#soundBtn,#moreBtn{display:flex!important}
#rotateBtn,#scaleUpBtn,#scaleDownBtn,#shareBtn,#lightBtn,#scenarioBtn,#qualityBtn,#anchorBtn,#handBtn,#nightBtn,#questBtn,#questSetupBtn,#recenterBtn,#routeBtn,#collectionBtn,#installBtn,#cameraBtn,#favBtn,#mapBtn,#guidedBtn,#quizBtn{display:none!important}
.dock-expanded{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.dock-expanded #rotateBtn,.dock-expanded #scaleUpBtn,.dock-expanded #scaleDownBtn,.dock-expanded #shareBtn,.dock-expanded #lightBtn,.dock-expanded #scenarioBtn,.dock-expanded #qualityBtn,.dock-expanded #nightBtn,.dock-expanded #routeBtn,.dock-expanded #collectionBtn,.dock-expanded #installBtn,.dock-expanded #cameraBtn,.dock-expanded #mapBtn,.dock-expanded #guidedBtn,.dock-expanded #quizBtn{display:flex!important}
.dock-expanded #anchorBtn,.dock-expanded #handBtn,.dock-expanded #questBtn,.dock-expanded #favBtn{display:none!important}
.quest-mode .dock-expanded #questSetupBtn,.quest-mode .dock-expanded #recenterBtn{display:flex!important}
#tourBtn .btn-title{font-size:15px}
#tourBtn{background:linear-gradient(135deg,rgba(166,93,46,.34),rgba(198,129,69,.20));border-color:rgba(229,182,122,.25)}
#moreBtn{align-items:center;text-align:center}
#soundBtn{align-items:center;text-align:center}

/* Compact, calmer mobile composition. */
@media(max-width:768px){
  .control-dock{grid-template-columns:repeat(3,1fr)!important;padding:7px 8px max(env(safe-area-inset-bottom,7px),7px)!important;overflow:visible}
  .dock-expanded{grid-template-columns:repeat(3,1fr)!important;max-height:44vh;overflow:auto}
  .exhibit-panel{top:0;max-width:calc(100vw - 16px);padding:5px;gap:5px}
  .exhibit-btn{width:64px;height:62px;border-radius:15px}
  .exhibit-btn-label{font-size:9px;display:block!important}
  .progress-bar-wrap{top:72px;width:min(420px,calc(100vw - 28px))}
  .hint-card{display:none}
  .hotspot-card{left:8px!important;right:8px!important;top:auto!important;bottom:74px!important;transform:none!important;width:auto!important;max-height:42vh!important;border-radius:24px!important;overflow:auto!important;padding:16px!important}
  .hotspot-card-title{font-size:22px}
  .hotspot-card-text{font-size:13px;line-height:1.48}
  .hotspot-actions{display:grid;grid-template-columns:1fr 1fr}
  .hotspot-actions.secondary{display:flex;justify-content:flex-end}
  .hotspot-actions.secondary #hotspotStopBtn{display:none}
  .education-welcome{padding:22px 18px;border-radius:24px}
  .education-note{display:none}
  .ar-button{bottom:78px!important}
  .help-fab{bottom:75px}
}
@media(max-width:420px){
  .btn-title{font-size:11px!important}
  #tourBtn .btn-title{font-size:12px!important}
  .education-primary{display:block}.education-primary span{display:block;margin-top:3px}
}

@media(prefers-reduced-motion:reduce){
  .education-welcome *{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}

/* ========================================================================== 
   RC5.5.1 MOBILE GOLD — responsive stabilization only.
   Scope: layout, safe areas, hierarchy and touch ergonomics.
   No WebXR/3D/PWA interaction logic is changed here.
   ========================================================================== */

html, body, .app-root { min-height: 100%; }
@supports (height: 100dvh) {
  html, body { height: 100dvh; }
  .app-root { height: 100dvh; }
}

/* Keep controls tactile and prevent accidental text selection on touch UI. */
.btn, .small-action, .exhibit-btn, .help-fab,
.education-primary, .education-secondary { -webkit-tap-highlight-color: transparent; user-select: none; }

/* Mobile/tablet is a scene-first surface. */
@media (max-width: 900px) {
  .shell { padding-top: env(safe-area-inset-top, 0px); }
  .topbar {
    min-height: 50px;
    padding: 7px 10px;
    gap: 6px;
    background: linear-gradient(180deg, rgba(5,10,18,.84), rgba(5,10,18,.62));
    backdrop-filter: blur(14px) saturate(125%);
    -webkit-backdrop-filter: blur(14px) saturate(125%);
  }
  .brand-block { display:flex; align-items:center; min-width:0; }
  .brand-dot { width:8px; height:8px; margin-right:7px; box-shadow:0 0 0 4px rgba(141,255,177,.08); background:var(--accent); flex:0 0 auto; }
  .brand-title { font-size:13px; line-height:1.2; font-weight:780; max-width:calc(100vw - 76px); }
  .brand-sub { display:none !important; }
  .topbar-right { gap:4px; }
  .topbar-right .status-button { display:none !important; }
  .topbar-right .status-pill:not(.status-button) {
    display:inline-flex !important;
    width:34px; height:34px; padding:0; justify-content:center; border-radius:50%;
    background:rgba(255,255,255,.07);
  }
  #statusText { display:none !important; }
  .status-indicator { width:9px; height:9px; }

  .middle-zone { min-height:0; overflow:hidden; }

  /* All six exhibits remain available; on the narrowest phones the strip scrolls. */
  .exhibit-panel {
    top:6px !important; left:8px !important; right:8px !important;
    transform:none !important; width:auto !important; max-width:none !important;
    height:62px; max-height:62px !important;
    display:flex !important; flex-direction:row !important; align-items:center;
    justify-content:flex-start; gap:4px !important; padding:4px !important;
    overflow-x:auto !important; overflow-y:hidden !important;
    scroll-snap-type:x proximity; overscroll-behavior-x:contain;
    scrollbar-width:none; white-space:nowrap;
    border-radius:18px;
    background:linear-gradient(180deg,rgba(7,13,23,.76),rgba(7,13,23,.58));
    backdrop-filter:blur(12px) saturate(120%);
    -webkit-backdrop-filter:blur(12px) saturate(120%);
  }
  .exhibit-panel::-webkit-scrollbar { display:none; }
  .exhibit-btn {
    flex:0 0 56px !important; width:56px !important; height:54px !important;
    min-width:56px; border-radius:14px !important; gap:2px !important;
    padding:4px 3px; scroll-snap-align:center;
  }
  .exhibit-btn-icon { font-size:19px !important; }
  .exhibit-btn-label {
    display:block !important; max-width:50px; overflow:hidden; text-overflow:ellipsis;
    font-size:8.5px !important; line-height:1.05 !important; font-weight:760 !important;
  }

  /* Progress becomes a compact status chip instead of another full-width layer. */
  .progress-bar-wrap {
    top:72px !important; left:10px !important; transform:none !important;
    width:auto !important; max-width:180px; min-width:0;
    padding:6px 9px; border-radius:999px;
    background:rgba(5,10,18,.62); border:1px solid rgba(255,255,255,.12);
    backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  }
  .progress-bar-label { margin:0 !important; font-size:10px !important; text-align:left !important; white-space:nowrap; }
  .progress-bar-track { display:none !important; }

  .hint-card { display:none !important; }

  /* Compact persistent dock. Advanced controls remain behind “Ещё”. */
  .control-dock {
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:6px !important; padding:6px 8px max(6px, env(safe-area-inset-bottom, 6px)) !important;
    max-height:none !important; overflow:visible !important;
    background:linear-gradient(180deg,rgba(5,10,18,.72),rgba(5,10,18,.90));
    backdrop-filter:blur(16px) saturate(125%);
    -webkit-backdrop-filter:blur(16px) saturate(125%);
  }
  .control-dock .btn {
    min-height:48px !important; padding:6px 7px !important; border-radius:14px !important;
    align-items:center !important; justify-content:center !important; text-align:center !important;
    box-shadow:none !important;
  }
  .control-dock .btn-title { font-size:11.5px !important; line-height:1.1 !important; white-space:nowrap; }
  .control-dock .btn-sub { display:none !important; }
  #tourBtn .btn-title { font-size:11.5px !important; }

  .control-dock.dock-expanded {
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    max-height:min(54dvh, 430px) !important; overflow-y:auto !important;
    align-content:start; padding-top:10px !important;
    box-shadow:0 -20px 54px rgba(0,0,0,.30);
  }

  .developer-footer { display:none !important; }

  /* Help remains reachable but stops floating randomly over the scene. */
  .help-fab {
    left:auto !important; right:10px !important;
    bottom:calc(62px + max(8px, env(safe-area-inset-bottom, 8px))) !important;
    width:44px !important; height:44px !important; font-size:18px !important;
    background:rgba(5,10,18,.62); box-shadow:0 8px 22px rgba(0,0,0,.22);
  }

  /* AR CTA sits just above the compact dock. */
  .ar-button {
    bottom:calc(64px + max(8px, env(safe-area-inset-bottom, 8px))) !important;
    min-height:46px; padding:10px 20px !important; font-size:13px !important;
  }

  /* Educational entry: a restrained bottom sheet, not a full-screen wall. */
  .education-welcome-bg {
    align-items:flex-end !important; justify-content:center !important;
    padding:8px 8px max(8px, env(safe-area-inset-bottom, 8px)) !important;
    background:linear-gradient(180deg,rgba(2,4,8,.24),rgba(2,4,8,.72)) !important;
  }
  .education-welcome {
    width:min(560px,100%) !important;
    max-height:min(52dvh, 480px) !important; overflow:auto !important;
    padding:18px 16px 16px !important; border-radius:24px !important;
    box-shadow:0 -18px 64px rgba(0,0,0,.36) !important;
  }
  .education-kicker { font-size:9px !important; margin-bottom:6px !important; }
  .education-welcome h2 { font-size:clamp(27px,8vw,38px) !important; line-height:1 !important; }
  .education-welcome h3 { margin:5px 0 10px !important; font-size:15px !important; }
  .education-lead { margin:0 !important; font-size:13px !important; line-height:1.45 !important; }
  .education-start-actions {
    grid-template-columns:1fr 1fr !important; gap:8px !important; margin-top:14px !important;
  }
  .education-primary {
    grid-column:1 / -1; min-height:50px !important; border-radius:15px !important;
    padding:10px 13px !important;
  }
  .education-secondary {
    min-height:46px !important; border-radius:14px !important; padding:9px 10px !important;
    font-size:12px; line-height:1.2;
  }
  .education-note { display:none !important; }

  /* Hotspot is a true bottom sheet: the 3D exhibit remains visible above it. */
  .hotspot-card {
    left:8px !important; right:8px !important; top:auto !important;
    bottom:calc(62px + max(7px, env(safe-area-inset-bottom, 7px))) !important;
    transform:none !important; width:auto !important;
    max-width:none !important; max-height:min(44dvh, 430px) !important;
    overflow:auto !important; overscroll-behavior:contain;
    border-radius:24px 24px 16px 16px !important;
    padding:20px 14px 14px !important;
    background:linear-gradient(180deg,rgba(7,12,20,.96),rgba(5,9,16,.96)) !important;
    box-shadow:0 -18px 56px rgba(0,0,0,.38) !important;
  }
  .hotspot-card::before {
    content:""; position:absolute; top:7px; left:50%; transform:translateX(-50%);
    width:42px; height:4px; border-radius:999px; background:rgba(255,255,255,.28);
  }
  .hotspot-card-label, .hotspot-type-pill { display:none !important; }
  .hotspot-card-header { margin:0 44px 6px 0 !important; min-height:32px; }
  .hotspot-card-title { font-size:20px !important; line-height:1.12 !important; }
  .hotspot-card-text { font-size:13px !important; line-height:1.44 !important; margin-bottom:7px !important; }
  .hotspot-card-img { max-height:92px !important; margin-bottom:8px !important; }
  .hotspot-learning-prompt { margin:9px 0 4px !important; padding:9px 10px !important; }
  .hotspot-actions { display:grid !important; grid-template-columns:1fr 1fr !important; gap:7px !important; margin-top:9px !important; }
  .hotspot-actions .small-action { min-height:44px; border-radius:13px; padding:8px 9px; font-size:12px; }
  .hotspot-actions.secondary { display:block !important; margin:0 !important; height:0; }
  .hotspot-actions.secondary #hotspotStopBtn { display:none !important; }
  #hotspotCloseBtn {
    position:absolute; top:10px; right:10px; z-index:2;
    width:44px; height:44px; min-height:44px; padding:0 !important;
    border-radius:50% !important; font-size:0 !important;
    display:grid !important; place-items:center;
    background:rgba(255,255,255,.09) !important;
  }
  #hotspotCloseBtn::before { content:"✕"; font-size:17px; line-height:1; }
  .hotspot-deep-text { font-size:12px !important; line-height:1.45 !important; }

  /* In mobile WebXR DOM Overlay keep the same stable geometry. */
  .xr-mobile-session .hotspot-card {
    bottom:calc(62px + max(7px, env(safe-area-inset-bottom, 7px))) !important;
    max-height:min(42dvh, 400px) !important;
    background:rgba(5,10,18,.95) !important;
  }

  /* Generic dialogs must never fall outside the physical screen. */
  .modal-bg { padding:10px max(8px, env(safe-area-inset-right, 8px)) max(10px, env(safe-area-inset-bottom, 10px)) max(8px, env(safe-area-inset-left, 8px)); }
  .help-modal, .experience-modal, .platform-box, .pf-quest-card {
    max-height:calc(100dvh - max(20px, env(safe-area-inset-top, 0px) + env(safe-area-inset-bottom, 0px) + 16px));
  }
}

/* Narrow phones: protect typography and still retain every exhibit via scrolling. */
@media (max-width: 360px) {
  .brand-title { font-size:12px !important; max-width:260px; }
  .exhibit-panel { left:6px !important; right:6px !important; }
  .exhibit-btn { flex-basis:52px !important; width:52px !important; min-width:52px !important; }
  .exhibit-btn-label { max-width:47px; font-size:8px !important; }
  .education-welcome { max-height:min(56dvh, 448px) !important; padding:16px 14px 14px !important; }
  .education-welcome h2 { font-size:27px !important; }
  .education-lead { font-size:12.5px !important; }
  .education-secondary { font-size:11px !important; }
  .control-dock .btn-title, #tourBtn .btn-title { font-size:10.5px !important; }
  .hotspot-card { left:6px !important; right:6px !important; max-height:45dvh !important; }
}

/* Large phones and small tablets: keep the scene central and avoid over-wide controls. */
@media (min-width: 601px) and (max-width: 900px) and (orientation: portrait) {
  .exhibit-panel { left:50% !important; right:auto !important; transform:translateX(-50%) !important; width:min(620px,calc(100vw - 24px)) !important; }
  .exhibit-btn { flex:1 1 0 !important; max-width:92px; }
  .control-dock { width:min(560px,calc(100% - 24px)); margin:0 auto 10px; border:1px solid var(--stroke); border-radius:20px; }
  .progress-bar-wrap { left:calc(50% - 300px) !important; }
  .hotspot-card { left:50% !important; right:auto !important; transform:translateX(-50%) !important; width:min(540px,calc(100vw - 24px)) !important; }
  .education-welcome { width:min(600px,calc(100vw - 24px)) !important; }
}

/* Mobile landscape: move the exhibit selector to the side to preserve vertical scene area. */
@media (max-width: 900px) and (orientation: landscape) and (max-height: 540px) {
  .topbar { min-height:42px; padding:5px 8px; }
  .brand-title { font-size:12px !important; }
  .exhibit-panel {
    top:6px !important; right:6px !important; left:auto !important;
    width:56px !important; height:auto !important; max-height:calc(100dvh - 100px) !important;
    flex-direction:column !important; overflow-x:hidden !important; overflow-y:auto !important;
    padding:4px !important;
  }
  .exhibit-btn { flex:0 0 48px !important; width:48px !important; height:48px !important; min-width:48px !important; }
  .exhibit-btn-icon { font-size:17px !important; }
  .exhibit-btn-label { font-size:7.5px !important; max-width:43px; }
  .progress-bar-wrap { top:8px !important; left:8px !important; }
  .control-dock { padding-top:4px !important; padding-bottom:max(4px, env(safe-area-inset-bottom,4px)) !important; }
  .control-dock .btn { min-height:44px !important; }
  .help-fab { width:40px !important; height:40px !important; bottom:54px !important; right:68px !important; }
  .ar-button { bottom:54px !important; }
  .hotspot-card {
    left:8px !important; right:auto !important; bottom:54px !important;
    width:min(390px,48vw) !important; max-height:calc(100dvh - 104px) !important;
  }
  .education-welcome-bg { align-items:center !important; }
  .education-welcome {
    width:min(560px,calc(100vw - 90px)) !important;
    max-height:calc(100dvh - 16px) !important;
  }
  .education-kicker { display:none; }
  .education-welcome h2 { font-size:28px !important; }
  .education-welcome h3 { margin-bottom:6px !important; }
  .education-lead { font-size:12px !important; line-height:1.35 !important; }
  .education-start-actions { margin-top:8px !important; }
  .education-primary, .education-secondary { min-height:42px !important; }
}

@media (prefers-reduced-motion: reduce) {
  .control-dock .btn, .exhibit-btn, .ar-button, .education-primary, .education-secondary { transition:none !important; animation:none !important; }
}


/* ==========================================================================
   RC5.6.1 PUBLIC UX / DESIGN GOLD
   Cultural object first. One dominant action, progressive disclosure,
   museum-grade hierarchy, restrained motion, mobile bottom sheets.
   ========================================================================== */
:root{
  --museum-ink:#12100e;
  --museum-ink-2:#191612;
  --museum-paper:#f6efe4;
  --museum-muted:rgba(246,239,228,.66);
  --museum-copper:#bd7b45;
  --museum-copper-soft:#d4a06d;
  --museum-line:rgba(246,239,228,.14);
  --museum-panel:rgba(18,16,14,.82);
  --museum-panel-strong:rgba(18,16,14,.94);
  --museum-shadow:0 24px 70px rgba(0,0,0,.30);
}
body{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;background:var(--museum-ink)}
.app-root{
  --text:var(--museum-paper);--muted:var(--museum-muted);--stroke:var(--museum-line);--accent:var(--museum-copper-soft);--accent2:var(--museum-copper);
  background:radial-gradient(900px 580px at 52% 44%,rgba(189,123,69,.13),transparent 55%),linear-gradient(180deg,#181510 0%,#0e0d0b 100%);
}
.glass{background:rgba(18,16,14,.68);border-color:var(--museum-line);box-shadow:var(--museum-shadow);backdrop-filter:blur(16px) saturate(112%);-webkit-backdrop-filter:blur(16px) saturate(112%)}
.topbar{position:absolute;top:max(12px,env(safe-area-inset-top,0px));left:50%;transform:translateX(-50%);width:min(920px,calc(100% - 28px));min-height:58px;padding:8px 10px 8px 12px;border:1px solid var(--museum-line);border-radius:18px;background:rgba(18,16,14,.68);box-shadow:0 10px 38px rgba(0,0,0,.18);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);z-index:55}
.brand-block{display:flex!important;align-items:center;gap:10px;min-width:0}
.brand-mark{width:36px;height:36px;display:grid;place-items:center;flex:0 0 auto;border:1px solid rgba(212,160,109,.42);border-radius:11px;color:#e3b486;background:rgba(189,123,69,.09);font:750 10px/1 ui-serif,Georgia,serif;letter-spacing:.08em}
.brand-copy{min-width:0;display:grid;gap:2px}
.brand-title{font:650 16px/1.05 ui-serif,Georgia,"Times New Roman",serif;letter-spacing:-.02em;color:var(--museum-paper)}
.brand-sub{font-size:10.5px;line-height:1.2;color:var(--museum-muted);opacity:1}
.topbar-right .status-pill{height:36px;min-width:36px;padding:0 11px;background:rgba(246,239,228,.055);border-color:rgba(246,239,228,.10);color:var(--museum-muted)}
.status-indicator.ready{background:#9dc69b}.status-indicator.busy{background:#d5aa6b}.status-indicator.error{background:#d98779}
.middle-zone{overflow:visible}
.progress-bar-wrap{top:84px;width:auto;max-width:none;padding:7px 10px;border-radius:999px;background:rgba(18,16,14,.58);border:1px solid rgba(246,239,228,.10);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.progress-bar-label{margin:0;color:rgba(246,239,228,.72);font-size:10.5px;letter-spacing:.01em}.progress-bar-track{display:none}
.hint-card{right:18px;bottom:112px;width:272px;border-radius:18px;background:rgba(18,16,14,.74)}

/* Main navigation: only visitor-level actions are persistent. */
.control-dock{position:absolute;left:50%;bottom:max(16px,env(safe-area-inset-bottom,0px));transform:translateX(-50%);width:auto;min-width:360px;max-width:calc(100vw - 28px);padding:6px;display:flex;align-items:center;gap:5px;border:1px solid var(--museum-line);border-radius:20px;background:rgba(18,16,14,.78);box-shadow:0 18px 56px rgba(0,0,0,.30);backdrop-filter:blur(18px) saturate(112%);-webkit-backdrop-filter:blur(18px) saturate(112%);z-index:70;pointer-events:auto}
.control-dock .btn{display:none;min-width:0;min-height:48px;padding:8px 12px;border:0;border-radius:15px;background:transparent;box-shadow:none;color:var(--museum-paper);flex-direction:row;align-items:center;gap:9px;text-align:left;transition:background .18s ease,transform .18s ease,color .18s ease}
.control-dock .btn:hover{transform:none;background:rgba(246,239,228,.07)}
.control-dock #tourBtn,.control-dock #exhibitToggleBtn,.control-dock #moreBtn{display:flex!important}
.control-dock #tourBtn{background:rgba(189,123,69,.16);color:#f4d7bb}
.control-dock .btn-copy{display:grid;gap:1px;min-width:0}.control-dock .btn-title{font-size:12.5px;font-weight:720;line-height:1.1;white-space:nowrap}.control-dock .btn-sub{font-size:9.5px;color:rgba(246,239,228,.50);line-height:1.1;white-space:nowrap}
.nav-icon{width:20px;height:20px;flex:0 0 auto;color:currentColor}
#moreBtn .nav-icon{width:22px}

/* More becomes a real sheet. All existing functions stay available. */
.control-dock.dock-expanded{width:min(760px,calc(100vw - 28px));max-height:min(58vh,520px);padding:44px 10px 10px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;overflow:auto;align-content:start;border-radius:24px;background:var(--museum-panel-strong);box-shadow:0 28px 90px rgba(0,0,0,.46)}
.control-dock.dock-expanded::before{content:"Дополнительно";position:absolute;left:18px;top:15px;font:650 14px/1 ui-serif,Georgia,serif;color:var(--museum-paper)}
.control-dock.dock-expanded .btn{display:flex!important;min-height:54px;padding:9px 10px;background:rgba(246,239,228,.045);border:1px solid rgba(246,239,228,.07);border-radius:14px}
.control-dock.dock-expanded .btn:hover{background:rgba(246,239,228,.08)}
.control-dock.dock-expanded #anchorBtn,.control-dock.dock-expanded #handBtn,.control-dock.dock-expanded #questBtn{display:none!important}
.quest-mode .control-dock.dock-expanded #questSetupBtn,.quest-mode .control-dock.dock-expanded #recenterBtn{display:flex!important}
#questSetupBtn,#recenterBtn{display:none!important}
.ux-scrim{position:fixed;inset:0;z-index:58;border:0;background:rgba(4,3,2,.34);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s ease}
.ux-scrim.open{opacity:1;visibility:visible;pointer-events:auto}

/* Exhibit collection is deliberate, not permanently floating over the scene. */
.exhibit-panel{position:absolute;left:50%;right:auto;top:auto;bottom:86px;transform:translate(-50%,18px);width:min(680px,calc(100vw - 28px));max-height:none;padding:42px 10px 10px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;border-radius:24px;background:var(--museum-panel-strong);border:1px solid var(--museum-line);box-shadow:0 28px 90px rgba(0,0,0,.42);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,transform .25s cubic-bezier(.2,.8,.2,1),visibility .2s ease;z-index:68}
.exhibit-panel::before{content:"Экспонаты";position:absolute;left:18px;top:15px;font:650 14px/1 ui-serif,Georgia,serif;color:var(--museum-paper)}
.exhibit-panel.exhibit-sheet-open{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.exhibit-btn{width:auto;height:72px;min-width:0;padding:8px 5px;border-radius:15px;border:1px solid transparent;background:rgba(246,239,228,.035);color:rgba(246,239,228,.72);gap:5px;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}
.exhibit-btn:hover{transform:none;background:rgba(246,239,228,.07)}
.exhibit-btn.active{border-color:rgba(212,160,109,.42);background:rgba(189,123,69,.13);color:#f1cfaa}
.exhibit-btn-icon{height:26px;display:grid;place-items:center;font-size:0}.exhibit-svg{width:24px;height:24px}.exhibit-btn-label{font-size:10px;font-weight:650;opacity:1}

/* AR is contextual and visually strong without pulsing like an alarm. */
.ar-button{bottom:88px!important;min-height:46px;padding:10px 18px!important;border:1px solid rgba(212,160,109,.52)!important;border-radius:999px!important;background:rgba(36,27,20,.88)!important;color:#f2d2b2!important;box-shadow:0 12px 34px rgba(0,0,0,.28)!important;backdrop-filter:blur(14px)!important;-webkit-backdrop-filter:blur(14px)!important;font:720 12.5px/1 system-ui!important;letter-spacing:0!important;animation:none!important}
.ar-button:hover{background:rgba(58,39,27,.92)!important}.ar-button[disabled]{opacity:.50}
.help-fab{left:18px;bottom:18px;width:42px;height:42px;border-radius:14px;background:rgba(18,16,14,.68);border-color:rgba(246,239,228,.12);box-shadow:0 10px 30px rgba(0,0,0,.22);font-size:16px;color:rgba(246,239,228,.76)}
.developer-footer{display:none!important}

/* Opening screen: the live 3D scene is the visual; copy sits quietly over it. */
.education-welcome-bg{z-index:145;align-items:center;justify-content:flex-start;padding:clamp(84px,12vh,132px) clamp(22px,7vw,110px) 110px;background:linear-gradient(90deg,rgba(8,7,5,.82) 0%,rgba(8,7,5,.60) 34%,rgba(8,7,5,.10) 68%,transparent 100%)}
.education-welcome{width:min(520px,44vw);padding:0;text-align:left;background:transparent;border:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.education-kicker{margin-bottom:13px;color:#d5a06d;font-size:10px;font-weight:720;letter-spacing:.14em}
.education-welcome h2{margin:0;color:var(--museum-paper);font:650 clamp(44px,6vw,78px)/.92 ui-serif,Georgia,"Times New Roman",serif;letter-spacing:-.045em;text-wrap:balance}
.education-welcome h3{margin:16px 0 18px;font-size:15px;font-weight:620;color:#e0c4a7;letter-spacing:.01em}
.education-lead{margin:0;max-width:46ch;font-size:15px!important;line-height:1.62!important;color:rgba(246,239,228,.74)!important}
.education-start-actions{margin-top:26px;display:grid;grid-template-columns:1fr auto;gap:9px}
.education-primary,.education-secondary{min-height:56px;border-radius:16px;cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease}
.education-primary{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;padding:12px 15px 12px 17px;border:1px solid rgba(212,160,109,.50);background:linear-gradient(135deg,#a76234,#c58550);color:#fff8ef;box-shadow:0 18px 42px rgba(88,45,21,.25);text-align:left}
.education-primary-copy{display:grid;gap:2px}.education-primary-copy b{font-size:14px}.education-primary-copy small{font-size:10px;font-weight:600;opacity:.72}.education-arrow{font-size:22px;font-weight:400}
.education-secondary{grid-column:1 / -1;padding:11px 15px;border:1px solid rgba(246,239,228,.16);background:rgba(246,239,228,.055);color:rgba(246,239,228,.88);font-weight:680;text-align:center}
.education-primary:hover,.education-secondary:hover{filter:none;transform:translateY(-1px)}
.education-note{margin-top:14px;padding-top:0;border:0;max-width:46ch;font-size:10.5px;line-height:1.45;color:rgba(246,239,228,.46)}

/* Story card: title -> fact -> observation -> audio/detail. */
.hotspot-card{width:min(410px,calc(100vw - 40px));padding:22px;border-radius:22px;background:rgba(18,16,14,.91);border-color:rgba(246,239,228,.14);box-shadow:0 28px 86px rgba(0,0,0,.42)}
.hotspot-card-label{color:#c89363}.hotspot-type-pill{display:none}.hotspot-card-title{font:650 27px/1.04 ui-serif,Georgia,serif;color:var(--museum-paper)}
.hotspot-card-text{font-size:13.5px;line-height:1.55;color:rgba(246,239,228,.82)}
.hotspot-learning-prompt{background:rgba(189,123,69,.09);border-color:rgba(212,160,109,.18)}
.hotspot-learning-prompt b{color:#ddb489}.hotspot-learning-icon{background:rgba(189,123,69,.13);color:#ddb489}
.hotspot-actions .small-action{border-radius:13px;background:rgba(246,239,228,.06);border-color:rgba(246,239,228,.11);color:rgba(246,239,228,.88)}
.hotspot-actions .small-action.primary{background:#efe3d3;color:#1b1713;border-color:#efe3d3}
.hotspot-source-note{color:rgba(246,239,228,.50)}
.round-close,.modal-close{background:rgba(246,239,228,.07);color:rgba(246,239,228,.82)}

/* Dialogs share the same restrained surface. */
.help-modal,.experience-modal,.scenario-panel,.fav-panel,.tour-overlay{background:rgba(18,16,14,.94);border-color:var(--museum-line);box-shadow:0 28px 90px rgba(0,0,0,.44)}
.experience-modal h2,.help-modal h2{font-family:ui-serif,Georgia,serif;font-weight:650}
.experience-exhibit-card,.experience-hotspot-row,.experience-guide-card,.quiz-box,.quiz-answers button{background:rgba(246,239,228,.045);border-color:rgba(246,239,228,.10)}
.experience-exhibit-card.active{outline:1px solid rgba(212,160,109,.56);background:rgba(189,123,69,.10)}
.experience-exhibit-card i{background:#bd7b45}
.experience-step-pill{background:rgba(189,123,69,.10);border-color:rgba(212,160,109,.24);color:#e4bd94}

/* Mobile: scene-first, stable bottom navigation and bottom sheets. */
@media(max-width:900px){
  .topbar{top:max(7px,env(safe-area-inset-top,0px));width:calc(100% - 14px);min-height:48px;padding:6px 7px 6px 8px;border-radius:15px;background:rgba(18,16,14,.62)}
  .brand-mark{width:32px;height:32px;border-radius:10px}.brand-title{font-size:14px}.brand-sub{display:block!important;font-size:9px;max-width:62vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .topbar-right .status-pill:not(.status-button){width:32px;height:32px;padding:0;display:grid!important;place-items:center}.topbar-right .status-button{display:none!important}#statusText{display:none!important}
  .progress-bar-wrap{top:62px!important;left:9px!important;transform:none!important;padding:6px 8px;max-width:176px}.progress-bar-label{font-size:9.5px!important}
  .hint-card{display:none!important}
  .control-dock{left:7px;right:7px;bottom:max(7px,env(safe-area-inset-bottom,7px));transform:none;width:auto;min-width:0;max-width:none;padding:5px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;border-radius:18px;background:rgba(18,16,14,.88)}
  .control-dock .btn{min-height:50px;padding:7px 6px;justify-content:center;text-align:center;flex-direction:column;gap:3px;border-radius:14px}
  .control-dock .btn-copy{display:block}.control-dock .btn-title{font-size:11px!important}.control-dock .btn-sub{display:none!important}.nav-icon{width:19px;height:19px}
  .control-dock.dock-expanded{left:7px;right:7px;bottom:max(7px,env(safe-area-inset-bottom,7px));transform:none;width:auto;max-height:min(62dvh,520px);padding:43px 8px 8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;border-radius:24px 24px 18px 18px;overflow-y:auto}
  .control-dock.dock-expanded::before{left:16px;top:15px;font-size:14px}.control-dock.dock-expanded .btn{min-height:58px;padding:8px 5px;flex-direction:column;text-align:center;gap:4px}.control-dock.dock-expanded .btn-title{white-space:normal;font-size:10.5px!important;line-height:1.1}.control-dock.dock-expanded .btn-sub{display:none!important}
  .exhibit-panel{left:7px!important;right:7px!important;bottom:67px;transform:translateY(18px)!important;width:auto!important;height:auto!important;max-height:min(48dvh,390px)!important;padding:43px 8px 9px!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important;overflow-y:auto!important;overflow-x:hidden!important;border-radius:24px 24px 18px 18px;background:rgba(18,16,14,.95)}
  .exhibit-panel.exhibit-sheet-open{transform:translateY(0)!important}.exhibit-panel::before{left:16px;top:15px}
  .exhibit-btn{width:auto!important;min-width:0!important;height:66px!important;flex:none!important;border-radius:14px!important}.exhibit-btn-icon{height:24px}.exhibit-svg{width:22px;height:22px}.exhibit-btn-label{font-size:9.5px!important;max-width:none!important}
  .ar-button{bottom:72px!important;min-height:43px;padding:9px 16px!important;font-size:11.5px!important}
  .help-fab{left:auto!important;right:9px!important;bottom:73px!important;width:40px!important;height:40px!important;border-radius:13px!important}
  .education-welcome-bg{align-items:flex-end!important;justify-content:center!important;padding:8px 8px max(76px,calc(env(safe-area-inset-bottom,0px) + 68px))!important;background:linear-gradient(180deg,rgba(6,5,4,.08) 0%,rgba(6,5,4,.26) 40%,rgba(6,5,4,.78) 76%,rgba(6,5,4,.92) 100%)!important}
  .education-welcome{width:100%!important;max-height:min(54dvh,490px)!important;padding:19px 17px 16px!important;border:1px solid rgba(246,239,228,.12)!important;border-radius:24px!important;background:rgba(18,16,14,.92)!important;box-shadow:0 -20px 70px rgba(0,0,0,.38)!important;backdrop-filter:blur(16px)!important;-webkit-backdrop-filter:blur(16px)!important;overflow:auto!important}
  .education-kicker{font-size:8.5px!important;margin-bottom:8px!important}.education-welcome h2{font-size:clamp(32px,10vw,44px)!important;line-height:.94!important}.education-welcome h3{margin:9px 0 10px!important;font-size:13px!important}.education-lead{font-size:12.5px!important;line-height:1.48!important}.education-start-actions{margin-top:15px!important;grid-template-columns:1fr!important;gap:7px!important}.education-primary{min-height:52px!important;border-radius:15px!important}.education-secondary{min-height:44px!important;border-radius:14px!important;font-size:12px}.education-note{display:block!important;margin-top:9px!important;font-size:9.5px}
  .hotspot-card{left:7px!important;right:7px!important;bottom:67px!important;top:auto!important;transform:none!important;width:auto!important;max-width:none!important;max-height:min(46dvh,430px)!important;padding:22px 14px 14px!important;border-radius:24px 24px 17px 17px!important;background:rgba(18,16,14,.96)!important}.hotspot-card::before{background:rgba(246,239,228,.26)}.hotspot-card-title{font-size:23px!important}.hotspot-card-text{font-size:12.8px!important}.hotspot-actions{grid-template-columns:1fr 1fr!important}.hotspot-card-img{max-height:110px!important}
  .xr-mobile-session .hotspot-card{bottom:67px!important;background:rgba(18,16,14,.96)!important}
}

@media(max-width:360px){
  .brand-sub{max-width:58vw}.control-dock{left:5px;right:5px}.control-dock .btn-title{font-size:10.5px!important}.education-welcome{padding:17px 14px 14px!important}.education-welcome h2{font-size:31px!important}.education-note{display:none!important}
}

/* Mobile landscape: horizontal space is used for content, not a vertical icon rail. */
@media(max-width:900px) and (orientation:landscape) and (max-height:540px){
  .topbar{min-height:42px}.brand-mark{width:29px;height:29px}.brand-sub{display:none!important}.progress-bar-wrap{top:52px!important}
  .control-dock{left:50%;right:auto;bottom:5px;transform:translateX(-50%);width:min(500px,calc(100vw - 120px));grid-template-columns:repeat(3,1fr)}
  .control-dock .btn{min-height:44px;flex-direction:row}.control-dock.dock-expanded{left:50%;right:auto;transform:translateX(-50%);width:min(680px,calc(100vw - 24px));max-height:calc(100dvh - 54px);grid-template-columns:repeat(4,1fr)}
  .exhibit-panel{left:50%!important;right:auto!important;bottom:56px!important;transform:translate(-50%,18px)!important;width:min(640px,calc(100vw - 30px))!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;max-height:calc(100dvh - 74px)!important}.exhibit-panel.exhibit-sheet-open{transform:translate(-50%,0)!important}.exhibit-btn{height:58px!important}
  .ar-button{bottom:58px!important}.help-fab{bottom:58px!important;right:8px!important}
  .education-welcome-bg{align-items:center!important;justify-content:flex-start!important;padding:50px 70px 58px 22px!important;background:linear-gradient(90deg,rgba(6,5,4,.88),rgba(6,5,4,.45) 56%,rgba(6,5,4,.08))!important}.education-welcome{width:min(440px,60vw)!important;max-height:calc(100dvh - 70px)!important;padding:16px!important}.education-welcome h2{font-size:34px!important}.education-lead{font-size:11.5px!important}.education-note{display:none!important}
  .hotspot-card{left:7px!important;right:auto!important;bottom:56px!important;width:min(380px,48vw)!important;max-height:calc(100dvh - 104px)!important}
}

@media(prefers-reduced-motion:reduce){
  .exhibit-panel,.ux-scrim,.control-dock .btn,.education-primary,.education-secondary,.ar-button{transition:none!important;animation:none!important}
}

/* RC5.6.1 accessibility and conditional-control guardrails. */
.ar-button[disabled]{display:none!important}
.control-dock.dock-expanded #installBtn[hidden],.control-dock.dock-expanded #handBtn[hidden]{display:none!important}
.quest-mode .control-dock.dock-expanded #questSetupBtn,.quest-mode .control-dock.dock-expanded #recenterBtn{display:flex!important}
.btn:focus-visible,.small-action:focus-visible,.exhibit-btn:focus-visible,.education-primary:focus-visible,.education-secondary:focus-visible,.help-fab:focus-visible,.ar-button:focus-visible,.status-button:focus-visible{outline:2px solid #e0ae7c;outline-offset:2px}
.scenario-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:rgba(189,123,69,.10);border:1px solid rgba(212,160,109,.20);color:#ddb489;font:720 10px/1 system-ui}


/* ============================================================
   RC5.6.2 BROWSER / MOBILE UX HARDENING
   Browser-layout findings from 360/390/430 portrait + landscape.
   Keep this block last: it intentionally resolves legacy !important rules.
   ============================================================ */

/* The expanded sheet contains extras only: persistent primary actions stay in the base dock. */
.control-dock.dock-expanded #tourBtn,
.control-dock.dock-expanded #exhibitToggleBtn { display:none !important; }

/* Quest-only actions must not leak into ordinary phone/desktop "Ещё". */
.control-dock.dock-expanded #questSetupBtn,
.control-dock.dock-expanded #recenterBtn { display:none !important; }
.quest-mode .control-dock.dock-expanded #questSetupBtn,
.quest-mode .control-dock.dock-expanded #recenterBtn { display:flex !important; }

/* While a disclosure sheet is open, secondary floating actions stop competing with it. */
.app-root.ux-sheet-open .help-fab,
.app-root.ux-sheet-open .ar-button { opacity:0 !important; visibility:hidden !important; pointer-events:none !important; }

/* Welcome is a clean entry moment: no progress/dock/help/AR behind the first decision. */
.app-root.education-welcome-open .progress-bar-wrap,
.app-root.education-welcome-open .control-dock,
.app-root.education-welcome-open .help-fab,
.app-root.education-welcome-open .ar-button { opacity:0 !important; visibility:hidden !important; pointer-events:none !important; }

@media(max-width:900px){
  /* Legacy mobile rules used top:6px!important. Explicitly reset it so collection is truly a bottom sheet. */
  .exhibit-panel { top:auto !important; bottom:67px !important; }
  .exhibit-panel.exhibit-sheet-open { top:auto !important; }

  /* Accessibility: every interactive visitor target meets the 44px touch baseline. */
  .help-fab { width:44px !important; height:44px !important; min-width:44px !important; min-height:44px !important; }
  .ar-button { min-height:46px !important; }
  .small-action { min-height:44px; }
  .round-close,
  .modal-close { min-width:44px !important; min-height:44px !important; }
}

@media(max-width:900px) and (orientation:landscape) and (max-height:540px){
  /* The final landscape composition is also bottom-anchored; defeat the older side-rail top rule. */
  .exhibit-panel { top:auto !important; bottom:56px !important; }
}


/* RC5.6.2 verification pass 2: exact persistent dock + 430px-device landscape. */
.control-dock:not(.dock-expanded) .btn { display:none !important; }
.control-dock:not(.dock-expanded) #tourBtn,
.control-dock:not(.dock-expanded) #exhibitToggleBtn,
.control-dock:not(.dock-expanded) #moreBtn { display:flex !important; }

.education-primary-copy { display:flex !important; flex-direction:column; align-items:flex-start; gap:2px; min-width:0; }
.education-primary-copy b,
.education-primary-copy small { display:block; line-height:1.18; }

@media(max-width:900px){
  /* Help lives in "Ещё" on phones; avoid a fourth floating control above the scene. */
  .help-fab { display:none !important; }
}

/* 430x932-class phones become ~932x430 after rotation, so width 900 was too narrow a gate. */
@media(max-width:1024px) and (orientation:landscape) and (max-height:540px){
  .topbar{top:max(5px,env(safe-area-inset-top,0px));width:calc(100% - 12px);min-height:42px;padding:5px 7px;border-radius:14px}
  .brand-mark{width:29px;height:29px}.brand-sub{display:none!important}
  .topbar-right .status-button{display:none!important}.topbar-right .status-pill:not(.status-button){width:32px;height:32px;min-width:32px;padding:0;display:grid!important;place-items:center}#statusText{display:none!important}
  .progress-bar-wrap{top:52px!important;left:8px!important;transform:none!important;max-width:176px}
  .hint-card{display:none!important}
  .control-dock{left:50%;right:auto;bottom:5px;transform:translateX(-50%);width:min(500px,calc(100vw - 120px));min-width:0;max-width:none;padding:5px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;border-radius:18px}
  .control-dock .btn{min-height:44px;padding:7px 8px;justify-content:center;text-align:center;flex-direction:row;gap:5px}.control-dock .btn-copy{display:block}.control-dock .btn-title{font-size:10.5px!important}.control-dock .btn-sub{display:none!important}
  .control-dock.dock-expanded{left:50%;right:auto;bottom:5px;transform:translateX(-50%);width:min(680px,calc(100vw - 24px));max-height:calc(100dvh - 54px);padding:43px 8px 8px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;overflow:auto}
  .control-dock.dock-expanded .btn{min-height:48px;flex-direction:row}
  .exhibit-panel{left:50%!important;right:auto!important;top:auto!important;bottom:56px!important;transform:translate(-50%,18px)!important;width:min(640px,calc(100vw - 30px))!important;max-height:calc(100dvh - 74px)!important;padding:42px 9px 9px!important;display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:5px!important;overflow:auto!important}
  .exhibit-panel.exhibit-sheet-open{transform:translate(-50%,0)!important}.exhibit-btn{height:58px!important;width:auto!important;min-width:0!important}
  .ar-button{bottom:58px!important}.help-fab{display:none!important}
  .education-welcome-bg{align-items:center!important;justify-content:flex-start!important;padding:50px 70px 58px 22px!important;background:linear-gradient(90deg,rgba(6,5,4,.88),rgba(6,5,4,.45) 56%,rgba(6,5,4,.08))!important}.education-welcome{width:min(440px,60vw)!important;max-height:calc(100dvh - 70px)!important;padding:16px!important}.education-welcome h2{font-size:34px!important}.education-lead{font-size:11.5px!important}.education-note{display:none!important}
  .hotspot-card{left:7px!important;right:auto!important;bottom:56px!important;width:min(380px,48vw)!important;max-height:calc(100dvh - 104px)!important}
}


/* RC5.6.2 verification pass 3: neutralize legacy 46px dock padding. */
@media(max-width:900px){
  .control-dock{padding:5px !important;padding-bottom:max(5px,env(safe-area-inset-bottom,5px)) !important;}
  .control-dock.dock-expanded{padding:43px 8px 8px !important;padding-bottom:max(8px,env(safe-area-inset-bottom,8px)) !important;}
}
@media(max-width:1024px) and (orientation:landscape) and (max-height:540px){
  .control-dock{padding:5px !important;padding-bottom:max(5px,env(safe-area-inset-bottom,5px)) !important;}
  .control-dock.dock-expanded{padding:43px 8px 8px !important;padding-bottom:max(8px,env(safe-area-inset-bottom,8px)) !important;}
}


/* RC5.6.2 verification pass 4: beat legacy ID-specific visibility rules. */
#dockEl:not(.dock-expanded) > .btn:not(#tourBtn):not(#exhibitToggleBtn):not(#moreBtn) { display:none !important; }
#dockEl:not(.dock-expanded) > #tourBtn,
#dockEl:not(.dock-expanded) > #exhibitToggleBtn,
#dockEl:not(.dock-expanded) > #moreBtn { display:flex !important; }


/* RC5.6.2 verification pass 5: landscape More uses four columns to avoid unnecessary scrolling. */
@media(max-width:1024px) and (orientation:landscape) and (max-height:540px){
  .control-dock.dock-expanded{grid-template-columns:repeat(4,minmax(0,1fr)) !important;}
  .control-dock.dock-expanded .btn{min-height:46px !important;}
}


/* RC5.6.2 verification pass 6: the More sheet always has a reachable close action. */
.control-dock.dock-expanded #moreBtn{
  position:absolute !important;
  top:7px !important;
  right:8px !important;
  width:auto !important;
  min-width:86px !important;
  min-height:36px !important;
  height:36px !important;
  padding:0 11px !important;
  display:flex !important;
  justify-content:center !important;
  flex-direction:row !important;
  gap:0 !important;
  background:rgba(246,239,228,.07) !important;
  border:1px solid rgba(246,239,228,.10) !important;
  border-radius:12px !important;
  z-index:3;
}
.control-dock.dock-expanded #moreBtn .nav-icon,
.control-dock.dock-expanded #moreBtn .btn-sub{display:none !important;}
.control-dock.dock-expanded #moreBtn .btn-title{font-size:10.5px !important;white-space:nowrap !important;}
@media(max-width:900px){
  .control-dock.dock-expanded #moreBtn{min-height:44px !important;height:44px !important;top:4px !important;}
}
@media(max-width:1024px) and (orientation:landscape) and (max-height:540px){
  .control-dock.dock-expanded #moreBtn{min-height:44px !important;height:44px !important;top:4px !important;}
}


/* ===== RC6.0 Creator: guarded theme tokens ===== */
html[data-exposition-theme="museum"] .app-root { background: radial-gradient(900px 540px at 50% 115%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 62%), linear-gradient(180deg,#15110e,#070605 82%); }
html[data-exposition-theme="history"] .app-root { background: radial-gradient(760px 520px at 15% 0%, rgba(151,88,44,.18), transparent 62%), linear-gradient(180deg,#17100c,#070504); }
html[data-exposition-theme="science"] .app-root { background: radial-gradient(760px 520px at 80% 0%, rgba(64,126,170,.18), transparent 60%), linear-gradient(180deg,#071018,#030609); }
html[data-exposition-theme="nature"] .app-root { background: radial-gradient(760px 520px at 15% 0%, rgba(82,128,87,.18), transparent 62%), linear-gradient(180deg,#09120d,#040705); }
html[data-exposition-theme="art"] .app-root { background: radial-gradient(800px 520px at 80% 0%, rgba(124,82,142,.17), transparent 62%), linear-gradient(180deg,#130d16,#070508); }
html[data-exposition-theme="minimal"] .app-root { background: linear-gradient(180deg,#101010,#050505); }


/* RC6.1.2 — hotspot media + true 3D surface visibility */
.hotspot-card-video{display:block;width:100%;max-height:240px;border-radius:15px;margin:0 0 12px;background:#050505;border:1px solid rgba(255,255,255,.09)}.hotspot-card-video[hidden]{display:none!important}
.hotspot-transcript{margin:10px 0 0;border-top:1px solid rgba(255,255,255,.08);padding-top:9px}.hotspot-transcript>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--muted);font-size:11px;font-weight:700}.hotspot-transcript>div{font-size:12px;line-height:1.55;color:var(--text-soft);white-space:pre-wrap;padding:2px 0 8px}
@media(max-width:600px){.hotspot-card-video{max-height:190px}.hotspot-transcript>div{font-size:11px}}

/* RC6.1.3.4 · Visible, honest first-load feedback in the foreground. */
.splash { overflow-y: auto; overscroll-behavior: contain; }
.splash-title { max-width: 90vw; text-wrap: balance; }
.splash-sub { max-width: 440px; color: rgba(243,236,223,.72); }
.splash-loading { width: min(410px, calc(100vw - 44px)); margin-top: clamp(28px, 6vh, 56px); }
.splash-loading-row { display:flex; justify-content:space-between; align-items:center; gap:18px; color:rgba(250,245,236,.82); font-size:13px; text-align:left; margin-bottom:11px; }
.splash-loading-row strong { color:#f3e7d4; font-size:18px; font-variant-numeric:tabular-nums; }
.splash-progress-track { height:7px; width:100%; background:rgba(255,255,255,.13); border-radius:99px; overflow:hidden; }
.splash-progress-fill { height:100%; width:0%; border-radius:inherit; background:linear-gradient(90deg,#b79261,#e8c99c); transition:width .18s ease; }
.splash-loading-detail { margin-top:12px; line-height:1.5; color:rgba(250,245,236,.68); font-size:12px; text-align:left; min-height:36px; }
.splash-retry { margin-top:16px; min-height:44px; width:100%; border-radius:13px; border:1px solid rgba(232,201,156,.35); color:#f4eee4; background:rgba(232,201,156,.12); font:inherit; cursor:pointer; }
.splash-retry[hidden]{display:none!important}
@media(max-width:600px){.splash{padding:30px 22px max(38px,env(safe-area-inset-bottom));}.splash-orb{width:56px;height:56px;margin-bottom:16px}.splash-title{font-size:clamp(26px,8vw,34px)}.splash-loading{margin-top:28px}}
@media(prefers-reduced-motion:reduce){.splash-progress-fill{transition:none}.splash-orb{animation:none}}

/* RC6.1.3.7 / progressive visitor navigation */
#dockEl.dock-expanded .visitor-advanced{display:none!important}
#dockEl.dock-expanded.dock-settings-open .visitor-advanced:not([hidden]){display:flex!important}
#dockEl.dock-expanded .visitor-settings-toggle{display:flex!important;grid-column:span 2;align-items:center;justify-content:center;color:var(--museum-paper,#faf1dc);background:rgba(188,149,95,.14)}
#dockEl:not(.dock-expanded) .visitor-settings-toggle{display:none!important}
.spatial-all-btn{font-weight:700;justify-content:center;min-height:48px;border-bottom:1px solid rgba(255,255,255,.12)!important}

/* RC6.1.3.10 — educational fallback during slow / failed 3D load */
.splash-rescue-links{margin-top:18px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:center;font-size:13px}.splash-rescue-links a{color:#e1c69d;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;min-height:44px;display:inline-flex;align-items:center;padding:8px 5px}.splash-rescue-links.hidden{display:none}.splash-rescue-links a:focus-visible{outline:3px solid #e1c69d;outline-offset:2px}.splash-rescue-links a:first-child{font-weight:600}.splash-rescue-note{color:rgba(250,245,236,.66);font-size:12px;line-height:1.5;margin-top:10px;max-width:410px}@media(max-width:460px){.splash-rescue-links{flex-direction:column;gap:0}.splash-rescue-links a{min-height:42px}}


/* Optional full-detail 3D is a single visitor action, not another toolbar. */
.load-detailed-3d{position:fixed;left:50%;bottom:max(82px,env(safe-area-inset-bottom));transform:translateX(-50%);z-index:75;border:1px solid rgba(83,66,43,.28);border-radius:999px;box-shadow:0 8px 28px rgba(0,0,0,.19);padding:12px 20px;min-height:46px;max-width:calc(100vw - 34px);background:#f7f2e8;color:#30261e;font:600 14px/1.25 system-ui,sans-serif;white-space:normal;text-align:center;cursor:pointer}
.load-detailed-3d[hidden]{display:none!important}
.load-detailed-3d:disabled{opacity:.65;cursor:wait}
.load-detailed-3d:focus-visible{outline:3px solid #986e3c;outline-offset:3px}
@media(max-width:600px){.load-detailed-3d{bottom:max(95px,calc(env(safe-area-inset-bottom) + 78px));font-size:13px}}


/* ======================================================================
   RC6.1.3.13 / Contemporary Museum — authored visitor design layer.
   Pure CSS. No GPU filters, external fonts or permanent animation loops.
   ====================================================================== */
:root{
  --museum-ink:#14120f; --museum-ink-2:#211b16;
  --museum-paper:#f3ede2; --museum-muted:rgba(243,237,226,.67);
  --museum-copper:#b48b60; --museum-copper-soft:#ddc4a1;
  --museum-line:rgba(224,206,176,.20);
  --museum-panel:rgba(22,19,16,.88); --museum-panel-strong:rgba(23,20,17,.97);
}
.app-root{
  --text:var(--museum-paper); --muted:var(--museum-muted);
  --accent:var(--museum-copper-soft); --accent2:var(--museum-copper);
  background:radial-gradient(ellipse 52% 50% at 57% 48%,rgba(148,113,72,.16),transparent 70%),
             linear-gradient(180deg,#1b1814,#0e0d0b 95%);
}
/* Architectural header: restrained identity, no app-dashboard chrome. */
.topbar{width:min(1130px,calc(100% - 52px));top:max(19px,env(safe-area-inset-top));padding:10px 13px;
  background:rgba(21,18,15,.70);border-color:rgba(244,234,216,.12);border-radius:14px;box-shadow:0 10px 32px rgba(0,0,0,.13)}
.brand-mark{width:34px;height:34px;border-radius:50%;font:600 10px/1 Georgia,serif;letter-spacing:.01em;
  color:#ebd1af;border:1px solid rgba(224,186,136,.55);background:transparent}
.brand-title{font:400 19px/1.05 Georgia,'Times New Roman',serif;letter-spacing:-.025em}
.brand-sub{font-size:10px;letter-spacing:.035em;color:rgba(243,237,226,.53)}
.topbar-right .status-pill:not(.status-button){border:0;background:transparent;font-size:11px}
/* Reduce visual noise without removing accessibility/settings controls. */
#hintCardEl,#helpFab{display:none!important}
.progress-bar-wrap{top:96px!important;left:50%!important;right:auto!important;transform:translateX(-50%)!important;
  background:rgba(21,18,15,.55);border-color:rgba(237,216,188,.11);padding:7px 13px}
.progress-bar-label{color:rgba(237,216,188,.64);font-weight:500;letter-spacing:.045em;font-size:10px}
/* Chapter-style first encounter, still the existing tested welcome interaction. */
.education-welcome-bg{z-index:145;justify-content:flex-start;align-items:center;
  padding:clamp(92px,15vh,165px) clamp(26px,8vw,130px) 105px;
  background:linear-gradient(90deg,rgba(13,11,9,.93),rgba(13,11,9,.84) 31%,rgba(13,11,9,.31) 67%,rgba(13,11,9,.05) 100%)}
.education-welcome{width:min(600px,49vw);max-height:calc(100dvh - 170px);overflow:auto;padding:0 8px 8px 0;
  scrollbar-width:thin;scrollbar-color:rgba(203,168,124,.5) transparent}
.education-kicker{display:flex;align-items:center;flex-wrap:wrap;gap:9px;color:#d4ba92;font-size:10px;
  letter-spacing:.20em;font-weight:650;margin-bottom:29px;line-height:1.8}
.museum-sigil{font:normal 25px/0.7 Georgia,serif;color:#dfc8a6}
.museum-sep{color:#655744;font-weight:400}
.education-welcome h2{font:400 clamp(49px,5.6vw,91px)/.99 Georgia,'Times New Roman',serif;
  letter-spacing:-.056em;color:#fbf4e7;text-wrap:balance}
.education-welcome h2 em{font-weight:400;color:#dcc3a1}
.education-welcome h3{font:500 13px/1.4 system-ui,sans-serif;letter-spacing:.035em;color:#d8b88c;margin:22px 0 12px}
.education-lead{font-size:clamp(14px,1.4vw,17px)!important;line-height:1.66!important;
  max-width:51ch;color:rgba(243,237,226,.79)!important}
.museum-chapters{display:flex;flex-wrap:wrap;gap:13px 17px;border-top:1px solid rgba(220,195,160,.24);
  padding-top:18px;margin-top:26px;margin-bottom:26px}
.museum-chapters span{display:flex;flex-direction:column;gap:4px;color:#af9171;font:500 10px/1.2 system-ui,sans-serif;letter-spacing:.08em;min-width:70px}
.museum-chapters b{font:500 12px/1.25 system-ui,sans-serif;letter-spacing:0;color:#e5d6c1}
.education-start-actions{margin-top:0;display:flex;flex-wrap:wrap;gap:10px;align-items:stretch}
.education-primary{min-width:220px;flex:1 0 auto;max-width:310px;min-height:62px;padding:12px 18px;background:#e7d5bc;color:#1f1812;
  border:1px solid #e7d5bc;border-radius:10px;box-shadow:none}
.education-primary .education-primary-copy b{font-size:13.5px}
.education-primary .education-primary-copy small{font-size:10px;opacity:.73}
.education-secondary{min-height:62px;grid-column:auto;padding:12px 18px;flex:1 0 auto;max-width:240px;
  background:rgba(229,206,174,.035);border:1px solid rgba(229,206,174,.27);border-radius:10px;color:#e5d6c1;font-size:12.5px}
.education-note{margin-top:19px;font-size:11px;color:rgba(243,237,226,.55);max-width:55ch}
/* Personal history, not a technical popover. */
.hotspot-card{width:min(495px,calc(100vw - 40px));padding:28px 30px 23px;
  border:1px solid rgba(226,202,169,.24);border-radius:16px;background:rgba(23,20,17,.97);
  box-shadow:0 34px 110px rgba(0,0,0,.39);overflow:auto;scrollbar-width:thin}
.hotspot-card-label{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#be9c75;margin-bottom:14px}
.hotspot-card-title{font:400 clamp(28px,2.9vw,41px)/1.08 Georgia,'Times New Roman',serif;letter-spacing:-.04em;color:#f6eee1}
.museum-story-lead{font:400 clamp(17px,1.65vw,20px)/1.55 Georgia,'Times New Roman',serif;color:#e6d3ba;
  margin:20px 0 14px;padding:0;letter-spacing:-.01em}
.museum-story-lead[hidden],.museum-observation[hidden]{display:none!important}
.hotspot-card-text{font-size:13.5px;line-height:1.65;color:rgba(243,237,226,.76);margin:13px 0 0}
.museum-observation{margin:21px 0 15px;padding:14px 17px 14px 18px;border-left:2px solid #bd9770;
  background:rgba(225,190,145,.065);font-size:13.5px;line-height:1.55;color:#eadac5}
.museum-observation::before{content:'ПОСМОТРИТЕ ВНИМАТЕЛЬНЕЕ';display:block;margin-bottom:8px;
  font:600 9.5px/1.1 system-ui,sans-serif;letter-spacing:.13em;color:#caa782}
.hotspot-learning-prompt{padding:13px 15px;border-radius:10px;background:rgba(227,201,166,.045);
  border:1px solid rgba(227,201,166,.13)}
.hotspot-learning-prompt b{font-size:10px;text-transform:uppercase;letter-spacing:.085em;color:#cfb08c}
.hotspot-learning-prompt span{line-height:1.55}
.hotspot-actions .small-action{min-height:44px;border-radius:9px;padding:10px 12px}
.hotspot-actions .small-action.primary{background:#e4d0b3;color:#1c1610;border-color:#e4d0b3}
.hotspot-source-note{border-top:1px solid rgba(224,206,176,.13);padding-top:11px;margin-top:15px;
  font-size:10.5px;line-height:1.5;color:rgba(243,237,226,.51)}
.hotspot-deep-text{font-size:13px;line-height:1.65;color:rgba(243,237,226,.77)}
/* Three persistent actions only; AR and reader remain contextual. */
.control-dock{border-radius:13px;gap:2px;padding:6px;background:rgba(22,19,16,.89);
  border-color:rgba(226,202,169,.2);box-shadow:0 10px 35px rgba(0,0,0,.31);backdrop-filter:blur(10px)}
.control-dock .btn{min-height:52px;border-radius:8px;padding:9px 17px}
.control-dock #tourBtn{background:#dfc7a5;color:#211911}
.control-dock #tourBtn .btn-sub{color:#655039}
.control-dock .btn-title{font-size:13px;font-weight:610}
.exhibit-panel,.scenario-panel,.fav-panel,.tour-overlay,.help-modal,.experience-modal{
  border-radius:14px;background:rgba(23,20,17,.97);border-color:rgba(226,202,169,.20)}
.tour-title{font-family:Georgia,'Times New Roman',serif;letter-spacing:-.02em}
.round-close,.modal-close{min-height:44px;min-width:44px}
@media(max-width:900px){
  .topbar{width:calc(100% - 20px);left:10px;transform:none;top:max(8px,env(safe-area-inset-top));padding:6px 10px;border-radius:12px}
  .brand-title{font-size:16px}.brand-mark{width:30px;height:30px}
  .education-welcome-bg{align-items:flex-end;justify-content:center;
    padding:calc(env(safe-area-inset-top) + 65px) 22px max(99px,calc(env(safe-area-inset-bottom) + 87px));
    background:linear-gradient(180deg,rgba(13,11,9,.70) 0%,rgba(13,11,9,.84) 32%,rgba(13,11,9,.97) 100%)}
  .education-welcome{width:100%;max-width:530px;max-height:calc(100dvh - 178px);overflow-y:auto;padding:3px 0 10px}
  .education-welcome h2{font-size:clamp(41px,9vw,60px);line-height:.99}
  .education-kicker{font-size:9px;letter-spacing:.13em;margin-bottom:17px}
  .education-welcome h3{margin:14px 0 10px;font-size:11px}
  .education-lead{font-size:13.4px!important;line-height:1.58!important}
  .museum-chapters{gap:10px;padding-top:12px;margin:17px 0}
  .museum-chapters span{min-width:52px;gap:3px;font-size:9px}.museum-chapters b{font-size:10px}
  .education-start-actions{display:grid;grid-template-columns:1fr;gap:8px}
  .education-primary,.education-secondary{min-width:0;max-width:none;min-height:49px;flex:auto;grid-column:1;padding:9px 13px}
  .education-note{font-size:10px;margin-top:12px}
  .progress-bar-wrap{top:65px!important}
  .hotspot-card{border-radius:18px 18px 12px 12px;padding:21px 20px 17px;
    max-height:min(70dvh,620px);width:calc(100vw - 20px)!important}
  .hotspot-card-title{font-size:31px}.museum-story-lead{font-size:17px;margin:12px 0}
  .museum-observation{margin:13px 0;padding:10px 12px;font-size:12px}
  .control-dock{border-radius:13px;max-width:calc(100vw - 20px);min-width:0;bottom:max(8px,env(safe-area-inset-bottom));width:min(460px,calc(100vw - 20px))}
  .control-dock .btn{padding:8px 8px;min-height:48px;justify-content:center}
  .control-dock .btn-title{font-size:11.5px}.control-dock .btn-sub{font-size:9px}
}
@media(max-width:390px){
  .museum-chapters{gap:9px 12px}.museum-chapters span{min-width:48px}
  .education-welcome h2{font-size:clamp(35px,9vw,44px)}
  .education-lead{font-size:12.5px!important}.education-welcome{max-height:calc(100dvh - 145px)}
}
@media(max-width:1024px) and (orientation:landscape) and (max-height:540px){
  .education-welcome-bg{justify-content:flex-start;align-items:center;padding:53px 23px 58px!important;
    background:linear-gradient(90deg,rgba(13,11,9,.95) 0%,rgba(13,11,9,.84) 45%,transparent 100%)}
  .education-welcome{width:min(570px,59vw)!important;max-height:calc(100dvh - 105px)!important}
  .education-welcome h2{font-size:clamp(30px,5vw,50px)}
  .museum-chapters{margin:11px 0;gap:8px}.museum-chapters span{font-size:8px}.museum-chapters b{font-size:9px}
  .education-kicker{margin-bottom:9px}.education-welcome h3{margin:10px 0 6px}
  .education-start-actions{grid-template-columns:1fr 1fr}.education-primary,.education-secondary{grid-column:auto;min-height:44px}
  .education-note{display:none}
  .hotspot-card{max-height:calc(100dvh - 99px)!important;padding:13px 16px}
}
@media(prefers-reduced-motion:reduce){
 .education-welcome,.museum-story-lead,.museum-observation,.hotspot-card,.control-dock,
 .education-primary,.education-secondary{animation:none!important;transition:none!important}
}
@media(prefers-contrast:more){.hotspot-card,.education-primary,.control-dock{border-color:#e8cfad!important}
  .museum-story-lead,.education-lead,.hotspot-card-text{color:#fff6e9!important}}

.museum-guide-lead{font:400 19px/1.55 Georgia,serif;color:#e6d3ba}
.museum-guide-observation{border-left:2px solid #b99368;color:#ead8c1;background:rgba(223,188,144,.065);padding:12px 14px}

/* RC6.1.3.14: curator-first museum UX; no WebGL work on splash. */
.splash{background:radial-gradient(ellipse at 50% 43%,#19150f 0%,#08090e 52%,#050609 100%)!important;z-index:210!important}
.splash-kicker{color:#c4a679;letter-spacing:.25em;font:600 10px/1.5 system-ui,sans-serif;text-align:center;margin:2px 0 15px}
.splash-kinetic{width:clamp(126px,17vw,188px);height:clamp(126px,17vw,188px);position:relative;margin:0 auto 30px;isolation:isolate;flex:none}
.splash-kinetic-ring{position:absolute;inset:5px;border-radius:50%;border:1px solid rgba(224,190,139,.23);animation:splashSpin 12s linear infinite;will-change:transform}
.splash-kinetic-ring.outer{border-top-color:#d1aa73;border-left-color:rgba(224,190,139,.62);box-shadow:0 0 30px rgba(184,139,80,.12)}
.splash-kinetic-ring.inner{inset:25px;border:1px dashed rgba(224,190,139,.29);animation-direction:reverse;animation-duration:17s}
.splash-kinetic-core{position:absolute;inset:43px;border-radius:50%;background:radial-gradient(circle at 30% 27%,#b59c79,#594732 29%,#211e1b 56%,#090b0e 78%);box-shadow:inset -9px -13px 23px #040506,0 0 40px rgba(170,126,71,.22)}
.splash-kinetic-point{position:absolute;width:5px;height:5px;border-radius:50%;background:#efce98;box-shadow:0 0 12px rgba(239,206,152,.7)}
.splash-kinetic-point.p1{top:4px;left:50%}.splash-kinetic-point.p2{right:8px;bottom:32%}.splash-kinetic-point.p3{left:10px;bottom:31%}
@keyframes splashSpin{to{transform:rotate(360deg)}}
.splash-loading{width:min(410px,calc(100vw - 44px))!important}
.splash-loading-row{letter-spacing:.005em;font-weight:500}
.splash-progress-track{height:4px!important;background:rgba(236,220,194,.13)!important}
.splash-progress-fill{background:linear-gradient(90deg,#a77b45,#e9c894)!important}
/* Hero: deliberate safe padding instead of text touching the edge; simple 2-choice entry. */
.education-welcome-bg{box-sizing:border-box!important; padding-inline:max(28px,env(safe-area-inset-left))!important}
.education-welcome{box-sizing:border-box!important;padding:clamp(22px,3.3vw,48px)!important;border-radius:22px!important;background:rgba(18,16,14,.90)!important;border:1px solid rgba(229,206,174,.16)!important;box-shadow:0 24px 80px rgba(0,0,0,.38)!important;max-width:560px!important;width:min(560px,92vw)!important}
.education-welcome h2{font-size:clamp(37px,4.3vw,64px)!important;line-height:1.05!important;max-width:100%;overflow-wrap:break-word;letter-spacing:-.045em!important}
.education-kicker{margin-bottom:18px!important}
.education-welcome h3{margin:14px 0 10px!important}
.education-lead{max-width:48ch!important;margin-bottom:16px!important}
.museum-chapters-brief{font-size:12px!important;line-height:1.55;color:rgba(236,220,194,.63);margin:0 0 22px}
.education-start-actions{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
.education-primary,.education-secondary{width:100%!important;max-width:none!important;min-width:0!important;min-height:54px!important;text-align:center!important;border-radius:12px!important}
.education-primary{justify-content:center!important;gap:18px!important}
.education-primary-copy{align-items:flex-start!important}
.education-secondary{text-align:center!important}
.education-note{margin-top:17px!important}
/* Three public entry points, no legacy 35-button grid. */
.control-dock > .btn:not(#tourBtn):not(#exhibitToggleBtn):not(#moreBtn){display:none!important}
.control-dock.dock-expanded{max-height:none!important;overflow:visible!important;grid-template-columns:none!important}
.control-dock.dock-expanded #moreBtn{position:relative!important;top:auto!important;right:auto!important;min-height:50px!important;height:auto!important;padding:8px 16px!important;width:auto!important;min-width:0!important}
.control-dock.dock-expanded #moreBtn .nav-icon,.control-dock.dock-expanded #moreBtn .btn-sub{display:initial!important}
.visitor-more-sheet{position:fixed;z-index:154;bottom:clamp(81px,12vh,110px);right:max(14px,env(safe-area-inset-right));width:min(395px,calc(100vw - 28px));max-height:calc(100dvh - 160px);overflow:auto;background:#171510;border:1px solid rgba(227,202,169,.22);box-shadow:0 24px 65px rgba(0,0,0,.58);border-radius:20px;padding:22px;display:none;overscroll-behavior:contain}
.visitor-more-sheet.open{display:block}
.visitor-sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:15px;border-bottom:1px solid rgba(235,217,190,.16)}
.visitor-sheet-eyebrow{font:600 9px/1.4 system-ui,sans-serif;letter-spacing:.2em;color:#bfa47e}
.visitor-sheet-head h2{font:400 27px/1.2 Georgia,serif;color:#f4eada;margin:8px 0 0}
.visitor-sheet-close{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.13);border-radius:50%;color:#eee2d2;width:44px;height:44px;flex:none;cursor:pointer}
.visitor-menu-group{border-bottom:1px solid rgba(235,217,190,.13)}
.visitor-menu-group summary{list-style:none;display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:18px 2px;min-height:54px;gap:12px}
.visitor-menu-group summary::-webkit-details-marker{display:none}
.visitor-menu-group summary b{font:600 14px/1.4 system-ui,sans-serif;color:#f0e5d5;display:block}
.visitor-menu-group summary small{font:400 11px/1.4 system-ui,sans-serif;color:#a99a85;display:block;margin-top:4px}
.visitor-menu-group[open] summary>span:last-child{transform:rotate(180deg)}
.visitor-menu-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 0 17px}
.visitor-menu-action{cursor:pointer;min-height:46px;border-radius:10px;padding:11px 9px;border:1px solid rgba(231,211,183,.14);background:rgba(239,222,195,.055);color:#e8dccc;font:500 12px/1.35 system-ui,sans-serif;text-align:left}
.visitor-menu-action:hover,.visitor-menu-action:focus-visible{background:rgba(239,222,195,.14);outline-offset:2px}
.exhibit-btn-label small.exhibit-model-state{display:block;font-size:10px;line-height:1.45;letter-spacing:0;font-weight:400;color:#bc9f74;margin-top:3px}
.exhibit-btn{min-height:52px}
@media(max-width:900px){.education-welcome-bg{padding:calc(env(safe-area-inset-top) + 68px) 20px calc(env(safe-area-inset-bottom) + 100px)!important;align-items:center!important;justify-content:center!important}
.education-welcome{width:100%!important;max-height:calc(100dvh - 194px)!important;overflow-y:auto!important;padding:24px 24px 21px!important}
.education-welcome h2{font-size:clamp(35px,9vw,49px)!important}
.education-welcome h3{font-size:13px!important}
.education-lead{font-size:13.5px!important;line-height:1.52!important}
.education-note{font-size:10px!important}
.visitor-more-sheet{bottom:calc(77px + env(safe-area-inset-bottom));max-height:calc(100dvh - 165px);right:10px;width:calc(100vw - 20px);padding:19px}
}
@media(max-height:590px){.education-welcome-bg{padding-top:50px!important;padding-bottom:70px!important;align-items:flex-start!important}.education-welcome{max-height:calc(100dvh - 110px)!important;padding:17px 20px!important}.education-kicker{margin-bottom:8px!important}.education-welcome h2{font-size:32px!important}.education-lead{font-size:12px!important}.education-note{display:none!important}}
@media(prefers-reduced-motion:reduce){.splash-kinetic-ring{animation:none!important;will-change:auto!important}}
.low-power-mode .splash-kinetic-ring{animation-duration:22s;will-change:auto}

/* RC6.1.3.17 — Guided museum stories, no extra public dock controls. */
.museum-card-eyebrow{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:-4px 0 12px;color:#c6a982;letter-spacing:.14em;font:600 10px/1.4 system-ui,sans-serif}
.museum-card-close{display:inline-grid;place-items:center;width:44px;height:44px;flex:0 0 44px;color:#f4e8d7;background:rgba(244,232,215,.075);border:1px solid rgba(244,232,215,.13);border-radius:11px;cursor:pointer}
.museum-card-close:hover{background:rgba(244,232,215,.16)}
.museum-card-close:focus-visible,.museum-card-extras summary:focus-visible,.museum-card-cta button:focus-visible{outline:3px solid #e3c394;outline-offset:3px}
.hotspot-card .museum-card-cta{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:9px;margin:18px 0 0}
.hotspot-card .museum-card-cta button{min-width:0;min-height:48px;font-size:13px;line-height:1.25;border-radius:12px;white-space:normal}
.hotspot-card .museum-card-cta button[hidden]{display:none!important}
.hotspot-card .museum-card-cta button:only-child{grid-column:1 / -1}
.museum-card-extras{margin-top:13px;border-top:1px solid rgba(226,202,169,.19);padding-top:8px;color:#eadcca}
.museum-card-extras summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font:500 12px/1.35 system-ui,sans-serif;color:#cbb597;list-style:none}
.museum-card-extras summary::-webkit-details-marker{display:none}
.museum-card-extras summary::after{content:'+';margin-left:auto;color:#c7a67e;font-size:19px}
.museum-card-extras[open]>summary::after{content:'−'}
.museum-card-extras-inner{padding:5px 0 13px}
.museum-card-extras-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}
.museum-card-extras-actions .small-action{min-height:44px;font-size:12px;border-radius:10px}
.museum-card-extras-actions #hotspotStopBtn{grid-column:1/-1}
/* Earlier mobile styles hide the favourite and Stop buttons to reduce noise; these are now explicitly tucked away. */
.hotspot-card .museum-card-extras-actions #hotspotFavBtn,.hotspot-card .museum-card-extras-actions #hotspotStopBtn{display:inline-flex!important;align-items:center;justify-content:center}
.hotspot-card .museum-card-extras-inner .hotspot-source-note{display:block!important;margin-top:12px}
@media(max-width:600px){.hotspot-card .museum-card-cta{grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:7px}.hotspot-card .museum-card-cta button{font-size:12px;padding:9px 7px}.museum-card-eyebrow{margin-top:-6px}.museum-card-extras{margin-top:9px}}
@media(max-width:360px){.hotspot-card .museum-card-cta{grid-template-columns:1fr}.hotspot-card .museum-card-cta button{width:100%}}
@media(prefers-reduced-motion:reduce){.museum-card-close,.museum-card-extras,.museum-card-cta button{transition:none!important}}

/* Always-visible continuation inside a scrollable museum story. */
.hotspot-card .museum-card-cta{position:sticky;z-index:2;bottom:-15px;display:grid;margin:10px -1px -15px;padding:13px 0 15px;background:linear-gradient(180deg,rgba(19,16,13,.93),#130f0d 26%)}
@media(max-width:900px){.hotspot-card .museum-card-cta{bottom:-14px;margin:10px -1px -14px;padding:11px 0 14px;background:linear-gradient(180deg,rgba(19,16,13,.94),#130f0d 30%)}}

/* The chapter counter replaces the older duplicate card eyebrow. */
.hotspot-card .hotspot-card-label{display:none!important}

/* RC6.1.3.17 — distinct tour-review and explicitly completed state. */
.complete-actions [hidden]{display:none!important}
.complete-modal .complete-actions button:focus-visible{outline:3px solid #e2bb85;outline-offset:3px}
@media(max-width:600px){.complete-modal{padding:20px 18px!important}.complete-actions{gap:9px}}
