
:root{font:16px system-ui,sans-serif;background:#f5eddf;color:#294439}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{font:inherit}button{border:2px solid #294439;background:#fff9eb;color:#294439;padding:10px 14px;border-radius:13px;cursor:pointer;font-weight:700}button:hover,button:focus-visible{background:#e1eddf}button:focus-visible,a:focus-visible{outline:3px solid #b6537c;outline-offset:3px}a{color:inherit}#scene{position:fixed;inset:0}canvas{display:block;touch-action:none}#hud{position:fixed;top:14px;left:14px;right:14px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;pointer-events:none}#hud>*{pointer-events:auto}#identity{background:#fff9ebf0;border:2px solid #294439;padding:12px 16px;border-radius:16px;box-shadow:4px 4px 0 #294439;font:1.26rem Georgia,serif}#identity small{font:.65rem system-ui;letter-spacing:.14em;display:block;margin-top:5px}nav{display:flex;flex-wrap:wrap;justify-content:end;gap:7px}nav a{display:inline-flex;align-items:center;background:#fff9eb;border:2px solid #294439;border-radius:13px;font-weight:700;text-decoration:none;padding:10px 14px}#status{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:#fff9ebee;padding:11px 17px;border:2px solid #294439;border-radius:15px;max-width:76vw;text-align:center;box-shadow:3px 3px 0 #294439;font-size:.86rem}#wingLabel{position:fixed;top:95px;left:15px;background:#fff9ebe8;border:2px solid #294439;border-radius:12px;padding:8px 12px;font-size:.75rem;font-weight:700}#directory{display:none;position:fixed;top:88px;right:15px;max-height:75vh;overflow:auto;width:260px;max-width:calc(100vw - 30px);background:#fff9eb;border:2px solid #294439;border-radius:16px;padding:13px;box-shadow:5px 5px 0 #294439}#directory.open{display:block}#directory button{width:100%;text-align:left;margin:3px 0;font-size:.82rem}#directory h2{font:1.4rem Georgia,serif;margin:2px 0 9px}#touch{display:none;position:fixed;left:10px;right:10px;bottom:72px;justify-content:space-between;pointer-events:none;gap:8px}#touch .pad{display:grid;grid-template-columns:repeat(3,47px);gap:4px}#touch .look{display:flex;align-items:end;gap:5px}#touch button{pointer-events:auto;padding:8px;touch-action:none;min-height:45px;background:#fff9ebd9}#talk{display:none;position:fixed;bottom:88px;left:18px}#discover{display:none;position:fixed;bottom:88px;right:18px;background:#e4efdf;box-shadow:3px 4px 0 #294439}#discover.visible{display:block}#talk.visible{display:block}dialog{border:3px solid #294439;background:#fff9eb;color:#294439;border-radius:19px;box-shadow:8px 8px 0 #294439;padding:25px;width:min(540px,calc(100% - 30px));max-height:84vh;overflow:auto}dialog::backdrop{background:#263b35ac}dialog h2{font:normal 2.1rem Georgia,serif;margin:12px 0}.close{float:right}.eyebrow{text-transform:uppercase;font-weight:800;letter-spacing:.16em;font-size:.69rem;color:#925c74}.art{font-size:4rem;background:#e9e7d9;border-radius:14px;text-align:center;padding:15px}dialog p{line-height:1.7}#loading{position:fixed;inset:0;z-index:10;background:#f5eddf;display:grid;place-items:center;text-align:center;padding:25px}#loading h1{font:normal clamp(2rem,5vw,4rem) Georgia,serif}#loading[hidden]{display:none}#loading a{display:block;margin-top:18px;font-weight:700}#notices{position:fixed;top:146px;left:15px;max-width:275px;font-size:.78rem;background:#fff9ebef;padding:12px;border-radius:12px}#notices[hidden]{display:none}#notices{z-index:3;border:2px solid #294439;box-shadow:3px 4px 0 #294439}.passport-stamps{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:8px;margin:16px 0}.passport-stamps span{display:block;border:2px dashed #a0aa9d;padding:12px 8px;border-radius:12px;text-align:center}.passport-stamps .earned{background:#e4efdf;border-style:solid;border-color:#294439;font-weight:750}.passport-stamps button{border:2px dashed #a0aa9d;padding:12px 8px;border-radius:12px;text-align:center;font-weight:600;background:#fffdf7;min-height:66px;line-height:1.3}.passport-stamps button.earned{border:2px solid #294439;background:#e4efdf;font-weight:800}.passport-stamps button:hover{background:#e8f0e4}.passport-tips{font-size:.86rem;color:#596c62}.passport-records{border-top:1px solid #adc5b7;margin-top:15px;padding-top:10px}.passport-records li{line-height:1.5;margin:7px 0}@media(pointer:coarse){#touch{display:flex}#talk{bottom:210px}#discover{bottom:210px;right:10px}}@media(max-width:650px){#hud{top:8px;left:8px;right:8px;flex-direction:column;gap:5px}#hud nav{width:calc(100vw - 16px);max-width:100%;overflow-x:auto;justify-content:flex-start;flex-wrap:nowrap;padding:2px 0 4px;scrollbar-width:thin}#hud nav>*{white-space:nowrap;flex:none;min-height:42px}#identity{font-size:1rem;padding:9px}#identity small{font-size:.5rem}nav button,nav a{font-size:.72rem;padding:8px}#wingLabel{top:128px;left:8px;max-width:72%;font-size:.66rem}#status{bottom:9px;max-width:calc(100vw - 20px);width:100%;font-size:.7rem;padding:8px}#touch{bottom:64px}#touch .pad{grid-template-columns:repeat(3,42px)}#directory{top:176px;right:8px}#notices{top:160px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}


/* NeverMuseum design system · v0.9
   Editorial, warm, airy, responsive. Keep the 3D world front-and-centre. */
:root{
 --ink:#24473b;--ink-deep:#1b322a;--paper:#fffaf0;--parchment:#f2e9d9;
 --gold:#b4874f;--sage:#8cae9c;--rose:#cc8294;--line:#b9c8b8;
 --quiet:#607369;--serif:Georgia,'Iowan Old Style','Baskerville',serif;
 font-family:system-ui,-apple-system,'Segoe UI',sans-serif;
 font-optical-sizing:auto
}
body{color:var(--ink);background:#f4efdf}
#scene{isolation:isolate}
#scene::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
 background:radial-gradient(ellipse at 50% 47%,transparent 40%,rgba(58,53,38,.14) 100%)}
#scene canvas{position:relative;z-index:0}
button,nav a{transition:background .18s ease,transform .18s ease,box-shadow .18s ease}
button:active,nav a:active{transform:translateY(2px)}
button:focus-visible,nav a:focus-visible{outline:3px solid #ba6683;outline-offset:3px}
#hud{top:18px;left:22px;right:22px;align-items:center;z-index:4}
#identity{
 padding:12px 19px 11px 17px;background:rgba(255,251,242,.94);
 border:1.5px solid var(--ink);border-radius:13px;
 font:1.35rem var(--serif);letter-spacing:-.045em;
 box-shadow:0 3px 0 var(--ink),0 14px 30px #2d483a14;
 backdrop-filter:blur(12px)
}
#identity small{color:#7e6858;letter-spacing:.18em;font:600 .55rem system-ui,sans-serif;margin-top:7px}
#identity .identity-mark{color:#b88759;display:inline-block;margin-right:.2em}
#hud nav{
 display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:nowrap;
 background:#fff9eeef;border:1px solid #355143;
 box-shadow:0 3px 0 #355143,0 13px 30px #263a3516;
 border-radius:17px;padding:5px;backdrop-filter:blur(14px)
}
#hud nav button,#hud nav a{border:0;background:transparent;border-radius:11px;
 font-size:.76rem;padding:9px 11px;color:var(--ink);box-shadow:none;letter-spacing:.01em}
