*{box-sizing:border-box}:root{--ink:#1b140f;--cream:#f4ead7;--paper:#fff9ef;--gold:#d0a24a;--navy:#122b3d;--green:#284b3c;--rust:#7f3428;--shadow:0 18px 50px rgba(0,0,0,.26)}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Georgia,'Times New Roman',serif;line-height:1.55}body.large{font-size:1.18rem}body.contrast{--cream:#fff;--paper:#fff;--ink:#000;--gold:#ffd400;--navy:#001b2e}body.motion *,body.motion *:before,body.motion *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.skip{position:absolute;top:-4rem;left:1rem;z-index:99;background:#fff;color:#000;padding:.7rem 1rem}.skip:focus{top:1rem}.topbar{position:sticky;top:0;z-index:40;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--navy);color:#fff;box-shadow:0 6px 20px rgba(0,0,0,.3)}.brand{display:flex;align-items:center;gap:.7rem}.brand small{display:block;opacity:.8}.seal{display:grid;place-items:center;width:42px;height:42px;border:2px solid var(--gold);border-radius:50%;color:var(--gold);font-weight:700}.controls{display:flex;flex-wrap:wrap;gap:.4rem}.controls button,.secondary,.passport{border:1px solid currentColor;background:transparent;color:inherit;border-radius:999px;padding:.55rem .8rem}.controls button:hover,.controls button[aria-pressed=true]{background:#fff;color:var(--navy)}button{font:inherit;cursor:pointer}button:focus-visible,textarea:focus-visible,a:focus-visible{outline:4px solid #ffcf33;outline-offset:4px}.screen{display:none;min-height:calc(100vh - 74px);padding:2rem}.screen.active{display:block}.hero{background:linear-gradient(rgba(10,20,28,.35),rgba(10,20,28,.68)),url('assets/images/museum-exterior.png') center/cover no-repeat;place-items:center}.hero.active{display:grid}.overlay{max-width:820px;text-align:center;background:rgba(14,28,38,.88);color:#fff;padding:2.2rem;border:1px solid rgba(255,255,255,.45);border-radius:24px;box-shadow:var(--shadow)}h1{font-size:clamp(2.8rem,7vw,6.5rem);line-height:.95;margin:.2rem 0 .6rem}h2{font-size:clamp(2rem,4vw,4rem);line-height:1.05;margin:.2rem 0 .8rem}h3{margin-bottom:.4rem}.kicker{text-transform:uppercase;letter-spacing:.16em;font:800 .78rem Arial,sans-serif;color:var(--gold)}.subtitle{font-size:1.35rem;color:#f1d593}.subtitle-dark{font-size:1.15rem;color:#564635}.primary{border:0;border-radius:999px;padding:.85rem 1.2rem;background:var(--gold);color:#201503;font-weight:800;box-shadow:0 8px 18px rgba(0,0,0,.18)}.primary:hover{transform:translateY(-2px)}.panel{width:min(1100px,100%);margin:1rem auto;text-align:center}.path-screen{background:linear-gradient(rgba(255,249,239,.9),rgba(244,234,215,.93)),url('assets/images/museum-lobby.png') center/cover}.path-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:1.5rem}.path-card{padding:0;border:2px solid #b99b66;background:var(--paper);color:var(--ink);border-radius:18px;overflow:hidden;box-shadow:var(--shadow);text-align:left}.path-card img{width:100%;height:230px;object-fit:cover;display:block}.path-card span{display:block;padding:1rem}.path-card strong,.path-card small{display:block}.path-card strong{font-size:1.35rem}.path-card:hover{transform:translateY(-5px)}.lobby-screen{background:linear-gradient(rgba(10,20,28,.4),rgba(10,20,28,.58)),url('assets/images/museum-lobby.png') center/cover}.lobby-card{display:grid;grid-template-columns:280px 1fr;gap:2rem;align-items:center;width:min(1000px,100%);margin:4rem auto;background:rgba(255,249,239,.94);border-radius:24px;padding:2rem;box-shadow:var(--shadow)}.guide-wrap img{width:100%;max-height:420px;object-fit:contain}.lobby-actions{display:flex;gap:.8rem;flex-wrap:wrap}.street-screen{padding:0;background:url('assets/images/harlem-street-hub.png') center/cover no-repeat}.street-overlay{min-height:calc(100vh - 74px);display:flex;flex-direction:column;justify-content:space-between;padding:2rem;background:linear-gradient(rgba(0,0,0,.12),rgba(0,0,0,.5))}.street-head{display:flex;justify-content:space-between;gap:1rem;background:rgba(255,249,239,.94);padding:.75rem 1rem;border-radius:14px;box-shadow:var(--shadow)}.street-head h2{font-size:clamp(1.65rem,2.8vw,2.7rem);margin:.05rem 0 .2rem}.street-head .kicker,.street-head #pathLabel{margin:.1rem 0}.passport{color:var(--navy);background:#fff;font-weight:800}.gallery-nav{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;padding:1rem;background:rgba(12,25,35,.88);border-radius:18px}.gallery-nav button{min-height:70px;border:1px solid var(--gold);background:rgba(255,255,255,.08);color:#fff;border-radius:12px;padding:.7rem;font-weight:800}.gallery-nav button:hover{background:var(--gold);color:#201503}.gallery-screen{background:#dfd2bd}.gallery-top{display:flex;justify-content:space-between;align-items:center;width:min(1250px,100%);margin:0 auto 1rem;color:var(--navy)}.gallery-layout{display:grid;grid-template-columns:1.05fr .95fr;width:min(1250px,100%);margin:auto;background:var(--paper);border-radius:22px;overflow:hidden;box-shadow:var(--shadow)}.gallery-image img{width:100%;height:100%;min-height:760px;object-fit:cover;display:block}.gallery-content{padding:2rem;overflow:auto}.vocab,.activity{margin-top:1.25rem;padding:1rem;background:#efe1c9;border-left:7px solid var(--gold)}.activity{border-left-color:var(--green)}textarea{width:100%;padding:.8rem;border:2px solid #8d7b60;border-radius:10px;background:#fff;color:#000}.activity-actions{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:.7rem}#feedback{font-weight:800;color:var(--green)}.passport-screen{background:linear-gradient(rgba(26,56,45,.94),rgba(26,56,45,.94)),url('assets/images/museum-lobby.png') center/cover}.passport-layout{display:grid;grid-template-columns:360px 1fr;gap:2rem;width:min(1100px,100%);margin:auto}.passport-cover img{width:100%;border-radius:12px;box-shadow:var(--shadow)}.passport-pages{background:var(--paper);padding:2rem;border-radius:20px;box-shadow:var(--shadow)}.stamps{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.stamp{min-height:120px;display:grid;place-items:center;text-align:center;border:3px dashed #aa9a7b;border-radius:50%;padding:1rem;color:#766a55}.stamp.earned{border:5px double var(--rust);background:#f4dac0;color:var(--rust);transform:rotate(-2deg)}.complete{margin-top:1.5rem;padding:1rem;background:#e0eee4;border-radius:14px}.hidden{display:none}.certificate-screen{background:#ede3d0}.certificate-wrap{width:min(1100px,100%);margin:auto;text-align:center}.certificate-wrap img{width:100%;box-shadow:var(--shadow)}.certificate-controls{display:flex;justify-content:center;gap:.8rem;margin-top:1rem}footer{background:#101f2a;color:#fff;padding:1rem;text-align:center}footer p{margin:0}@media(max-width:950px){.topbar{align-items:flex-start;flex-direction:column}.path-grid,.gallery-nav{grid-template-columns:repeat(2,1fr)}.gallery-layout,.passport-layout,.lobby-card{grid-template-columns:1fr}.gallery-image img{min-height:auto}.guide-wrap{text-align:center}.guide-wrap img{max-width:260px}.stamps{grid-template-columns:1fr}}@media(max-width:620px){.screen{padding:1rem}.path-grid,.gallery-nav{grid-template-columns:1fr}.street-overlay{padding:1rem}.street-head{flex-direction:column}}@media print{.topbar,footer,.certificate-controls{display:none!important}.screen{display:none!important}.certificate-screen{display:block!important;padding:0}.certificate-wrap img{box-shadow:none}}


.music-panel{position:fixed;right:1rem;top:5.2rem;z-index:80;width:min(340px,calc(100vw - 2rem));padding:1rem;border:2px solid var(--gold);border-radius:16px;background:var(--paper);color:var(--ink);box-shadow:var(--shadow)}
.book-purchase{margin-top:1.25rem;padding:1.1rem;border:2px solid #b48831;border-radius:15px;background:linear-gradient(135deg,#f8ecd2,#fff9ef);color:var(--ink);box-shadow:0 10px 24px rgba(56,38,15,.12)}.book-purchase[hidden]{display:none}.book-purchase .kicker{margin:0}.book-purchase h3{margin:.2rem 0 .45rem;font-size:1.45rem;color:var(--navy)}.book-purchase .primary{display:inline-block;margin-top:.35rem;text-decoration:none}.book-link-note{margin:.65rem 0 0;color:#655947;font-size:.86rem}.book-purchase a:focus-visible{outline-color:#8b4c00}body.contrast .book-purchase{background:#fff;color:#000;border-color:#000}body.contrast .book-purchase h3,body.contrast .book-link-note{color:#000}
.music-panel[hidden]{display:none}.music-panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.8rem}.music-panel-head button{border:0;background:transparent;color:inherit;font-size:1.7rem;line-height:1}.music-panel label{display:block;margin:.7rem 0 .25rem;font-weight:700}.music-panel select,.music-panel input[type="range"]{width:100%}.music-panel select{padding:.65rem;border:1px solid #8d8068;border-radius:8px;background:white;color:black}.music-actions{display:flex;gap:.55rem;margin-top:.8rem}.music-check{display:flex!important;align-items:flex-start;gap:.5rem;font-weight:400!important}.music-check input{margin-top:.35rem}#nowPlaying{margin:.75rem 0 0;font-size:.92rem;font-style:italic}.music-panel .secondary{color:var(--ink)}
@media(max-width:700px){.music-panel{top:8.6rem}.music-actions{flex-direction:column}}
@media print{.music-panel,#museumAudio{display:none!important}}

/* Museum Mission Mode */
.mission-panel{position:fixed;right:1rem;top:5.2rem;z-index:90;width:min(430px,calc(100vw - 2rem));max-height:calc(100vh - 6.5rem);overflow:auto;padding:1.2rem;border:3px solid var(--gold);border-radius:18px;background:var(--paper);color:var(--ink);box-shadow:0 24px 70px rgba(0,0,0,.4)}.mission-panel[hidden]{display:none}.mission-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.mission-panel-head .kicker{margin:0 0 .15rem}.mission-panel-head strong{font-size:1.35rem}.mission-panel-head button{border:0;background:transparent;color:inherit;font-size:1.8rem;line-height:1}.mission-key-list{display:grid;grid-template-columns:repeat(2,1fr);gap:.55rem;margin:1rem 0}.mission-key-item{display:flex;align-items:center;gap:.65rem;padding:.65rem;border:1px solid #cbb994;border-radius:12px;background:#f2eadc}.mission-key-item>span:last-child{display:flex;flex-direction:column;min-width:0}.mission-key-item strong{font-size:.93rem}.mission-key-item small{color:#6e6251}.mission-key-item.earned{border-color:var(--green);background:#e3eee5}.story-key{display:inline-grid;place-items:center;flex:0 0 auto;width:48px;height:48px;border-radius:50%;font:900 .78rem Arial,sans-serif;letter-spacing:.06em}.key-locked{border:3px dashed #9b8d75;background:#e6dfd2;color:#756b5b}.key-earned{border:5px double #6f4a0d;background:radial-gradient(circle at 35% 30%,#ffe79a,#d5a638 58%,#9d6c12);color:#201503;box-shadow:0 5px 14px rgba(87,55,6,.3)}.lobby-mission{display:flex;align-items:center;gap:1rem;margin:1.1rem 0;padding:1rem;border-left:7px solid var(--gold);border-radius:12px;background:#efe1c9}.lobby-mission div{display:flex;flex-direction:column}.street-actions{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.mission-status{border:2px solid #8c681f;border-radius:999px;padding:.55rem .9rem;background:var(--gold);color:#201503;font-weight:800}.gallery-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem}.gallery-nav button.mission-complete{border-color:#f5d470;background:rgba(37,86,63,.92)}.gallery-nav button.mission-complete:after{content:"Story Key Collected ✓";font:800 .7rem Arial,sans-serif;color:#f8dc91;letter-spacing:.03em}.mission-heading{display:flex;align-items:center;gap:1rem}.mission-heading .kicker{margin:0}.mission-heading h3{margin:.05rem 0}.key-reward{position:fixed;z-index:150;inset:0;display:grid;place-items:center;padding:1rem;background:rgba(5,13,20,.9)}.key-reward[hidden]{display:none}.key-reward-card{display:grid;grid-template-columns:220px 1fr;align-items:center;width:min(850px,100%);overflow:hidden;border:3px solid var(--gold);border-radius:24px;background:var(--paper);color:var(--ink);box-shadow:0 30px 90px rgba(0,0,0,.55);animation:reward-in .45s ease-out}.key-reward-card>img{width:100%;height:100%;max-height:440px;object-fit:contain;align-self:end;background:linear-gradient(#ead9bc,#f9f0df)}.reward-copy{padding:clamp(1.2rem,4vw,2.5rem)}.reward-copy .story-key{width:76px;height:76px;font-size:1.05rem;animation:key-pop .7s ease-out}.reward-copy h2{font-size:clamp(2.5rem,6vw,4.8rem);margin:.2rem 0}.reward-progress{display:inline-block;padding:.45rem .7rem;border-radius:999px;background:#e3eee5;color:#173c2c;font-weight:800}@keyframes reward-in{from{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:none}}@keyframes key-pop{0%{transform:scale(.3) rotate(-20deg)}65%{transform:scale(1.18) rotate(5deg)}100%{transform:none}}
body.contrast .mission-panel,body.contrast .mission-key-item,body.contrast .key-reward-card,body.contrast .lobby-mission{color:#000}body.contrast .mission-key-item:not(.earned){background:#fff}body.contrast .reward-progress{background:#fff;color:#000;border:2px solid #000}
@media(max-width:700px){.mission-panel{top:8.6rem;max-height:calc(100vh - 9.6rem)}.mission-key-list{grid-template-columns:1fr}.key-reward-card{grid-template-columns:1fr;max-height:95vh;overflow:auto}.key-reward-card>img{height:190px}.street-actions{align-items:stretch;flex-direction:column}.street-actions button{width:100%}}
@media print{.mission-panel,.key-reward{display:none!important}}

/* Final Story Vault */
.story-vault-screen{background:radial-gradient(circle at top,#77562a 0,#162f3e 42%,#091923 100%);color:#fff}.vault-shell{width:min(1150px,100%);margin:auto}.vault-shell>.secondary{color:#fff}.vault-intro{display:grid;grid-template-columns:260px 1fr;align-items:center;margin:1rem 0 1.4rem;border:2px solid var(--gold);border-radius:24px;overflow:hidden;background:rgba(8,24,34,.9);box-shadow:var(--shadow)}.vault-intro img{width:100%;height:100%;max-height:390px;object-fit:contain;align-self:end;background:linear-gradient(#d7bd8e,#f5e6cb)}.vault-intro>div{padding:clamp(1.3rem,4vw,2.6rem)}.vault-intro h2{color:#fff}.vault-intro p{max-width:760px}.vault-keys{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin:1rem 0}.vault-key{display:flex;align-items:center;gap:.65rem;min-height:92px;padding:.8rem;border:1px solid #d8b65e;border-radius:14px;background:rgba(255,255,255,.09);color:#fff}.vault-key>span:last-child{display:flex;flex-direction:column}.vault-key small{color:#ead9b3}.curator-statement{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(300px,1.2fr);gap:1.2rem;margin-top:1.2rem;padding:1.5rem;border-radius:18px;background:var(--paper);color:var(--ink);box-shadow:var(--shadow)}.curator-statement .activity-actions,.curator-statement #curatorFeedback{grid-column:2}.curator-statement h3{font-size:1.7rem}.curator-statement button:disabled{cursor:not-allowed;opacity:.5;box-shadow:none}.curator-statement .secondary{color:var(--navy)}#curatorFeedback{font-weight:800;color:var(--green)}body.contrast .story-vault-screen{color:#fff}body.contrast .curator-statement{color:#000}
@media(max-width:850px){.vault-intro,.curator-statement{grid-template-columns:1fr}.vault-intro img{height:230px}.vault-keys{grid-template-columns:repeat(2,1fr)}.curator-statement .activity-actions,.curator-statement #curatorFeedback{grid-column:1}}
@media(max-width:520px){.vault-keys{grid-template-columns:1fr}}
@media print{.story-vault-screen{display:none!important}}

/* Gallery 2: Writers and Poets */
.light-top{color:var(--navy)}.dark-top{color:#fff}.literature-hub-screen{background:linear-gradient(135deg,#d8c49e,#f5ead7 48%,#c5a56c)}
.literature-hero{position:relative;width:min(1250px,100%);min-height:440px;margin:0 auto 1.2rem;border-radius:24px;overflow:hidden;box-shadow:var(--shadow);background:var(--navy)}
.literature-hero img{display:block;width:100%;height:440px;object-fit:cover}.literature-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,20,30,.88) 0%,rgba(8,20,30,.7) 43%,rgba(8,20,30,.12) 78%)}
.literature-hero-copy{position:absolute;z-index:2;left:clamp(1.2rem,5vw,4rem);top:50%;width:min(620px,78%);transform:translateY(-50%);color:#fff}.literature-hero-copy h2{font-size:clamp(2.5rem,5vw,5rem)}.literature-hero-copy p:last-child{font-size:1.12rem}
.room-choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;width:min(1250px,100%);margin:0 auto}.room-choice{display:flex;flex-direction:column;align-items:flex-start;min-height:250px;padding:1.5rem;text-align:left;border:2px solid #8e6b34;border-radius:20px;background:var(--paper);color:var(--ink);box-shadow:0 12px 28px rgba(44,31,16,.18)}
.room-choice:hover{transform:translateY(-4px);border-color:var(--rust)}.room-number,.exhibit-label{font:800 .75rem Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--rust)}.room-choice strong{font-size:clamp(1.8rem,3vw,2.7rem);line-height:1.05;margin:.45rem 0}.room-choice small{font-size:1rem}.enter-room,.open-exhibit{margin-top:auto;padding-top:1rem;color:var(--green);font-weight:800}
.gallery-reflection{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(300px,1.2fr);gap:1.2rem;width:min(1250px,100%);margin:1.2rem auto 0;padding:1.5rem;border-left:8px solid var(--green);border-radius:16px;background:var(--paper);color:var(--ink);box-shadow:0 12px 28px rgba(44,31,16,.16)}.gallery-reflection .activity-actions,.gallery-reflection #literatureFeedback{grid-column:2}.gallery-reflection h3{font-size:1.55rem;margin-top:.2rem}
.writers-hall-screen{background:linear-gradient(rgba(244,234,215,.95),rgba(228,208,174,.97)),url('assets/images/gallery-literature.png') center/cover fixed}.room-header{width:min(1250px,100%);margin:0 auto 1.5rem}.room-header>p:last-child{max-width:850px;font-size:1.08rem}.writer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;width:min(1250px,100%);margin:auto}
.writer-card{position:relative;display:flex;flex-direction:column;min-height:480px;padding:0;overflow:hidden;text-align:left;border:2px solid #a48659;border-radius:18px;background:var(--paper);color:var(--ink);box-shadow:0 12px 30px rgba(42,28,13,.2)}.writer-card:hover{transform:translateY(-5px);border-color:var(--rust)}.writer-card.visited:after{content:"Exhibit Opened ✓";position:absolute;top:.7rem;right:.7rem;padding:.3rem .55rem;border-radius:999px;background:var(--green);color:#fff;font:800 .7rem Arial,sans-serif;letter-spacing:.03em}
.portrait-frame{position:relative;display:grid;place-items:center;width:100%;height:285px;background:#283b45;color:#f2d698;overflow:hidden}.portrait-frame img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;background:#243642}.portrait-fallback{position:absolute;font-size:4rem;font-weight:800}.writer-card-copy{display:flex;flex:1;flex-direction:column;padding:1rem}.writer-card-copy strong{font-size:1.45rem;line-height:1.1;margin:.3rem 0}.writer-card-copy small{font-weight:800;color:#6c5230}.writer-card-copy>span:not(.exhibit-label):not(.open-exhibit){margin-top:.55rem;font-size:.92rem}
.room-footer-actions{display:flex;justify-content:center;gap:.8rem;flex-wrap:wrap;width:min(1250px,100%);margin:1.5rem auto 0}.writers-hall-screen .room-footer-actions .secondary{color:var(--navy)}
.writer-modal{position:fixed;z-index:120;inset:0;padding:clamp(.5rem,3vw,2rem);overflow:auto;background:rgba(5,13,20,.88)}.writer-modal[hidden]{display:none}.writer-dialog{position:relative;width:min(1120px,100%);margin:auto;padding:clamp(1rem,3vw,2rem);border:3px solid var(--gold);border-radius:22px;background:var(--paper);color:var(--ink);box-shadow:0 28px 80px rgba(0,0,0,.5)}.modal-close{position:absolute;z-index:3;top:.65rem;right:.8rem;width:46px;height:46px;border:0;border-radius:50%;background:var(--navy);color:#fff;font-size:1.8rem}.writer-detail-layout{display:grid;grid-template-columns:320px 1fr;gap:2rem}.writer-detail-portrait img{display:block;width:100%;max-height:520px;object-fit:contain;border-radius:14px;background:#243642}.writer-detail-portrait p{font-size:.78rem;line-height:1.35;color:#5c5144}.role-line{padding-right:3.5rem;color:var(--rust);font:800 .78rem Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}.writer-dates{font-size:1.25rem;font-weight:800;color:#5e503c}.writer-dialog h2{font-size:clamp(2.3rem,5vw,4.4rem)}.writer-dialog h3{color:var(--navy)}.writer-question,.source-box{margin-top:1rem;padding:1rem;border-radius:12px;background:#e7efe8;border-left:6px solid var(--green)}.source-box{background:#ece6dc;border-left-color:var(--navy);font-size:.9rem}.source-box a{color:#135c76;font-weight:700}.modal-open{overflow:hidden}
.poetry-room-screen{background:radial-gradient(circle at top right,#6a342f 0,#263d4e 32%,#102534 70%);color:#fff}.poetry-header{text-align:center}.poetry-header>p:last-child{margin-left:auto;margin-right:auto}.poetry-lab{width:min(1100px,100%);margin:auto}.concept-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem}.concept-tab{min-height:70px;padding:.8rem;border:1px solid var(--gold);border-radius:12px;background:rgba(255,255,255,.08);color:#fff;font-weight:800}.concept-tab:hover,.concept-tab[aria-pressed=true]{background:var(--gold);color:#201503}.concept-tab.visited:after{content:" ✓"}.concept-panel{min-height:300px;margin-top:.8rem;padding:clamp(1rem,3vw,2rem);border-radius:18px;background:var(--paper);color:var(--ink);box-shadow:var(--shadow)}.concept-panel h3{font-size:2rem;color:var(--navy)}.concept-instruction{font-size:1.2rem;text-align:center;padding-top:5rem}.original-example{margin:1rem 0;padding:1rem 1.2rem;border-left:7px solid var(--rust);background:#efe1c9}.original-example p{font-size:1.25rem;font-style:italic}.concept-panel .secondary{color:var(--navy)}.poem-maker{display:grid;grid-template-columns:minmax(240px,.75fr) minmax(300px,1.25fr);gap:1.2rem;margin-top:1rem;padding:1.5rem;border:2px solid var(--gold);border-radius:18px;background:#fff9ef;color:var(--ink)}.poem-maker .activity-actions,.poem-maker #poetryFeedback{grid-column:2}.poem-maker h3{font-size:1.8rem}.poetry-room-screen .room-footer-actions .secondary{color:#fff}
@media(max-width:1080px){.writer-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:850px){.room-choice-grid,.gallery-reflection,.poem-maker{grid-template-columns:1fr}.gallery-reflection .activity-actions,.gallery-reflection #literatureFeedback,.poem-maker .activity-actions,.poem-maker #poetryFeedback{grid-column:1}.writer-grid{grid-template-columns:repeat(2,1fr)}.writer-detail-layout{grid-template-columns:1fr}.writer-detail-portrait{max-width:420px;margin:auto}.concept-tabs{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.literature-hero,.literature-hero img{height:520px}.literature-hero-copy{width:calc(100% - 2rem);left:1rem}.writer-grid{grid-template-columns:1fr}.writer-card{min-height:420px}.concept-tabs{grid-template-columns:1fr}.writer-modal{padding:.35rem}.writer-dialog{border-radius:14px}.gallery-top{align-items:flex-start;gap:.5rem;flex-direction:column}.literature-hero-copy h2{font-size:2.55rem}}
body.contrast .literature-hero-copy,body.contrast .poetry-room-screen,body.contrast .dark-top{color:#fff}body.contrast .writer-card,body.contrast .room-choice,body.contrast .writer-dialog,body.contrast .gallery-reflection,body.contrast .concept-panel,body.contrast .poem-maker{color:#000}
@media print{.writer-modal{display:none!important}.literature-hub-screen,.writers-hall-screen,.poetry-room-screen{display:none!important}}

/* Bonus Puzzle and Maze Challenge */
.challenge-nav{border-style:dashed!important;background:rgba(208,162,74,.18)!important}.challenge-nav span{font:800 .7rem Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#f2cf83}.challenge-nav strong{font-size:1.05rem}.challenge-nav.challenge-complete{border-style:solid!important;border-color:#f5d470!important;background:rgba(37,86,63,.92)!important}.challenge-nav.challenge-complete:after{content:"2/2 Complete ✓";font:800 .7rem Arial,sans-serif;color:#f8dc91}.challenge-screen{background:radial-gradient(circle at top,#70441f 0,#173448 42%,#091923 100%);color:#fff}.challenge-shell{width:min(1250px,100%);margin:auto}.challenge-shell>.gallery-top .secondary{color:#fff}.challenge-header{text-align:center;max-width:850px;margin:0 auto 1.5rem}.challenge-header h2{color:#fff}.challenge-header>p:last-child{font-size:1.08rem}.challenge-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.challenge-card{padding:clamp(1rem,3vw,1.6rem);border:2px solid var(--gold);border-radius:20px;background:var(--paper);color:var(--ink);box-shadow:var(--shadow)}.challenge-card-head{display:flex;align-items:center;gap:.9rem}.challenge-card-head .kicker{margin:0}.challenge-card-head h3{margin:.05rem 0;font-size:clamp(1.35rem,2.5vw,2rem);color:var(--navy)}.challenge-number{display:grid;place-items:center;flex:0 0 auto;width:54px;height:54px;border:5px double #6f4a0d;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffe79a,#d5a638 58%,#9d6c12);color:#201503;font:900 .82rem Arial,sans-serif}.puzzle-list{display:grid;gap:.65rem}.puzzle-item{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:.75rem;align-items:center;padding:.75rem;border:1px solid #c7b38d;border-radius:12px;background:#f5ecdc}.puzzle-item span,.puzzle-item small{display:block}.puzzle-item strong{font:900 1.25rem Arial,sans-serif;letter-spacing:.16em;color:var(--rust)}.puzzle-item small{margin-top:.15rem;color:#5e5345;line-height:1.3}.puzzle-answer{width:100%;padding:.65rem;border:2px solid #8d7b60;border-radius:9px;background:#fff;color:#000;font:800 1rem Arial,sans-serif;text-transform:uppercase}.puzzle-answer.answer-correct{border-color:#23733e;background:#e4f4e8}.puzzle-answer.answer-incorrect{border-color:#9d2d28;background:#fff0ee}.challenge-actions{display:flex;gap:.65rem;flex-wrap:wrap;margin-top:1rem}.challenge-card .secondary{color:var(--navy)}.challenge-feedback{min-height:1.6em;margin:.75rem 0 0;color:var(--green);font-weight:800}.maze-board{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:2px;width:min(100%,420px);margin:1rem auto;padding:5px;border:3px solid var(--gold);border-radius:12px;background:var(--gold);box-shadow:0 10px 24px rgba(35,24,9,.2)}.maze-board:focus-visible{outline:4px solid #ffcf33;outline-offset:5px}.maze-cell{position:relative;aspect-ratio:1}.maze-cell.wall{background:#102b3d}.maze-cell.path{background:#f2e6cf}.maze-cell.goal{background:#d9a72e}.maze-cell.goal:after{content:"★";position:absolute;inset:0;display:grid;place-items:center;color:#4f3100;font-size:clamp(.8rem,2.6vw,1.5rem)}.maze-cell.player:after{content:"◆";position:absolute;z-index:2;inset:0;display:grid;place-items:center;color:#8c2f26;font-size:clamp(.8rem,2.6vw,1.45rem);filter:drop-shadow(0 1px 0 #fff)}.maze-cell.goal.player:after{content:"◆"}.maze-controls{display:grid;grid-template-columns:repeat(3,54px);grid-template-areas:". up ." "left down right";justify-content:center;gap:.35rem}.maze-controls button{width:54px;height:48px;border:2px solid #76551a;border-radius:10px;background:var(--gold);color:#201503;font:900 1.25rem Arial,sans-serif}.maze-controls button:hover{background:#f0cf78}.maze-controls #mazeUpBtn{grid-area:up}.maze-controls #mazeLeftBtn{grid-area:left}.maze-controls #mazeDownBtn{grid-area:down}.maze-controls #mazeRightBtn{grid-area:right}.challenge-reward{display:flex;align-items:center;justify-content:center;gap:1rem;margin:1.2rem auto 0;padding:1rem 1.4rem;border:3px solid var(--gold);border-radius:18px;background:#fff9ef;color:var(--ink);box-shadow:var(--shadow)}.challenge-reward[hidden]{display:none}.challenge-reward .kicker,.challenge-reward h3,.challenge-reward p{margin:.1rem 0}.challenge-reward h3{font-size:1.7rem;color:var(--navy)}.challenge-badge{display:grid;place-items:center;flex:0 0 auto;width:74px;height:74px;border:6px double #68440a;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff2ae,#d8a72f 60%,#8a5b0d);color:#513000;font-size:2rem}.challenge-feedback:focus{outline:none}body.contrast .challenge-card,body.contrast .challenge-reward{color:#000}body.contrast .puzzle-item{background:#fff;color:#000}body.contrast .puzzle-item small,body.contrast .challenge-card-head h3,body.contrast .challenge-reward h3{color:#000}
@media(max-width:900px){.challenge-grid{grid-template-columns:1fr}.maze-board{max-width:460px}}
@media(max-width:520px){.puzzle-item{grid-template-columns:1fr}.challenge-reward{align-items:flex-start}.maze-controls{grid-template-columns:repeat(3,48px)}.maze-controls button{width:48px;height:44px}}
@media print{.challenge-screen{display:none!important}}

/* Formative Answer Coach */
.answer-coach-note{margin:.8rem 0;padding:.7rem .85rem;border-left:5px solid var(--green);border-radius:10px;background:#e7efe8;color:#173c2c;font-size:.92rem}.answer-coach-note strong{color:inherit}.coach-needs-work{color:#8a3c12!important}.coach-ready{color:var(--green)!important}body.contrast .answer-coach-note{border:2px solid #000;background:#fff;color:#000}

/* Read-aloud playback control */
#pauseNarrationBtn{border-color:var(--gold);color:#fff;font-weight:800}#pauseNarrationBtn[aria-pressed="true"]{background:var(--gold);color:#201503}#pauseNarrationBtn:disabled{display:none}

/* Clickable artifact discovery cases */
.artifact-case{margin:1.25rem 0;padding:1rem;border:2px solid #9b7433;border-radius:16px;background:linear-gradient(145deg,#f4e4c6,#fff9ef);box-shadow:0 9px 22px rgba(50,34,13,.12)}.artifact-case-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.artifact-case-head .kicker,.artifact-case-head h3{margin:.05rem 0}.artifact-case-head h3{color:var(--navy);font-size:1.35rem}.artifact-progress{flex:0 0 auto;padding:.35rem .65rem;border-radius:999px;background:var(--green);color:#fff;font:800 .75rem Arial,sans-serif}.artifact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.artifact-card{position:relative;display:grid;grid-template-columns:58px 1fr;align-items:center;gap:.7rem;min-height:104px;padding:.75rem;text-align:left;border:2px solid #bca276;border-radius:13px;background:#fffdf7;color:var(--ink);box-shadow:0 5px 12px rgba(44,30,13,.1)}.artifact-card:hover{transform:translateY(-3px);border-color:var(--rust)}.artifact-card.discovered{border-color:var(--green);background:#e7efe8}.artifact-card.discovered:after{content:"Discovered ✓";position:absolute;top:.35rem;right:.4rem;color:var(--green);font:800 .62rem Arial,sans-serif;text-transform:uppercase}.artifact-symbol{display:grid;place-items:center;width:58px;height:58px;border:4px double #765314;border-radius:50%;background:#efd18a;font-size:1.7rem}.artifact-card-copy{display:flex;min-width:0;flex-direction:column}.artifact-card-copy small{padding-right:3.6rem;color:#725f43;font:800 .64rem Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase}.artifact-card-copy strong{margin:.15rem 0;font-size:1.05rem}.artifact-card-copy>span{color:var(--green);font-size:.83rem;font-weight:800}.literature-artifact-case{width:min(1250px,100%);margin:1.2rem auto}.artifact-modal{position:fixed;z-index:145;inset:0;display:grid;place-items:center;padding:1rem;overflow:auto;background:rgba(5,13,20,.9)}.artifact-modal[hidden]{display:none}.artifact-dialog{position:relative;width:min(720px,100%);padding:clamp(1.2rem,4vw,2.2rem);border:3px solid var(--gold);border-radius:22px;background:var(--paper);color:var(--ink);box-shadow:0 28px 80px rgba(0,0,0,.55)}.artifact-record-head{display:flex;align-items:center;gap:1rem;padding-right:3rem}.artifact-record-symbol{display:grid;place-items:center;flex:0 0 auto;width:88px;height:88px;border:6px double #765314;border-radius:50%;background:#efd18a;font-size:2.4rem}.artifact-record-head .kicker,.artifact-record-head p,.artifact-record-head h2{margin:.05rem 0}.artifact-record-head h2{font-size:clamp(2rem,5vw,3.5rem);color:var(--navy)}.artifact-period{color:var(--rust);font:800 .8rem Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}.artifact-observe{margin:1rem 0;padding:1rem;border-left:6px solid var(--green);border-radius:10px;background:#e7efe8}.artifact-observe h3,.artifact-observe p{margin:.1rem 0}.artifact-source{padding:.8rem;border-radius:10px;background:#ece4d7}.artifact-source a{color:#135c76;font-weight:800}.artifact-dialog .secondary{color:var(--navy)}body.contrast .artifact-case,body.contrast .artifact-card,body.contrast .artifact-dialog,body.contrast .artifact-observe,body.contrast .artifact-source{background:#fff;color:#000;border-color:#000}body.contrast .artifact-case-head h3,body.contrast .artifact-record-head h2,body.contrast .artifact-card-copy>span,body.contrast .artifact-source a{color:#000}
@media(max-width:620px){.artifact-case-head{flex-direction:column}.artifact-grid{grid-template-columns:1fr}.artifact-record-head{align-items:flex-start;flex-direction:column}.artifact-record-symbol{width:70px;height:70px;font-size:2rem}}
@media print{.artifact-modal,.artifact-case{display:none!important}}

/* Animated museum introduction */
.welcome-actions{display:flex;justify-content:center;gap:.75rem;flex-wrap:wrap}.welcome-actions .secondary{color:#fff}.museum-intro-modal{position:fixed;z-index:160;inset:0;display:grid;place-items:center;padding:1rem;overflow:auto;background:rgba(4,12,19,.94)}.museum-intro-modal[hidden]{display:none}.museum-intro-dialog{position:relative;width:min(1050px,100%);padding:clamp(.8rem,2vw,1.25rem);border:3px solid var(--gold);border-radius:24px;background:#0c1e2a;color:#fff;box-shadow:0 32px 95px rgba(0,0,0,.65)}.museum-intro-dialog>.modal-close{background:#fff;color:var(--navy)}.museum-intro-frame{position:relative;min-height:min(62vh,610px);overflow:hidden;border-radius:17px;background:#0b1b26}.museum-intro-frame>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.03)}.museum-intro-frame.scene-entering>img{animation:intro-pan 4.5s ease-out both}.museum-intro-frame.intro-paused>img{animation-play-state:paused}.museum-intro-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,11,17,.05) 25%,rgba(4,11,17,.92) 82%)}.museum-intro-copy{position:absolute;z-index:2;left:clamp(1rem,5vw,3.5rem);right:clamp(1rem,5vw,3.5rem);bottom:clamp(2.6rem,6vw,4.2rem);max-width:790px}.museum-intro-copy .kicker,.museum-intro-copy p,.museum-intro-copy h2{margin:.15rem 0}.museum-intro-copy h2{color:#fff;font-size:clamp(2.2rem,5vw,4.6rem);text-shadow:0 3px 16px #000}.museum-intro-copy>p:last-child{font-size:clamp(1rem,2vw,1.25rem);text-shadow:0 2px 8px #000}.intro-scene-number{font:800 .75rem Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#f0d084}.intro-dots{position:absolute;z-index:3;right:1rem;bottom:1rem;display:flex;gap:.4rem}.intro-dot{width:10px;height:10px;border:2px solid #fff;border-radius:50%;background:transparent}.intro-dot.active{background:var(--gold);border-color:var(--gold);transform:scale(1.25)}.intro-controls,.intro-exit-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.8rem}.intro-controls .secondary,.intro-exit-actions .secondary{color:#fff}.intro-exit-actions{justify-content:flex-end;padding-top:.75rem;border-top:1px solid rgba(255,255,255,.25)}@keyframes intro-pan{from{opacity:.25;transform:scale(1.08)}to{opacity:1;transform:scale(1.01)}}body.contrast .museum-intro-dialog{border-color:#fff;background:#000;color:#fff}body.contrast .museum-intro-copy h2{color:#fff}
@media(prefers-reduced-motion:reduce){.museum-intro-frame.scene-entering>img{animation:none;transform:none}.intro-dot.active{transform:none}}
@media(max-width:650px){.museum-intro-frame{min-height:570px}.museum-intro-shade{background:linear-gradient(180deg,rgba(4,11,17,.08) 12%,rgba(4,11,17,.95) 68%)}.museum-intro-copy{bottom:3.3rem}.intro-controls button,.intro-exit-actions button{flex:1 1 180px}.intro-exit-actions{justify-content:stretch}}
@media print{.museum-intro-modal{display:none!important}}

/* Persistent home navigation */
#homeBtn{border-color:var(--gold);color:#fff;font-weight:800}#homeBtn:hover,#homeBtn:focus-visible{background:var(--gold);color:#201503}

/* Compact mobile museum navigation */
.mobile-menu-button{display:none;border:1px solid var(--gold);border-radius:999px;background:transparent;color:#fff;padding:.55rem .8rem;font-weight:800}.mobile-menu-button:before{content:"☰";margin-right:.4rem}.mobile-menu-button[aria-expanded=true]:before{content:"×"}
@media(max-width:950px){
  .topbar{position:sticky;min-height:64px;flex-direction:row;align-items:center;gap:.6rem;padding:.55rem .7rem;z-index:100}
  .brand{min-width:0;flex:1;gap:.55rem}
  .brand>div{min-width:0}
  .brand strong{display:block;overflow:hidden;font-size:clamp(.92rem,4vw,1.08rem);line-height:1.15;text-overflow:ellipsis;white-space:nowrap}
  .brand small{font-size:.74rem;line-height:1.1}
  .seal{width:38px;height:38px;flex:0 0 38px}
  .mobile-menu-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px}
  .controls{position:absolute;top:calc(100% + .35rem);left:.65rem;right:.65rem;display:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;padding:.65rem;border:1px solid rgba(255,255,255,.3);border-radius:16px;background:rgba(11,32,46,.98);box-shadow:0 18px 45px rgba(0,0,0,.38)}
  .controls.mobile-open{display:grid}
  .controls button{min-height:44px;padding:.45rem .55rem;font-size:.88rem;line-height:1.15}
  .screen{min-height:calc(100dvh - 64px)}
  .street-overlay{min-height:calc(100dvh - 64px)}
  .mission-panel,.music-panel{top:4.65rem;max-height:calc(100dvh - 5.65rem)}
}
@media(max-width:620px){
  .controls{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero{padding:.7rem;background-position:center}
  .overlay{width:100%;padding:1.35rem 1rem;border-radius:18px}
  .overlay h1{font-size:clamp(2.45rem,12.5vw,3.25rem);line-height:.96}
  .overlay .subtitle{font-size:1.08rem;line-height:1.35}
  .overlay>p{margin:.65rem 0}
  .welcome-actions{flex-direction:column;align-items:stretch}
  .welcome-actions button{width:100%}
  .mission-panel,.music-panel{left:.65rem;right:.65rem;width:auto}
}

/* Privacy and safety notice */
.footer-link{margin-top:.35rem;border:0;background:transparent;color:#fff;font-size:.82rem;text-decoration:underline;text-underline-offset:3px}.privacy-modal{position:fixed;z-index:170;inset:0;display:grid;place-items:center;padding:1rem;overflow:auto;background:rgba(4,12,19,.94)}.privacy-modal[hidden]{display:none}.privacy-dialog{position:relative;width:min(720px,100%);max-height:calc(100dvh - 2rem);overflow:auto;padding:clamp(1.2rem,4vw,2.2rem);border:3px solid var(--gold);border-radius:22px;background:var(--paper);color:var(--ink);box-shadow:0 28px 80px rgba(0,0,0,.55)}.privacy-dialog h2{font-size:clamp(2.2rem,5vw,3.6rem);color:var(--navy)}.privacy-dialog h3{margin:1rem 0 .25rem;color:var(--navy)}.privacy-dialog p{margin:.25rem 0}.privacy-dialog>.primary{margin-top:1.2rem}body.contrast .privacy-dialog{background:#fff;color:#000;border-color:#000}body.contrast .privacy-dialog h2,body.contrast .privacy-dialog h3{color:#000}@media(max-width:620px){.privacy-modal{padding:.5rem}.privacy-dialog{max-height:calc(100dvh - 1rem);border-radius:14px}}
@media print{.privacy-modal,.footer-link{display:none!important}}
