:root{
  --navy:#0b2f60;--navy2:#164b8a;--gold:#c89a3d;--gold2:#e8c36b;--ink:#17304d;--muted:#6c7d91;
  --bg:#f4f7fb;--card:#fff;--line:#dfe7f0;--soft:#eef3f9;--good:#0b7b5b;--danger:#a63b3b;
  --shadow:0 20px 60px rgba(11,47,96,.10);--radius:26px;--radius2:18px;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}
button,input,textarea{font:inherit}button{cursor:pointer}img{max-width:100%}body{overflow:hidden}
.museum-app{height:100vh;display:flex;flex-direction:column;background:radial-gradient(circle at 85% 0%,rgba(200,154,61,.12),transparent 24%),linear-gradient(180deg,#fbfdff 0%,#f2f6fb 100%)}
.topbar{height:86px;display:flex;align-items:center;justify-content:space-between;padding:12px 22px;background:rgba(255,255,255,.92);border-bottom:1px solid var(--line);backdrop-filter:blur(14px);z-index:30}
.brand-block{display:flex;align-items:center;gap:16px}.brand-logo{width:190px;height:54px;object-fit:contain;object-position:left center}.museum-label{font-size:13px;color:var(--muted);font-weight:700;border-left:1px solid var(--line);padding-left:16px}
.top-actions{display:flex;gap:10px}.top-action,.icon-button,.round-action{border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:14px;display:inline-flex;align-items:center;gap:8px;font-weight:800}.top-action{padding:11px 14px;text-decoration:none}.top-action img,.icon-button img,.round-action img,.primary-button img,.secondary-button img,.send-button img{width:20px;height:20px}.icon-button{width:44px;height:44px;justify-content:center;padding:0}.round-action{width:46px;height:46px;justify-content:center}.mobile-only{display:none}
.welcome-screen{position:absolute;inset:86px 0 0;display:grid;place-items:center;padding:28px;z-index:20;background:radial-gradient(circle at 15% 20%,rgba(22,75,138,.10),transparent 22%),radial-gradient(circle at 80% 15%,rgba(200,154,61,.16),transparent 18%),linear-gradient(180deg,#f8fbff,#eef4fa)}
.welcome-card{width:min(880px,94vw);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:34px;padding:46px;text-align:center;position:relative;overflow:hidden}.welcome-card:before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:linear-gradient(90deg,var(--navy),var(--gold),var(--navy))}.welcome-logo{width:min(380px,72vw);height:92px;object-fit:contain}.welcome-eyebrow,.section-label{font-size:11px;letter-spacing:.14em;font-weight:900;color:var(--navy2)}.welcome-card h1{font-size:clamp(2.3rem,5vw,4.4rem);line-height:1;margin:18px 0 14px;color:var(--navy)}.welcome-card>p{font-size:18px;line-height:1.75;color:#51657b;max-width:720px;margin:0 auto}.welcome-actions{display:flex;gap:16px;justify-content:center;align-items:center;margin:28px 0 20px}.language-row{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.language-chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 13px;color:var(--navy);font-weight:800}.language-chip.active{background:var(--navy);color:#fff;border-color:var(--navy)}.privacy-note{font-size:12px!important;color:#8190a1!important;margin-top:18px!important}
.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:15px;padding:12px 16px;font-weight:900;border:1px solid transparent}.primary-button{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff}.secondary-button{background:#fff;color:var(--navy);border-color:var(--line)}.primary-button.xl{font-size:17px;padding:15px 23px}.full{width:100%}
.voice-button{width:122px;height:122px;border-radius:50%;border:0;background:linear-gradient(135deg,var(--navy),var(--navy2) 68%,var(--gold));box-shadow:0 18px 45px rgba(11,47,96,.25);display:grid;place-items:center;position:relative;z-index:2}.voice-button img{width:44px;height:44px;filter:brightness(0) invert(1)}.small-voice{width:58px;height:58px}.small-voice img{width:25px;height:25px}.voice-button.listening{animation:micPulse 1s ease-in-out infinite}.voice-button.listening~.voice-ring{opacity:1}@keyframes micPulse{50%{transform:scale(1.05)}}
.workspace{flex:1;min-height:0;display:grid;grid-template-columns:300px minmax(0,1fr)}.collection-panel{background:#fff;border-right:1px solid var(--line);padding:22px 18px;display:flex;flex-direction:column;min-height:0}.panel-heading,.drawer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.panel-heading h2,.drawer-head h2{margin:5px 0 0;color:var(--navy);font-size:25px}.search-box{margin:18px 0 14px;display:flex;gap:10px;align-items:center;background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:10px 12px}.search-box img{width:19px}.search-box input{border:0;outline:0;background:transparent;width:100%;color:var(--ink)}.artifact-list{display:flex;flex-direction:column;gap:10px;overflow:auto;padding-right:2px}.artifact-item{display:grid;grid-template-columns:58px 1fr;gap:12px;align-items:center;width:100%;border:1px solid transparent;background:#f9fbfe;padding:10px;border-radius:17px;text-align:left}.artifact-item:hover,.artifact-item.active{border-color:#bfd0e3;background:#eef4fb}.artifact-thumb{width:58px;height:58px;border-radius:15px;background:#eaf0f7;overflow:hidden;display:grid;place-items:center}.artifact-thumb img{width:100%;height:100%;object-fit:cover}.artifact-thumb img.icon-fallback{width:25px;height:25px;object-fit:contain}.artifact-item strong{display:block;color:var(--navy);font-size:15px}.artifact-item small{display:block;color:var(--muted);margin-top:4px}.collection-footer{margin-top:auto;padding-top:14px}
.experience-panel{min-width:0;overflow:auto;padding:24px 28px 50px}.artifact-stage,.ask-stage,.response-stage{max-width:1150px;margin:0 auto}.artifact-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:22px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow)}.artifact-copy h1{font-size:clamp(2.4rem,5vw,4.6rem);line-height:1;margin:10px 0 14px;color:var(--navy)}.artifact-copy>p{font-size:17px;line-height:1.75;color:#53687f;max-width:740px}.artifact-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.artifact-visual{height:300px;border-radius:22px;background:linear-gradient(135deg,#eef4fb,#fdfaf3);overflow:hidden;border:1px solid var(--line);display:grid;place-items:center}.artifact-visual>img{width:100%;height:100%;object-fit:cover}.no-image-state{display:flex;flex-direction:column;align-items:center;gap:11px;color:#7c8da0;font-weight:800}.no-image-state img{width:42px;height:42px;opacity:.65}
.ask-stage{margin-top:20px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);text-align:center}.ask-copy h2{margin:8px 0 6px;color:var(--navy);font-size:32px}.ask-copy p{margin:0;color:var(--muted)}.voice-console{height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.voice-ring{position:absolute;width:150px;height:150px;border-radius:50%;border:1px solid rgba(22,75,138,.18);opacity:.65}.ring-two{width:185px;height:185px;border-color:rgba(200,154,61,.18)}.voice-button.listening+.ring-one,.voice-button.listening~.ring-two{animation:ringPulse 1.4s infinite}@keyframes ringPulse{0%{transform:scale(.9);opacity:.8}100%{transform:scale(1.15);opacity:0}}.voice-state{font-weight:900;color:var(--navy);margin-top:14px}.voice-hint{font-size:12px;color:var(--muted);margin-top:4px}.text-question{display:grid;grid-template-columns:1fr 52px;gap:10px;max-width:820px;margin:0 auto}.text-question textarea{resize:none;border:1px solid var(--line);background:#f8fbfe;border-radius:17px;padding:15px 17px;outline:0;line-height:1.5}.text-question textarea:focus{border-color:#9db8d5;box-shadow:0 0 0 4px rgba(22,75,138,.08)}.send-button{border:0;border-radius:16px;background:var(--navy);display:grid;place-items:center}.send-button img{filter:brightness(0) invert(1)}.quick-prompts{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:14px}.prompt-chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 12px;color:var(--navy);font-weight:700}
.response-stage{margin-top:20px}.transcript-card,.answer-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:var(--shadow)}.transcript-card{margin-bottom:12px}.transcript-card p{font-size:16px;margin:8px 0 0;color:#4e6279}.answer-header{display:flex;justify-content:space-between;align-items:center}.answer-header h2{margin:4px 0 0;color:var(--navy)}.answer-text{font-size:20px;line-height:1.75;color:#263f5b}.answer-sources{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.source-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border-radius:999px;background:#edf8f4;color:#0b7356;border:1px solid #c7e8dd;font-size:12px;font-weight:900;text-decoration:none}.answer-media{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:16px 0}.answer-media figure{margin:0;border-radius:17px;overflow:hidden;background:#f5f7fa;border:1px solid var(--line)}.answer-media img{width:100%;height:170px;object-fit:cover;display:block}.answer-media figcaption{padding:9px 10px;font-size:12px;color:#5f7184}.answer-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.drawer{position:fixed;right:0;top:0;bottom:0;width:min(430px,92vw);background:#fff;z-index:60;transform:translateX(105%);transition:.25s ease;box-shadow:-25px 0 60px rgba(12,36,66,.18);padding:24px;overflow:auto}.drawer.open{transform:translateX(0)}.drawer-intro{line-height:1.65;color:var(--muted)}.source-list{display:grid;gap:12px;margin-top:16px}.source-card{border:1px solid var(--line);border-radius:17px;padding:14px;background:#fafcff}.source-card strong{display:block;color:var(--navy)}.source-card small{color:var(--muted)}.source-card p{font-size:13px;line-height:1.55;color:#596d82}.source-card a{color:var(--navy2);font-weight:800;font-size:13px}.gallery-list{display:grid;grid-template-columns:1fr;gap:14px;margin-top:16px}.gallery-card{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff}.gallery-card img{width:100%;height:240px;object-fit:cover}.gallery-card div{padding:12px}.gallery-card strong{display:block;color:var(--navy)}.gallery-card p{margin:6px 0 0;font-size:13px;color:var(--muted)}.scrim{position:fixed;inset:0;background:rgba(7,20,38,.38);z-index:55;opacity:0;pointer-events:none;transition:.2s}.scrim.show{opacity:1;pointer-events:auto}.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,20px);opacity:0;background:#0d2f5f;color:#fff;padding:11px 16px;border-radius:999px;font-weight:800;font-size:13px;z-index:90;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}.busy-overlay{position:fixed;inset:0;background:rgba(245,248,252,.86);z-index:80;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--navy)}.spinner{width:52px;height:52px;border-radius:50%;border:4px solid #dce7f2;border-top-color:var(--navy);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:950px){body{overflow:auto}.museum-app{min-height:100vh;height:auto}.topbar{height:76px;padding:10px 14px}.brand-logo{width:150px;height:46px}.museum-label,.top-action span{display:none}.mobile-only{display:inline-flex}.welcome-screen{inset:76px 0 0;min-height:calc(100vh - 76px)}.workspace{grid-template-columns:1fr}.collection-panel{position:fixed;left:0;top:0;bottom:0;width:min(330px,90vw);z-index:60;transform:translateX(-105%);transition:.25s;box-shadow:25px 0 60px rgba(12,36,66,.18)}.collection-panel.open{transform:translateX(0)}.experience-panel{padding:16px}.artifact-hero{grid-template-columns:1fr}.artifact-visual{height:260px}.welcome-card{padding:32px 22px}.artifact-copy h1{font-size:3rem}}
@media(max-width:620px){.welcome-actions{flex-direction:column}.artifact-actions,.answer-actions{flex-direction:column}.primary-button,.secondary-button{width:100%}.artifact-hero,.ask-stage{padding:20px}.voice-button{width:106px;height:106px}.topbar{gap:8px}.brand-block{gap:8px}.brand-logo{width:125px}.top-actions{gap:5px}.top-action{padding:9px}.admin-link{display:none}}

/* Fix: respect HTML hidden attribute for loading overlay */
.busy-overlay[hidden]{display:none !important;}