#hud nav button:hover,#hud nav a:hover{background:#e4eee3}
#hud nav #passportButton{background:#e4eee3}
#hud nav #soundToggle[aria-pressed="true"]{background:#dce7db}
#wingLabel{top:114px;left:22px;box-shadow:none;border:1px solid #c1d0c1;
 background:#fffaf2e8;color:#566f60;border-radius:7px;font-weight:650;
 text-transform:uppercase;letter-spacing:.12em;font-size:.64rem;padding:9px 12px}
#roomCard{position:fixed;bottom:27px;left:24px;width:242px;
 background:#fffaf1e8;border:1px solid #c1d0c0;border-radius:16px;
 box-shadow:0 15px 45px #1b302e1a;z-index:3;padding:17px;
 backdrop-filter:blur(15px);pointer-events:none}
#roomCard .eyebrow{margin:0 0 8px;letter-spacing:.19em;font-size:.59rem}
#roomCardTitle{font:normal 1.55rem/1.1 var(--serif);letter-spacing:-.03em;margin:0}
#roomCardText{font:400 .75rem/1.65 system-ui;color:#526e5f;margin:8px 0 0}
#roomCardFooter{font:700 .63rem system-ui;letter-spacing:.12em;color:#ad8059;
 text-transform:uppercase;margin-top:14px;padding-top:12px;border-top:1px solid #d5dacd}
#status{
 bottom:27px;max-width:min(520px,calc(100% - 520px));
 box-shadow:0 3px 0 #294439;backdrop-filter:blur(12px);
 border:1.5px solid #294439;background:#fffaf1f0;
 padding:11px 17px;font-size:.75rem;letter-spacing:.008em
}
#experienceToast{
 position:fixed;bottom:91px;left:50%;transform:translateX(-50%) translateY(10px);
 max-width:min(520px,calc(100vw - 28px));width:max-content;
 display:flex;align-items:flex-start;gap:10px;z-index:5;opacity:0;
 pointer-events:none;transition:opacity .2s,transform .2s;
 padding:14px 18px;border:1px solid #a6bfac;border-left:5px solid var(--gold);
 border-radius:14px;background:#fffaf5f5;color:var(--ink);
 box-shadow:0 12px 34px #1b383333;font-size:.8rem;line-height:1.45}
#experienceToast.visible{opacity:1;transform:translateX(-50%) translateY(0)}
#experienceToast strong{display:block;font:normal 1.02rem var(--serif);margin-bottom:4px}
#experienceToast small{display:block;color:#627568;line-height:1.5}
#activate{display:none;position:fixed;bottom:97px;right:23px;
 background:linear-gradient(125deg,#e4efdf,#faf4dc);border:1.5px solid var(--ink);
 color:var(--ink);z-index:4;box-shadow:0 3px 0 var(--ink),0 12px 22px #233e3322}
#activate.visible{display:block}
#talk,#discover{z-index:4;background:#fff8efe8;box-shadow:0 3px 0 var(--ink)}
#talk{bottom:265px;left:22px}
#discover{bottom:92px;right:22px}
#directory{z-index:6;top:95px;right:22px;width:320px;
 border:1.5px solid var(--ink);border-radius:18px;padding:19px;
 background:#fffaf3f9;box-shadow:0 22px 64px #1b38333b;backdrop-filter:blur(18px)}
#directory h2{font-size:1.9rem;margin-bottom:14px;letter-spacing:-.03em}
#directory .directory-note{font-size:.75rem;line-height:1.6;color:#677567;margin-bottom:10px}
#directory button{border:1px solid #d0dbd2;border-radius:10px;background:#fff;padding:11px 12px;
 display:flex;align-items:center;gap:10px;font-size:.78rem;margin:5px 0;box-shadow:none}
