/* Windows 98 shell with the user-selected coarse pixel cast and backgrounds. */
@import url('vendor/98.css') layer(win98-controls);
@font-face{font-family:FusionPixel;src:url('../assets/fonts/fusion-pixel-12px-monospaced-zh_hans.otf.woff2') format('woff2');font-display:swap;font-weight:400}
:root{--ui-font:FusionPixel,'SimSun',monospace;--desktop:#008080;--surface:#c0c0c0;--navy:#000080;--dialog-height:210px;--taskbar-height:32px}
html,body,.window,button,input,label,select,option,textarea{font-family:var(--ui-font);-webkit-font-smoothing:none;font-synthesis:none}
html,body{font-size:12px;line-height:1.5;color:#000;background:var(--desktop)}
button{min-width:0;text-shadow:none;color:inherit;cursor:pointer}
button:disabled{cursor:not-allowed}
input[type=checkbox]{appearance:auto;position:static;opacity:1;clip:auto;clip-path:none;width:16px;height:16px;margin:3px;vertical-align:middle}
button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px dotted var(--navy);outline-offset:-4px}
#viewport{position:absolute;background:var(--desktop)}
#stage{width:100vw;height:100dvh;box-shadow:none}
#desktop{inset:0 0 var(--taskbar-height) 0;background:var(--desktop)}
#gamewin{left:10px;top:8px;width:calc(100% - 20px);height:calc(100% - 48px)}
.titlebar{height:28px;flex-shrink:0;font-size:12px}
.title-bar-text{font-weight:bold}
.tb-btn{min-width:22px;min-height:22px;width:22px;height:22px;font-size:16px}
.tb-icon{font-family:var(--ui-font)}
.btn95{font-size:12px;min-height:32px}
.btn95.tiny{font-size:12px;min-height:28px}
.desktop-icon .doc-icon,.desktop-caption,.boot-win,.boot-sub{font-family:var(--ui-font)}
.desktop-icon{box-shadow:none;text-shadow:1px 1px #000;min-height:0}
.desktop-icon .icon-label{max-width:100px;overflow-wrap:normal}
.desktop-caption{font-size:24px;letter-spacing:0}
.boot-win{font-size:36px;letter-spacing:0}
.boot-sub{font-size:12px}
#taskbar{position:fixed;left:0;right:0;bottom:0;height:var(--taskbar-height);z-index:120}
#startmenu{position:fixed;bottom:var(--taskbar-height);z-index:121}
.start-item{box-shadow:none;min-height:0}
#overlay-root{bottom:var(--taskbar-height)}
#overlay-root>.overlay>.window{max-height:calc(100dvh - var(--taskbar-height) - 24px)}
#startbtn{font-size:12px;min-height:25px}
#clock,.taskitem,.start-item{font-size:12px}
#hud{height:40px;padding-left:12px;background:#c0c0c0;color:#000;border-bottom:2px groove #fff;gap:10px}
#hud-place{font-size:12px;letter-spacing:0;opacity:1}
#chaptertag{top:48px;left:10px;font-size:12px;letter-spacing:0}
#scene-note{top:48px}
.pip{width:12px;height:12px;box-shadow:none}
#portrait{bottom:var(--dialog-height);width:288px;height:324px}
.cast-sprite{display:block;width:100%;height:100%;background:url('../assets/pixel/characters.png') no-repeat;background-size:400% 200%;clip-path:inset(3% 0 0)}
/* Lower atlas row has 20 transparent pixels below the bust in a 470px cell. */
#portrait>.cast-sprite[data-row="1"]{transform:translateY(4.25532%)}
.scene-image{width:100%;height:100%;object-fit:cover;display:block}
.scene-image,.scene-image image,.cast-sprite{image-rendering:pixelated}
#scene::after{display:none}
#dialog{height:var(--dialog-height);border:2px outset #fff;box-shadow:none}
.dlg-title{height:30px;flex-shrink:0;font-size:12px}
.dlg-body{min-height:0;padding:10px 16px}
#dlg-speaker,#dlg-state{font-family:var(--ui-font);font-size:12px}
#dlg-text{font-family:var(--ui-font);font-size:24px;line-height:1.5;max-height:150px;letter-spacing:0;overflow-wrap:anywhere}
#choices{bottom:224px}
.choice{font-family:var(--ui-font);font-size:24px;line-height:1.5;padding:10px 14px}
.choice .csub{font-family:var(--ui-font);font-size:12px;opacity:1}
.modal-content{overflow-wrap:anywhere}
.modal-footer{font-size:12px}
.reader-hint{font-size:12px;line-height:1.75}
.reading-copy,.message-copy,.nb-detail{font-size:24px;line-height:1.5}
.reading-copy h2,.nb-detail h3,.nb-detail h4{font-size:24px}
.reading-copy label{font-size:12px}
.nb-detail .desc,.nb-detail .meta{font-family:var(--ui-font);font-size:24px;line-height:1.5}
.nb-detail .meta{font-size:12px}
.reader-notebook{height:min(740px,calc(100dvh - 24px));min-height:0}
/* Bound both grid rows so long transcripts never expand a clipped flex child. */
.reader-notebook .modal-content{display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;min-height:0}
.reader-notebook .nb-scroll{min-height:0;overflow-y:scroll;overscroll-behavior:contain;scrollbar-gutter:stable;touch-action:pan-y}
.nb-main,.nb-list,.nb-detail{min-height:0;min-width:0}
.nb-tabs{gap:2px;padding:6px 8px 0}
.nb-tab{font-size:12px;min-height:36px;padding:6px 14px}
.nb-tab.active{padding-bottom:6px}
.nb-list{width:34%;min-width:130px}
.nb-item{font-size:12px;min-height:44px}
.nb-item small,.nb-item .eid{font-size:12px}
.hypo-wrap,.hypo-row{font-size:24px;line-height:1.5}
.hypo-row{display:block}
.hypo-row small,.hypo-row span{display:block;font-size:12px}
.transcript{background:#fff}
.transcript p{padding-bottom:12px;border-bottom:1px dotted #aaa}
.transcript b{color:var(--navy)}
.title-reader{width:700px}
.title-reader .modal-content{background:var(--surface)}
.title-copy{padding:24px 30px 12px;background:var(--surface)}
.title-copy h1{font-family:var(--ui-font);font-size:48px;line-height:1.5;letter-spacing:12px;color:var(--navy);text-shadow:2px 2px #fff;margin:12px 0}
.title-copy p{font-family:var(--ui-font);font-size:24px;line-height:1.5;color:#222}
.edition-label,.title-meta,.title-fine{font-size:12px!important;letter-spacing:0}
.title-copy .menu-stack{padding:16px 20px;gap:8px}
.title-copy .btn95{font-size:24px;min-height:44px;padding:6px 12px}
.title-copy .btn95:disabled{color:#666}
.title-scene-caption,.archive-seal{display:none}
.meeting-stage{height:126px;min-height:126px;position:relative;flex-shrink:0;overflow:hidden;background:#52634d}
.meeting-backdrop{position:absolute;inset:0;overflow:hidden}
.stage-portrait{position:absolute;width:128px;height:144px;bottom:-18px;left:12px}
.stage-caption{position:absolute;left:150px;top:16px;display:flex;flex-direction:column;gap:4px;background:#000c;padding:6px 12px;color:#fff;font-size:12px}
.stage-caption strong{font-size:24px;font-weight:normal}
.stage-caption small,.stage-caption>span{font-size:12px}
.stage-mark{display:none}
.statement-list{padding:4px;gap:8px}
.stmt{display:flex;gap:12px;align-items:center;font-family:var(--ui-font);font-size:24px;line-height:1.5;padding:10px;min-height:108px}
.statement-copy{min-width:0}
.stmt .who{font-size:12px}
.face-crop{display:block;position:relative;overflow:hidden;width:48px;height:64px;flex-shrink:0;border:2px inset #ddd;background:#c0c0c0}
.face-crop .cast-sprite{position:absolute;width:96px;height:108px;left:50%;top:-8px;transform:translateX(-50%)}
.feedback-panel{font-size:12px;line-height:1.75;min-height:62px}
.debate-instructions{font-size:12px}
.cross-window .reading-copy{min-height:0}
.cross-window h2{font-size:24px}
.inter-summary,.place-purpose,.delay-list,.action-item,.action-item small,.action-item .cost{font-size:12px}
.inter-side h3{font-size:24px}
.loc-icon .loc-box{font-family:var(--ui-font);font-size:24px}
.loc-icon .loc-name{font-size:12px}
.factory-map{position:absolute;inset:12px;background:#80987c;color:#213b36;font-size:12px;border:1px solid #273b33;overflow:hidden}
.map-road{position:absolute;background:#bcc1ab;border:2px dashed #788773}
.road-a{left:5%;right:5%;top:48%;height:14%}.road-b{top:5%;bottom:5%;left:45%;width:10%}
.map-building{position:absolute;padding:12px 8px;background:#b1b6a0;border:3px outset #bac0ad}
.map-workshop{left:5%;top:8%;width:34%}.map-admin{right:5%;top:8%;width:32%}.map-annex{left:5%;bottom:10%;width:34%}.map-store{right:5%;bottom:10%;width:32%}
.map-compass{position:absolute;right:8px;top:4px}.map-caption{position:absolute;bottom:2px;left:8px;font-size:12px}
.v-opt,.v-opt .v-sub,.v-miss,.attachment-grid{font-size:12px}
.draft-page,.paper .body{font-family:var(--ui-font);font-size:24px;line-height:1.5}
.draft-page h2,.paper .doctitle{font-family:var(--ui-font);font-size:24px}
.paper .redhead{font-family:var(--ui-font);font-size:24px;letter-spacing:6px}
.paper .docno,.paper .sign{font-family:var(--ui-font);font-size:12px}
.brief-note p,.ending-card .end-text{font-family:var(--ui-font);font-size:24px;line-height:1.5}
.note-head{font-size:24px}.note-sign{font-size:12px}
.ending-card h1{font-family:var(--ui-font);font-size:36px;letter-spacing:0}
.save-row,.save-row p{font-size:12px}
.reduce-motion *,.reduce-motion *::before,.reduce-motion *::after{scroll-behavior:auto!important}
.notepad-reader{display:flex;flex-direction:column;width:min(840px,100%);height:min(730px,calc(100dvh - 56px))}
.notepad-reader .modal-content{padding:0;overflow:visible;min-height:0}
.notepad-reader .modal-footer{display:none}
.notepad-menubar{display:flex;flex-shrink:0;position:relative;z-index:1;gap:0;padding:2px;background:var(--surface);font-size:12px}
.notepad-menubar details{position:relative}
.notepad-menubar summary{list-style:none;cursor:pointer;padding:4px 10px}
.notepad-menubar summary::-webkit-details-marker{display:none}
.notepad-menubar details[open]>summary,.notepad-menubar summary:hover{background:var(--navy);color:#fff}
.notepad-menubar summary:focus-visible{outline:1px dotted #000;outline-offset:-2px}
.notepad-dropdown{position:absolute;top:100%;left:0;min-width:170px;padding:3px;background:var(--surface);border:2px outset #fff}
.notepad-dropdown button{display:block;width:100%;text-align:left;white-space:nowrap;min-height:30px;padding:4px 10px;border:0;box-shadow:none;background:transparent;font-size:12px}
.notepad-dropdown button:hover{background:var(--navy);color:#fff}
#readme-text{flex:1;min-height:0;width:100%;resize:none;overflow:auto;border:2px inset #ddd;box-shadow:none;background:#fff;color:#000;padding:12px;font:24px/1.5 var(--ui-font);white-space:pre-wrap;overflow-wrap:break-word;user-select:text;cursor:text}
@media(min-width:701px){
 #overlay-root>.overlay{background:transparent}
 .desktop-caption,.desktop-date{display:none}
}
@media(max-width:700px){
 :root{--dialog-height:230px}
 #stage{width:100vw;height:100dvh}
 #gamewin{left:3px;top:3px;width:calc(100% - 6px);height:calc(100% - 38px)}
 #hud{height:64px;padding:4px 8px}#chaptertag{top:72px}
 #scene-note{top:102px}#portrait{width:192px;height:216px}
 .dlg-body{padding:10px 12px}#dlg-text{max-height:176px}
 #choices{bottom:240px}.choice{font-size:24px}
 .nb-list{width:34%;min-width:105px}.nb-tab{padding:6px 8px;min-height:44px}
 .nb-detail{padding:12px}.nb-item{padding:9px 5px}
 .title-copy{padding:14px 12px 8px}.title-copy h1{font-size:48px;letter-spacing:0}
 .title-copy .menu-stack{padding:12px 4px}.title-copy p{font-size:24px}
 .reading-copy,.message-copy{padding:16px}
 .modal-footer .btn95{font-size:12px;min-height:44px;padding:8px}
 .meeting-stage{height:100px;min-height:100px}.stage-caption{left:104px;top:8px;padding:6px}
 .stage-caption>span{display:none}.stage-portrait{left:4px;width:96px;height:108px;bottom:-8px}
 .stmt{font-size:24px;gap:8px}.face-crop{width:36px}
 .print-reader .paper{padding:20px 14px}.draft-page{padding:16px}
 .ending-card{padding:20px 16px}.ending-card h1{font-size:24px}
 .map-caption{font-size:12px}.brief-background{padding:16px}.brief-note{padding:20px}
 .btn95.tiny{min-height:40px}
}
@media(max-height:500px) and (min-width:701px){
 :root{--dialog-height:150px}
 .debate-window,.cross-window{height:calc(100dvh - 24px)}
 .debate-window .modal-content,.cross-window .modal-content{overflow-y:auto}
 .meeting-stage{height:96px;min-height:96px}
 .statement-list{flex:none;overflow:visible}
 .debate-instructions,.feedback-panel{flex-shrink:0}
 #dlg-text{max-height:96px}
 #portrait{height:162px;width:144px}
 #choices{bottom:160px}
}
