:root{--ink:#090d20;--line:#7372bf;--pink:#ee86dc;--muted:#8293c1;font-family:Consolas,'Courier New','Microsoft YaHei',monospace}
[hidden]{display:none!important}
button{border-radius:0;box-shadow:none;transition:background .12s,border-color .12s}button:focus-visible,.window-titlebar:focus-visible{outline:2px solid var(--pink);outline-offset:3px}#room,.phone-mode #room{left:0;width:100%;transition:none}
.desktop-chrome{position:fixed;top:30px;left:32px;right:32px;z-index:5;align-items:flex-start;gap:28px;pointer-events:none}.pixel-panel{border:2px solid #7374b3;outline:1px solid #252c68;background:#080c1eee;box-shadow:inset 2px 0 #c4ccef,inset -2px 0 #292b63}
.brand{width:325px;flex:none}.brand-bar{height:15px;border-bottom:1px solid #91a9e1;background:#123f8a}.brand-copy{padding:12px 16px 10px}.eyebrow{font-size:10px;letter-spacing:1.7px;color:#c5d1e9}h1{font-size:30px;line-height:1.15;margin:8px 0 7px;letter-spacing:0;text-shadow:2px 2px #272451}.subtitle{font-size:13px;letter-spacing:2px}.goodnight{font-size:9px;color:#819bd0;letter-spacing:1.4px;margin:13px 0 0}
.city-panel{width:min(47vw,615px);display:flex;padding:8px;gap:9px}.city-view{position:relative;flex:1;min-width:0;aspect-ratio:4.48;overflow:hidden;border:1px solid #6761a6;background:#060d29}.city-view img{position:absolute;width:293.71%;max-width:none;height:auto;left:-147.26%;top:-49.09%;image-rendering:pixelated}.city-clock{width:125px;flex:none;border:1px solid #57508d;padding:6px 10px;display:flex;flex-direction:column;justify-content:center;gap:5px}#time{font:bold 30px/1 Consolas,monospace;color:var(--pink);margin:0}#cityDate{font-size:11px;letter-spacing:1px;color:#a0a4e6}.city-clock small{font-size:9px;line-height:1.6;letter-spacing:1.2px;color:#8289c4}
.room-launchers{position:fixed;left:32px;top:215px;z-index:6;display:flex;flex-direction:column;align-items:flex-start;gap:12px}#phoneButton,#systemButton{position:static;min-width:110px;height:37px;min-height:37px;padding:6px 11px;font:13px Consolas,monospace;letter-spacing:1px;border:1px solid #8c85c1;background:#090e20e8;display:block;color:#c5d9ef}#sound{font:13px Consolas,monospace;min-height:28px;min-width:70px;padding:4px 8px;color:#bd85be;border-color:#49466e;background:#090e20c0}#sound span{font:10px Consolas,monospace;margin:0 0 0 5px;color:#a6b8d8}
#phonePanel,#jillPanel,#systemPanel{position:fixed;right:auto;bottom:auto;transform:none;opacity:1;visibility:visible;pointer-events:auto;display:block;padding:0;transition:none;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);overflow:hidden;background:#080c1bf7;border:2px solid #70729c;outline:1px solid #171e4c;box-shadow:inset 2px 0 #8b96c0,inset -2px 0 #30335a;backdrop-filter:none;border-radius:0}
.desktop-window.is-active{border-color:#b4bef2!important;outline-color:#5955a1!important}.desktop-window:focus{outline:1px solid #5955a1}.window-titlebar{height:25px;background:#242650;border-bottom:1px solid #69749f;display:flex;align-items:center;justify-content:space-between;padding:0 4px 0 9px;color:#aabce0;font-size:11px;letter-spacing:2px;cursor:grab;user-select:none;touch-action:none}.is-active .window-titlebar{background:#123d85;color:#ebddfa}.window-titlebar.dragging{cursor:grabbing}.window-actions{display:flex;gap:4px}.window-actions button{width:19px;height:18px;min-width:19px;min-height:18px;padding:0;border:1px solid #a88cb8;background:#b784bf;color:#18285a;font:bold 18px/14px Consolas;box-shadow:inset 1px 1px #f1b5ef}.is-active .window-actions button{background:#ed8bdc}.window-actions button:hover{background:#ffd3f4;color:#080c20}
#jillPanel{width:690px}.jill-dialogue{display:flex;align-items:center;gap:23px;padding:12px 15px;min-height:130px}#jillPortrait{width:104px;height:108px;object-fit:cover;object-position:center 17%;image-rendering:pixelated;border:1px solid #837cb8;background:#170e2c}.dialogue-copy{min-width:0}.dialogue-copy strong{font-size:16px;color:var(--pink);font-weight:normal}.dialogue-copy p{font-size:15px;line-height:1.5;white-space:pre-line;color:#d0ddeb;margin:9px 0 0}
#phonePanel{width:250px;height:470px;max-height:calc(100dvh - 16px)}.phone-idle{height:calc(100% - 25px);margin:0;padding:26px 12px 20px;border:8px solid #141831;box-shadow:inset 0 0 0 1px #4e4c76;background:#030611;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;color:#787594;font-size:14px;letter-spacing:4px}.phone-idle i{width:28px;height:2px;background:#494163}#systemPanel{width:310px;height:190px}.system-idle{height:calc(100% - 25px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#8084aa;letter-spacing:3px;font-size:13px}
#windowDock{position:fixed;left:24px;bottom:23px;display:flex;gap:6px;flex-wrap:wrap;max-width:calc(100vw - 48px);z-index:2147483000}#windowDock button{min-height:27px;min-width:73px;padding:4px 9px;font-size:11px;letter-spacing:1px;background:#0c142beF;border:1px solid #7472a3;color:#afc5e8}#windowDock button:hover{border-color:var(--pink);color:#f0a7df;background:#252146}
#jillCharacter{position:fixed;z-index:3;transform:translate(-50%,-50%);padding:0;min-width:0;min-height:0;width:55px;height:76px;border:1px solid #746195;background:#181024;touch-action:manipulation}#jillCharacter>img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 10%;image-rendering:pixelated}.scene-label{position:absolute;bottom:calc(100% + 9px);left:50%;transform:translateX(-50%);white-space:nowrap;padding:5px 8px;border:1px solid #bb86c7;background:#080c20;color:#e3d3ef;font-size:11px;opacity:0;pointer-events:none}#jillCharacter:hover .scene-label,#jillCharacter:focus-visible .scene-label{opacity:1}
#tooltip{border:1px solid #9b7eb6;background:#0a0e20;color:#cbdcf1;padding:5px 8px;font:11px Consolas,monospace;box-shadow:none;z-index:7}#notice{z-index:8;border:1px solid #565077;background:#0a0e21f2;box-shadow:none;padding:10px 16px}#noticeText{font-size:12px}footer{bottom:24px;left:32px;right:32px;z-index:4}.hint,.zoom{display:none}.footnote{margin-left:auto;font-size:9px;letter-spacing:2px;color:#6b739a}.footnote span{color:#9d689f}#menu{display:none}#loading{z-index:2147483100}.frame-corners{position:fixed;inset:12px;border:1px solid #48437a;opacity:.38;pointer-events:none;z-index:2;clip-path:polygon(0 0,40px 0,40px 2px,2px 2px,2px 40px,0 40px,0 0,100% 0,100% 40px,calc(100% - 2px) 40px,calc(100% - 2px) 2px,calc(100% - 40px) 2px,calc(100% - 40px) 0,100% 0,100% 100%,calc(100% - 40px) 100%,calc(100% - 40px) calc(100% - 2px),calc(100% - 2px) calc(100% - 2px),calc(100% - 2px) calc(100% - 40px),100% calc(100% - 40px),100% 100%,0 100%,0 calc(100% - 40px),2px calc(100% - 40px),2px calc(100% - 2px),40px calc(100% - 2px),40px 100%,0 100%)}
@media(max-width:800px){.desktop-chrome{top:18px;left:18px;right:18px;gap:16px}.brand{width:265px}.brand-copy{padding:9px 12px}h1{font-size:24px}.eyebrow{font-size:8px}.goodnight{font-size:8px;letter-spacing:.5px}.city-panel{width:42vw}.city-clock{width:98px;padding:5px}#time{font-size:25px}.city-clock small{display:none}.room-launchers{top:190px;left:18px}}
@media(max-width:540px){.desktop-chrome{top:14px;left:14px;right:14px;gap:10px}.brand{width:53%}.brand-bar{height:10px}.brand-copy{padding:9px}.eyebrow{font-size:6px;letter-spacing:.6px}h1{font-size:20px;margin:6px 0}.subtitle{font-size:10px;letter-spacing:1px}.goodnight{display:none}.city-panel{flex:1;width:auto;display:block;padding:4px}.city-view{width:100%;aspect-ratio:4.48}.city-clock{border:0;width:auto;padding:5px 0 0;align-items:center;gap:3px}#time{display:block;font-size:22px}#cityDate{font-size:8px}.room-launchers{top:139px;left:14px;gap:8px}#phoneButton,#systemButton{min-width:87px;height:29px;min-height:29px;font-size:10px;padding:5px 7px}#sound{min-width:60px;min-height:25px;font-size:11px}.jill-dialogue{gap:12px;padding:10px;min-height:112px}#jillPortrait{width:70px;height:86px}.dialogue-copy p{font-size:12px}.dialogue-copy strong{font-size:14px}#phonePanel{width:230px;height:430px}#jillCharacter{width:40px;height:57px}#windowDock{left:14px;bottom:16px;gap:4px}footer{right:15px;bottom:18px}.footnote{font-size:7px;letter-spacing:1px}}
@media(max-height:530px){.desktop-chrome{top:12px}.brand-copy{padding:8px 12px}.subtitle,.goodnight{display:none}.room-launchers{top:123px}.city-clock small{display:none}#phonePanel{height:calc(100dvh - 32px);width:220px}}
/* Keep the compact audio state readable on touch screens. */
#sound span{display:inline}
#phonePanel,#jillPanel,#systemPanel{background:#080c1b}