#directory button:hover{background:#e7f0e6;border-color:#86a491;transform:translateX(2px)}
#directory .directory-group{font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;
 font-weight:800;color:#956f57;margin:14px 0 7px}
dialog{border:1px solid #355344;background:#fffaf0;border-radius:20px;
 box-shadow:0 8px 0 #2d473d,0 35px 100px #122b2559;
 padding:29px 34px;width:min(570px,calc(100vw - 26px))}
dialog h2{font-size:clamp(2rem,5vw,2.75rem);letter-spacing:-.05em}
dialog::backdrop{background:linear-gradient(150deg,#1d3229b0,#172c28d0);
 backdrop-filter:blur(7px)}
dialog .close{float:right;border:1px solid #c7d1c5;background:transparent;padding:8px 12px}
#plaqueArt{font-size:3.3rem;padding:18px;background:linear-gradient(145deg,#f1eddf,#e5eadd);
 border:1px solid #dae0d3;border-radius:13px;margin:18px 0}
#plaqueStory{font-size:.93rem;color:#455e51}
#plaqueDate{font-size:.77rem;color:#97755d}
#plaqueAction{width:100%;display:block;margin:16px 0 12px;text-align:center;
 color:#fffaf0;background:#2e5746;border-color:#2e5746;font-size:.91rem;
 padding:14px}
#plaqueAction:hover{background:#224236}
#plaqueActionNote{font-size:.77rem;line-height:1.5;color:#667a6c;text-align:center;margin:0 0 20px}
#dialogueOptions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:20px 0 22px}
#dialogueOptions button{margin:0!important;border:1px solid #9db4a4;background:#fffdf6;padding:12px 10px}
#dialogueOptions button:hover{background:#e6efe3}
#passport{width:min(690px,calc(100vw - 26px))}
#passport .passport-stamps button{border-radius:11px;min-height:73px}
#passport .passport-stamps{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
#notices{z-index:8;border:1px solid #466752;background:#fff9edf2;font-size:.8rem;line-height:1.6}
#loading{background:radial-gradient(ellipse at 50% 22%,#e8ecdf 0%,#f6f0e4 65%);
 color:#294439}
#loading h1{letter-spacing:-.06em}
#loading a{display:inline-flex;border:1px solid #294439;padding:12px 17px;
 border-radius:9px;text-decoration:none;background:#fffaf2}
#touch{z-index:5}
#touch button{box-shadow:0 2px 0 #294439;border-radius:12px}
#touch .pad,#touch .look{gap:7px}
@media(hover:hover){#touch button:hover{background:#e3ebdd}}
@media(max-width:920px){
 #roomCard{width:210px;bottom:23px;left:14px;padding:13px}
 #roomCardTitle{font-size:1.35rem}
 #status{max-width:calc(100% - 420px)}
 #talk{bottom:243px}
 #hud{left:12px;right:12px}
 #identity{font-size:1.08rem}
 #hud nav button,#hud nav a{padding:9px;font-size:.71rem}
}
@media(max-width:650px){
 #hud{top:9px;left:10px;right:10px;gap:7px;align-items:stretch}
 #identity{font-size:1.02rem;padding:8px 13px 9px;max-width:max-content;
 border-radius:10px;box-shadow:0 2px 0 var(--ink)}
 #identity small{font-size:.43rem;letter-spacing:.12em;margin-top:3px}
 #hud nav{background:#fffaf3eb;border-radius:10px;box-shadow:0 2px 0 var(--ink);
 width:calc(100vw - 20px);gap:1px;padding:3px;max-width:100%}
 #hud nav button,#hud nav a{font-size:.68rem;min-height:36px;padding:6px 8px}
 #wingLabel{top:115px;left:10px;font-size:.58rem;max-width:calc(100% - 20px);
 border-radius:8px;padding:8px 10px}
 #roomCard{display:none}
 #status{bottom:max(9px,env(safe-area-inset-bottom));left:10px;transform:none;width:calc(100% - 20px);
 max-width:none;font-size:.68rem;line-height:1.4;padding:7px 11px;box-shadow:0 2px 0 var(--ink)}
 #talk{left:10px;bottom:190px;font-size:.7rem;padding:9px 10px}
 #activate,#discover{bottom:190px;right:10px;font-size:.7rem;padding:9px 10px}
 #experienceToast{bottom:173px;max-width:calc(100% - 24px);padding:10px 13px}
 #touch{left:8px;right:8px;bottom:55px;align-items:end;gap:5px}
 #touch .pad{grid-template-columns:repeat(3,40px);gap:5px}
 #touch button{font-size:.7rem;padding:6px;min-height:42px}
 #touch .look{gap:4px}
 #touch .look button{padding:6px;min-width:38px}
 #touch .look #inspect{font-size:.72rem;padding:6px}
 #directory{top:122px;right:10px;max-height:70vh;max-width:calc(100vw - 20px)}
 #notices{top:161px;left:10px;font-size:.7rem;max-width:calc(100% - 20px)}
 dialog{padding:20px;border-radius:16px}
 #dialogueOptions{gap:6px}
 #dialogueOptions button{font-size:.76rem}
}
@media(max-width:375px){
 #hud nav button,#hud nav a{font-size:.6rem;padding:6px 6px}
 #touch .pad{grid-template-columns:repeat(3,36px)}
 #touch .look #inspect{font-size:.66rem}
}
@media(prefers-reduced-motion:reduce){
 *{transition:none!important;animation:none!important;scroll-behavior:auto!important}
 #scene::after{background:none}
}

#plaqueFavourite{width:100%;margin:-3px 0 15px;background:#fffdf6;border:1px solid #a6bba8;
 color:#315a45;font:700 .81rem system-ui,sans-serif;padding:10px}
