:root{color-scheme:dark;font-family:ui-monospace,SFMono-Regular,monospace;background:#080808;color:#f4f1e4}*{box-sizing:border-box}body{margin:0;padding:clamp(16px,4vw,56px)}header,main{max-width:1200px;margin:auto}header{border-bottom:3px solid #f2ff00;padding-bottom:24px}header>p:first-child{color:#ff37b7}h1{font-size:clamp(2rem,5vw,4.5rem);letter-spacing:-.07em;line-height:1.05;max-width:900px}h2{margin-top:2.5rem}a{color:#00eaff;text-underline-offset:4px}p{max-width:850px;line-height:1.6}section{min-width:0}.warning{border:2px dashed #f2ff00;padding:20px;margin:28px 0;max-width:950px}.warning strong{color:#f2ff00}form{display:grid;gap:18px;padding:24px 0;max-width:850px}input[type=password]{display:block;width:min(100%,420px);padding:12px;margin-top:8px;font:inherit}input[type=checkbox]{width:20px;height:20px;vertical-align:middle}button{font:inherit;cursor:pointer;background:#f2ff00;color:#080808;padding:14px 20px;border:0;width:fit-content;font-weight:bold}button:hover{background:#ff37b7}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #00eaff;outline-offset:5px}.terminal-scroll{overflow:auto;max-width:100%;border:1px solid #555;margin-top:16px}#terminal{min-width:780px;min-height:430px;background:#000}#status{color:#f2ff00}[hidden]{display:none!important}
.board-page{padding:clamp(12px,3vw,32px)}.board-page header{padding-bottom:8px}.board-page h1{font-size:clamp(2rem,4vw,3rem);margin:.4em 0}.board-page header p{margin:.5em 0}#status:empty{display:none}details{margin:24px 0;border-top:1px solid #555;padding-top:14px}summary{cursor:pointer;color:#00eaff}summary:focus-visible{outline:3px solid #00eaff;outline-offset:5px}
#terminal{position:relative}
#terminal>.xterm{width:max-content;margin-inline:auto}
#terminal>.terminal-margin-art{position:absolute;top:50%;transform:translateY(-50%);width:16ch;margin:0;font:14px/1.15 monospace;white-space:pre;letter-spacing:0;pointer-events:none;user-select:none;color:#46b4bc;opacity:.9}
#terminal>.terminal-margin-art--left{left:calc(var(--bbs-margin-center,0px) - 8ch)}
#terminal>.terminal-margin-art--right{right:calc(var(--bbs-margin-center,0px) - 8ch);color:#cb79b7}
.terminal-scroll,#terminal .xterm-viewport{scrollbar-width:none;-ms-overflow-style:none}
.terminal-scroll::-webkit-scrollbar,#terminal .xterm-viewport::-webkit-scrollbar{display:none;width:0;height:0}

/* Shared touch controls: keep this block in sync with live-board.css/lab.css. */
.terminal-controls{display:none}
@media (any-pointer:coarse),(max-width:700px){
 .terminal-controls{display:block;position:sticky;bottom:var(--bbs-keyboard-inset,0px);z-index:10;background:#080808;border-top:1px solid #00c5df;padding:6px 0 max(6px,env(safe-area-inset-bottom));touch-action:manipulation}
 .terminal-controls-head{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:5px;margin-bottom:5px}
 .terminal-primary-keys{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
 .terminal-controls button,.bbs-terminal--live .terminal-controls button,.terminal-controls summary{box-sizing:border-box;width:100%;min-width:0;min-height:44px;margin:0;padding:8px 4px;border:1px solid #497077;border-radius:3px;background:#10191b;color:#eaf5f3;font:16px/1.15 ui-monospace,SFMono-Regular,monospace;text-align:center;cursor:pointer}
 .terminal-primary-keys button:nth-child(-n+4){font-size:22px}
 .terminal-controls button:active{background:#00c5df;color:#000}
 .terminal-controls button:disabled{color:#777;border-color:#333;background:#101010;cursor:default}
 .terminal-controls button:focus-visible,.terminal-controls summary:focus-visible{outline:2px solid #ff4dcc;outline-offset:1px}
 .terminal-controls button[aria-pressed="true"]{border-color:#f2ff00}
 .terminal-controls .terminal-controls-more,.bbs-terminal--live .terminal-controls-more{position:static;margin:0;padding:0;border:0;font:inherit}
 .terminal-controls summary{list-style:none;display:flex;align-items:center;justify-content:center}
 .terminal-controls summary::-webkit-details-marker{display:none}
 .terminal-extra-keys{position:absolute;left:0;right:0;bottom:100%;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;max-height:45vh;max-height:45dvh;overflow:auto;background:#080808;padding:8px;border:1px solid #00c5df}
 .terminal-extra-keys button{font-size:14px}
 .terminal-extra-keys button:last-child{grid-column:span 2}
 .terminal-scroll,.bbs-terminal--live .terminal-scroll{max-height:var(--bbs-touch-height,65vh);scroll-margin-top:8px}
}
@media (max-width:700px){
 #terminal,.bbs-terminal--live #terminal{min-width:0;min-height:0}
 .terminal-scroll,.bbs-terminal--live .terminal-scroll{padding:0}
 #terminal>.terminal-margin-art{display:none}
}
.terminal-focus-notice{position:fixed;z-index:1000;left:50%;top:50%;transform:translate(-50%,-50%);overflow:auto;box-sizing:border-box;width:min(440px,calc(100vw - 24px));padding:16px;border:1px solid #00c5df;background:#10191b;color:#eaf5f3;box-shadow:0 8px 32px #000b;font:15px/1.5 ui-monospace,SFMono-Regular,monospace}
.terminal-focus-notice[hidden]{display:none}
.terminal-focus-notice p{margin:0 0 12px}
.terminal-focus-notice button{min-height:44px;margin:0 8px 0 0;padding:8px 12px;border:1px solid #497077;background:#080808;color:#eaf5f3;font:inherit;cursor:pointer}
.terminal-focus-notice button:focus-visible{outline:2px solid #ff4dcc;outline-offset:2px}
