@font-face{font-family:Pixel;src:url('art/pixel.ttf') format('truetype');font-display:swap}
:root{color-scheme:dark;--ink:#080f24;--blue:#111f63;--blue-light:#263d94;--silver:#a9bdd3;--cream:#f5f0d9;--gold:#e7c987;--muted:#a8b9d3;--pink:#e7a3bf;--border:#455b87}
*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--cream);font-family:Pixel,monospace;font-size:18px;line-height:1.4}body::before{content:'';position:fixed;inset:0;pointer-events:none;background:linear-gradient(#142341a6,transparent 530px),radial-gradient(ellipse at 50% 0,#35447b38,transparent 60%);z-index:-1}.world-stars{position:absolute;inset:0 0 auto;height:420px;pointer-events:none;z-index:-1;background-image:radial-gradient(1px 1px at 10% 31%,#bec2b7 99%,transparent),radial-gradient(1px 1px at 23% 9%,#bec2b7 99%,transparent),radial-gradient(2px 2px at 82% 18%,#e7c987 99%,transparent),radial-gradient(1px 1px at 76% 65%,#bec2b7 99%,transparent),radial-gradient(1px 1px at 93% 41%,#bec2b7 99%,transparent);background-size:430px 250px}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button{color:var(--cream)}a{color:var(--gold);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin:0}button{border-radius:0}input[type=range]{accent-color:var(--gold);cursor:pointer;min-width:0;height:28px}input[type=range]::-webkit-slider-runnable-track{height:4px;background:#455a84;border:1px solid #60769a}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:16px;margin-top:-6px;border-radius:0;background:var(--cream);border:2px solid var(--gold)}input[type=range]{-webkit-appearance:none;background:transparent}
.masthead{max-width:1180px;margin:auto;padding:28px 0 26px;text-align:center}.edition{font-size:12px;letter-spacing:1.8px;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:11px}.edition-right{border-left:1px solid #62749b;padding-left:12px}.crystal{color:#a5d4eb;text-shadow:2px 2px #3a6b90}.masthead h1{font-size:clamp(58px,8.3vw,100px);letter-spacing:8px;line-height:1.06;margin-top:6px;color:#f1e8c4;text-shadow:0 3px #9a7f5e,3px 5px #090e20}.subtitle{font-size:18px;letter-spacing:7px;color:var(--gold);margin:3px 0 13px}.intro{font-size:19px;color:#e4e6e9}.album-stats{display:flex;justify-content:center;gap:15px;color:#99adca;font-size:13px;margin-top:9px}.album-stats i{font-style:normal;color:#7889ac}
.layout{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}.adventure{min-width:0}.chapter-heading{display:flex;align-items:center;justify-content:space-between;margin:0 1px 14px}.eyebrow{font-size:12px;letter-spacing:1.8px;color:var(--gold);margin-bottom:3px}.chapter-heading h2{font-size:27px;line-height:1.2;font-weight:500}.chapter-heading h2 #track-number{color:#97aaca;font-size:20px;margin-right:9px}.icon-button{min-width:44px;min-height:44px;border:0;background:transparent;color:#dce4f1;font-size:22px;padding:7px}.icon-button:hover,.text-button:hover{color:var(--gold);background:#839dd018}.icon-button[aria-pressed=true],.text-button[aria-pressed=true]{color:var(--gold)}
.rpg-window{border:2px solid #d7e0e7;outline:2px solid #526582;outline-offset:-5px;box-shadow:0 0 0 2px #080d1e,0 5px 0 #020713,inset 0 0 0 5px #172761;background:linear-gradient(130deg,#233d96,#12276e 48%,#0c174b);position:relative}.pixel-frame{border:3px solid #b6c7d5;box-shadow:0 0 0 2px #384b6c,0 5px 0 #020713;background:#111b31;position:relative}.scene-window{margin:0 2px;overflow:hidden}#stage{display:block;width:100%;height:auto;aspect-ratio:16/9;image-rendering:pixelated}.scene-plaque{position:absolute;left:0;right:0;top:0;display:flex;align-items:center;justify-content:space-between;padding:9px 13px;background:linear-gradient(#0a122dcc,#0a122d77);font-size:13px;letter-spacing:.5px;text-shadow:1px 1px #060b16;pointer-events:none}.scene-plaque #scene-count{color:var(--gold);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:12px}.start-overlay{position:absolute;inset:0;border:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#09152a50;text-shadow:2px 2px #0a1125;color:#fff3d0;letter-spacing:1.4px;font-size:24px;gap:9px}.start-overlay .start-gem{font-size:30px;color:#9dd6ea;animation:gem 2s steps(2,end) infinite}.start-overlay small{font-size:14px;letter-spacing:0;color:#f3eee1}.start-overlay[hidden]{display:none}
.dialogue{margin-top:12px;display:flex;align-items:stretch;min-height:159px;padding:14px 20px 15px 14px;gap:17px;text-shadow:2px 2px #050b38}#lyric-lines{font-size:22px;line-height:1.55;min-height:70px}#lyric-lines p{color:#c9d7ee;min-height:1.5em;overflow-wrap:break-word}#lyric-lines p.current{color:#fff8dc}#lyric-lines .sung{color:#ffe09b}#lyric-lines .upcoming{color:#cad7ef}.next-indicator{position:absolute;bottom:10px;right:13px;color:#e9dba9;font-size:12px;animation:gem 1s steps(2,end) infinite}.transport{margin-top:12px;padding:11px 17px 9px}.seek-row{display:flex;align-items:center;gap:12px;font-size:13px;color:#becbe0;font-variant-numeric:tabular-nums}.seek-row input{flex:1}.control-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:1px}.transport-main,.preferences{display:flex;align-items:center;gap:5px}.play-button{min-width:116px;min-height:44px;border:1px solid #819ad0;background:#1e3984;box-shadow:inset 0 0 0 2px #12245e;font-size:17px;color:#fff2c9;letter-spacing:1px}.play-button:hover{background:#3453a6}.text-button{background:none;border:0;min-height:44px;padding:7px 9px;font-size:14px}.preferences #volume{width:69px}.preferences .text-button{color:#b9c9e0}.player-status{min-height:16px;font-size:11px;color:#a9bada;margin-top:4px;letter-spacing:.2px}.section-line{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:23px 0 11px}.section-line h3{font-weight:400;font-size:12px;letter-spacing:1.1px;color:var(--gold)}.section-line span{font-size:11px;color:#92a7c6}.scene-strip{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px}.scene-thumb{background:#111d35;padding:0;border:1px solid #3e5170;color:var(--muted);position:relative;min-height:46px}.scene-thumb img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;image-rendering:pixelated;opacity:.63}.scene-thumb span{position:absolute;bottom:0;right:0;font-size:10px;padding:0 4px;background:#0a132bd9;color:#d5dfed}.scene-thumb:hover img,.scene-thumb[aria-current=true] img{opacity:1}.scene-thumb[aria-current=true]{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}.scene-thumb:hover{border-color:#acbed9}.liner{margin-top:22px;padding:22px 23px;font-size:17px;color:#d2dbee;line-height:1.6}.liner .eyebrow{margin-bottom:7px}.liner-links{display:flex;gap:20px;align-items:center;flex-wrap:wrap;font-size:13px;margin-top:10px}.liner-links .text-button{color:var(--gold);padding-left:0;padding-right:0}.liner-links a{display:inline-flex;align-items:center;min-height:44px}#transcript{border-top:1px solid #7b95c15e;margin-top:12px;padding-top:12px}.lyric-jump{display:block;border:0;background:none;text-align:left;padding:3px 0;min-height:32px;color:#dae2f1;font-size:16px}.lyric-jump:hover{color:var(--gold)}.lyric-jump time{font-size:11px;color:#93add3;margin-right:10px;font-variant-numeric:tabular-nums}
.songbook{padding:19px 12px 15px;margin-top:0}.songbook-heading{display:flex;align-items:center;gap:10px;padding:0 9px}.songbook-heading h2{font-weight:400;font-size:18px;letter-spacing:2px;flex:1}.songbook-heading>span:last-child{font-size:13px;color:var(--gold)}.songbook-hint{font-size:12px;color:#a8bbdc;padding:5px 9px 11px}.act-heading{padding:15px 10px 7px;color:#e6ce9a;font-size:11px;letter-spacing:1.4px;border-top:1px solid #6580b344;margin-top:6px}.track-button{position:relative;display:flex;align-items:center;gap:11px;width:100%;padding:10px 8px;min-height:60px;text-align:left;background:transparent;border:1px solid transparent}.track-button:hover{background:#a4bced16}.track-button[aria-current=true]{background:#4866b754;border:1px solid #97acd17d;box-shadow:inset 3px 0 var(--gold)}.track-number{color:#a0b6d7;font-size:13px;min-width:20px;text-align:center}.track-button[aria-current=true] .track-number{color:var(--gold)}.track-copy{flex:1;min-width:0}.track-name{font-size:15px;line-height:1.25;display:block;color:#f0eee3}.track-pov{display:block;font-size:10px;color:#a5badc;margin-top:4px}.track-time{font-size:10px;align-self:flex-start;margin-top:3px;color:#a6b9d8}.songbook-end{text-align:center;padding:17px 0 8px;color:var(--gold);font-size:15px}.songbook-end p{font-size:13px;line-height:1.5;color:#bac9df;margin-top:9px}footer{max-width:850px;text-align:center;margin:50px auto 30px;padding:0 24px;color:#8e9fbc;font-size:12px;line-height:1.7}footer>span{letter-spacing:2px;color:#b2c1d8;font-size:12px}footer p{margin:11px 0}footer a{color:#b9cbe4}footer .credits{font-size:10px;color:#6e82a5}footer em{font-style:normal;color:#a9b9d1}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}body.theater .layout{display:block;max-width:1120px}body.theater .songbook,body.theater .liner,body.theater footer{display:none}body.theater .masthead{padding:16px 0}body.theater .masthead h1{font-size:45px}body.theater .masthead .intro,body.theater .album-stats,body.theater .edition{display:none}body.theater .masthead .subtitle{font-size:11px;margin-bottom:0}body.theater .scene-window{max-height:62vh}body.theater #stage{width:100%;height:100%;max-height:62vh;object-fit:contain;background:#080e20}
@keyframes gem{0%,49%{opacity:1}50%,100%{opacity:.5}}
@media(min-width:1400px){.layout,.masthead{max-width:1280px}.layout{grid-template-columns:minmax(0,1fr) 310px;gap:28px}.dialogue{min-height:166px}#lyric-lines{font-size:24px}}
@media(max-width:1240px){.layout{margin:0 26px;gap:20px;grid-template-columns:minmax(0,1fr) 275px}.masthead{padding-left:24px;padding-right:24px}.dialogue{padding-right:18px;gap:12px}#lyric-lines{font-size:20px}.preferences #volume{display:none}}
@media(max-width:1000px){.layout{grid-template-columns:minmax(0,1fr);max-width:800px;margin:0 auto;padding:0 24px}.songbook{margin-top:5px}.songbook nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:15px}.songbook .act-heading{grid-column:1/-1}.songbook-end{display:none}#lyric-lines{font-size:23px}.preferences #volume{display:block}.chapter-heading h2{font-size:28px}.masthead{padding-top:24px;padding-bottom:26px}}
@media(max-width:560px){body{font-size:16px}.masthead{padding:22px 17px}.edition{font-size:9px;letter-spacing:1px;gap:7px}.edition-right{padding-left:7px;font-size:8px}.masthead h1{letter-spacing:5px;margin-top:13px;font-size:58px}.subtitle{font-size:12px;letter-spacing:4px;margin-top:7px}.intro{font-size:16px;margin-top:16px}.album-stats{font-size:10px;gap:9px;margin-top:8px}.album-stats i:last-of-type,.album-stats span:last-of-type{display:none}.layout{padding:0 14px;gap:18px}.chapter-heading{margin-bottom:12px}.chapter-heading h2{font-size:23px}.chapter-heading h2 #track-number{font-size:15px;margin-right:4px}.eyebrow{font-size:10px}.scene-plaque{font-size:10px;padding:6px 8px}.start-overlay{font-size:18px;gap:4px}.start-overlay .start-gem{font-size:23px}.start-overlay small{font-size:11px}.dialogue{margin-top:10px;padding:13px 14px 17px 10px;gap:10px;min-height:157px}#lyric-lines{font-size:18px;line-height:1.5;min-height:81px}#lyric-lines p{margin-bottom:5px}.transport{padding:8px 10px 7px;margin-top:10px}.seek-row{font-size:11px;gap:8px}.control-row{gap:1px}.transport-main,.preferences{gap:0}.icon-button{font-size:19px;min-width:38px;padding:6px}.play-button{min-width:95px;font-size:15px}.preferences #volume{display:none}.preferences .text-button{font-size:13px;padding:7px 6px}.preferences .text-button span{display:none}.preferences #mute{min-width:35px}.section-line{margin:20px 0 9px;gap:5px}.section-line h3{font-size:10px;letter-spacing:.5px}.section-line span{font-size:9px}.scene-strip{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.scene-thumb{min-height:44px}.scene-thumb img{opacity:.72}.liner{padding:18px;font-size:16px}.liner-links{gap:14px;font-size:12px}.songbook nav{display:block}.track-button{min-height:59px}.track-name{font-size:16px}.track-pov{font-size:11px}.track-time{font-size:11px}.track-number{min-width:25px}.player-status{font-size:10px}.songbook{padding:18px 11px}.songbook-hint{font-size:12px}footer{margin-top:32px;font-size:11px}body.theater .masthead{padding:12px}body.theater .layout{padding:0 12px}body.theater .scene-window{max-height:none}body.theater #stage{max-height:none}body.theater .storyboard{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important}}
.scene-thumb img{height:auto}
/* Surface Memory v2 — dark cinema and classic blue dialogue. */
:root{--ink:#0c1019;--gold:#dbc3a0;--muted:#a9b0c0}
body::before{background:radial-gradient(ellipse at 50% 0,#644d4533,transparent 60%)}.world-stars{opacity:.45}
.masthead{padding-top:24px;padding-bottom:23px}.masthead h1{font-size:clamp(58px,7.2vw,88px);color:#e7dcc7;text-shadow:0 3px #756253,3px 5px #080d17}.edition{font-size:11px;color:#b2adab}.edition-right{color:#dec3a5}.subtitle{font-size:15px;letter-spacing:6px}.intro{font-size:17px}
#stage{aspect-ratio:4/3}.pixel-frame{border-color:#9facae;box-shadow:0 0 0 2px #333c4d,0 6px 0 #050710}.scene-plaque{background:linear-gradient(#060912ce,#080e1f20);padding-bottom:18px;font-size:12px}.start-overlay{justify-content:flex-end;padding-bottom:28px;background:linear-gradient(transparent 45%,#080c18a6);font-size:21px;text-shadow:2px 2px #080c18}.start-overlay .start-gem{font-size:22px}.start-overlay small{font-size:12px}
.scene-strip{grid-template-columns:repeat(var(--scene-count,4),minmax(0,1fr));gap:10px}.scene-thumb img{aspect-ratio:4/3}.scene-thumb span{font-size:12px;padding:2px 7px}
.songbook,.liner,.transport{background:linear-gradient(130deg,#1a284c,#111d39 60%,#0d172d);box-shadow:0 0 0 2px #080d1e,0 5px 0 #020713,inset 0 0 0 5px #152342}.songbook{border-color:#a5afbd}.track-button[aria-current=true]{background:#59647a45;box-shadow:inset 3px 0 var(--gold)}
body.theater .layout{max-width:920px}body.theater .scene-window{max-height:65vh;background:#060a12}body.theater #stage{width:100%;height:auto;max-height:65vh;object-fit:contain}
@media(max-width:1000px){.layout{max-width:790px}.masthead{padding-bottom:22px}.scene-window{margin:0 2px}}
@media(max-width:560px){.masthead{padding:19px 14px}.masthead h1{font-size:58px}.edition{font-size:8px;letter-spacing:.8px}.edition-right{font-size:8px}.intro{font-size:16px}.subtitle{font-size:12px;letter-spacing:4px}.album-stats{font-size:10px;gap:8px}.scene-plaque{font-size:10px}.start-overlay{padding-bottom:16px;font-size:18px}.start-overlay small{font-size:10px}.scene-strip{gap:7px}.scene-thumb span{font-size:10px;padding:1px 5px}.dialogue{gap:10px}.section-line h3{font-size:10px}body.theater .scene-window,body.theater #stage{max-height:none}}

/* Expanded storybook: lyric-only windows and two rows of scene choices. */
.dialogue{visibility:hidden;display:flex;align-items:center;height:132px;min-height:132px;padding:20px 26px 23px;text-shadow:2px 2px #050b38}
.dialogue.visible{visibility:visible}
#lyric-lines{width:100%;min-height:0;font-size:22px;line-height:1.5}
#lyric-lines p{margin:0;min-height:1.5em}
.scene-strip{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
body.still *,body.still *::before,body.still *::after{animation:none!important}
@media(min-width:1400px){#lyric-lines{font-size:24px}}
@media(max-width:1240px) and (min-width:1001px){#lyric-lines{font-size:20px}}
@media(max-width:1000px){#lyric-lines{font-size:23px}.dialogue{height:138px;min-height:138px}}
@media(max-width:560px){.dialogue{padding:16px 18px 21px;height:164px;min-height:164px}#lyric-lines{font-size:18px;line-height:1.5}.scene-strip{gap:7px}.scene-thumb{min-height:48px}}
@media(max-width:380px){.dialogue{height:184px;min-height:184px}}

/* Full-resolution paintings share the same story direction and lyric windows. */
body.hd-art #stage,body.hd-art .scene-thumb img{image-rendering:auto}
.view-controls{display:flex;align-items:center;flex-shrink:0;gap:2px;margin-left:8px}
#pixelation{font-size:12px;letter-spacing:.5px;border:1px solid #62728c;min-width:86px;white-space:nowrap}
#pixelation[aria-pressed=false]{color:#b6d5e4;background:#253548}
.chapter-heading>div:first-child{min-width:0}
@media(max-width:560px){.view-controls{gap:0;margin-left:5px}#pixelation{min-width:73px;font-size:10px;padding:5px}.view-controls .icon-button{min-width:32px;padding:3px}}

/* One classic lyric window: the music reacts directly underneath the text. */
.lyric-stage{margin-top:12px;overflow:hidden;background:#091426;border-color:#dce7ef;isolation:isolate}
#signal-canvas{position:absolute;inset:5px;width:calc(100% - 10px);height:calc(100% - 10px);display:block;image-rendering:pixelated;z-index:0;pointer-events:none}
.lyric-stage .dialogue{position:relative;z-index:1;margin:0;height:auto;min-height:192px;padding:22px 26px 58px;background:none;border:0;box-shadow:none;outline:none;pointer-events:none}
#lyric-lines{font-size:25px;line-height:1.5;letter-spacing:.15px;text-shadow:-1px -1px 0 #020612,1px -1px 0 #020612,-1px 1px 0 #020612,2px 2px 0 #020612,0 0 5px #020612,0 0 10px #020612,0 0 18px #020612}
#lyric-lines p,#lyric-lines .upcoming{color:#f5f5ff;min-height:1.5em}
#lyric-lines .sung{color:#ffe0a0}
#lyric-lines p.current{filter:none}
.next-indicator{bottom:54px;right:12px;text-shadow:1px 1px #020612}
.signal-heading{position:absolute;z-index:2;bottom:7px;left:12px;right:12px;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:36px;padding:0 4px;background:#081226e8;border-top:1px solid #52678070}
.signal-title{font-size:10px;letter-spacing:1.2px;color:#aac8d0;white-space:nowrap}
.signal-control{margin-left:auto}.signal-control select{font:13px Pixel,monospace;color:#efd4ad;background:#14243b;border:1px solid #456078;border-radius:0;padding:5px 24px 5px 8px;min-height:32px;max-width:165px;cursor:pointer}
.signal-control select:focus-visible{outline:2px solid #efcf96;outline-offset:2px}
#signal-status{color:#9aafc3;font-size:9px;letter-spacing:.7px;min-width:40px;text-align:right}
#signal-status[data-live=true]{color:#a9e8d0}
@media(min-width:1400px){#lyric-lines{font-size:27px}}
@media(max-width:1240px) and (min-width:1001px){#lyric-lines{font-size:23px}}
@media(max-width:1000px){#lyric-lines{font-size:26px}.lyric-stage .dialogue{min-height:196px}}
@media(max-width:560px){.lyric-stage{margin-top:10px}.lyric-stage .dialogue{padding:19px 16px 59px;min-height:214px}#lyric-lines{font-size:21px;line-height:1.5}.signal-heading{left:8px;right:8px;gap:6px}.signal-title{font-size:8px;letter-spacing:.3px}.signal-control select{font-size:11px;max-width:136px;min-height:36px;padding:5px 16px 5px 6px}#signal-status{font-size:8px;min-width:32px}}
@media(max-width:380px){.lyric-stage .dialogue{min-height:228px}.signal-title{font-size:7px}.signal-control select{max-width:123px}}