#plaqueFavourite[aria-pressed="true"]{background:#f8e8eb;border-color:#c88e9d;color:#874d63}
#passportFavourites{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
#passportFavourites strong{width:100%;display:block;margin-bottom:6px}
#passportFavourites p{font-size:.78rem;color:#6a7c6e}
#passportFavourites .passport-favourite{font:600 .75rem system-ui,sans-serif;
 border:1px solid #c4d6c4;border-radius:9px;background:#fffdf5;padding:10px 12px;box-shadow:none}
#passportFavourites .passport-favourite:hover{background:#e6efe5}

/* Museum editorial polish — Sabine's curated trail */
#hud nav #tourButton{background:linear-gradient(140deg,#f7edda,#fffaf2);color:#725739;font-weight:760}
#hud nav #tourButton[aria-expanded="true"]{background:#dfeade;color:#28483a}
#tourPanel{
 position:fixed;top:170px;right:22px;z-index:5;
 width:min(350px,calc(100vw - 44px));padding:22px 23px 18px;
 color:var(--ink);background:linear-gradient(152deg,rgba(255,251,241,.98),rgba(246,240,225,.96));
 border:1.5px solid #718777;border-radius:19px;
 box-shadow:0 5px 0 #718777,0 26px 70px #1e3c2c39;
 backdrop-filter:blur(18px)
}
#tourPanel[hidden]{display:none!important}
#tourPanel .tour-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
#tourPanel .eyebrow{font-size:.59rem;margin:0 0 8px;color:#9a744d}
#tourPanel #tourStep{font:700 .67rem system-ui;letter-spacing:.14em;color:#536b5a}
#tourPanel #tourClose{border:1px solid #c5d2c2;border-radius:10px;padding:7px 11px;background:#fff9ef}
#tourPanel .tour-track{height:6px;background:#d7dfd0;border-radius:10px;overflow:hidden;margin:17px 0 20px}
#tourPanel #tourProgress{display:block;height:100%;width:16.667%;background:linear-gradient(90deg,#83ab94,#c69c65);transition:width .25s}
#tourPanel h2{font:normal clamp(1.45rem,3vw,1.95rem)/1.1 var(--serif);letter-spacing:-.045em;margin:0}
#tourPanel #tourStory{font:400 .83rem/1.72 system-ui;color:#50685a;margin:12px 0 18px}
#tourPanel .tour-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
#tourPanel .tour-actions button{font:700 .72rem system-ui;border:1px solid #93ae9a;padding:10px 8px;border-radius:10px}
#tourPanel #tourTravel{grid-column:1/-1;grid-row:1;color:#fff9ed;background:#335d48;border-color:#335d48}
#tourPanel #tourTravel:hover{background:#244332}
#tourPanel button:disabled{opacity:.38;cursor:not-allowed}
#tourPanel #tourFootnote{font-size:.69rem;line-height:1.5;color:#7b806e;margin:17px 0 0}
#roomCard{border-radius:18px}
#roomCardTitle{font-size:1.67rem}
#plaque{position:relative}
#plaque:before{content:'✳ THE ARCHIVE OF THE IMPOSSIBLE';display:block;margin-bottom:15px;padding-bottom:14px;border-bottom:1px solid #e1dece;font:800 .58rem system-ui;letter-spacing:.2em;color:#a47b54}
#plaqueArt{font-size:4.1rem;min-height:112px;display:grid;place-items:center;background:radial-gradient(ellipse at 45% 65%,#f6e0cf,#f0eee1 58%,#e2e9de);border-radius:18px}
#plaqueAction{letter-spacing:.01em;box-shadow:0 3px 0 #1f3b2f}
#plaqueFavourite{border-radius:10px}
#experienceToast{line-height:1.6}
@media(max-width:920px){#tourPanel{top:165px;right:12px;width:min(340px,calc(100vw - 24px))}}
@media(max-width:650px){
 #hud nav #tourButton{font-size:.68rem}
 #tourPanel{top:158px;right:10px;max-height:calc(100dvh - 260px);overflow-y:auto;width:min(340px,calc(100vw - 20px));padding:15px 16px}
 #tourPanel h2{font-size:1.42rem}
 #tourPanel #tourStory{font-size:.75rem;line-height:1.55;margin:9px 0 12px}
 #tourPanel .tour-track{margin:10px 0 12px}
 #tourPanel .tour-actions button{padding:9px 7px}
 #tourPanel #tourFootnote{margin-top:10px}
}
@media(prefers-reduced-motion:reduce){#tourPanel #tourProgress{transition:none}}

/* v1.1 — The Garden & Sabine's Star Key */
#hud nav #questButton{background:linear-gradient(125deg,#e8f2e4,#fff9e9);border-color:#6f987b}
#hud nav #questButton[aria-expanded="true"]{background:#bad5bc}
#questPanel{
 position:fixed;top:169px;left:22px;z-index:5;
 width:min(362px,calc(100vw - 44px));padding:21px 22px;
 background:linear-gradient(145deg,rgba(255,250,238,.99),rgba(236,246,226,.97));
 color:#294439;border:1.5px solid #78937d;border-radius:20px;
 box-shadow:0 4px 0 #829d87,0 20px 56px #203c2d3c;
 backdrop-filter:blur(16px)
}
#questPanel[hidden]{display:none!important}
#questPanel .quest-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
#questPanel .quest-heading .eyebrow{font-size:.62rem;color:#876f47}
#questPanel h2{font:normal 1.85rem/1.14 Georgia,serif;letter-spacing:-.04em;margin:6px 0 7px}
#questPanel #questClose{background:#fffaf0;border:1px solid #a7baa8;padding:6px 10px}
#questStage{display:inline-block;margin:12px 0 8px;padding:6px 10px;
 font:bold .68rem system-ui,sans-serif;letter-spacing:.09em;text-transform:uppercase;
 color:#3b604b;background:#dceadd;border-radius:100px}
#questStory{font:normal .85rem/1.75 system-ui,sans-serif;color:#4f6657;margin:4px 0 19px}
#questPanel .quest-buttons{display:flex;flex-wrap:wrap;gap:8px}
#questPanel .quest-buttons button{font-size:.75rem;padding:10px 12px}
#questTravel{background:#345a42;color:#fff7e8;border-color:#345a42}
#questPassport{background:#fff9e9}
#questPanel .quest-small{font:.69rem/1.55 system-ui,sans-serif;color:#748273;margin:15px 0 0}
#questFind{display:none;position:fixed;right:22px;bottom:97px;z-index:6;
 background:linear-gradient(130deg,#f6e7c3,#e6f2dd);color:#2e4f3f;
 border:1.5px solid #42634c;border-radius:13px;padding:12px 16px;
 font-weight:800;box-shadow:0 4px 0 #42634c,0 13px 24px #1c392b2d}
#questFind.visible{display:block}
#questDialogAction{display:block;margin:12px 4px 16px;padding:12px 16px;
 background:#345c44;color:#fff9ea;border:2px solid #264332;
 border-radius:12px;font-weight:800;box-shadow:0 3px 0 #1c3728}
#questDialogAction[hidden]{display:none!important}
#passportQuest{padding:13px 14px;border-radius:13px;
 background:linear-gradient(120deg,#eff1df,#f9efd9);border:1px solid #b2c8ac}
#passportQuest strong{color:#42604a}
@media(max-width:650px){
 #questPanel{top:154px;left:10px;padding:15px 16px;
  width:min(340px,calc(100vw - 20px));max-height:calc(100dvh - 275px);overflow:auto}
 #questPanel h2{font-size:1.48rem}
 #questStory{font-size:.75rem;line-height:1.55}
 #questPanel .quest-small{font-size:.64rem}
 #questFind{bottom:202px;right:10px;font-size:.75rem;padding:10px 12px}
}
@media(prefers-reduced-motion:reduce){#questFind{transition:none}}

/* v1.1 mobile navigation fix: controls must never disappear offscreen. */
@media(max-width:650px){
 #hud nav{
   overflow-x:visible!important;overflow-y:visible!important;
   flex-wrap:wrap!important;align-items:center;
   justify-content:flex-start!important;gap:3px!important;
   white-space:normal!important;scrollbar-width:none;
   width:calc(100vw - 20px);max-width:100%;
   padding:4px 5px!important;
 }
 #hud nav button,#hud nav a{
   white-space:nowrap!important;flex:0 0 auto!important;
   min-height:34px;padding:6px 9px!important;
   font-size:clamp(.59rem,2.5vw,.70rem)!important;
 }
 #wingLabel{top:136px!important}
 #directory{top:177px!important;max-height:calc(100dvh - 215px)}
 #tourPanel{top:181px!important;max-height:calc(100dvh - 265px)}
 #questPanel{top:181px!important;max-height:calc(100dvh - 280px)}
 #notices{top:177px!important}
}
@media(max-width:360px){
 #hud nav button,#hud nav a{font-size:.60rem!important;padding:5px 7px!important}
 #wingLabel{top:155px!important}
 #directory,#tourPanel,#questPanel{top:201px!important}
}

/* Robust location hierarchy: mobile room label follows the wrapped controls. */
@media(max-width:650px){
 #hud #wingLabel{
   position:static!important;left:auto!important;right:auto!important;
   top:auto!important;bottom:auto!important;
   align-self:flex-start;width:max-content;max-width:100%;
   margin:2px 0 0 0!important;z-index:4;
   border-radius:9px;padding:7px 10px;
 }
 #directory{top:182px!important}
 #tourPanel{top:188px!important}
 #questPanel{top:188px!important}
}

