:root{--black:#000;--ink:#aaa;--bright:#fff;--dim:#555;--faint:#222;--paper:#000;--bar:#0000aa;--amber:#ffff55;--red:#ff5555;--cyan:#55ffff;--blue:#5555ff;--magenta:#ff55ff;--green:#55ff55;--brown:#aa5500;--font:"Lucida Console",Consolas,Monaco,monospace}
*{box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden}html{background:var(--black);color-scheme:dark}body{margin:0;background:#010402;color:var(--ink);font:clamp(10px,.78vw,15px)/1.28 var(--font);text-rendering:geometricPrecision}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:1px solid var(--bright);outline-offset:-2px}[hidden]{display:none!important}
.boot-screen,.auth-screen{position:fixed;inset:0;z-index:20;background:#010402;display:grid;place-items:center}.boot-copy{width:min(720px,82vw);display:flex;flex-direction:column;gap:.45em;font-size:clamp(12px,1.05vw,19px)}.boot-copy strong,.boot-copy b{color:var(--bright)}.dim{color:var(--dim)}.boot-copy [data-boot-line]{opacity:0;animation:appear .01s forwards}.boot-copy [data-boot-line="1"]{animation-delay:.24s}.boot-copy [data-boot-line="2"]{animation-delay:.47s}.boot-copy [data-boot-line="3"]{animation-delay:.7s}.boot-copy [data-boot-line="4"]{animation-delay:.93s}.boot-copy [data-boot-line="5"]{animation-delay:1.16s}.boot-copy [data-boot-line="6"]{animation-delay:1.48s}@keyframes appear{to{opacity:1}}.cursor-block,.terminal-prompt i{display:inline-block;width:.65em;height:1em;background:var(--bright);animation:blink .8s steps(1) infinite}@keyframes blink{50%{opacity:0}}#skip-boot{position:absolute;bottom:6vh;border:0;background:none;color:var(--dim);cursor:pointer}
.auth-box{width:min(620px,86vw);border:2px solid var(--ink);box-shadow:0 0 0 2px #071007,0 0 0 3px var(--dim)}.auth-title,.auth-footer{background:var(--ink);color:#031004;padding:.45em .8em;font-weight:bold}.auth-body{min-height:260px;padding:clamp(25px,5vh,50px) clamp(20px,5vw,60px)}.auth-rule{color:var(--dim)}.auth-body label{display:block;margin:1.2em 0;color:var(--ink)}.auth-body label span{color:var(--bright)}.auth-body input{width:min(280px,55vw);border:0;background:transparent;color:var(--bright);outline:0;caret-color:var(--bright)}.auth-message{margin-top:2em;color:var(--dim);min-height:2.5em}.auth-message.error{color:var(--red)}.auth-message.success{color:var(--bright)}.auth-footer{background:var(--bar);color:var(--ink);font-weight:normal}
.system-shell{width:100%;height:100%;display:grid;grid-template-rows:clamp(28px,3.8vh,40px) 1fr clamp(30px,4.5vh,48px);padding:clamp(5px,.7vw,12px);background:radial-gradient(circle at 50% 40%,#071108,#010402 76%)}.dos-menubar{display:flex;align-items:stretch;background:var(--ink);color:#031004;position:relative;z-index:5}.dos-menubar button{border:0;background:transparent;color:#031004;padding:0 clamp(8px,1.2vw,20px);cursor:pointer}.dos-menubar button:hover,.dos-menubar button.active{background:#031004;color:var(--bright)}.dos-menubar u{text-decoration:none;color:inherit}.menu-spacer{flex:1}.dos-menubar>span:not(.menu-spacer){display:grid;place-items:center;padding:0 12px;background:#071208;color:var(--bright);border-left:1px solid var(--dim)}.menu-popup{position:absolute;z-index:15;top:calc(clamp(5px,.7vw,12px) + clamp(28px,3.8vh,40px));left:clamp(5px,.7vw,12px);min-width:230px;background:#071108;border:1px solid var(--bright);box-shadow:4px 4px #000;padding:4px}.menu-popup button{display:flex;width:100%;justify-content:space-between;border:0;background:transparent;padding:7px 10px;text-align:left;cursor:pointer}.menu-popup button:hover,.menu-popup button.selected{background:var(--ink);color:#031004}
.dos-screen{min-height:0;position:relative;border:1px solid var(--dim);background-color:#020703;background-image:linear-gradient(rgba(92,151,54,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(92,151,54,.025) 1px,transparent 1px);background-size:16px 16px;overflow:hidden}.shell-screen{height:100%;display:grid;grid-template-rows:1fr auto;padding:clamp(10px,1.5vw,24px)}.terminal-output{min-height:0;overflow:hidden;white-space:pre-wrap;color:var(--ink)}.terminal-output .bright{color:var(--bright)}.terminal-output .dim{color:var(--dim)}.terminal-output .error{color:var(--red)}.terminal-output .amber{color:var(--amber)}.terminal-prompt{display:flex;align-items:center;color:var(--bright);min-height:1.45em}.terminal-prompt span{white-space:nowrap}.terminal-prompt input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--bright);text-transform:none;caret-color:transparent;padding:0}.terminal-prompt i{flex:none}
.program-screen,.game-screen{height:100%;padding:clamp(5px,.65vw,10px)}.program-content{height:100%;display:grid;grid-template-rows:auto 1fr auto;border:1px solid var(--ink);background:#020703}.program-title{display:flex;justify-content:space-between;align-items:center;min-height:clamp(27px,3.8vh,39px);padding:0 10px;background:var(--ink);color:#031004;font-weight:bold}.program-body{min-height:0;overflow:hidden;padding:clamp(7px,1vw,15px);white-space:pre-wrap}.program-status{min-height:clamp(25px,3.5vh,36px);display:flex;align-items:center;justify-content:space-between;padding:0 9px;background:var(--bar);color:var(--bright)}.program-status .hot{background:var(--ink);color:#031004;padding:1px 4px}.box{border:1px solid var(--ink);position:relative;padding:1.2em 1em .7em}.box-title{position:absolute;top:-.65em;left:1em;background:#020703;padding:0 .5em;color:var(--bright)}
.file-manager{display:grid;grid-template-columns:1fr 1fr;gap:6px;height:100%;min-height:0}.file-pane{border:1px solid var(--ink);display:grid;grid-template-rows:auto 1fr auto;min-width:0}.pane-title{text-align:center;background:var(--bar);color:var(--bright);padding:4px;white-space:nowrap;overflow:hidden}.file-list{padding:4px;overflow:hidden}.file-row{display:grid;grid-template-columns:1fr auto;gap:8px;padding:2px 4px;white-space:nowrap}.file-row.selected{background:var(--ink);color:#031004}.file-row .dir{color:var(--bright)}.pane-info{padding:3px 6px;border-top:1px solid var(--dim);color:var(--dim)}
.nfo-program pre{margin:0;height:100%;overflow:hidden;white-space:pre;font:clamp(8px,.69vw,13px)/1.18 var(--font);color:#c6eeba}.release-grid{display:grid;grid-template-rows:auto 1fr auto;height:100%}.release-head,.release-row{display:grid;grid-template-columns:16% 48% 14% 12% 10%;gap:4px;padding:4px 6px}.release-head{border-bottom:1px double var(--ink);color:var(--bright)}.release-row.selected{background:var(--ink);color:#031004}.release-detail{border-top:1px solid var(--ink);padding:8px;color:var(--ink)}
.editor-program{padding:0}.editor-program textarea{display:block;width:100%;height:100%;resize:none;border:0;outline:0;background:#020703;color:var(--bright);padding:10px;font:inherit;line-height:1.3;caret-color:var(--bright)}
.utility-layout{height:100%;display:grid;grid-template-rows:auto auto 1fr auto;gap:clamp(6px,1vh,12px)}.utility-info{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.utility-info span{color:var(--dim)}.cluster-map{display:grid;grid-template-columns:repeat(32,1fr);grid-auto-rows:1fr;gap:2px;min-height:0;border:1px solid var(--dim);padding:5px;background:#010402}.cluster{background:#41682f}.cluster.free{background:#102313}.cluster.frag{background:#b3c83d}.cluster.system{background:var(--bright)}.cluster.bad{background:var(--red)}.progress-bar{display:flex;border:1px solid var(--ink);height:1.35em}.progress-bar i{background:var(--bright);display:block;width:0}.progress-label{text-align:center;color:var(--bright)}
.sysinfo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(10px,2vw,28px);height:100%;padding:clamp(10px,2vw,30px)}.sysinfo dl{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:0}.sysinfo dt{color:var(--dim)}.sysinfo dd{margin:0;color:var(--bright)}.control-list{width:min(600px,90%);margin:4vh auto;border:1px solid var(--ink)}.control-row{display:grid;grid-template-columns:1fr auto;padding:10px;border-bottom:1px solid var(--dim)}.control-row.selected{background:var(--ink);color:#031004}
.bbs-menu{width:min(720px,90%);margin:3vh auto}.bbs-logo{text-align:center;color:var(--bright);font-size:1.4em;line-height:1.2}.bbs-menu button{display:block;width:100%;border:0;background:transparent;text-align:left;padding:7px 12px}.bbs-menu button.selected,.bbs-menu button:hover{background:var(--ink);color:#031004}.mascot-program{height:100%;display:grid;grid-template-columns:1fr minmax(180px,38%);align-items:center}.mascot-program pre{color:var(--bright);font-size:clamp(10px,1.1vw,18px)}.mascot-program img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 12px rgba(180,255,50,.2))}
.game-screen{display:grid;grid-template-rows:auto 1fr}.game-stage{min-height:0;position:relative;display:grid;place-items:center;border:1px solid var(--ink);border-top:0;background:#010402}.game-stage canvas{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.game-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(8px,2vh,18px);background:rgba(1,5,2,.82);text-align:center}.game-overlay.hidden{display:none}.game-overlay strong{font-size:clamp(28px,5vw,72px);color:var(--bright)}.game-overlay button{border:1px solid var(--ink);background:#071208;padding:8px 14px;cursor:pointer}.game-overlay small{color:var(--dim)}
.more-prompt{position:absolute;right:8px;bottom:7px;background:var(--ink);color:#031004;padding:2px 8px;z-index:8}.screen-flash{position:absolute;inset:0;pointer-events:none;opacity:0;background:repeating-linear-gradient(0deg,transparent 0 4px,rgba(190,255,70,.25) 5px)}.dos-screen.redraw .screen-flash{animation:redraw .15s steps(3)}@keyframes redraw{35%{opacity:.45;transform:translateY(-4%)}70%{opacity:.1;transform:translateY(8%)}}
.function-bar{display:grid;grid-template-columns:repeat(10,1fr);background:#020703;border:1px solid var(--dim);border-top:0;min-width:0}.function-bar button{min-width:0;border:0;background:transparent;color:var(--ink);padding:0 3px;font-size:.83em;white-space:nowrap;cursor:pointer;overflow:hidden}.function-bar button:hover{background:var(--bar)}.function-bar b{background:var(--ink);color:#031004;padding:1px 3px}
@media(max-width:900px){.dos-menubar button{padding:0 7px;font-size:.86em}.dos-menubar>span:not(.menu-spacer){padding:0 6px}.function-bar button{font-size:0}.function-bar b{font-size:10px}.release-head,.release-row{grid-template-columns:20% 55% 15% 10%}.release-head>:last-child,.release-row>:last-child{display:none}.sysinfo{padding:10px;gap:10px}.cluster-map{grid-template-columns:repeat(24,1fr)}}
@media(max-height:700px){.system-shell{padding:4px;grid-template-rows:27px 1fr 29px}.shell-screen{padding:8px}.program-screen,.game-screen{padding:3px}.program-body{padding:6px}.cluster-map{gap:1px;padding:3px}.auth-body{min-height:220px;padding-top:25px;padding-bottom:25px}}
@media(max-width:650px){.dos-menubar button:nth-of-type(n+4){display:none}.file-manager{grid-template-columns:1fr}.file-pane:nth-child(2){display:none}.sysinfo{grid-template-columns:1fr}.sysinfo>.box:nth-child(2){display:none}.utility-info{grid-template-columns:1fr 1fr}.mascot-program{grid-template-columns:1fr}.mascot-program img{position:absolute;opacity:.2}.nfo-program pre{font-size:7px}}
.auth-message{white-space:pre-line}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* VGA / ANSI scene identity */
body{background:#000;color:var(--ink)}
.boot-screen,.auth-screen{background:#000}.boot-copy{color:#aaa}.boot-copy strong{color:#fff}.boot-copy b{color:#55ff55}.boot-copy [data-boot-line="1"]{animation-delay:.18s}.boot-copy [data-boot-line="2"]{animation-delay:.31s}.boot-copy [data-boot-line="3"]{animation-delay:.55s}.boot-copy [data-boot-line="4"]{animation-delay:.72s}.boot-copy [data-boot-line="5"]{animation-delay:.9s}.boot-copy [data-boot-line="6"]{animation-delay:1.12s}.boot-copy [data-boot-line="7"]{opacity:0;animation:appear .01s 1.28s forwards}.boot-copy [data-boot-line="8"]{opacity:0;animation:appear .01s 1.48s forwards}
.auth-box{border:0;box-shadow:none;width:min(660px,88vw)}.auth-title{background:#0000aa;color:#fff;text-align:center}.auth-body{border-left:2px solid #5555ff;border-right:2px solid #5555ff;background:#000;padding-top:22px}.auth-footer{background:#0000aa;color:#fff}.auth-rule{color:#ff55ff}.ansi-cyan{color:#55ffff}.ansi-yellow{color:#ffff55}
.system-shell{width:min(100%,calc(100vh * 1.48));margin:0 auto;padding:clamp(4px,.55vw,8px);background:#000;box-shadow:0 0 0 1px #222}.dos-menubar{background:#aaa;color:#000}.dos-menubar button{color:#000}.dos-menubar button:hover,.dos-menubar button.active{background:#0000aa;color:#fff}.dos-menubar>span:not(.menu-spacer){background:#000;color:#55ffff;border-color:#555}.menu-popup{background:#0000aa;border-color:#fff;box-shadow:8px 8px #000;color:#fff}.menu-popup button:hover,.menu-popup button.selected{background:#aaa;color:#000}
.dos-screen{background:#000;border-color:#555;background-image:none}.shell-screen{padding:clamp(8px,1.1vw,16px)}.terminal-output{color:#aaa}.terminal-output .bright,.terminal-prompt{color:#fff}.terminal-output .dim{color:#555}.terminal-output .amber{color:#ffff55}
.program-screen,.game-screen{padding:2px}.program-content{border:0;background:#000}.program-title{background:#0000aa;color:#fff;min-height:28px}.program-body{background:#000}.program-status{background:#aaa;color:#000}.box{border-color:#55ffff}.box-title{background:#000;color:#ffff55}.file-pane{border-color:#55ffff}.pane-title{background:#0000aa;color:#fff}.file-row.selected{background:#00aaaa;color:#000}.file-row .dir{color:#55ffff}.pane-info{color:#55ffff;border-color:#00aaaa}.function-bar{background:#000;border-color:#555}.function-bar b{background:#aaa;color:#000}.function-bar button{color:#aaa}.function-bar button:hover{background:#0000aa;color:#fff}
.ansi-blue{color:#5555ff}.ansi-cyan{color:#55ffff}.ansi-green{color:#55ff55}.ansi-red{color:#ff5555}.ansi-magenta{color:#ff55ff}.ansi-yellow{color:#ffff55}.ansi-white{color:#fff}.ansi-gray{color:#aaa}
.intro-program{position:relative;padding:0!important;background:#000;overflow:hidden}.intro-program canvas{display:block;width:100%;height:100%;image-rendering:pixelated}.intro-dog{position:absolute;right:2.5%;bottom:12%;width:min(25%,220px);max-height:42%;object-fit:contain;image-rendering:pixelated;filter:none;mix-blend-mode:screen}.scrolltext{height:2.1em;line-height:2.1em;overflow:hidden;white-space:nowrap;background:#0000aa;color:#ffff55;border-top:2px solid #55ffff;border-bottom:2px solid #ff55ff;font-weight:bold}.scrolltext-track{display:inline-block;padding-left:100%;animation:scene-scroll 28s steps(280,end) infinite}@keyframes scene-scroll{to{transform:translateX(-100%)}}
.release-frame{height:100%;display:grid;grid-template-rows:auto auto 1fr auto;border:2px double #5555ff}.release-banner{text-align:center;color:#ffff55;background:#0000aa;padding:5px}.release-head,.release-row{grid-template-columns:15% 49% 10% 12% 14%;border-bottom:1px solid #5555ff}.release-head{color:#55ffff}.release-row:nth-child(odd){color:#aaa}.release-row:nth-child(even){color:#fff}.release-row.selected{background:#aa00aa;color:#fff}.release-detail{border:1px solid #00aaaa;color:#55ff55;background:#000;line-height:1.35}
.bbs-menu{width:min(760px,96%);margin:1vh auto}.bbs-logo{color:#55ffff}.bbs-stats{color:#aaa;border:1px solid #0000aa;padding:6px;margin:5px 0}.bbs-stats b{color:#ffff55}.bbs-menu button{color:#55ff55}.bbs-menu button.selected,.bbs-menu button:hover{background:#0000aa;color:#fff}.bbs-dial{padding:5vh 8%;font-size:1.1em;color:#aaa}.bbs-dial .carrier{color:#55ffff}.bbs-transmit{animation:bbs-reveal .35s steps(4)}@keyframes bbs-reveal{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}
.nfo-program pre{color:#aaa}.game-stage{border-color:#5555ff}.game-stage canvas{width:auto;height:100%;max-width:100%;aspect-ratio:16/9;image-rendering:pixelated}.game-overlay{background:#000;color:#aaa;gap:8px}.game-overlay strong{font-size:clamp(24px,3vw,42px);color:#ffff55;text-shadow:2px 2px #aa0000}.game-overlay .shareware-label{color:#55ffff}.game-overlay button{border:0;background:#0000aa;color:#fff}.cluster-map{border-color:#5555ff}.cluster{background:#00aa00}.cluster.free{background:#000}.cluster.frag{background:#aaaa00}.cluster.system{background:#00aaaa}.cluster.bad{background:#aa0000}
@media(min-aspect-ratio:3/2){body:before,body:after{content:"";position:fixed;top:0;bottom:0;width:max(0px,calc((100vw - 148vh)/2));background:#000;z-index:1;pointer-events:none}body:before{left:0}body:after{right:0}.system-shell{position:relative;z-index:2}}
.intro-program .scrolltext{position:absolute;left:0;right:0;bottom:0}
.intro-dog{animation:kdog-sprite .7s steps(2,end) infinite}@keyframes kdog-sprite{50%{transform:translate(-2px,2px)}}
.terminal-prompt input{caret-color:var(--bright)}
.terminal-prompt i{display:none}

/* INTRO runs as an exclusive VGA program, outside the normal DOS chrome. */
.system-shell.intro-active{width:100%;padding:0;grid-template-rows:1fr;box-shadow:none}
.intro-active .dos-menubar,.intro-active .function-bar{display:none}
.intro-active .dos-screen{border:0;border-radius:0;box-shadow:none}
.intro-active .program-screen{padding:0}
.intro-active .program-content{display:block;height:100%}
.intro-active .intro-program{width:100%;height:100%}
.intro-active .intro-program #intro-canvas{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
.intro-active .intro-program #intro-sprite{position:absolute;right:3%;bottom:11%;width:22%;height:auto;aspect-ratio:4/3;background:#000;image-rendering:pixelated;filter:none;mix-blend-mode:normal;animation:kdog-vga .55s steps(2,end) infinite}
@keyframes kdog-vga{50%{transform:translate(-2px,1px)}}
