@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap');

:root{font-family:'Space Grotesk',sans-serif;color:#e5eee6;background:#080d0a;font-synthesis:none;text-rendering:optimizeLegibility;--green:#a5f26c;--muted:#77847b;--line:#28352c;--panel:#101712;--blue:#82bcff}
*{box-sizing:border-box}
body{margin:0;min-width:320px;background:radial-gradient(ellipse at 48% -30%,#203224 0,transparent 50%),#080d0a}
button,input{font:inherit}
.shell{max-width:1160px;margin:auto;padding:0 36px}
.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #253029;font-family:'DM Mono',monospace;font-size:11px;letter-spacing:.07em}
.brand{display:flex;align-items:center;gap:12px;color:#eaf3e9;font-weight:500}.brand-mark{display:grid;place-items:center;width:35px;height:35px;background:var(--green);color:#11190e;font-weight:500;font-size:15px;letter-spacing:-.08em}.brand small{display:block;color:#718076;font-size:9px;margin-top:5px;letter-spacing:.14em}.clock{display:flex;align-items:center;gap:9px;color:#abb6ad}.live-dot{width:7px;height:7px;border-radius:50%;background:#657168}.live-dot.on{background:var(--green);box-shadow:0 0 10px #a5f26c88}.divider{color:#425047}
.intro{padding:55px 0 30px}.eyebrow,.panel-tag,.role,.mini-heading>span{font:10px 'DM Mono',monospace;letter-spacing:.12em;color:var(--green)}h1{font-size:clamp(32px,5vw,51px);line-height:1.1;letter-spacing:-.055em;margin:14px 0 12px;font-weight:600}h1 span{color:var(--green)}.intro p{max-width:680px;color:#9ba79c;font-size:15px;line-height:1.7;margin:0}
.panel{border:1px solid var(--line);background:linear-gradient(135deg,#121a14,#0e1511);border-radius:5px}.control-panel{padding:18px 20px 14px}.panel-heading{display:flex;align-items:center;gap:10px}.prompt{font:12px 'DM Mono',monospace;color:var(--green)}.panel-heading h2,.mini-heading h2{font-size:13px;font-weight:600;margin:0}.panel-tag{margin-left:auto;font-size:9px;color:#829181}.controls{display:grid;grid-template-columns:1.15fr 1fr auto;align-items:end;gap:11px;margin-top:19px}.field{display:flex;flex-direction:column;gap:7px;color:#849087;font:10px 'DM Mono',monospace}.field input{width:100%;height:39px;padding:0 11px;color:#cbd6cc;background:#080d0a;border:1px solid #303d33;border-radius:3px;outline:none;font:11px 'DM Mono',monospace}.field input:focus{border-color:#78bd53}.connect-button,.copy-button{height:39px;border:0;border-radius:3px;background:var(--green);color:#10170d;font-size:12px;font-weight:700;cursor:pointer;padding:0 16px;transition:filter .2s,transform .2s;white-space:nowrap}.connect-button:hover,.copy-button:hover{filter:brightness(1.08);transform:translateY(-1px)}.connect-button:disabled{opacity:.75;cursor:wait}.button-icon{margin-right:8px;font-size:10px}.connection-note{display:flex;align-items:center;gap:8px;margin-top:12px;color:#748076;font-size:10px}.keycap{font:9px 'DM Mono',monospace;color:#8d9a8f;padding:3px 5px;border:1px solid #354239;border-radius:2px}
.workstations{display:grid;grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr);align-items:center;margin-top:18px}.terminal-card{overflow:hidden}.terminal-title{display:flex;align-items:center;gap:11px;padding:15px 15px 13px;border-bottom:1px solid #263229}.terminal-icon{display:grid;place-items:center;width:30px;height:30px;background:#20351c;color:var(--green);font:15px 'DM Mono',monospace}.terminal-icon.blue{background:#172b3c;color:var(--blue)}.terminal-title h2{font-size:13px;margin:0;font-weight:600}.role{font-size:8px;margin-left:6px;color:#829181;letter-spacing:.05em}.terminal-title p{color:#829087;margin:4px 0 0;font-size:10px}.state-pill{margin-left:auto;border:1px solid #344139;color:#879388;font:9px 'DM Mono',monospace;padding:5px 7px;border-radius:2px}.state-pill.on{border-color:#527a3a;color:var(--green)}.terminal-screen{height:194px;padding:13px 14px;background:#080d0a;color:#c2d2c2;overflow-y:auto;font:11px/1.75 'DM Mono',monospace}.screen-line{white-space:pre-wrap;overflow-wrap:anywhere}.screen-line.dim{color:#69796d}.screen-line.system{color:#94ae91}.screen-line.message{color:#d6edce}.screen-line.error{color:#ff9a88}.screen-line.echo{color:var(--green)}.terminal-footer{display:flex;align-items:center;gap:18px;border-top:1px solid #263229;padding:10px 13px;color:#758278;font:9px 'DM Mono',monospace}.terminal-footer b{color:#d2ddd1;font-weight:400;margin-left:3px}.cursor{margin-left:auto;color:var(--green);animation:blink 1s steps(2,start) infinite}.blue-cursor{color:var(--blue)}@keyframes blink{to{visibility:hidden}}.link-column{display:flex;align-items:center;flex-direction:column;gap:5px;color:#69766d;font:8px 'DM Mono',monospace}.link-line{width:100%;height:1px;background:linear-gradient(90deg,#a5f26c55,#82bcff55)}.link-symbol{position:absolute;display:grid;place-items:center;width:27px;height:27px;border:1px solid #36453a;border-radius:50%;background:#101712;color:#b9d6ac;font-size:13px}
.bottom-row{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:17px}.how,.share{padding:15px 17px}.mini-heading{display:flex;align-items:center;gap:10px}.mini-heading>span{font-size:9px}.mini-heading h2{font-size:12px}.how ol{list-style:none;margin:13px 0 1px;padding:0;display:grid;gap:8px}.how li{display:grid;grid-template-columns:65px 1fr;gap:8px;font-size:10px}.how li b{color:#d7e2d6;font-weight:500}.how li span,.share p{color:#869388;line-height:1.55}.share p{font-size:10px;margin:12px 0}.copy-button{height:31px;padding:0 10px;font-size:10px}.copy-button span{margin-left:8px}footer{display:flex;justify-content:space-between;gap:10px;padding:20px 0 25px;color:#66736a;font:8px 'DM Mono',monospace;letter-spacing:.04em}footer b{font-weight:400;color:#97a398;margin-left:5px}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,14px);padding:10px 14px;background:#dbf9ca;color:#162011;border-radius:3px;font-size:12px;opacity:0;pointer-events:none;transition:all .2s}.toast.show{transform:translate(-50%,0);opacity:1}
@media(max-width:800px){.shell{padding:0 20px}.controls{grid-template-columns:1fr 1fr}.connect-button{grid-column:1/-1}.workstations{grid-template-columns:1fr;gap:12px}.link-column{height:16px;flex-direction:row;justify-content:center}.link-column .link-line{width:42px}.link-symbol{position:static}.bottom-row{grid-template-columns:1fr}.intro{padding-top:42px}}
@media(max-width:480px){.shell{padding:0 14px}.topbar{height:65px}.clock{font-size:9px;gap:6px}.brand{font-size:10px}.brand-mark{width:31px;height:31px}.controls{grid-template-columns:1fr}.connect-button{grid-column:auto}.intro p{font-size:13px}.terminal-title{padding:12px 10px}.terminal-screen{height:180px;padding:11px;font-size:10px}.terminal-footer{gap:10px;font-size:8px}.role{display:block;margin:4px 0 0}footer{flex-wrap:wrap;line-height:1.6}}

.workstations{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.dos-screen{background:#000;position:relative;min-height:120px;overflow:hidden;cursor:text}
.dos-screen>div{width:max-content;white-space:pre;font:14px/14px 'DM Mono','Courier New',monospace;color:#bbb}
.dos-screen canvas{display:block;image-rendering:pixelated}
.dos-screen.focus{box-shadow:inset 0 0 0 2px #78bd53}
.terminal-footer .grow{flex:1}
.observe{margin-top:17px;padding:15px 17px}
.log{margin-top:12px;max-height:260px;overflow:auto;background:#080d0a;border:1px solid #263229;border-radius:3px;padding:10px 12px;font:11px/1.8 'DM Mono',monospace}
.log-empty{color:#69796d}
.log-row{display:grid;grid-template-columns:66px 62px 1fr;gap:10px}
.log-row .t{color:#69796d}.log-row .src{color:#94ae91}.log-row.b .src{color:var(--blue)}.log-row.bridge .src{color:#c9b26a}
.log-row.ok .msg{color:var(--green)}.log-row.err .msg{color:#ff9a88}
@media(max-width:800px){.workstations{grid-template-columns:1fr}.log-row{grid-template-columns:60px 54px 1fr}}

/* DOS screen: our own presenter canvas (integer / sharp-bilinear scaling, DPR aware) */
#view{display:none;margin:0 auto;image-rendering:pixelated}
.dos-screen.scroll{overflow-x:auto}
.dos-screen.scroll #view{margin:0}
.v86host.hidden{position:absolute;visibility:hidden;width:0;height:0;overflow:hidden;pointer-events:none}
.terminal-title select.ghost,.terminal-title label.ghost{display:inline-flex;align-items:center;gap:5px;margin-left:8px;height:30px;padding:0 8px;font:10px 'DM Mono',monospace}
.terminal-title label.ghost input{margin:0}
@media(max-width:700px){.terminal-title{flex-wrap:wrap}.terminal-title .ghost{margin-left:0;margin-top:6px}}