/* v1.2 botanical interactions and visitor-selected seasons */
#seasonButton{background:linear-gradient(125deg,#f3eedb,#ecf3e5);border-color:#8da28f}
#seasonChoices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}
#seasonChoices button{display:block;padding:16px 13px;font:750 .9rem system-ui,sans-serif;border:1.5px solid #a2b4a3;
 background:#fcf9ef;border-radius:13px}
#seasonChoices button[aria-pressed="true"]{background:#dcebd8;color:#294c3b;border:2px solid #447253;box-shadow:0 3px 0 #91ae92}
#seasonChoices button:hover{background:#e8efdf}
#seasonPicker .season-note{font-size:.76rem;color:#65766b}
#gardenInteract{display:none;position:fixed;right:22px;bottom:96px;z-index:6;
 background:linear-gradient(130deg,#e4efd9,#fff5de);border:1.5px solid #47664f;
 color:#2b4a39;padding:12px 16px;border-radius:12px;
 box-shadow:0 4px 0 #31583c,0 12px 28px #1c3a2b33;font-weight:800}
#gardenInteract.visible{display:block}
#passportGarden{padding:12px 14px;border:1px solid #bed1ba;border-radius:14px;
 background:linear-gradient(120deg,#ecf5e8,#f8f0de)}
#passportGarden strong{color:#375d45}
#passportGarden p{margin:8px 0;font-size:.85rem;line-height:1.55}
@media(max-width:650px){
 #hud nav #seasonButton{background:#f2efde}
 #seasonChoices button{padding:12px 8px;font-size:.8rem}
 #gardenInteract{bottom:202px;right:10px;font-size:.71rem;padding:9px 11px;max-width:50vw}
 #tourPanel,#questPanel,#directory{top:var(--museum-panel-top,200px)!important;
 max-height:calc(100dvh - var(--museum-panel-top,200px) - 76px)!important}
 #notices{top:var(--museum-panel-top,200px)!important}
}
@media(prefers-reduced-motion:reduce){#seasonChoices button,#gardenInteract{transition:none!important}}

/* v1.3 • The Museum That Lives — editorial cartography, atmosphere & stories */
#directory{
 width:min(500px,calc(100vw - 28px));max-width:calc(100vw - 28px);
 padding:17px 18px 20px;max-height:calc(100dvh - 110px);
 border-color:#526f5b;border-radius:19px;
 background:linear-gradient(145deg,#fffaf0,#ebf0e6);
 box-shadow:0 5px 0 #59715d,0 22px 80px #1a392b42;
 z-index:8;
}
#directory .directory-header{display:flex;align-items:start;justify-content:space-between;gap:10px}
#directory .directory-header h2{font:normal 1.8rem/1.12 Georgia,serif;letter-spacing:-.05em;margin:4px 0 8px}
#directory #atlasOpen{width:auto;flex:none;text-align:center;
 background:#355d48;color:#fff9e8;border-color:#294b39;
 font:750 .73rem system-ui;padding:9px 12px;border-radius:11px}
#directory .directory-note{font:.77rem/1.5 system-ui;color:#6b7b70}
#directory .directory-group{font:800 .66rem/1.3 system-ui;letter-spacing:.16em;
 text-transform:uppercase;color:#5b745f;margin:14px 0 7px;padding-top:8px;
 border-top:1px solid #c8d5c7}
#directory [data-jump]{width:auto;display:inline-flex;padding:7px 11px;margin:3px;
 font:700 .74rem system-ui;border:1px solid #b0c2b0;background:#fffaf0;border-radius:9px}
#directory [data-jump]:hover{background:#dfeade}
#directory [data-jump][hidden],#directory .directory-group[hidden]{display:none}
.museum-plan{border:1px solid #bac7b6;border-radius:16px;background:#f5f0e4;
 overflow:hidden;margin:13px 0 12px}
.museum-plan-svg{display:block;width:100%;height:auto;max-height:min(47dvh,440px)}
.plan-toolbar{padding:10px 12px 7px;background:#f7f5e9}
.plan-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px}
#directory .plan-switch button{width:auto;margin:0;text-align:center;
 background:#e2ebdc;color:#3a5d48;border:1px solid #bacbb7;
 padding:9px 7px;font:750 .72rem/1.15 system-ui;border-radius:9px}
