/* UI ART PASS — crisp layered terminal chrome, no scene lighting changes. */
:root{--pink:#fa89e2;--electric:#3154c7;--ice:#e1e6ff;--violet:#8272cc}
body::after{content:'';position:fixed;inset:0;z-index:2147483001;pointer-events:none;background:repeating-linear-gradient(0deg,#b4c8ff03 0 1px,transparent 1px 4px)}
#room{filter:none}.window-focus #room{filter:brightness(.9)}
.desktop-chrome{top:38px;left:42px;right:42px;gap:35px}
.pixel-panel,#jillPanel,#systemPanel,#phonePanel{border:2px solid #9a93d5;outline:1px solid #172c75;box-shadow:inset 2px 2px #e3e5ff,inset -2px -2px #4247a0,3px 3px 0 #1b327b,5px 5px 0 #060a18;background:#070b1b}
.pixel-panel{position:relative}.pixel-panel::after{content:'';position:absolute;inset:4px;border:1px solid #383761;pointer-events:none}.pixel-panel::before{content:'';position:absolute;right:-3px;bottom:9px;width:3px;height:11px;background:var(--pink);box-shadow:-7px 8px 0 -1px #9297ff;z-index:2}
.brand{width:385px;min-height:181px}.brand-bar{height:22px;display:flex;align-items:center;justify-content:flex-end;gap:5px;padding:2px 5px;background:linear-gradient(90deg,#0b3b92,#1755b0 68%,#182e70);border-bottom:2px solid #b9caff;box-shadow:0 2px #343a8c;position:relative;z-index:1}.bar-grip{height:12px;width:5px;margin-right:auto;border-left:2px solid #b4d4ff;border-right:1px solid #608ced}.static-control{display:grid;place-items:center;width:16px;height:15px;background:#f28bdc;color:#183177;border-top:1px solid #ffd5f7;border-left:1px solid #ffd5f7;font:bold 17px/12px monospace;letter-spacing:0}.brand-copy{position:relative;padding:15px 17px 13px}.eyebrow{font-size:10px;letter-spacing:2px;color:#e0e5f4}h1{font:bold 37px/1.1 'Courier New',monospace;letter-spacing:-1.5px;margin:9px 0 8px;text-shadow:2px 0 #9291b8,0 2px #3d2c65;color:#faf4ff}.dot{color:var(--pink);text-shadow:2px 2px #633168}.subtitle{font-size:14px;color:#b5d6ee;letter-spacing:2.3px}.goodnight{margin-top:16px;color:#91a6db;font-size:10px;letter-spacing:1.7px}.brand-cat{position:absolute;right:12px;top:43px;width:53px;height:53px;overflow:hidden;opacity:.9}.brand-cat img{position:absolute;width:2262.5%;max-width:none;left:-575%;top:-150%;image-rendering:pixelated}
.city-panel{width:min(49vw,710px);padding:11px;gap:0;border-top-color:#9495eb}.city-view{border:1px solid #b6b6ed;box-shadow:0 0 0 2px #191a50,inset 0 0 0 1px #31407a;aspect-ratio:4.48}.city-clock{width:151px;margin-left:13px;border:0;border-left:2px solid #8885cc;box-shadow:-2px 0 #202b62;padding:8px 8px 8px 17px;gap:8px}#time{font:bold 40px/1 'Courier New',monospace;letter-spacing:0;color:#ff8be0;text-shadow:2px 2px #5b255a}#cityDate{font-size:11px;letter-spacing:1.5px;color:#91a6f1}.city-clock small{font-size:10px;line-height:1.65;letter-spacing:1.7px;color:#7f9bdc}
.room-launchers{left:43px;top:254px;gap:14px;z-index:4}#phoneButton,#systemButton{position:relative;display:flex;align-items:center;gap:12px;min-width:125px;height:40px;padding:8px 12px;background:#090e22;border:1px solid #7773b3;box-shadow:inset 1px 1px #b7b8e7,inset -2px -2px #20274d,2px 2px #070914;font:13px 'Courier New',monospace;letter-spacing:1px;color:#d9e3fc}#phoneButton::before,#systemButton::before{content:'';position:absolute;left:-15px;top:14px;width:7px;height:11px;background:var(--pink);clip-path:polygon(0 0,100% 50%,0 100%);opacity:0}.command-icon{width:17px;height:21px;fill:none;stroke:currentColor;stroke-width:1.5;shape-rendering:crispEdges;flex:none}#phoneButton:hover,#systemButton:hover,#phoneButton:focus-visible,#systemButton:focus-visible{border-color:var(--pink);background:#29132e;color:#ffd3f4;box-shadow:inset 1px 1px #efabe8,inset -1px -1px #7e387a,2px 2px #070914}#phoneButton:hover::before,#systemButton:hover::before,#phoneButton:focus-visible::before,#systemButton:focus-visible::before{opacity:1}#phoneButton:hover .command-icon,#systemButton:hover .command-icon{animation:command-tick 140ms steps(1) 1}#sound{margin-top:5px;padding:3px 6px;min-width:65px;min-height:25px;font-size:17px;border:0;background:transparent;box-shadow:none;color:#db87ce}#sound span{font-size:10px;color:#a4b9d6}#sound:hover,#sound[aria-pressed=true]{color:#ffc1ee;background:#151026}#sound[aria-pressed=true] span{color:#83d5de}
#jillPanel{width:800px}.window-titlebar{height:27px;margin:2px 2px 0;padding-left:9px;border-top:1px solid #697bcb;border-bottom:2px solid #a0b8f2;background:#1d2c6f;color:#c7cfec;box-shadow:0 2px #272e66;font-size:10px;letter-spacing:2px}.is-active .window-titlebar{background:linear-gradient(90deg,#104391,#1858b4 65%,#173d83);color:#f5e8ff}.desktop-window.is-active{border-color:#d9defe!important;outline-color:#5561c4!important;box-shadow:inset 2px 2px #f0ecff,inset -2px -2px #525db3,3px 3px 0 #254599,5px 5px 0 #080b20!important}.desktop-window.is-active::before{content:'';position:absolute;left:5px;top:37px;width:2px;height:18px;background:#f393e2;pointer-events:none}.window-actions{gap:4px}.window-actions button{width:19px;height:18px;background:#ab79bd;border-top:1px solid #f4beed;border-left:1px solid #f4beed;border-right:1px solid #4b3a79;border-bottom:1px solid #4b3a79}.is-active .window-actions button{background:#f494df}.jill-dialogue{position:relative;min-height:144px;padding:14px 19px;gap:27px;background:repeating-linear-gradient(0deg,#809ac506 0 1px,transparent 1px 3px)}.jill-dialogue::after{content:'';position:absolute;right:23px;bottom:18px;width:18px;height:12px;background:#f895e4;clip-path:polygon(0 0,100% 0,50% 100%)}#jillPortrait{width:128px;height:116px;flex:none;border:1px solid #c7bae6;box-shadow:2px 2px 0 #373265;object-position:center 13%}.dialogue-copy{padding-right:22px}.dialogue-copy strong{font:bold 17px 'Courier New',monospace;color:#ff87df}.dialogue-copy p{font:16px/1.5 'Courier New','Microsoft YaHei',monospace;color:#e4e6f0;margin-top:9px}
#phonePanel{width:264px;height:505px;border-color:#cfcbdf;outline-color:#595779;box-shadow:inset 2px 2px #f4eef4,inset -2px -2px #686579,3px 3px #323351,5px 5px #060912}.phone-idle{height:calc(100% - 91px);margin:10px 10px 0;border:1px solid #9692aa;box-shadow:0 0 0 3px #151526,inset 0 0 0 2px #070812;background:repeating-linear-gradient(0deg,#8c92b505 0 1px,transparent 1px 4px),#02040b;color:#898097;letter-spacing:4px}.phone-hardware{height:48px;margin:0 12px;display:flex;align-items:center;justify-content:space-around;border-top:1px solid #323143}.phone-hardware svg{height:23px;width:33px;fill:none;stroke:#d2ccd9;stroke-width:2;shape-rendering:crispEdges}#systemPanel{width:330px;height:210px}.system-idle{background:repeating-linear-gradient(0deg,#718db504 0 1px,transparent 1px 4px)}
#windowDock{left:34px;bottom:27px;gap:7px}#windowDock button{border:1px solid #7b78b7;box-shadow:inset 1px 1px #a5a4d2,inset -1px -1px #303355,2px 2px #090c1c;background:#0b1129;color:#8394c2;font:11px 'Courier New',monospace;min-height:27px}#windowDock button.recent-window,#windowDock button:hover,#windowDock button:focus-visible{border-color:#e48ed6;color:#f5b4e7;background:#21122f;box-shadow:inset 1px 1px #e8b7e2,inset -1px -1px #673b71,2px 2px #090c1c}
#tooltip,.scene-label{border:1px solid #b181cb;box-shadow:inset 1px 1px #353775,2px 2px #101126;background:#080b1b;color:#f6c4ed;font-size:11px;padding:5px 8px;transition:none}#jillCharacter{border-color:#625279}#jillCharacter:hover{border-color:#ec91d9}.scene-label{opacity:0}#jillCharacter:focus-visible:not(:hover) .scene-label{opacity:0}
.frame-corners{inset:15px;clip-path:none;border:0;opacity:1;z-index:2}.corner{position:absolute;width:51px;height:45px;border-left:2px solid #4e4bb1;border-top:2px solid #4e4bb1;opacity:.73}.corner::before{content:'';position:absolute;left:3px;top:3px;width:24px;height:23px;border-left:3px solid #a34daa;border-top:3px solid #a34daa;box-shadow:-6px -6px 0 -5px #a6b8eb}.corner::after{content:'';position:absolute;left:7px;top:7px;width:12px;height:2px;background:#dd77c8;box-shadow:-6px 9px #4263b5,28px -8px #212c63}.tl{left:0;top:0}.tr{right:0;top:0;transform:scaleX(-1)}.bl{left:0;bottom:0;transform:scaleY(-1)}.br{right:0;bottom:0;transform:scale(-1)}.frame-footer{position:absolute;bottom:1px;left:50%;transform:translateX(-50%);color:#666ba9;font-size:9px;letter-spacing:3px;white-space:nowrap}.frame-footer::before,.frame-footer::after{content:'';position:absolute;top:4px;width:30px;height:1px;background:#303363}.frame-footer::before{right:calc(100% + 15px)}.frame-footer::after{left:calc(100% + 15px)}.footnote{display:none}
/* Brief, infrequent local glitches; layout and pointer hit areas never move. */
@keyframes command-tick{0%,100%{filter:none}35%{filter:drop-shadow(1px 0 #fb91df)}60%{filter:drop-shadow(-1px 0 #80bde9)}}
.micro-glitch{animation:terminal-tick 150ms steps(1) 1}.desktop-window.micro-glitch{animation:window-scan 150ms steps(1) 1}@keyframes terminal-tick{0%,100%{filter:none}28%{filter:drop-shadow(2px 0 #ff76d499);text-shadow:-1px 0 #91d7ff}52%{filter:brightness(1.06)}70%{filter:none}}@keyframes window-scan{0%{clip-path:inset(0 0 80%)}25%{clip-path:inset(0 0 0);filter:drop-shadow(2px 0 #dd70cb)}50%{clip-path:inset(0 0 0);filter:none}100%{clip-path:none;filter:none}}
@media(min-width:1700px){.brand{width:405px}.city-panel{width:745px}h1{font-size:39px}.room-launchers{top:268px}}
@media(max-width:1050px){.desktop-chrome{left:28px;right:28px;top:28px;gap:22px}.brand{width:330px;min-height:172px}h1{font-size:31px}.brand-cat{width:43px;height:43px;top:42px}.brand-copy{padding:13px}.goodnight{letter-spacing:1px;font-size:9px}.city-panel{width:47vw;padding:9px}.city-clock{width:120px;padding-left:10px;margin-left:10px}#time{font-size:32px}.city-clock small{font-size:8px}.room-launchers{left:29px;top:229px}}
@media(max-width:700px){.desktop-chrome{top:22px;left:21px;right:21px;gap:15px}.brand{width:53%;min-height:135px}.brand-copy{padding:11px}.brand-bar{height:17px}.static-control{width:12px;height:12px;font-size:13px}h1{font-size:25px;letter-spacing:-1px}.eyebrow{font-size:7px;letter-spacing:.7px}.subtitle{font-size:11px}.goodnight{font-size:7px;letter-spacing:.4px;margin-top:12px}.brand-cat{display:none}.city-panel{flex:1;width:auto;display:block;padding:7px}.city-clock{width:auto;border:0;border-top:1px solid #66659b;box-shadow:none;margin:7px 0 0;padding:7px 0 0;align-items:center;gap:4px}#time{font-size:28px}.city-clock small{display:none}#cityDate{font-size:9px}.room-launchers{top:188px;left:22px;gap:12px}#phoneButton,#systemButton{min-width:103px;height:34px;padding:6px 9px;font-size:11px;gap:9px}.command-icon{width:14px;height:17px}#phoneButton::before,#systemButton::before{left:-11px;top:11px;width:5px;height:9px}.jill-dialogue{padding:12px;gap:15px;min-height:127px}#jillPortrait{width:84px;height:98px}.dialogue-copy p{font-size:13px}.dialogue-copy strong{font-size:15px}.jill-dialogue::after{right:13px;bottom:12px;width:12px;height:8px}.frame-corners{inset:9px}.corner{width:32px;height:31px}.frame-footer{font-size:7px;letter-spacing:1.2px}.frame-footer::before,.frame-footer::after{display:none}#windowDock{left:20px;bottom:25px}#phonePanel{width:238px;height:465px}}
@media(max-width:400px){h1{font-size:22px}.eyebrow{font-size:6px}.brand-copy{padding:10px 8px}.goodnight{display:block;font-size:6px;letter-spacing:0}.brand{min-height:134px}.city-panel{padding:5px}.dialogue-copy{padding-right:10px}.dialogue-copy p{font-size:12px}}
@media(max-height:530px){.desktop-chrome{top:20px}.brand{min-height:0;width:290px}.brand-copy{padding:10px 14px}.brand-cat,.goodnight,.subtitle{display:none}h1{font-size:29px;margin:6px 0}.room-launchers{top:147px}.city-panel{width:42vw;padding:7px}.city-clock{width:100px}#time{font-size:27px}#phonePanel{height:calc(100dvh - 32px);width:210px}}
@media(prefers-reduced-motion:reduce){.micro-glitch,.desktop-window.micro-glitch,#phoneButton:hover .command-icon,#systemButton:hover .command-icon{animation:none!important;filter:none!important;clip-path:none!important}}
/* Reset the legacy launcher's offsets before applying command-menu layout. */
#phoneButton,#systemButton{left:auto;right:auto;top:auto;bottom:auto}
/* Only the cat neon gets the occasional city flicker, not the skyline. */
.neon-echo{position:absolute;inset:0;clip-path:inset(14% 32% 27% 54%);opacity:0;pointer-events:none}.neon-echo.micro-glitch{animation:neon-tick 150ms steps(1) 1}@keyframes neon-tick{0%,100%{opacity:0}25%{opacity:1;filter:brightness(1.25) drop-shadow(1px 0 #88c5ff);transform:translateX(1px)}50%{opacity:0}75%{opacity:1;filter:brightness(.85);transform:none}}
@media(prefers-reduced-motion:reduce){.neon-echo.micro-glitch{animation:none!important;opacity:0}}
.view-tools{position:fixed;left:34px;bottom:64px;z-index:4;display:flex;align-items:center;gap:12px}.view-tools button{font:10px Consolas,monospace;letter-spacing:1px;min-height:25px;padding:4px 8px;background:#090e20;border:1px solid #555487;color:#acbce0;box-shadow:inset 1px 1px #292f5b}.view-tools span{font-size:10px;letter-spacing:.5px;color:#7783a4}.view-tools button:hover{color:#ffd1ef;border-color:#d58bc8}@media(max-width:700px){.view-tools{left:20px;bottom:66px}.view-tools span{display:none}}
.city-weather{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated;pointer-events:none;z-index:1}.neon-breath{position:absolute;inset:0;clip-path:inset(14% 32% 27% 54%);pointer-events:none;opacity:.08;filter:brightness(1.3);animation:city-breath 7s ease-in-out infinite;z-index:2}.neon-echo{z-index:3}@keyframes city-breath{0%,100%{opacity:.06}50%{opacity:.26}}.city-paused .neon-breath{animation-play-state:paused}.city-paused .neon-echo{animation:none!important;opacity:0}@media(prefers-reduced-motion:reduce){.neon-breath{animation:none;opacity:.1}}
/* One UI-local sprite is reparented between these four hosts. */
.brand-copy,.phone-idle{position:relative}.desktop-chrome .brand,.desktop-chrome .city-panel{pointer-events:auto}#dorothyCompanion{position:absolute;width:46px;height:60px;pointer-events:none;image-rendering:pixelated;z-index:4;right:12px;bottom:9px;background:transparent}.city-view #dorothyCompanion{left:17%;right:auto;bottom:1px;height:min(62px,64%);width:auto;aspect-ratio:104/136}.brand-copy #dorothyCompanion{right:9px;bottom:8px}.jill-dialogue #dorothyCompanion{right:54px;bottom:12px}.phone-idle #dorothyCompanion{left:10px;right:auto;bottom:8px}.dialogue-copy{padding-right:64px}.city-view::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,#a1bbef05 0 1px,transparent 1px 4px);pointer-events:none;z-index:5}.teleport-in{animation:sprite-in 150ms steps(1) 1}.teleport-out{animation:sprite-out 100ms steps(1) 1}@keyframes sprite-in{0%{transform:translateX(2px);filter:drop-shadow(-1px 0 #6fc9e8) drop-shadow(1px 0 #ed7ccb);clip-path:inset(0 0 35%)}35%{transform:translateX(-1px);clip-path:inset(0);filter:drop-shadow(1px 0 #ed7ccb)}70%,100%{transform:none;filter:none;clip-path:none}}@keyframes sprite-out{0%{transform:translateX(-1px);filter:drop-shadow(1px 0 #ed7ccb)}50%{transform:translateX(2px);clip-path:inset(20% 0 35%);filter:drop-shadow(-1px 0 #6fc9e8)}100%{clip-path:inset(100% 0 0)}}@media(max-width:700px){#dorothyCompanion{width:35px;height:46px}.jill-dialogue #dorothyCompanion{right:27px;bottom:7px}.dialogue-copy{padding-right:36px}.brand-copy #dorothyCompanion{right:2px;bottom:0;width:28px;height:37px}.brand-copy .goodnight{padding-right:17px}}@media(prefers-reduced-motion:reduce){.teleport-in,.teleport-out{animation:none!important}}
/* Wide-screen terminal shell: structure stays behind the unaltered room. */
body{background:#0d0f1d}.system-backdrop{position:fixed;inset:0;pointer-events:none;z-index:0;background:repeating-linear-gradient(90deg,transparent 0 63px,#3832590b 63px 64px),repeating-linear-gradient(0deg,transparent 0 63px,#3832590b 63px 64px)}#room{z-index:1}.system-backdrop i{position:absolute;top:14px;bottom:14px;width:clamp(70px,13vw,225px);border-left:1px solid #35355555;border-right:1px solid #35355544;background:repeating-linear-gradient(0deg,transparent 0 31px,#49516c26 31px 33px,transparent 33px 67px),repeating-linear-gradient(90deg,#20243938 0 6px,transparent 6px 18px,#3a355828 18px 20px,transparent 20px 35px);mask-image:linear-gradient(0deg,#000,transparent 45%,#000)}.system-backdrop i:first-child{left:17px}.system-backdrop i:last-child{right:17px;transform:scaleX(-1)}.system-backdrop i::before{content:'';position:absolute;inset:45px 13px;border:2px solid #40456140;background:repeating-linear-gradient(135deg,transparent 0 55px,#4545641f 55px 57px,transparent 57px 110px);clip-path:polygon(0 0,83% 0,100% 3%,100% 43%,82% 46%,82% 56%,100% 59%,100% 97%,83% 100%,0 100%)}.system-backdrop i::after{content:'';position:absolute;bottom:22px;left:20px;width:24px;height:3px;background:#76506b55;box-shadow:0 -8px #3c557444,45px -8px #3c557444,45px 0 #3c557444}
.city-panel{width:min(53vw,780px)}.city-clock{width:137px}.city-view{aspect-ratio:3.85}.city-view img{height:987.27%}.city-view #dorothyCompanion{left:var(--city-x,17%);height:min(86px,74%);transition:left 1.1s steps(12)}#dorothyCompanion{width:55px;height:72px}.brand-copy #dorothyCompanion{right:3px;bottom:1px}.jill-dialogue #dorothyCompanion{right:48px;bottom:8px}.dialogue-copy{padding-right:78px}.idle-hop{animation:companion-hop 650ms steps(8) 1}@keyframes companion-hop{0%,100%{transform:translateY(0)}30%{transform:translateY(-7px)}60%{transform:translateY(0)}80%{transform:translateY(-3px)}}@keyframes sprite-out{0%{transform:translateY(0)}40%{transform:translate(-1px,-5px);filter:drop-shadow(1px 0 #ed7ccb)}80%,100%{transform:translate(2px,-9px);clip-path:inset(20% 0 35%);filter:drop-shadow(-1px 0 #6fc9e8)}}@keyframes sprite-in{0%{transform:translate(2px,-9px);filter:drop-shadow(-1px 0 #6fc9e8);clip-path:inset(0 0 30%)}40%{transform:translate(-1px,-4px);filter:drop-shadow(1px 0 #ed7ccb);clip-path:inset(0)}70%{transform:translateY(1px);filter:none}100%{transform:none;filter:none;clip-path:none}}
@media(min-width:1700px){.city-panel{width:830px}.city-clock{width:142px}}
@media(max-width:1050px){.city-panel{width:48vw}.city-clock{width:110px}}
@media(max-width:700px){.city-panel{width:auto}.city-clock{width:auto}.city-view{aspect-ratio:3.2}.system-backdrop i{width:42px;opacity:.5}#dorothyCompanion{width:37px;height:49px}.brand-copy #dorothyCompanion{width:29px;height:38px}.jill-dialogue #dorothyCompanion{right:26px}.dialogue-copy{padding-right:43px}}
@media(prefers-reduced-motion:reduce){.idle-hop{animation:none!important}.city-view #dorothyCompanion{transition:none!important}}

/* The former poster button is retained only as a keyboard-accessible scene action. */
#jillCharacter{left:20px!important;top:auto!important;bottom:100px;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);border:0}#jillCharacter:focus-visible{width:auto;height:auto;clip-path:none;padding:6px;background:#10142b}#jillCharacter>img{display:none}#jillCharacter:focus-visible::after{content:"TALK TO JILL";font-size:11px}
/* V3: lower-right jukebox, breakout dialogue and local signal interruptions. */
.desktop-chrome{user-select:none}.poster-handle{border-radius:0!important;border:1px solid #ffc5f1!important;background:#29487e!important;box-shadow:0 0 0 1px #0c1329!important}
#musicPanel{position:fixed;display:block;width:320px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto;background:#090d1f;border:2px solid #9a93d5;outline:1px solid #172c75;box-shadow:inset 2px 2px #e3e5ff,inset -2px -2px #4247a0,3px 3px #1b327b;color:#bfcee8;font:12px 'Courier New',monospace;border-radius:0}.music-body{padding:13px 14px 11px;background:repeating-linear-gradient(0deg,#809ac506 0 1px,transparent 1px 3px)}.music-now{display:flex;align-items:center;gap:9px;min-height:22px}.music-now strong{color:#ffa8e5;font-size:14px;line-height:1.3;overflow-wrap:anywhere}.music-led{width:5px;height:12px;flex:none;background:#3b3554;box-shadow:4px 0 #302a47}.is-playing .music-led{background:#79bdcb;box-shadow:4px 0 #385d80}#musicStatus{display:block;min-height:14px;margin:5px 0 11px;color:#8592ba;font-size:10px;letter-spacing:.7px}.music-list-label{display:flex;align-items:center;gap:8px;font-size:10px;color:#8392b9}#musicTracks{width:100%;min-width:0;background:#070b1b;color:#cbd6eb;border:1px solid #4e517b;border-radius:0;padding:5px;font:11px 'Courier New',monospace}.music-body input[type=range]{appearance:none;height:4px;padding:0;background:#2a3055;border:1px solid #59638d;border-radius:0;accent-color:#e491d4;cursor:pointer}.music-body input[type=range]::-webkit-slider-thumb{appearance:none;width:7px;height:11px;background:#efa8dc;border:1px solid #ffd5f4;border-radius:0}.music-body input[type=range]::-moz-range-thumb{width:6px;height:10px;background:#efa8dc;border:1px solid #ffd5f4;border-radius:0}#musicSeek{display:block;width:100%;margin:15px 0 8px}.music-readout{display:flex;justify-content:space-between;font-size:10px;color:#8b9ac0}.music-controls{display:flex;gap:5px;margin:11px 0}.music-controls button{flex:1;min-width:0;height:27px;min-height:27px;padding:3px;background:#121a37;border:1px solid #6577ab;box-shadow:inset 1px 1px #8896c4,inset -1px -1px #252945;color:#d4def5;font:11px 'Courier New',monospace}.music-controls #musicOrder{flex:1.5;font-size:10px}.music-controls button:hover,.music-controls button[aria-pressed=true]{background:#2c193d;color:#ffb1e6;border-color:#d581c7}.music-volume{display:flex;align-items:center;gap:10px;font-size:10px;color:#8097be}.music-volume input{flex:1;min-width:0}
#jillPanel{width:min(850px,62vw);overflow:visible}.jill-dialogue{min-height:145px;padding:19px 20px 20px 222px}.portrait-stage{position:absolute;left:1px;bottom:-2px;width:202px;height:296px;pointer-events:none;overflow:hidden;isolation:isolate;clip-path:polygon(0 30%,11% 30%,11% 15%,23% 15%,23% 7%,47% 0,70% 4%,84% 10%,92% 31%,100% 31%,100% 100%,0 100%)}.portrait-stage::before{content:'';position:absolute;inset:37% 0 0;background:repeating-linear-gradient(0deg,transparent 0 7px,#c948bc55 7px 9px,transparent 9px 15px),repeating-linear-gradient(90deg,#658cd52b 0 2px,transparent 2px 5px);z-index:0}.portrait-stage::after{content:'';position:absolute;inset:0;z-index:2;background:repeating-linear-gradient(0deg,#8ea5ef09 0 1px,transparent 1px 4px);border-bottom:3px solid #f195d5;pointer-events:none}#jillPortrait{position:absolute;left:-24px;top:0;width:250px;height:auto;max-width:none;object-fit:contain;border:0;background:none;box-shadow:none;filter:drop-shadow(2px 0 #cd66b5) drop-shadow(-2px 0 #437bb7);clip-path:polygon(21% 10%,40% 6%,61% 10%,71% 10%,78% 19%,79% 38%,90% 60%,100% 65%,100% 100%,0 100%,0 69%,12% 55%,16% 37%);z-index:1}.dialogue-copy{width:100%}.dialogue-copy strong{font-size:25px;letter-spacing:1px}.dialogue-copy p{font-size:15px}.jill-dialogue #dorothyCompanion{right:38px;bottom:13px}
.system-backdrop i{width:clamp(95px,15vw,240px);background-color:#12162833;border-left-color:#4a487c55}.system-backdrop i::before{border-color:#53577b55}.system-backdrop::after{content:'';position:absolute;left:3%;right:3%;bottom:39px;height:8px;border-top:1px solid #42456733;border-bottom:1px solid #42456733;background:repeating-linear-gradient(90deg,#4f4d7422 0 5px,transparent 5px 17px);mask-image:linear-gradient(90deg,#000,transparent 35%,transparent 65%,#000)}
.city-view #dorothyCompanion{height:min(99px,80%);transition:left 1.4s steps(14)}#dorothyCompanion{width:61px;height:80px}.city-panel{width:min(53vw,800px)}.city-view{aspect-ratio:3.65}.city-clock{width:132px}.signal-glitch{animation:signal-tick 220ms steps(1) 1}.desktop-window.signal-glitch{animation:signal-window 220ms steps(1) 1}@keyframes signal-tick{0%,100%{filter:none}18%{filter:drop-shadow(3px 0 #f768be) drop-shadow(-2px 0 #69ccd6)}36%{filter:none}61%{filter:drop-shadow(-2px 0 #e288d4)}78%{filter:none}}@keyframes signal-window{0%,100%{filter:none}16%{filter:drop-shadow(3px 0 #d86bc8) drop-shadow(-2px 0 #548cc4)}32%{filter:none}57%{filter:drop-shadow(-2px 0 #88bbd8)}76%{filter:none}}
@media(min-width:1700px){.city-panel{width:830px}#musicPanel{width:335px}#jillPanel{width:880px}}
@media(max-width:1050px){#jillPanel{width:70vw}.portrait-stage{width:168px;height:268px}#jillPortrait{width:225px;left:-27px}.jill-dialogue{padding-left:182px}.city-panel{width:48vw}.city-clock{width:108px}}
@media(max-width:700px){#musicPanel{width:260px}.music-body{padding:9px 10px}.music-now strong{font-size:12px}.music-controls{margin:8px 0}.music-controls button{height:29px}.music-list-label{gap:4px}#jillPanel{width:calc(100vw - 24px)}.portrait-stage{width:103px;height:215px}#jillPortrait{width:179px;left:-38px}.jill-dialogue{min-height:145px;padding:15px 10px 15px 115px}.dialogue-copy strong{font-size:21px}.dialogue-copy p{font-size:12px;line-height:1.5}.dialogue-copy{padding-right:35px}.city-panel{width:auto}.city-clock{width:auto}.city-view{aspect-ratio:3.2}.city-view #dorothyCompanion{height:77%}.jill-dialogue #dorothyCompanion{right:21px;width:34px;height:45px}.brand-copy #dorothyCompanion{width:29px;height:38px}}
@media(max-height:530px){#musicPanel{width:285px}.music-body{padding:7px 10px}.music-controls{margin:6px 0}.portrait-stage{height:230px}.jill-dialogue{min-height:125px}}
@media(prefers-reduced-motion:reduce){.signal-glitch,.desktop-window.signal-glitch{animation:none!important;filter:none!important}}
/* Fixed terminal wings, supplied line art and signal texture. */
.system-backdrop .terminal-rail{position:absolute;top:0;bottom:0;width:clamp(100px,18vw,355px);background:#292237;isolation:isolate;overflow:hidden;border-right:1px solid #54416844;mask-image:linear-gradient(90deg,#000 0 87%,transparent)}.rail-left{left:0}.system-backdrop .rail-right{right:0;mask-image:linear-gradient(270deg,#000 0 87%,transparent);border-left:1px solid #54416844;border-right:0}.terminal-rail::before{content:'';position:absolute;inset:10px 15px;border:1px solid #7c609b24;background:repeating-linear-gradient(90deg,transparent 0 31px,#a680c609 31px 32px),repeating-linear-gradient(0deg,transparent 0 31px,#a680c609 31px 32px)}.terminal-rail::after{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,#03041035 0 1px,transparent 1px 4px);z-index:3}.rail-doodle{position:absolute;left:12%;top:27%;width:76%;aspect-ratio:var(--crop-w)/var(--crop-h);overflow:hidden;mix-blend-mode:lighten;opacity:.53;filter:drop-shadow(2px 0 #79225d) drop-shadow(-1px 0 #254b67)}.rail-doodle img{position:absolute;max-width:none;width:calc(2048 / var(--crop-w) * 100%);height:calc(1050 / var(--crop-h) * 100%);left:calc(-1 * var(--crop-x) / var(--crop-w) * 100%);top:calc(-1 * var(--crop-y) / var(--crop-h) * 100%);image-rendering:pixelated}.rail-doodle:nth-child(2){top:56%;left:9%;width:80%;opacity:.43}.rail-right .rail-doodle:first-child{top:29%;left:14%;width:73%}.rail-right .rail-doodle:nth-child(2){top:58%;left:18%;width:68%}.rail-noise{position:absolute;inset:0;background:url('../assets/ui/terminal-noise.png') left top/409.6% 100% no-repeat;mix-blend-mode:multiply;opacity:.92;z-index:2;animation:rail-signal 19s steps(1) infinite}.rail-right .rail-noise{background-position:right top;animation-delay:-9s}@keyframes rail-signal{0%,97%,100%{transform:none;opacity:.92}97.3%{transform:translateX(2px);opacity:.8}97.6%{transform:none;opacity:1}98%{transform:translateX(-2px);opacity:.92}98.4%{transform:none}}
.jill-dialogue[role=button]{cursor:pointer;outline-offset:-3px}.jill-dialogue:focus-visible{outline:1px dashed #cda3d9}.dialogue-step .dialogue-copy{animation:dialogue-scan 150ms steps(1) 1}.dialogue-step::after{animation:dialogue-cue 210ms steps(1) 1}@keyframes dialogue-scan{0%{opacity:.5;text-shadow:1px 0 #dc7fce,-1px 0 #78cbd8}40%{opacity:.85;text-shadow:none}100%{opacity:1}}@keyframes dialogue-cue{0%,65%{opacity:.2}35%,100%{opacity:1}}
@media(max-width:1050px){.system-backdrop .terminal-rail{width:15vw}.rail-doodle{top:35%}.rail-right .rail-doodle:first-child{top:36%}}
@media(max-width:700px){.system-backdrop .terminal-rail{width:17vw;opacity:.6}.rail-doodle{top:39%}.rail-right .rail-doodle:first-child{top:40%}}
@media(prefers-reduced-motion:reduce){.rail-noise,.dialogue-step .dialogue-copy,.dialogue-step::after{animation:none!important}}
