:root{--case:#77756d;--case-dark:#343532;--glass:#07110d;--phosphor:#b6e8bd;--amber:#e7bb70}
*,*::before,*::after{box-sizing:border-box}.bbs-page{width:min(96vw,1500px);max-width:calc(100vw - 24px);margin-inline:auto}.bbs-hero{gap:.35rem;padding-bottom:.6rem}.bbs-hero h1{font-size:clamp(2.1rem,5vw,4.6rem);margin-bottom:0}.bbs-hero .observer-hero{margin:.15rem auto 0}.bbs-hero .observer-hero+p{margin-top:0}
.workstation{container-name:bbs-workstation;container-type:inline-size;display:flex;flex-direction:column;width:100%;max-width:100%;min-width:0;background:#252724;border:1px solid #696b65;border-radius:8px;padding:clamp(.65rem,1.5vw,1.2rem);box-shadow:0 18px 60px #0008;overflow:visible}.station-head,.modem-brand,.palette>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:1rem}.station-head{margin-bottom:.75rem;min-width:0}.station-identity{flex:0 0 auto;min-width:0}.station-identity .museum-section-label,.station-head h2{white-space:nowrap}.station-head h2{margin:.1rem 0;font-size:clamp(1.15rem,2vw,1.55rem)}
.client-toolbar{min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:.45rem;flex-wrap:wrap;font-size:.82rem}.client-toolbar label{display:flex;align-items:center;gap:.35rem;white-space:nowrap}.client-toolbar button,.client-toolbar select,.palette button,.more-controls summary,.station-footer button{font:inherit;color:#eee;background:#30332f;border:1px solid #777;padding:.4rem .55rem}.client-toolbar select{max-width:12rem}.call-button{color:#171817!important;background:var(--amber)!important;border-color:#f2d778!important;font-weight:800}.client-toolbar :focus-visible,.palette :focus-visible,.station-footer :focus-visible{outline:3px solid #f2d778;outline-offset:2px}.more-controls{position:relative}.more-controls summary{cursor:pointer;list-style:none}.more-controls summary::-webkit-details-marker{display:none}.more-controls summary::after{content:" ▾"}.more-controls[open] summary::after{content:" ▴"}.settings-panel{position:absolute;z-index:15;top:calc(100% + .35rem);right:0;width:min(390px,calc(100vw - 32px));display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem;padding:.6rem;background:#161815;border:1px solid #777;box-shadow:0 10px 30px #000}.settings-panel button{min-width:0;text-align:left}.settings-panel .danger{border-color:#956b68}
.desk{display:grid;grid-template-columns:minmax(210px,22%) minmax(0,1fr);grid-template-areas:"modem monitor";align-items:stretch;gap:clamp(.7rem,1.4vw,1.2rem);width:100%;max-width:100%;min-width:0}.fullscreen-host{display:contents}.monitor{grid-area:monitor;width:100%;max-width:100%;min-width:0;background:linear-gradient(145deg,#89877f,#3f403c);padding:clamp(.55rem,1.2vw,1.1rem);border-radius:20px 20px 12px 12px;box-shadow:inset 0 0 0 2px #aaa9,inset 0 -12px 20px #1118}.bezel{width:100%;max-width:100%;min-width:0;background:#101310;border:clamp(7px,1vw,12px) solid #292b28;border-radius:32px;padding:clamp(.4rem,.7vw,.75rem);box-shadow:inset 0 0 35px #000}.terminal{position:relative;display:block;width:100%;max-width:100%;height:clamp(520px,57vh,650px);min-width:0;min-height:0;background:var(--glass);color:var(--phosphor);border-radius:18px;overflow:hidden;text-shadow:0 0 4px #7fba87;font:clamp(12px,1.02vw,16px)/1.18 "Courier New",monospace}.terminal.scanlines:after{content:"";position:absolute;z-index:3;inset:0;pointer-events:none;background:repeating-linear-gradient(#0000 0 2px,#0001 3px)}.terminal pre{width:100%;height:100%;max-width:100%;min-width:0;min-height:0;margin:0;padding:clamp(.65rem,1vw,1rem);white-space:pre;text-align:left;overflow-wrap:normal;word-break:normal;overflow:auto;scrollbar-color:#49644f #07110d;font-family:"Courier New",monospace;font-variant-ligatures:none}.terminal-input-proxy{position:absolute;z-index:4;left:1rem;bottom:1rem;width:2px;height:2px;margin:0;padding:0;overflow:hidden;opacity:.01;pointer-events:none;white-space:nowrap;border:0}.terminal-input-proxy input{display:block;width:2px;height:2px;margin:0;padding:0;border:0}.terminal:focus-within{box-shadow:inset 0 0 18px #7fba8733,0 0 5px #9ddca855}.ansi-fg-black{color:#000}.ansi-fg-red{color:#a00}.ansi-fg-green{color:#0a0}.ansi-fg-yellow{color:#a50}.ansi-fg-blue{color:#33a}.ansi-fg-magenta{color:#a0a}.ansi-fg-cyan{color:#0aa}.ansi-fg-white{color:#aaa}.ansi-bg-black{background:transparent}.ansi-bg-red{background:#a00}.ansi-bg-green{background:#0a0}.ansi-bg-yellow{background:#a50}.ansi-bg-blue{background:#33a}.ansi-bg-magenta{background:#a0a}.ansi-bg-cyan{background:#0aa}.ansi-bg-white{background:#aaa}.ansi-bold{filter:brightness(1.55);font-weight:bold}.ansi-inverse{filter:invert(1)}.ansi-blink{animation:ansi-blink 1s steps(1) infinite}.ansi-cursor{color:#07110d;background:var(--phosphor);animation:cursor-blink 1.06s steps(1) infinite}.monitor-mark{text-align:center;color:#20211e;letter-spacing:.16em;font-weight:bold;margin:.6rem 0 0;font-size:.78rem}
.modem{grid-area:modem;width:100%;min-width:210px;max-width:100%;align-self:stretch;background:linear-gradient(#a4a095,#6e6c65);color:#171817;padding:clamp(.75rem,1.2vw,1rem);border-radius:6px;box-shadow:inset 0 0 0 2px #d2d0c5,0 8px 20px #0008;overflow-wrap:normal;word-break:normal}.modem-brand{align-items:flex-end;gap:.35rem;white-space:nowrap;border-bottom:2px solid #4d4b45;padding-bottom:.65rem}.modem-brand strong{font:800 clamp(1.15rem,1.8vw,1.55rem) monospace}.modem-brand span{font-size:.65rem;letter-spacing:.05em}.leds{display:grid;grid-template-columns:repeat(4,minmax(30px,1fr));gap:.8rem .3rem;margin:1.3rem 0}.led{text-align:center;white-space:nowrap;font:bold .7rem monospace}.led i{display:block;width:14px;height:8px;margin:0 auto .3rem;border-radius:50%;background:#342e26;box-shadow:inset 0 0 3px #000}.led.on i,.led[aria-label$="on"] i{background:#dcbd65;box-shadow:0 0 8px #f4d974}.modem-readout{border-top:1px solid #55534d;padding-top:.6rem}.modem-readout p{display:grid;gap:.2rem;margin:.65rem 0;font:700 .72rem monospace;letter-spacing:.06em}.modem-readout strong{font-size:.85rem;overflow-wrap:normal;word-break:keep-all}
.station-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.7rem;padding:.45rem .65rem;background:#161815;border:1px solid #4b4e48;color:#c9cec7;font:.72rem monospace}.station-footer p{margin:0}.status-light{display:inline-block;width:.62rem;height:.62rem;margin-right:.4rem;border-radius:50%;background:#8fd38e;box-shadow:0 0 6px #8fd38e}.station-footer button{display:none}.transcript{margin-top:1rem}.transcript pre{max-height:350px;overflow:auto;background:#101210;color:#eee;padding:1rem;white-space:pre-wrap}.palette{position:fixed;z-index:20;inset:auto 1rem 1rem auto;width:min(520px,calc(100% - 2rem));max-height:70vh;overflow:auto;color:#eee;background:#20231f;border:2px solid #b5a66d;padding:1rem;box-shadow:0 8px 40px #000}.palette button[data-command]{margin:.25rem;text-align:left}.palette button[data-command] small{display:block;color:#bbb}.museum-context{margin:1.5rem 0;background:#20231f;padding:1rem}.mono .terminal{color:#d9ded9;text-shadow:none}.ascii .terminal{color:#ddd;text-shadow:none}.no-crt .terminal{border-radius:0;text-shadow:none}@keyframes blink{50%{opacity:.15}}@keyframes ansi-blink{50%{visibility:hidden}}@keyframes cursor-blink{50%{color:inherit;background:transparent}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}.terminal{text-shadow:none}}
@container bbs-workstation (max-width:1200px){.station-head{align-items:flex-start;display:grid;grid-template-columns:max-content minmax(0,1fr);width:100%}.client-toolbar{align-self:center;justify-content:flex-end;min-width:0;flex-wrap:wrap}.desk{grid-template-columns:minmax(230px,27%) minmax(0,1fr)}.desk>*{min-width:0}.modem{min-width:230px}.terminal{height:clamp(500px,58vh,620px)}}
@container bbs-workstation (max-width:880px){.station-head{display:contents}.desk{order:1;grid-template-columns:minmax(0,1fr);grid-template-areas:"monitor" "modem"}.monitor{min-width:0}.modem{min-width:0}.modem-brand{justify-content:flex-start}.modem-readout{display:flex;flex-wrap:wrap;gap:.3rem 2rem}.station-footer{order:2}.station-identity{order:3;margin-top:.7rem}.client-toolbar{order:4;justify-content:flex-start;margin-top:.55rem}.transcript{order:5}.client-toolbar label{flex:0 1 auto}}
@media(max-width:700px){.bbs-page{width:calc(100% - 12px);max-width:calc(100vw - 12px)}.workstation{padding:.45rem}.client-toolbar{gap:.35rem}.client-toolbar button,.client-toolbar select{font-size:.76rem}.client-toolbar label{flex:1 1 145px}.client-toolbar select{width:100%;max-width:none}.call-button{flex:1 1 100%}.settings-panel{position:fixed;top:auto;right:.5rem;bottom:.5rem;left:.5rem;width:auto}.terminal{height:clamp(460px,65vh,580px);font-size:12px}.bezel{border-width:6px;padding:.2rem;border-radius:18px}.terminal{border-radius:12px}.terminal pre{white-space:pre;overflow:auto}.monitor-mark{font-size:.62rem}.modem-readout{flex-wrap:wrap;gap:.3rem 1.5rem}.station-footer button{display:block}.station-footer{align-items:flex-start}.station-footer p{line-height:1.4}.bbs-hero{padding-inline:.5rem}}
@media(max-width:480px){.settings-panel{grid-template-columns:1fr 1fr}.terminal{height:500px}}
body{overflow-x:hidden}

body:has(.fullscreen-host.fullscreen){overflow:hidden}.fullscreen-host.fullscreen{width:100%;height:100%;max-width:none;margin:0;padding:16px;background:#050806;overflow:hidden;display:grid;place-items:center}.fullscreen-host.fullscreen #fullscreen-exit{display:block;position:absolute;z-index:32;top:max(.5rem,env(safe-area-inset-top));right:max(.5rem,env(safe-area-inset-right));padding:.45rem .65rem;color:#eee;background:#20231f;border:1px solid #aaa;font:700 .78rem monospace}.fullscreen-host:not(.fullscreen) #fullscreen-exit{display:none}.fullscreen-host.fullscreen .monitor{display:flex;grid-area:auto;width:var(--crt-width);height:var(--crt-height);max-width:none;min-width:0;padding:clamp(.25rem,1vmin,.7rem);border-radius:clamp(10px,2vmin,20px)}.fullscreen-host.fullscreen .bezel{flex:1;height:100%;padding:clamp(.2rem,.7vmin,.55rem);border-width:clamp(5px,1vmin,10px);border-radius:clamp(12px,2vmin,28px)}.fullscreen-host.fullscreen .terminal{height:100%;max-height:none;border-radius:clamp(8px,1.5vmin,18px);font-size:var(--terminal-font-size)}.fullscreen-host.fullscreen .terminal pre{padding:clamp(.35rem,1vmin,.8rem)}.fullscreen-host.fullscreen .terminal-input-proxy{position:absolute}.fullscreen-host.fullscreen .monitor-mark{display:none}