#directory .plan-switch button[aria-pressed=true]{background:#355c46;color:#fffaf0;border-color:#355c46}
.plan-caption,.plan-footnote{font:.64rem/1.4 system-ui;color:#667d69;margin:8px 0 0}
.plan-footnote{margin:0;padding:8px 12px 11px;background:#f7f5e9}
.plan-room{cursor:pointer;outline:none;transform-box:fill-box;transform-origin:center}
.plan-room:focus-visible rect:first-child{stroke:#d58f69;stroke-width:1}
.plan-room:hover rect:first-child,.plan-room.is-current rect:first-child{
 stroke:#315c46;stroke-width:.8;filter:drop-shadow(0 0 .65px #507f66)}
.plan-room text{pointer-events:none}
.plan-room .map-stamp{pointer-events:none}
.plan-location{pointer-events:none;filter:drop-shadow(0 0 .6px #fff);}
#atlasPanel{
 position:fixed;top:165px;left:22px;z-index:7;
 width:min(355px,calc(100vw - 44px));max-height:calc(100dvh - 220px);overflow:auto;
 padding:22px;background:linear-gradient(140deg,#fff9e9,#edf0dd);
 border:1.5px solid #8a9878;border-radius:19px;
 box-shadow:0 5px 0 #718576,0 28px 65px #23382e38;
 backdrop-filter:blur(15px);color:#2c4d3f
}
#atlasPanel[hidden]{display:none!important}
#atlasPanel .atlas-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
#atlasPanel h2{font:normal 1.8rem/1.1 Georgia,serif;letter-spacing:-.055em;margin:7px 0 15px}
#atlasPanel #atlasClose{padding:6px 10px;border:1px solid #bac5ae;border-radius:9px}
#atlasStep{font:800 .72rem/1.5 system-ui;color:#40604b;margin:0 0 9px}
#atlasStory{font:.82rem/1.65 system-ui;color:#536c5a}
#atlasTally{display:inline-block;padding:8px 11px;margin:5px 0 15px;
 background:#dcebdc;border:1px solid #adc6af;border-radius:10px;
 font:800 .7rem system-ui}
#atlasPanel .atlas-actions{display:grid;gap:8px}
#atlasPanel .atlas-actions button{font:750 .75rem system-ui;padding:10px 12px;border-radius:10px}
#atlasTravel,#atlasBegin{background:#345c46;color:#fff9ec;border-color:#345c46}
#atlasPanel button:disabled{opacity:.5;cursor:not-allowed}
#atlasPanel small{display:block;margin-top:16px;font:.68rem/1.5 system-ui;color:#738474}
#atlasInteract{display:none;position:fixed;bottom:96px;right:22px;z-index:7;
 background:linear-gradient(135deg,#f4e5c7,#eff1da);border:2px solid #668168;
 color:#284b3c;border-radius:12px;padding:12px 16px;font-weight:800;
 box-shadow:0 4px 0 #4a7155,0 13px 29px #213a2c36}
#atlasInteract.visible{display:block}
#atlasDialogAction{background:#345c46;color:#fff8e9;border:2px solid #355841;
 font:800 .83rem system-ui;padding:12px 16px;margin:12px 4px;border-radius:12px}
#atlasDialogAction[hidden]{display:none!important}
#passportAtlas{background:linear-gradient(130deg,#f8eedb,#e5ecdd);
 padding:12px 14px;border-radius:13px;border:1px solid #c2c9b4}
#passportAtlas strong{color:#536943}
#passportAtlas p{font:.82rem/1.5 system-ui}
#passportAtlas button{padding:9px 12px;border:1px solid #66816c;border-radius:9px}
#daypartChoices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:13px 0}
#daypartChoices button{font:750 .76rem/1.35 system-ui;padding:11px 8px;
 border:1.5px solid #a7b6a5;border-radius:10px;background:#f4f1e6}
#daypartChoices button:first-child{grid-column:1/-1}
#daypartChoices button[aria-pressed=true]{background:#d4e4d8;border-color:#4e795b;color:#2a543d;
 box-shadow:0 2px 0 #a5bca5}
#seasonPicker h3{font:normal 1.45rem Georgia,serif;margin:14px 0 2px}
.season-divider{margin:20px 0 14px;border-top:1px solid #ced6c7}
body[data-daypart=night] #identity,body[data-daypart=night] #wingLabel{
 background:#fff7e0e8}
@media(max-width:650px){
 #directory,#atlasPanel{top:var(--museum-panel-top,200px)!important;
 max-height:calc(100dvh - var(--museum-panel-top,200px) - 78px)!important}
 #directory{right:8px;width:calc(100vw - 16px);max-width:calc(100vw - 16px);padding:11px}
 #directory .directory-header h2{font-size:1.45rem}
 #directory #atlasOpen{font-size:.66rem;padding:8px}
 #directory .plan-switch button{font-size:.68rem}
 .museum-plan-svg{max-height:40dvh}
 #atlasPanel{left:10px;padding:15px}
 #atlasInteract{bottom:202px;right:10px;max-width:55vw;font-size:.72rem;padding:10px 12px}
 #daypartChoices button{font-size:.72rem}
}
@media(prefers-reduced-motion:reduce){.plan-room,.plan-location{transition:none!important}}

/* Conversational curator choices: accessible tap targets, calmer editorial rhythm. */
#dialogueOptions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:17px 0}
#dialogueOptions button{
 margin:0!important;min-height:42px;text-align:left;padding:10px 12px;
 background:#f6f1e5;border:1px solid #bdccb7;
 border-radius:10px;font:700 .77rem/1.35 system-ui;color:#375844;
 box-shadow:none
}
#dialogueOptions button:hover{background:#e1ebdd;border-color:#8da991}
#dialogueOptions button:focus-visible,#atlasDialogAction:focus-visible{
 outline:3px solid #bb7786;outline-offset:3px
}
#dialogueText{font-size:.96rem;line-height:1.75;max-width:60ch}
#dialogue:open{max-height:min(85dvh,760px)}
#seasonPicker{width:min(490px,calc(100vw - 24px))}
#seasonPicker .eyebrow{font-size:.6rem}
#atlasPanel #atlasStep{line-height:1.45}
#directory .museum-plan-svg:focus-visible{outline:2px solid #9a6b82}
@media(max-width:650px){
 #dialogueOptions{grid-template-columns:1fr 1fr;gap:5px}
 #dialogueOptions button{font-size:.7rem;min-height:39px;padding:8px 9px}
 #dialogue{padding:18px}
}
@media(max-width:340px){#dialogueOptions{grid-template-columns:1fr}}

/* v1.4 — The Museum Remembers: a gentle Museum Care design language */
#hud nav #careButton{background:linear-gradient(135deg,#e0f0db,#f8f0df);color:#315744;
 border-color:#8eac90;font-weight:850}
#hud nav #careButton[aria-expanded="true"]{background:#bcd7b6;border-color:#547a5c}
#carePanel{
 position:fixed;top:166px;left:22px;z-index:9;
 width:min(405px,calc(100vw - 44px));max-height:calc(100dvh - 220px);overflow:auto;
 padding:22px 22px 20px;border:1.5px solid #79997e;border-radius:20px;
 background:linear-gradient(150deg,rgba(254,250,239,.99),rgba(233,243,224,.97));
 color:#315844;box-shadow:0 5px 0 #78967d,0 25px 64px #21382940;
 backdrop-filter:blur(15px);overscroll-behavior:contain
}
#carePanel[hidden]{display:none!important}
#carePanel .care-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
#carePanel h2{font:normal 2rem/1.07 Georgia,serif;letter-spacing:-.055em;margin:7px 0 8px}
#carePanel #careSubtitle{font:.8rem/1.55 system-ui;color:#627762;margin:0 0 14px}
#carePanel #careClose{padding:7px 10px;min-width:37px;background:#fcfaf1;border:1px solid #b3c4ae}
.care-progress{background:#f8f8ed;border:1px solid #c3d0b9;border-radius:13px;
 padding:12px;margin:0 0 15px}
.care-progress>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:12px}
.care-progress strong{font:800 .72rem system-ui}
.care-progress span{font:.64rem system-ui;color:#68816a}
.care-track,.care-game-track{height:8px;border-radius:99px;background:#dce5d5;overflow:hidden;margin-top:11px}
#careProgressFill,#careGameFill{display:block;width:0;height:100%;background:linear-gradient(90deg,#8db6a2,#d6b375);
 transition:width .28s cubic-bezier(.2,.7,.3,1);border-radius:inherit}
.care-task-list{display:grid;gap:9px}
.care-task-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;
 align-items:center;border:1px solid #c4d2be;border-radius:13px;
 background:#fffaf0;padding:11px 9px;min-height:90px}
.care-task-card.is-resting{background:#f0f4e9;border-color:#d2ddcc}
.care-task-icon{width:42px;height:42px;display:grid;place-items:center;font-size:1.7rem;
 border-radius:12px;background:#e6efd9}
.care-task-card.is-resting .care-task-icon{background:#dce7d5}
.care-task-description{display:grid;gap:4px;min-width:0}
.care-task-description strong{font:700 .82rem/1.26 system-ui;color:#345640}
.care-task-description span{font:700 .64rem system-ui;color:#597e62}
.care-task-description small{font:.67rem/1.4 system-ui;color:#6d7967}
#carePanel .care-task-card button{margin:0;padding:10px 9px;border:1px solid #698d71;
 background:#e4efe0;color:#315a41;border-radius:9px;font:800 .68rem system-ui;
 min-height:39px;white-space:nowrap}
#carePanel .care-task-card button:hover{background:#cce3ca}
.care-next-badge{font:750 .75rem/1.5 system-ui;color:#516c56;
 padding:11px;margin:13px 0;background:#e9ecde;border-radius:11px}
.care-note{font:.69rem/1.6 system-ui;color:#6d7f70;margin:10px 0 0}
#careAction,#residentTalk{display:none;position:fixed;bottom:94px;z-index:7;
 border-radius:12px;border:1.5px solid #496d55;padding:12px 15px;font:800 .77rem/1.3 system-ui;
 box-shadow:0 4px 0 #365c43,0 15px 28px #233c2a30;color:#2c503d}
#careAction{right:18px;background:linear-gradient(140deg,#e1edd6,#fff1d1)}
#residentTalk{left:18px;background:linear-gradient(130deg,#f8e8d8,#e7eede)}
#careAction.visible,#residentTalk.visible{display:block}
#residentDialog #residentRole{font:800 .69rem system-ui;letter-spacing:.13em;color:#9a7950;text-transform:uppercase}
#residentWords{font:normal 1rem/1.75 Georgia,serif}
#residentSuggestion{font:.78rem/1.6 system-ui;color:#68816c}
#residentCareButton{background:#365b43;color:#fff6e5;border:1.5px solid #345d47;
 padding:11px 14px;border-radius:10px;margin:10px 6px 10px 0;font:800 .73rem system-ui}
#careGame{width:min(460px,calc(100vw - 28px));text-align:center}
#careGame h2{letter-spacing:-.05em;line-height:1.1}
#careGameIntro{font:.82rem/1.6 system-ui;color:#607966}
.care-game-art{min-height:132px;display:grid;place-items:center;position:relative;isolation:isolate;
 margin:15px 0;border-radius:15px;background:radial-gradient(circle at 50% 70%,#fff9e3,#e1f0dd 73%,#cce1d1)}
#careGameGlyph{font-size:4.65rem;filter:drop-shadow(0 7px 6px #4a784337)}
#careGameSparkles{position:absolute;right:17px;top:15px;font:1.5rem Georgia;color:#b89359;letter-spacing:.11em}
#careGameStep{font:.9rem/1.65 system-ui;color:#4e6c5a;min-height:45px}
#careGame .care-game-track{height:10px;margin:10px 0}
.care-game-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:16px}
.care-game-actions button{border-radius:11px;padding:11px 14px;font:750 .81rem system-ui;min-height:44px}
#careGameDo{background:#345e47;color:#fff9ed;border:1px solid #2d4d37}
#careGameDo:hover{background:#254936}
#journalCare,#journalMemories{padding:15px;margin:14px 0;background:linear-gradient(120deg,#ecf5e6,#f8eee1);
 border:1px solid #bbcfb3;border-radius:15px}
#journalMemories{background:linear-gradient(120deg,#f5ebdc,#e7efe2)}
#journalCare strong,#journalMemories strong{color:#395b45}
#journalCare p,#journalMemories p{font:.83rem/1.65 system-ui;color:#5e735f}
#journalCare .journal-history{font-size:.73rem;color:#7c846b}
#journalCare button{background:#e2eddc;color:#385b43;border:1px solid #87aa91;
 padding:10px 13px;border-radius:10px;font:800 .73rem system-ui}
.journal-tools{display:flex;flex-wrap:wrap;gap:9px;margin:16px 0 6px}
.journal-tools button{font:.75rem system-ui;padding:9px 13px;border-radius:10px;
 border:1px solid #a5b9a1;background:#e6efe0;color:#365943}
#journalResetCare{background:#f6eade;border-color:#c7ad9a}
.journal-privacy{font:.71rem/1.5 system-ui;color:#728072}
@media(max-width:650px){
 #carePanel{top:var(--museum-panel-top,200px)!important;left:10px;
 max-height:calc(100dvh - var(--museum-panel-top,200px) - 238px)!important;
 width:calc(100vw - 20px);padding:15px 13px}
 #carePanel h2{font-size:1.65rem}
 #carePanel .care-task-card{grid-template-columns:33px minmax(0,1fr) auto;gap:7px;padding:9px 7px;min-height:78px}
 .care-task-icon{width:33px;height:33px;font-size:1.25rem}
 .care-task-description strong{font-size:.72rem}
 .care-task-description small{font-size:.61rem}
 #carePanel .care-task-card button{padding:7px;font-size:.64rem}
 .care-progress{padding:10px}
 .care-progress>div:first-child{flex-wrap:wrap;gap:5px}
 #careAction{bottom:207px;right:10px;max-width:50vw;padding:10px;font-size:.72rem}
 #residentTalk{bottom:258px;left:10px;max-width:48vw;padding:9px;font-size:.7rem}
 #careGame{padding:18px 14px}
 .care-game-art{min-height:105px}
 #careGameGlyph{font-size:3.5rem}
}
@media(prefers-reduced-motion:reduce){#careProgressFill,#careGameFill{transition:none!important}}

.care-2d-link{display:inline-flex;margin-top:13px;font:800 .73rem/1.5 system-ui;color:#355a42;text-underline-offset:4px}.care-2d-link:focus-visible{outline:3px solid #b67885;outline-offset:4px}
