/* November 7: Joshua's full-rainbow cartoon interface. Art/canon colors remain untouched. */
:root{--oz-ink:#192144;--parchment:#192144;--paperdim:#283263;--gold:#ffe44c;--goldlit:#fff471}
body{background:#72e6ff;color:var(--oz-ink)}
body #story{--chapter-paper:#a9a0ff;--card-tint:#e6deff}
body #books{--chapter-paper:#ffe348;--card-tint:#fff5a6}
body #guardians{--chapter-paper:#ff9dd8;--card-tint:#ffe3f3}
body #places{--chapter-paper:#88ee79;--card-tint:#d8ffb9}
body #cast{--chapter-paper:#7bdfff;--card-tint:#d8f7ff}
body #magic{--chapter-paper:#be9aff;--card-tint:#eee0ff}
body #history{--chapter-paper:#ffb45d;--card-tint:#fff06a}
body #forty{--chapter-paper:#75ccff;--card-tint:#dbf1ff}
body #magicland{--chapter-paper:#ff929e;--card-tint:#ffe0e6}
body #screen{--chapter-paper:#e29bff;--card-tint:#f6ddff}
body #collect{--chapter-paper:#ffe64e;--card-tint:#fff7b8}
body #beyond{--chapter-paper:#68e8d0;--card-tint:#d0fff2}
body #about{--chapter-paper:#9be879;--card-tint:#e1ffd2}
body #teach{--chapter-paper:#ffa7e3;--card-tint:#ffe2f8}
body #shop{--chapter-paper:#78dfff;--card-tint:#dcf8ff}
body .band{--accent:#24346a;--accent-lit:#24346a;--accent-mid:#465aa0;--accent-soft:#485b99;--panel:#e5f9ff;color:var(--oz-ink)}
body .band.has-rendered-art{border-bottom:4px solid var(--oz-ink);background:var(--chapter-paper)!important}
body .band.has-rendered-art .intro,body .band.has-rendered-art .intro p,body .band.has-rendered-art .intro h2{color:var(--oz-ink)}
body .band.has-rendered-art .intro h2{font-weight:800;letter-spacing:-.035em;text-shadow:2px 2px 0 #ffffffa8!important}
body .band.has-rendered-art .foldscene{border:3px solid var(--oz-ink);border-radius:22px;box-shadow:5px 6px 0 #192144;width:calc(100% - 6px)}
body .band.has-rendered-art .panel:not(.shut){background:var(--card-tint);border:3px solid var(--oz-ink);border-radius:24px;box-shadow:5px 6px 0 var(--oz-ink);color:var(--oz-ink);width:calc(100% - 6px)}
body .band :is(p,dd,li,h3,h4,h5,b,strong,label,figcaption,.tiny,.where,.tag,.note,.yr,.no,.charrole,.char-sources,.section-story-note,.source-notes,.mapkey,.meta){color:var(--oz-ink)!important;text-shadow:none!important;-webkit-text-stroke:0}
body .band :is(.storybook,.emeraldpanel,.familybranch,.familyperson,.lorecard,.era-item,.vol,.magicbook,.screening,.collectcard,.ozarchive-card,.tome,.stall,.lesson,.craft,.qa,.qz,.plate,.spineitem,.map-place-guide,.teachnote,.archive-tools,.book-setting,.troupe,.film-illustration,.film-player){background:#9deaff!important;border:3px solid var(--oz-ink)!important;border-radius:18px!important;box-shadow:3px 4px 0 #192144!important;color:var(--oz-ink);min-width:0}
body .band :is(.familybranch,.lorecard,.era-item,.vol,.screening,.collectcard,.ozarchive-card,.tome,.stall,.lesson,.craft,.qa,.qz,.plate,.spineitem,.troupe):nth-child(6n+1){background:#ffe94a!important}
body .band :is(.familybranch,.lorecard,.era-item,.vol,.screening,.collectcard,.ozarchive-card,.tome,.stall,.lesson,.craft,.qa,.qz,.plate,.spineitem,.troupe):nth-child(6n+2){background:#ff9cdd!important}
body .band :is(.familybranch,.lorecard,.era-item,.vol,.screening,.collectcard,.ozarchive-card,.tome,.stall,.lesson,.craft,.qa,.qz,.plate,.spineitem,.troupe):nth-child(6n+3){background:#72dfff!important}
body .band :is(.familybranch,.lorecard,.era-item,.vol,.screening,.collectcard,.ozarchive-card,.tome,.stall,.lesson,.craft,.qa,.qz,.plate,.spineitem,.troupe):nth-child(6n+4){background:#bd9cff!important}
body .band :is(.familybranch,.lorecard,.era-item,.vol,.screening,.collectcard,.ozarchive-card,.tome,.stall,.lesson,.craft,.qa,.qz,.plate,.spineitem,.troupe):nth-child(6n+5){background:#91ef72!important}
body .band :is(.familybranch,.lorecard,.era-item,.vol,.screening,.collectcard,.ozarchive-card,.tome,.stall,.lesson,.craft,.qa,.qz,.plate,.spineitem,.troupe):nth-child(6n){background:#ffb23f!important}
body .band :is(.storybook-copy,.magiccopy,.screencopy,.collectcopy,.ozarchive-copy,.meta,.charcopy){background:transparent!important}
body .band :is(a,button){color:var(--oz-ink)}
body .band a:not(.btn):hover{text-decoration:underline;text-underline-offset:4px}
body .band.has-rendered-art .intro .foldbtn,body .btn,body .band :is(.tabrow button,.teachtab,.gradetab,.qzopt,.mapctl button,.maplayers button,.archive-tools button){background:#ffe34b!important;color:var(--oz-ink)!important;border:3px solid var(--oz-ink)!important;border-radius:16px;box-shadow:2px 3px 0 var(--oz-ink);min-height:44px;text-shadow:none}
body .band :is(.tabrow button.on,.teachtab.on,.gradetab.on,.maplayers button.active){background:#78e8c4!important}
body .band .qzopt.right{background:#8cf0aa!important}body .band .qzopt.wrong{background:#ffb3ba!important}
body :is(input,select,textarea){background:#fff!important;color:var(--oz-ink)!important;border:3px solid var(--oz-ink)!important;border-radius:12px!important;min-height:44px;max-width:100%}
body :is(input,textarea)::placeholder{color:#526080}
body :is(a,button,input,select,summary):focus-visible{outline:3px solid #172044!important;outline-offset:4px;box-shadow:0 0 0 7px #fff!important}
body #topbar.topbar,body #topbar.topbar.stuck{background:#75dfff!important;border-bottom:4px solid var(--oz-ink);backdrop-filter:none}
body .topbar a{color:var(--oz-ink);font-weight:800;letter-spacing:.025em}
body .topbar a.on,body .topbar a:hover{color:#182044;background:#fff36c;border-radius:9px}
body .topbar a::after{background:var(--oz-ink)}body .topbar a.on::before{display:none}
body .sheet{background:#8ae7f6}body .sheet a{color:var(--oz-ink)}
body .charbook,body .curtain .book{background:#d5f7ff;border:3px solid var(--oz-ink);border-radius:22px;box-shadow:7px 8px 0 #192144}
body .charcopy :is(h3,p,.where,.charrole,.char-sources),body .curtain :is(h2,h3,p,.note){color:var(--oz-ink)!important}
body .charimage,body .about .portraitframe{background:#fff091;border:2px solid var(--oz-ink);border-radius:15px}
body .charclose,body .curtain .close{background:#ffdf50;color:var(--oz-ink);border:2px solid var(--oz-ink);border-radius:12px;min-width:44px;min-height:44px}
body .charveil{background:#29175cbb;backdrop-filter:blur(3px)}
body footer{background:#9fe778;border-top:4px solid var(--oz-ink);color:var(--oz-ink)}
body footer :is(p,a,b){color:var(--oz-ink)!important}
body .mapframe{border:3px solid var(--oz-ink);border-radius:18px;box-shadow:3px 4px 0 var(--oz-ink)}
body .mapframe figcaption{background:#ffe94a;color:var(--oz-ink)}
body .timeline::before{background:#6e46cb}
body .trilogy-settings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:24px 0}
body .trilogy-settings .storybook{display:block;padding:16px}
body .trilogy-settings .book-setting{margin:16px 0 0;overflow:hidden}
body #playbill .troupe dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:16px}
body #playbill .company-person{margin:0;background:#fff;border:2px solid var(--oz-ink);border-radius:14px;padding:12px;min-width:0}
body #playbill .company-person :is(dt,dd){margin:0;text-align:center}
body #playbill .company-art{width:100%;height:150px;object-fit:contain;margin:0 auto 10px}
body #playbill .company-person dd{font-size:.88rem}
@media(max-width:700px){body .trilogy-settings{grid-template-columns:1fr}body .band.has-rendered-art .panel:not(.shut){padding:18px 10px}body .band.has-rendered-art .foldscene{border-radius:16px}}
@media print{body,body .band.has-rendered-art,body .band.has-rendered-art .panel:not(.shut){background:white!important;color:#000!important;box-shadow:none!important;border:0!important}}

/* Single readable story column at every viewport. */
body #story .storylead{display:block;max-width:80ch;width:100%}body #story .storylead .emeraldpanel{width:100%;box-sizing:border-box}body #story .bodyflow{columns:1!important;column-count:1!important;max-width:72ch;margin-inline:auto}body #story .bodyflow p{max-width:none;width:100%;text-align:left}body #story .quote{max-width:64ch;margin-inline:auto;text-align:left}

/* Spread the welcome ensemble without covering the Wizard or shrinking Toto. */
@media(min-width:1001px){body .hero.art-refreshed #hero-company{left:5%;right:5%;width:90%;max-width:none;--cast-unit:clamp(150px,13vw,240px)}body .hero.art-refreshed #hero-company .scraps{--figure-x:8%!important}body .hero.art-refreshed #hero-company .glinda{--figure-x:24%!important}body .hero.art-refreshed #hero-company .wizard{--figure-x:40%!important}body .hero.art-refreshed #hero-company .ozma{--figure-x:56%!important}body .hero.art-refreshed #hero-company .jack{--figure-x:72%!important}body .hero.art-refreshed #hero-company .wogglebug{--figure-x:88%!important}body .hero.art-refreshed #hero-company .scarecrow{--figure-x:15%!important}body .hero.art-refreshed #hero-company .lion{--figure-x:31%!important}body .hero.art-refreshed #hero-company .tiktok{--figure-x:48%!important}body .hero.art-refreshed #hero-company .tinman{--figure-x:64%!important}body .hero.art-refreshed #hero-company .dorothy{--figure-x:80%!important}body .hero.art-refreshed #hero-company .bungle{--figure-x:54%!important}body .hero.art-refreshed #hero-company .toto{--figure-x:94%!important;--figure-scale:.40!important}}
body #topbar.topbar nav a{color:#192144!important;text-shadow:none}

@media(min-width:1001px){body .hero.art-refreshed #hero-company .scraps,body .hero.art-refreshed #hero-company .wogglebug{--figure-ground:2%!important}}
/* Phone cast gets individual space, with the actual illustrated road beneath. */
@media(max-width:1000px){body .hero.art-refreshed{height:1370px;min-height:1370px;padding-bottom:0}body .hero.art-refreshed #hero-company{position:absolute;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(5,170px);gap:22px 8px;left:3%;right:3%;width:94%;height:940px;bottom:50px;max-width:none}body .hero.art-refreshed #hero-company .hero-figure{position:relative;left:auto;bottom:auto;justify-self:center;align-self:end;width:auto;max-width:100%;height:calc(130px * var(--figure-scale));max-height:170px;object-fit:contain;object-position:center bottom;transform:none;z-index:1}body .hero.art-refreshed #hero-company .toto{height:82px;grid-column:2}body .hero.art-refreshed #hero-company .bungle{height:58px}}

@media(max-width:1000px){body .hero.art-refreshed{height:1580px;min-height:1580px}body .hero.art-refreshed{background:#ffdc48}body .hero.art-refreshed #hero-company{bottom:50px}}

.original-release-history{margin:40px auto 10px;max-width:1000px;color:#192144}.original-release-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.original-release-grid article{padding:22px;border:3px solid #192144;border-radius:18px;background:#a4efff;box-shadow:4px 4px 0 #192144}.original-release-grid article:nth-child(2){background:#ffc0e4}.original-release-grid article:nth-child(3){background:#b9f27c}.original-release-grid h4{font-size:1.2rem;line-height:1.4}.original-release-grid b{font-size:1.5rem}.original-release-grid img{display:block;width:100%;height:auto;aspect-ratio:17/22;object-fit:contain}@media(max-width:600px){.original-release-grid{grid-template-columns:1fr}}
@media(max-width:1000px){body .hero.art-refreshed{height:1370px;min-height:1370px}body .hero.art-refreshed #hero-company{grid-template-rows:repeat(5,145px);gap:15px 8px;height:800px}body .hero.art-refreshed #hero-company .hero-figure{height:calc(115px * var(--figure-scale));max-height:145px}body .hero.art-refreshed #hero-company .toto{height:82px}body .hero.art-refreshed #hero-company .bungle{height:58px}}

/* Live review: simple centered Story prose, grass beside a cartoon yellow road. */
body #story .storylead{margin-bottom:0}body #story .storylead .emeraldpanel{background:transparent!important;border:0;box-shadow:none;padding:20px 10px}body #story .storylead :is(.quote,.body){font:400 clamp(1.05rem,1.4vw,1.2rem)/1.8 var(--karat);text-align:center!important;max-width:72ch;margin:0 auto 1.2em;color:#192144}body #story .quote::before,body #story .quote::after{display:none}body #story .bodyflow{margin-top:0}
body #books.band.has-rendered-art{background:#81dc52!important}body #books .panel:not(.shut){background:#a6ed76!important}body #books .plaque{background:#fff56c!important;border:3px solid #253816;border-radius:18px;box-shadow:4px 4px 0 #253816;padding:20px;color:#192144!important}body #books .plaque h3{color:#192144!important;background:none!important;-webkit-text-fill-color:#192144!important;text-shadow:none!important}body #books .tome .meta{background:#fff9bd!important;color:#192144!important;border:3px solid #253816;border-radius:12px;padding:14px}body #books .tome :is(h4,.note){color:#192144!important;-webkit-text-fill-color:#192144!important;text-shadow:none!important}body #books #brickpath [fill="url(#brickA)"],body #books #brickpath [fill="url(#brickB)"]{fill:#ffdf27!important;stroke:#9f7619;stroke-width:1.2}body #books #brickpath .milestone{fill:#fff04a;filter:none}body .flourish{display:none!important}

body #books #brickpath [stroke="url(#brickA)"]{stroke:#ffe32e!important}body #books #brickpath [stroke="url(#brickB)"]{stroke:#ffd524!important}body #books #brickpath path{filter:none!important}

/* Artwork is the chapter header: full-width scenes with one accessible toggle. */
body .band.has-rendered-art{padding:0!important;border-bottom:4px solid #192144}body .band.has-rendered-art>.wrap{width:100%;max-width:none;display:grid;grid-template-columns:minmax(0,1fr)}body .band.has-rendered-art .intro{grid-area:1/1;position:relative;z-index:4;align-self:stretch;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:18px 16px 70px!important;margin:0!important;pointer-events:none;min-height:0}body .band.has-rendered-art .intro h2{margin:0!important;background:#fff7a8;color:#192144!important;padding:10px 24px;border:3px solid #192144;border-radius:18px;box-shadow:3px 3px 0 #192144;font-size:clamp(1.6rem,3.8vw,3.1rem)}body .band.has-rendered-art .intro>p{display:none!important}body .band.has-rendered-art .foldscene{grid-area:1/1;width:100%;height:clamp(330px,40vw,600px);margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;pointer-events:none}body .band.has-rendered-art .intro .foldbtn{position:absolute!important;inset:0;width:100%;height:100%;min-height:0;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;transform:none!important;pointer-events:auto;cursor:pointer;color:#192144!important}body .band.has-rendered-art .intro .foldbtn :is(.lbl-open,.lbl-close){position:absolute;left:50%;bottom:16px;transform:translateX(-50%);padding:10px 24px;background:#fff45b;border:3px solid #192144;border-radius:30px;box-shadow:3px 3px 0 #192144;color:#192144;white-space:nowrap}body .band.has-rendered-art .intro .foldbtn .chev{display:none}body .band.has-rendered-art .intro .foldbtn:focus-visible{outline:5px solid #f72585!important;outline-offset:-8px}body .band.has-rendered-art .panel:not(.shut){width:min(1240px,94%);box-sizing:border-box;margin:24px auto!important}body .band.has-rendered-art .panel.shut{margin:0!important}body .scene-stage *,body .foldscene *{animation:none!important;animation-play-state:paused!important}body #guardians.band.has-rendered-art .foldscene{height:auto;aspect-ratio:2.5;min-height:220px}body #guardians .scene-backdrop{object-fit:contain}
@media(max-width:700px){body .band.has-rendered-art .intro{padding:12px 12px 58px!important}body .band.has-rendered-art .intro h2{font-size:1.5rem;padding:8px 16px}body .band.has-rendered-art .foldscene{height:300px}body .band.has-rendered-art .intro .foldbtn :is(.lbl-open,.lbl-close){bottom:12px;padding:8px 20px;font-size:.8rem}body .band.has-rendered-art .panel:not(.shut){width:96%;margin:16px auto!important}body #guardians.band.has-rendered-art .foldscene{min-height:220px}}

@media(max-width:1000px){body .hero.art-refreshed #hero-company .bungle{height:66px}}

body .hero .cue{bottom:10px;margin:0;z-index:5}body .hero .cue-scroll{display:inline-flex;align-items:center;gap:12px;padding:12px 24px;font-size:.85rem;background:#fff45b;color:#192144;border:3px solid #192144;border-radius:18px;box-shadow:3px 3px 0 #192144;text-shadow:none;letter-spacing:.12em}body .hero .cue-scroll span{display:inline;font-size:1.2rem;letter-spacing:0}

body .hero .cue,body .hero .cue-scroll{pointer-events:auto!important}body .hero .cue{z-index:20}body #guardians .scene-stage{background:#ffd0ec}@media(max-width:700px){body #guardians .intro h2{font-size:1.1rem;padding:5px 12px}body #guardians .intro{padding-top:3px!important}}body .familyperson :is(span,small){color:#35445b!important;opacity:1}

/* Keep caption and glass cat clear on the new walled-city artwork. */
body .hero .tagline{display:table;margin:10px auto 0;background:#fff45b;color:#192144!important;padding:5px 15px;border:2px solid #192144;border-radius:18px;text-shadow:none!important}@media(min-width:1001px){body .hero.art-refreshed #hero-company .bungle{left:58%!important}}

/* Exact user-selected installed font. Webfont packaging awaits license verification. */
@font-face{font-family:OzWelcomeScarecrow;src:local("OzsWizard-Scarecrow"),local("Oz's Wizard Scarecrow");font-weight:400;font-style:normal;font-display:swap}
body .hero h1.oz-brand{font-family:OzWelcomeScarecrow,serif!important;font-weight:400!important;text-transform:none!important;letter-spacing:0!important;width:min(950px,100%)!important}
body .hero .oz-title-line{display:block;font-family:OzWelcomeScarecrow,serif!important;font-weight:400;line-height:1.06;text-transform:none;letter-spacing:0;color:#fff45b;-webkit-text-stroke:1px #183b2e;paint-order:stroke fill;text-shadow:2px 3px 0 #183b2e}
body .hero .oz-title-lost{font-size:clamp(54px,5.6vw,118px)}
body .hero .oz-title-guardians{font-size:clamp(30px,3.7vw,78px)}
body .hero .oz-title-join{display:block;font-family:Arial,sans-serif;font-size:14px;line-height:1.3;font-weight:bold;letter-spacing:.12em;color:#192144;text-transform:none;text-shadow:0 1px #fff}
@media(max-width:700px){body .hero .oz-title-lost{font-size:clamp(46px,13vw,70px)}body .hero .oz-title-guardians{font-size:clamp(26px,7.1vw,43px)}body .hero .oz-title-join{font-size:11px;margin:4px 0}}

/* User typography: Britney for navigation/headings, Scarecrow only the two hero names. */
@font-face{font-family:OzSiteBritney;src:local("Britney");font-weight:400;font-style:normal;font-display:swap}
:root{--britney:OzSiteBritney,"Britney",Georgia,serif}
body :is(h1,h2,h3,h4,h5,h6,.head),body .topbar a,body .familyperson b,body .spineitem b,body .vol b{font-family:var(--britney)!important;font-weight:400!important}
body .hero h1.oz-brand,body .hero .oz-title-line{font-family:OzWelcomeScarecrow,serif!important}
body .hero .oz-title-join{font-family:var(--britney)!important;font-weight:400;font-size:22px;letter-spacing:0;line-height:1.2}
body .topbar a{font-size:1.05rem;letter-spacing:.035em}
@media(max-width:700px){body .hero .oz-title-join{font-size:16px}body .topbar a{font-size:.95rem}}

/* Book-cover title arrangements: Lost over small in + large OZ; GUARDIANS over of OZ. */
body .hero h1.oz-brand{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1.2fr);align-items:center;gap:18px}
body .hero .oz-title-lost{display:grid;grid-template-columns:.24fr 1fr;grid-template-rows:auto auto;width:100%;max-width:350px;justify-self:center;font-size:initial}
body .hero .lost-word{grid-column:1/-1;font-size:105px;line-height:.9}
body .hero .lost-in{font-size:42px;line-height:1;align-self:start;padding-top:6px}
body .hero .lost-oz{font-size:120px;line-height:.84;text-align:left}
body .hero .oz-title-guardians{display:block;font-size:initial;width:100%}
body .hero .guardians-word{display:block;font-size:54px;line-height:1.12;white-space:nowrap}
body .hero .guardians-of-oz{display:block;font-size:53px;line-height:1}
body .hero .guardians-of-oz>span{font-size:.68em}
body .hero .oz-title-join{white-space:nowrap}
@media(max-width:1000px){body .hero h1.oz-brand{grid-template-columns:1fr;gap:4px;width:100%!important}body .hero .oz-title-lost{width:190px}body .hero .lost-word{font-size:61px}body .hero .lost-in{font-size:24px;padding-top:2px}body .hero .lost-oz{font-size:69px}body .hero .guardians-word{font-size:36px}body .hero .guardians-of-oz{font-size:33px}body .hero .oz-title-join{font-size:18px;line-height:1.1}body .hero .oz-title-guardians{max-width:340px;justify-self:center}}
@media(max-width:360px){body .hero .guardians-word{font-size:31px}}

/* Decorative rainbow belongs in clear sky, never over the city walls/towers. */
body .hero.art-refreshed .arc{left:5%;top:85px;bottom:auto;width:400px;height:110px;transform:none;mix-blend-mode:normal;opacity:.7;overflow:hidden}@media(max-width:1599px){body .hero.art-refreshed .arc{display:none}}

/* Final welcome review: no rainbow, cover lettering clear of navigation, title-case menu. */
body .hero .arc{display:none!important}
body .topbar a{text-transform:none!important}
body .hero.art-refreshed .hero-grid{padding-top:22px}
body .hero .oz-title-line{-webkit-text-stroke:2px #173c27;paint-order:stroke fill;text-shadow:2px 3px 0 #173c27,3px 4px 0 #173c27,0 0 10px #fff5b355}
body .hero .oz-title-join{color:#fff45b;-webkit-text-stroke:1px #173c27;paint-order:stroke fill;text-shadow:1px 2px #173c27}
@media(max-width:1000px){body .hero.art-refreshed .hero-grid{padding-top:16px}body .hero .oz-title-line{-webkit-text-stroke:1.2px #173c27;text-shadow:1px 2px #173c27}}

/* Remove obsolete translucent backing from the original hero wordmark. */
body .hero-copy::before,body .hero h1.oz-brand::before,body .hero h1.oz-brand::after{content:none!important;display:none!important}

/* Matched cover-logo presence with restrained luminous lettering. */
body .hero .oz-title-guardians{align-self:center}
body .hero .guardians-word{font-size:58px;line-height:1.12}
body .hero .guardians-of-oz{font-size:112px;line-height:.95}
body .hero .guardians-of-oz>span{font-size:.40em}
body .hero .oz-title-line{color:#fff484;text-shadow:2px 3px 0 #173c27,0 0 3px #fffbdc,0 0 12px #fff4b366,0 0 27px #ffd45b44;filter:drop-shadow(0 2px 2px #122e2466)}
#story .scene-stage{height:100%}
@media(max-width:1000px){
 body .hero .guardians-word{font-size:36px;line-height:1.1}
 body .hero .guardians-of-oz{font-size:66px;line-height:.95}
 body .hero .oz-title-line{text-shadow:1px 2px 0 #173c27,0 0 3px #fffbdc,0 0 12px #fff4b366,0 0 22px #ffd45b44}
}
@media(max-width:360px){body .hero .guardians-word{font-size:32px}}

/* Fine starlight accents, not a broad neon glow; static for reduced motion. */
body .hero .oz-title-line{position:relative;text-shadow:2px 3px 0 #173c27,0 0 2px #fffbdc;filter:none}
body .hero .guardians-of-oz{font-size:136px}
body .hero .oz-title-line::before,body .hero .oz-title-line::after{content:"";position:absolute;pointer-events:none;width:14px;height:14px;background:#fffde6;clip-path:polygon(50% 0,59% 40%,100% 50%,59% 60%,50% 100%,41% 60%,0 50%,41% 40%);filter:drop-shadow(0 0 2px #ffeaa2);opacity:.85}
body .hero .oz-title-line::before{left:17%;top:8%;animation:oz-title-glint 5s ease-in-out infinite}
body .hero .oz-title-line::after{right:17%;bottom:12%;width:10px;height:10px;animation:oz-title-glint 5s 2.5s ease-in-out infinite}
@keyframes oz-title-glint{0%,38%,100%{opacity:.25;transform:scale(.65)}48%,58%{opacity:1;transform:scale(1)}}
@media(max-width:1000px){body .hero .guardians-of-oz{font-size:78px}body .hero .oz-title-line{text-shadow:1px 2px 0 #173c27,0 0 2px #fffbdc}body .hero .oz-title-line::before{width:10px;height:10px}body .hero .oz-title-line::after{width:8px;height:8px}}
@media(prefers-reduced-motion:reduce){body .hero .oz-title-line::before,body .hero .oz-title-line::after{animation:none;opacity:.65}}

/* Author-approved welcome sparkle, echoed in each section title's own ink. */
body section.band .intro h2{position:relative}
body section.band .intro h2::before,body section.band .intro h2::after{content:"";display:inline-block;vertical-align:middle;pointer-events:none;width:.24em;height:.24em;background:currentColor;clip-path:polygon(50% 0,59% 40%,100% 50%,59% 60%,50% 100%,41% 60%,0 50%,41% 40%);opacity:.85;animation:oz-title-glint 5s ease-in-out infinite}
body section.band .intro h2::before{margin-right:.22em}
body section.band .intro h2::after{margin-left:.22em;width:.18em;height:.18em;animation-delay:2.5s}
@media(prefers-reduced-motion:reduce){body section.band .intro h2::before,body section.band .intro h2::after{animation:none;opacity:.65}}

/* Story car begins at road scale, with its four approved occupants unchanged. */
#story .story-vehicle{width:min(43%,560px);left:50%;bottom:3%;transform:translateX(-50%)}
@media(max-width:1000px){#story .story-vehicle{width:66%;bottom:3%}}

/* Larger, readable Britney navigation; preserve title case and wrapping. */
body .topbar a{font-size:1.30rem;letter-spacing:.02em}
body .topbar nav{column-gap:clamp(10px,1.1vw,24px)}
@media(max-width:700px){body .topbar a{font-size:1.15rem}}

/* A small constellation on both sides of each heading, using its ink color. */
body section.band .intro h2::before,body section.band .intro h2::after{width:.95em;height:.24em;clip-path:none;mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='black' d='M10 0 12 8 20 10 12 12 10 20 8 12 0 10 8 8Z'/%3E%3C/svg%3E");mask-size:.24em .24em;mask-repeat:space;mask-position:center}
@media(max-width:700px){body section.band .intro h2::before,body section.band .intro h2::after{width:.76em;height:.2em;mask-size:.2em .2em;margin-left:.08em;margin-right:.08em}}

.story-wind{position:absolute;pointer-events:none;z-index:2;opacity:0}
body #story .story-motion-control{position:absolute;bottom:18px;left:18px;z-index:6;pointer-events:auto;font:18px var(--karat);color:#192144;background:#fff7a8;border:2px solid #192144;border-radius:12px;padding:8px 12px;cursor:pointer}
@media(max-width:700px){body #story .story-motion-control{bottom:62px;left:8px;font-size:13px;padding:6px 8px}}

/* Sporadic pinpoints scattered around lettering, never rows. */
body section.band .intro h2::before,body section.band .intro h2::after{content:none;display:none}
.section-title-spark{position:absolute;pointer-events:none;background:currentColor;clip-path:polygon(50% 0,59% 40%,100% 50%,59% 60%,50% 100%,41% 60%,0 50%,41% 40%);animation:oz-title-glint 5.7s ease-in-out infinite;opacity:.6}
@media(prefers-reduced-motion:reduce){.section-title-spark{animation:none;opacity:.45}}

/* More irregular, finely sized welcome starlight; lettering stays unchanged. */
.welcome-title-spark{position:absolute;pointer-events:none;background:#fffbd9;clip-path:polygon(50% 0,59% 40%,100% 50%,59% 60%,50% 100%,41% 60%,0 50%,41% 40%);animation:oz-title-glint 6.7s ease-in-out infinite;opacity:.6}
@media(prefers-reduced-motion:reduce){.welcome-title-spark{animation:none;opacity:.45}}

/* Rendered full-funnel animation poses, registered to the new clean plate. */
body #story .story-rendered-funnels{z-index:3;pointer-events:none}
body #story .story-funnel-sprite{position:absolute;aspect-ratio:1;background:url('scenery/tornado_sheet_v2.png') 0 0/200% 200% no-repeat;animation:oz-funnel-pose .8s steps(1) infinite;animation-play-state:running!important}
@keyframes oz-funnel-pose{0%{background-position:0 0}25%{background-position:100% 0}50%{background-position:0 100%}75%,100%{background-position:100% 100%}}
body #story .story-vehicle{z-index:2}
@media(prefers-reduced-motion:reduce){body #story .story-funnel-sprite{animation:none!important}}

body #story .story-rain-layer{position:absolute;inset:-40%;z-index:5;pointer-events:none;opacity:.18;background:repeating-linear-gradient(108deg,transparent 0 38px,#e6efff 39px,transparent 40px 83px);background-size:83px 170px;animation:oz-story-rain .45s linear infinite!important;animation-play-state:running!important}
@keyframes oz-story-rain{to{background-position:50px 170px}}
@media(prefers-reduced-motion:reduce){body #story .story-rain-layer{animation:none!important;opacity:.08}}

body #story .story-car-weather{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
body #story .story-wiper{transform-origin:1210px 312px;animation:oz-wiper .75s ease-in-out infinite alternate!important;animation-play-state:running!important}
@keyframes oz-wiper{to{transform:rotate(38deg)}}
@media(prefers-reduced-motion:reduce){body #story .story-wiper{animation:none!important}}

.magic-character-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:center;padding:12px;background:#b9f1ff;border-radius:14px;margin-bottom:12px}
.magic-character-pair img{width:100%;height:160px;object-fit:contain}
@media(max-width:700px){.magic-character-pair img{height:130px}}

/* Stop the whole storm when offscreen or the tab is hidden, not only the car. */
body #story .story-motion-idle :is(.story-funnel-sprite,.story-rain-layer,.story-wiper){animation-play-state:paused!important}

/* Reuse the actual Dorothy portrait; keep both silver shoes in view. */
.magic-shoes-reference{margin:0 0 12px;padding:12px;background:#b9f1ff;border-radius:14px;text-align:center}.magic-shoes-reference img{display:block;width:100%;height:240px;object-fit:contain}.magic-shoes-reference figcaption{font-size:.9rem;color:#192144;margin-top:8px}@media(max-width:700px){.magic-shoes-reference img{height:210px}}

.magic-powder-reference{margin:0 0 12px;text-align:center}.magic-powder-reference figcaption{font-size:.9rem;color:#192144;margin-top:8px}

.magic-practitioners-reference{margin:0 0 12px;text-align:center}.magic-practitioners-reference .magic-character-pair{align-items:end}.magic-practitioners-reference .magic-wizard-reference{height:120px}.magic-practitioners-reference figcaption{font-size:.9rem;color:#192144;margin-top:8px}@media(max-width:700px){.magic-practitioners-reference .magic-wizard-reference{height:100px}}

/* City light is anchored to native scenery coordinates, below people and titles. */
.welcome-city-radiance{position:absolute;pointer-events:none;background:radial-gradient(ellipse 17% 30% at 63% 32%,#9bff4d44 0%,#4fff6630 48%,transparent 100%),radial-gradient(ellipse 32% 12% at 62% 51%,#9aff3330 0%,transparent 100%);mix-blend-mode:screen;opacity:.65;animation:oz-city-radiance 8s ease-in-out infinite}
@keyframes oz-city-radiance{0%,100%{opacity:.45}50%{opacity:.85}}
@media(max-width:1000px){.welcome-city-radiance{display:none}}
@media(prefers-reduced-motion:reduce){.welcome-city-radiance{animation:none;opacity:.6}}

body .bookmini img.verified-book-cover{object-fit:contain!important;background:#fff9db}.cover-source{display:block;margin-top:6px;font-size:.78rem;line-height:1.4}.cover-source a{text-decoration:underline}

/* Famous Forty: readable edition credits and artwork that is not a postage stamp. */
body #forty .vol{grid-template-columns:90px minmax(0,1fr);gap:14px;padding:16px;align-items:center}
body #forty .vol .bookmini{width:84px}
body #forty .vol>span:last-child,body #forty .vol>span:last-child span,body #forty .vol .cover-source{color:#192144;font-size:.9rem;line-height:1.45}
body #forty .vol b{color:#192144;font-size:1.1rem;margin-bottom:5px}
body #forty .cover-source a{color:#183e76;overflow-wrap:anywhere}
@media(max-width:520px){body #forty .vol{grid-template-columns:76px minmax(0,1fr);gap:12px;padding:14px}body #forty .vol .bookmini{width:72px}}

/* Inspect faithful cover artwork at useful size, with native keyboard-modal behavior. */
.cover-preview-button{position:absolute;inset:0;border:0;padding:0;background:transparent;cursor:zoom-in;z-index:3;width:100%;height:100%}.cover-preview-button:focus-visible{outline:4px solid #192144;outline-offset:-4px}
.oz-cover-dialog{width:min(660px,92vw);max-height:92vh;box-sizing:border-box;overflow:auto;border:4px solid #192144;border-radius:20px;background:#d5f5ff;color:#192144;padding:18px;text-align:center}.oz-cover-dialog::backdrop{background:#10213ac9}.oz-cover-dialog form{display:flex;justify-content:flex-end}.oz-cover-dialog .cover-close{font:1rem var(--karat);background:#fff45b;color:#192144;border:2px solid #192144;border-radius:12px;padding:8px 16px;cursor:pointer}.oz-cover-dialog h2{margin:8px 0 14px;font-size:1.6rem}.oz-cover-dialog .cover-full{display:block;margin:auto;width:auto;max-width:100%;height:auto;max-height:65vh;object-fit:contain}.oz-cover-dialog .cover-edition{margin:12px 0 5px}.oz-cover-dialog .cover-credit{color:#183e76;text-decoration:underline}.oz-cover-dialog :focus-visible{outline:3px solid #e81975;outline-offset:3px}

/* Screen cards: readable metadata and no fallback title across loaded pictures. */
body #screen .screencopy > span:not(.yr){color:var(--oz-ink)!important;opacity:1;font-size:.82rem;letter-spacing:.04em}
body #screen .screenmedia:has(img) .wiki-fallback{display:none}
body #screen .screenmedia:not(:has(img)) .wiki-fallback{color:var(--oz-ink)!important;background:#d8f7ff;font-size:.9rem}

/* Source-verified original covers in Baum Beyond Oz. */
body #beyond .beyond-book-cover{margin:16px 0;max-width:100%}body #beyond .beyond-book-cover .cover-preview-button{position:relative;display:block;inset:auto;width:auto;height:auto;margin:0 auto;max-width:100%}body #beyond .beyond-book-cover img{display:block;width:auto;height:190px;max-width:100%;object-fit:contain}body #beyond .beyond-book-cover figcaption{font-size:.8rem;line-height:1.5;margin-top:10px;color:var(--oz-ink)}body #beyond .beyond-book-cover a{color:inherit;text-decoration:underline}
/* Keep publication dates readable: legacy spine markers overlapped the years. */
body #beyond .bookspine{padding-left:0;display:grid;gap:18px}
body #beyond .bookspine::before,body #beyond .spineitem::before{display:none}
body #beyond .spineitem{padding:18px!important}
body #beyond .spineitem .yr{position:static;display:block;width:auto;text-align:center;padding:0 0 8px;color:var(--oz-ink)}

body #magicland .verified-magic-cover{align-items:center;justify-content:center;padding:16px;background:#d8f7ff;min-height:0}body #magicland .verified-magic-cover .cover-preview-button{position:relative;inset:auto;width:auto;height:auto;max-width:100%}body #magicland .verified-magic-cover img{width:auto;height:auto;max-width:100%;object-fit:contain}body #magicland .original-cover-credit{font-size:.8rem;line-height:1.5;margin-top:14px;color:var(--oz-ink)}body #magicland .original-cover-credit a{color:inherit;text-decoration:underline}
/* The old dark-theme metadata was unreadable on the new bright book cards. */
body #magicland .magiccopy>span,body #magicland .magiccopy>em{color:var(--oz-ink)!important;opacity:1;font-size:.9rem;line-height:1.5;letter-spacing:.02em}
body #magicland .magiccopy>em{margin:.6em 0;font-family:var(--karat)}
body #magicland .magiccover{align-items:center;justify-content:center;background:#d8f7ff;padding:14px;min-height:0}
body #magicland .magiccover>img{width:auto;height:auto;max-width:100%;max-height:360px;object-fit:contain}

/* Reused source-verified book covers contextualize history, never crop the originals. */
body #history .verified-history-cover{height:auto;min-height:0;align-self:start;background:#d8f7ff;padding:5px}body #history .verified-history-cover .cover-preview-button{position:relative;inset:auto;width:100%;height:auto;display:block}body #history .verified-history-cover img{width:100%;height:auto;object-fit:contain}body #history .history-cover-credit{font-size:.8rem;line-height:1.5;margin-top:12px;color:var(--oz-ink)}body #history .history-cover-credit a{color:inherit;text-decoration:underline}
/* Mobile history cards must remain inside the road, not shifted beyond the viewport. */
@media(max-width:620px){body #history .era-item:nth-child(n){width:100%;margin-left:0!important;margin-right:0!important;box-sizing:border-box}}

body #collect .verified-collect-cover{display:flex;align-items:center;justify-content:center;padding:14px;background:#d8f7ff;height:auto;min-height:0}body #collect .verified-collect-cover .cover-preview-button{position:relative;inset:auto;display:block;width:auto;height:auto;max-width:100%}body #collect .verified-collect-cover img{display:block;width:auto;height:220px;max-width:100%;object-fit:contain}body #collect .collect-cover-credit{font-size:.8rem;line-height:1.5;margin-top:14px;color:var(--oz-ink)}body #collect .collect-cover-credit a{color:inherit;text-decoration:underline}
/* Reserve usable lazy-cover controls before the bitmap finishes loading. */
body #collect .verified-collect-cover .cover-preview-button{width:160px;min-height:220px}
body #beyond .beyond-book-cover .cover-preview-button{width:190px;min-height:190px}
body #magicland .verified-magic-cover .cover-preview-button{width:200px;min-height:254px}
body #beyond .beyond-book-cover img,body #collect .verified-collect-cover img{margin-inline:auto}
body #history .era-thumb:has(img[src^="assets/screen-art/"]){height:auto;min-height:0;align-self:start;background:#d8f7ff;padding:5px}
body #history .era-thumb img[src^="assets/screen-art/"]{width:100%;height:auto;object-fit:contain}
body #history .era-thumb:has(img[src^="assets/screen-art/"]) .wiki-fallback{display:none}

/* Source-specific Teachers banner. Its full composition determines desktop height. */
@media(min-width:701px){
 body #teach.band.has-rendered-art .foldscene{height:auto;min-height:0;aspect-ratio:2148/732}
 body #teach .scene-backdrop{object-fit:contain;object-position:center}
 body #teach.band.has-rendered-art .intro{align-items:flex-end;padding-right:7vw!important;padding-top:18px!important}
 body #teach.band.has-rendered-art .intro h2{max-width:42%;font-size:clamp(1.25rem,2.7vw,3.1rem)}
 body #teach .oz-effect-overlay{display:none}
}

/* November8 review: richer irregular starlight and visible green city radiance. */
.welcome-title-spark{animation-duration:4.9s;filter:drop-shadow(0 0 2px #fff8bb)}
.welcome-city-radiance{background:radial-gradient(ellipse 17% 30% at 63% 32%,#b3ff7b88 0%,#4fff665b 48%,transparent 100%),radial-gradient(ellipse 32% 12% at 62% 51%,#9aff3359 0%,transparent 100%)}

/* November8 review: magical navigation with keyboard parity, no layout shift. */
body .topbar a{position:relative;transition:color .2s ease,text-shadow .2s ease,filter .2s ease;isolation:isolate}
body .topbar a:is(:hover,:focus-visible){color:#fff9b0;text-shadow:0 0 7px #fff4a8,0 0 16px #68eacb;filter:brightness(1.12)}
body .topbar a::after{content:"";position:absolute;pointer-events:none;inset:-5px -8px;opacity:0;background:radial-gradient(circle at 13% 24%,#fffbd4 0 1.4px,transparent 2px),radial-gradient(circle at 80% 12%,#8affde 0 1.2px,transparent 2px),radial-gradient(circle at 93% 76%,#fffbd4 0 1.6px,transparent 2.2px),radial-gradient(circle at 37% 94%,#fffbd4 0 1px,transparent 1.7px);transition:opacity .2s ease;z-index:-1}
body .topbar a:is(:hover,:focus-visible)::after{opacity:1;animation:oz-nav-starlight 1.7s ease-in-out infinite}
@keyframes oz-nav-starlight{0%,100%{transform:translateY(0);opacity:.65}50%{transform:translateY(-2px);opacity:1}}
@media(prefers-reduced-motion:reduce){body .topbar a,body .topbar a::after{transition:none}body .topbar a:is(:hover,:focus-visible)::after{animation:none}}

/* November8 live review: readable author opening and magical shop cards. */
body #about .prose p:first-child::first-letter,body #about .lead::first-letter{color:#173b39!important;text-shadow:0 1px 0 #ffffff88}
body #shop .stall :is(b,span),body #shop .classroom :is(h3,p,a),body #shop .gilt{color:#192144!important;text-shadow:none}
body #shop .stall{border-radius:24px 9px 24px 9px!important;transition:transform .18s ease,box-shadow .18s ease;position:relative;overflow:hidden}
body #shop .stall:is(:hover,:focus-visible){transform:translateY(-3px);box-shadow:4px 7px 0 #192144,0 0 18px #fff0a7!important;outline:3px solid #fff4b6;outline-offset:2px}
body #shop .stall::after{content:"✦";position:absolute;right:10px;top:5px;color:#3a3574;opacity:.45;font-size:15px;pointer-events:none}
body #shop .stall:is(:hover,:focus-visible)::after{color:#192144;opacity:1;animation:oz-title-glint 1.8s ease-in-out infinite}
body #shop .classroom{background:#d7f8dd;border:3px solid #192144;border-radius:24px;padding:clamp(18px,3vw,36px);color:#192144}
body #about .bodyflow{max-width:70ch;margin-inline:auto;line-height:1.65}body #about .bodyflow p{margin-bottom:1.15em}
@media(prefers-reduced-motion:reduce){body #shop .stall{transition:none}body #shop .stall:is(:hover,:focus-visible){transform:none}body #shop .stall:is(:hover,:focus-visible)::after{animation:none}}

/* Approved furnished classroom: legible lettering above detailed wall illustrations. */
@media(min-width:701px){body #teach.band.has-rendered-art .intro h2{color:#fff6bd!important;background:rgba(4,45,37,.93);border:2px solid #f7d56b;border-radius:20px 8px;padding:.12em .45em;text-shadow:0 2px 2px #071e19;box-shadow:0 3px 12px #071e1955}}

/* Moving light on registered city masonry and crystal surfaces, not a uniform halo. */
.welcome-city-radiance{background:none!important;opacity:1;animation:none}
.welcome-city-radiance::before,.welcome-city-radiance::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 36%,#7dff9c00 44%,#a4ffb755 48%,#e6ffbd88 49%,#7dff9c00 53%,transparent 60%);background-size:240% 100%;animation:oz-city-surface-sweep 9s linear infinite;mix-blend-mode:screen}
.welcome-city-radiance::before{clip-path:polygon(20% 51%,48% 47%,56% 47%,56% 62%,20% 61%)}
.welcome-city-radiance::after{clip-path:polygon(62% 8%,63% 3%,64% 9%,64% 30%,66% 30%,66% 43%,69% 45%,69% 51%,94% 53%,94% 61%,57% 62%,57% 45%,60% 40%,60% 30%,62% 30%);animation-delay:-4.5s}
.city-surface-glint{position:absolute;width:8px;height:8px;background:#d7ffbd;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);filter:drop-shadow(0 0 3px #4aff82);animation:oz-title-glint 4.3s ease-in-out infinite}
@keyframes oz-city-surface-sweep{from{background-position:100% 0}to{background-position:-100% 0}}
@media(prefers-reduced-motion:reduce){.welcome-city-radiance::before,.welcome-city-radiance::after,.city-surface-glint{animation:none}.welcome-city-radiance::before,.welcome-city-radiance::after{opacity:.3}}

/* Welcome fills exactly the available first viewport below the fixed menu. */
body header.hero.art-refreshed{box-sizing:border-box;margin-top:var(--oz-menu-height,78px);height:calc(100svh - var(--oz-menu-height,78px));min-height:0!important;max-height:none;padding-top:clamp(8px,2vh,22px);padding-bottom:0}
body header.hero.art-refreshed .hero-grid{margin-top:0}
body header.hero.art-refreshed #hero-company{height:52%;min-height:0;max-height:560px}
body header.hero.art-refreshed .hero-scenery img{object-fit:cover}
@media(max-width:700px){body header.hero.art-refreshed{padding-top:8px}body header.hero.art-refreshed #hero-company{height:46%;min-height:0}}

body #cast .unified-character-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:18px;align-items:stretch}
body #cast .unified-character-grid .pic{width:100%;height:300px;min-width:0;max-width:none;margin:0;background:#d7f9e5;color:#192144}
body #cast .unified-character-grid .pic img{width:100%;height:222px;object-fit:contain;object-position:center bottom}
body #cast .unified-character-grid .pic figcaption{background:#e3fff1;color:#192144;min-height:78px}
body #cast .unified-character-grid .pic figcaption :is(b,span){color:#192144!important;text-shadow:none}
body #cast .playbill[hidden]{display:none!important}
@media(max-width:480px){body #cast .unified-character-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}body #cast .unified-character-grid .pic{height:255px}body #cast .unified-character-grid .pic img{height:177px}}

/* Requested welcome logo grouping, centered on both axes. */
body header.hero.art-refreshed .hero-grid{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;width:100%;max-width:none;margin:0;padding:16px;box-sizing:border-box;pointer-events:none}
body header.hero.art-refreshed .hero-copy{width:100%;margin:0;text-align:center;transform:none}
body header.hero.art-refreshed .oz-brand{margin:0 auto;justify-content:center;max-width:calc(100vw - 32px)}
body footer{padding-block:12px!important;font-size:12px;line-height:1.45}body footer p{margin-block:4px}

/* Shared native source coordinates preserve road, ground and car registration. */
#story .storm-coordinate-layer{position:absolute;transform-origin:0 0;pointer-events:none;z-index:2}
body #story .storm-coordinate-layer .story-vehicle{position:absolute;bottom:auto;max-width:none;min-width:0;transform-origin:50% 65%}
body #story .story-vehicle-body{animation:none!important}
body #story .storm-coordinate-layer .story-funnel-sprite{aspect-ratio:auto;transform-origin:50% 100%;z-index:2}
#story .storm-prop{position:absolute;background-image:url('story-rebuild-20261108/props_atlas_v1.png');background-size:300% 200%;background-repeat:no-repeat;transform-origin:center}

body header.hero.art-refreshed .hero-grid{height:100%;max-height:none;min-height:100%;align-self:stretch}

/* Reflections constrained to individually traced masonry/crystal faces. */
.welcome-city-radiance.city-facet-reflections::before,.welcome-city-radiance.city-facet-reflections::after{display:none!important}
.city-facet-reflections svg{display:block;overflow:hidden;mix-blend-mode:screen}
.city-facet-light{animation:oz-facet-shimmer 7.3s ease-in-out infinite;transform-origin:center}
@keyframes oz-facet-shimmer{0%,100%{opacity:.08;transform:translateX(-30px)}50%{opacity:.72;transform:translateX(30px)}}
@media(prefers-reduced-motion:reduce){.city-facet-light{animation:none;opacity:.12}}

.city-facet-spark{animation:oz-city-glitter 4.7s ease-in-out infinite}@keyframes oz-city-glitter{0%,35%,100%{opacity:0}53%{opacity:.92}66%{opacity:.12}}@media(prefers-reduced-motion:reduce){.city-facet-spark{animation:none;opacity:.2}}

.classroom-print{margin:8px 0 16px}
@media print{body.printing-classroom>header,body.printing-classroom>footer,body.printing-classroom .topbar,body.printing-classroom section:not(#teach){display:none!important}body.printing-classroom #teach .foldscene,body.printing-classroom .teachbar,body.printing-classroom .gradebar,body.printing-classroom .classroom-print{display:none!important}body.printing-classroom #teach,body.printing-classroom #teach .panel,body.printing-classroom #teachbody,body.printing-classroom #teachview{display:block!important;max-height:none!important;overflow:visible!important;background:white!important;color:black!important}body.printing-classroom .lesson,body.printing-classroom .craft,body.printing-classroom .qz{break-inside:avoid;box-shadow:none!important;border:1px solid #aaa}body.printing-classroom .lessongrid{display:block}body.printing-classroom .qzexp{display:none!important}}

/* The old geometric storm is not the fallback for the current illustrated scene. */
#story:not(.has-rendered-art) .foldscene{background:#243644 url("story-rebuild-20261108/clean_plate_v2.png") 50% 55%/cover no-repeat}
#story:not(.has-rendered-art) .foldscene > svg{visibility:hidden}
@media(max-width:700px){#story:not(.has-rendered-art) .foldscene{background-position:70% 55%}}

/* Latest owner review: raise the centered wordmark group above the foreground cast. */
body header.hero.art-refreshed .hero-copy{transform:translateY(clamp(-100px,-9svh,-40px))}
@media(max-width:700px){body header.hero.art-refreshed .hero-copy{transform:translateY(clamp(-70px,-7svh,-28px))}}

/* Move only the upper cloud bank; the road and landscape stay registered. */
#story .storm-cloud-drift{position:absolute;left:-30px;top:0;width:2132px;height:330px;z-index:0;pointer-events:none;background:url('story-rebuild-20261108/clean_plate_v2.png') 30px 0/2072px 759px repeat-x;mask-image:linear-gradient(#000 0 68%,transparent 100%);-webkit-mask-image:linear-gradient(#000 0 68%,transparent 100%);animation:oz-storm-cloud-drift 16s ease-in-out infinite alternate!important}
@keyframes oz-storm-cloud-drift{from{transform:translateX(-45px)}to{transform:translateX(45px)}}
body #story .story-motion-idle .storm-cloud-drift{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){#story .storm-cloud-drift{animation:none!important}}

/* Cloud colour and joins remain local to the funnel layer. */
body #story .storm-coordinate-layer .story-funnel-sprite{filter:hue-rotate(9deg) saturate(.72) brightness(.88);mask-image:linear-gradient(transparent 0,#000 8%,#000 100%);-webkit-mask-image:linear-gradient(transparent 0,#000 8%,#000 100%)}
#story .storm-wind-fragment{position:absolute;z-index:4;background:var(--fragment-color);clip-path:polygon(0 20%,73% 0,100% 75%,24% 100%);pointer-events:none;transform-origin:center}

/* Phone crop keeps both the approaching lane and distant vortex in view. */
@media(max-width:700px){body #story.band.has-rendered-art .foldscene{height:240px!important;min-height:240px!important;aspect-ratio:auto}#story:not(.has-rendered-art) .foldscene{background-position:45% 55%}}

/* New matched source artwork needs no recolouring filter. */
body #story .storm-coordinate-layer .story-funnel-sprite{filter:none}
#story .storm-lightning-flash{position:absolute;inset:0;z-index:6;background:#e5edff;opacity:0;pointer-events:none}
#story .storm-lightning-bolts{position:absolute;inset:0;width:2072px;height:759px;z-index:1;opacity:0;pointer-events:none;overflow:visible}
#story .storm-lightning-bolts path{fill:none;stroke:#e8f3ff;stroke-width:5;stroke-linejoin:bevel;filter:drop-shadow(0 0 8px #89b6ff)}

#story .storm-house{background-image:url('story-rebuild-20261108/distinct_houses_v1.png');background-size:200% 200%}
#story .storm-remnant,#story .storm-shredded{position:absolute;background-image:url('story-rebuild-20261108/aftermath_atlas_v1.png');background-size:200% 200%;background-repeat:no-repeat;pointer-events:none}
body #story .storm-merged{background-image:url('story-rebuild-20261108/merged_wedge_sheet_v1.png')}

#story .storm-terrain-scars{position:absolute;inset:0;width:2072px;height:759px;z-index:0;pointer-events:none}

/* Keep animated cloud overscan beyond both viewport edges. */
#story .storm-cloud-drift{left:-90px;width:2252px;background-position:90px 0}

/* Overscanned cloud texture has no repeating rectangular edge. */
#story .storm-cloud-drift{background-repeat:no-repeat;background-size:2400px 879px;background-position:center top}

#story .storm-atlas-fragment{position:absolute;pointer-events:none;background:url(story-rebuild-20261108/debris_atlas_v1.png) no-repeat;background-size:300% 300%;transform-origin:center}
/* Keep the two cover wordmarks as one prominent, closely joined lockup. */
@media(min-width:1001px){body .hero h1.oz-brand{grid-template-columns:310px 76px 380px;gap:12px;width:max-content!important;max-width:94vw;margin-inline:auto}body .hero .oz-title-lost{width:310px;max-width:none}body .hero .oz-title-guardians{width:380px}body .hero .lost-word{font-size:115px}body .hero .lost-oz{font-size:132px}body .hero .guardians-word{font-size:64px}body .hero .guardians-of-oz{font-size:124px}body .hero .oz-title-join{font-size:32px;line-height:1.1;text-align:center;white-space:normal}}

/* Functional windshield blades registered to the four matched car reaction frames. */
body #story .story-reaction-wipers{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
body #story .reaction-wiper-left{transform-origin:266px 211px;animation:oz-reaction-wipe .72s ease-in-out infinite alternate!important;animation-play-state:running!important}
body #story .reaction-wiper-right{transform-origin:432px 212px;animation:oz-reaction-wipe .72s ease-in-out infinite alternate!important;animation-play-state:running!important}
@keyframes oz-reaction-wipe{from{transform:rotate(0deg)}to{transform:rotate(66deg)}}
@media(prefers-reduced-motion:reduce){body #story .story-reaction-wipers path{animation:none!important}}

/* Preserve the complete approved procession at every viewport. */
body #places.band.has-rendered-art .foldscene{height:auto!important;min-height:0!important;aspect-ratio:2148/732}body #places .scene-backdrop{object-fit:contain!important}
@media(max-width:700px){body #places.band.has-rendered-art .intro{padding:3px 6px 26px!important}body #places.band.has-rendered-art .intro h2{font-size:1rem;padding:3px 8px;border-width:2px}body #places.band.has-rendered-art .intro .foldbtn :is(.lbl-open,.lbl-close){bottom:2px;padding:2px 8px;font-size:.65rem;border-width:2px}}

html{scroll-padding-top:var(--oz-menu-height,96px)!important}body section.band{scroll-margin-top:4px!important}

/* Matching foreground storm cloud softens actual funnel/sky joins. */
#story .storm-cloud-overhang{position:absolute;left:-90px;top:0;width:2252px;height:260px;z-index:10000;pointer-events:none;background:url('story-rebuild-20261108/clean_plate_v2.png') center top/2400px 879px no-repeat;mask-image:linear-gradient(#000 0 48%,rgba(0,0,0,.8) 66%,transparent 100%);-webkit-mask-image:linear-gradient(#000 0 48%,rgba(0,0,0,.8) 66%,transparent 100%);animation:oz-storm-cloud-drift 16s ease-in-out infinite alternate!important}body #story .story-motion-idle .storm-cloud-overhang{animation-play-state:paused!important}@media(prefers-reduced-motion:reduce){#story .storm-cloud-overhang{animation:none!important}}

/* Preserve the owner-approved classroom composition on phones too. */
body #teach.band.has-rendered-art .foldscene{height:auto!important;min-height:0!important;aspect-ratio:2148/732}body #teach .scene-backdrop{object-fit:contain!important}
@media(max-width:700px){body #teach.band.has-rendered-art .intro{padding:3px 6px 26px!important;align-items:flex-end}body #teach.band.has-rendered-art .intro h2{font-size:1rem;padding:3px 8px;border-width:2px}body #teach.band.has-rendered-art .intro .foldbtn :is(.lbl-open,.lbl-close){bottom:2px;padding:2px 8px;font-size:.65rem;border-width:2px}}

/* Classroom print QA: plain heading, no orphan booking footer or animated title decoration. */
@media print{body.printing-classroom #teach .intro{position:static!important;transform:none!important;inset:auto!important;margin:0 0 12pt!important;padding:0!important;display:block!important}body.printing-classroom #teach .intro h2{position:static!important;transform:none!important;font:700 18pt/1.2 Arial,sans-serif!important;color:#000!important;-webkit-text-stroke:0!important;text-shadow:none!important;filter:none!important;letter-spacing:normal!important}body.printing-classroom #teach .intro h2::before,body.printing-classroom #teach .intro h2::after,body.printing-classroom #teach .teachfoot,body.printing-classroom #teach .title-sparkles{display:none!important}body.printing-classroom #teach .wrap{margin:0!important;padding:0!important;max-width:none!important}body.printing-classroom #teach li{font-size:11pt!important;line-height:1.35!important;break-inside:avoid}}
/* Keep the appearance heading readable on the pale shop panel. */
body #shop .classroom h3.gilt{-webkit-text-fill-color:#192144!important}
