*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:none;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{margin:0;padding:0;overflow-x:hidden;background:var(--ansi-black);color:var(--ansi-white);font-family:var(--font-family);line-height:1.4;min-height:100vh}.terminal-container{max-width:80ch;margin:0 auto;padding:2rem 1rem}.terminal-section{margin-bottom:2rem;white-space:pre-wrap;word-wrap:break-word}a{color:var(--ansi-cyan);text-decoration:none;transition:color .2s ease}a:hover{color:var(--ansi-bright-cyan);text-decoration:underline}a:visited{color:var(--ansi-magenta)}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:var(--ansi-black)}::-webkit-scrollbar-thumb{background:var(--ansi-blue);border:2px solid var(--ansi-black)}::-webkit-scrollbar-thumb:hover{background:var(--ansi-bright-blue)}@media(max-width:768px){.terminal-container{max-width:60ch;padding:1rem .5rem}body{font-size:14px}}@media(max-width:480px){.terminal-container{max-width:100%;padding:.5rem}body{font-size:13px}}:root{--ansi-black: #000000;--ansi-red: #AA0000;--ansi-green: #00AA00;--ansi-yellow: #AAAA00;--ansi-blue: #0000AA;--ansi-magenta: #AA00AA;--ansi-cyan: #00AAAA;--ansi-white: #AAAAAA;--ansi-bright-black: #555555;--ansi-bright-red: #FF5555;--ansi-bright-green: #55FF55;--ansi-bright-yellow: #FFFF55;--ansi-bright-blue: #5555FF;--ansi-bright-magenta: #FF55FF;--ansi-bright-cyan: #55FFFF;--ansi-bright-white: #FFFFFF;--font-family: "Courier New", "Courier", monospace;--char-width: 80ch;--cursor-blink-speed: .8s}@font-face{font-family:Perfect DOS VGA;src:url(/assets/vga-ri2axvpZ.woff2) format("woff2");font-weight:400;font-style:normal;font-display:block}:root{--font-family: "Perfect DOS VGA", "DejaVu Sans Mono", "Consolas", "Liberation Mono", "Courier New", monospace}.bbs-header{color:var(--ansi-bright-cyan);font-weight:700;text-transform:uppercase;line-height:1.2;letter-spacing:0;font-feature-settings:normal;text-rendering:optimizeSpeed}.bbs-label{color:var(--ansi-cyan);line-height:1;letter-spacing:0;font-feature-settings:normal}.bbs-value{color:var(--ansi-white);line-height:1;letter-spacing:0;font-feature-settings:normal}pre{line-height:1;letter-spacing:0;font-feature-settings:normal;-webkit-font-smoothing:none;-moz-osx-font-smoothing:grayscale}.bbs-highlight{color:var(--ansi-bright-yellow)}.bbs-success{color:var(--ansi-bright-green)}.bbs-error{color:var(--ansi-bright-red)}.bbs-muted{color:var(--ansi-bright-black)}.box{border:1px solid var(--ansi-blue);padding:1rem;margin:1rem 0}.box-title{color:var(--ansi-bright-cyan);font-weight:700;margin-bottom:.5rem}.menu-item{color:var(--ansi-white);margin:.5rem 0;display:block}.menu-item .number{color:var(--ansi-bright-yellow);font-weight:700}.menu-item:hover{background:var(--ansi-blue);cursor:pointer}.status-indicator{display:inline-block;margin-right:.5rem}.status-online:before{content:"●";color:var(--ansi-bright-green)}.status-offline:before{content:"●";color:var(--ansi-bright-red)}.status-loading:before{content:"◌";color:var(--ansi-bright-yellow);animation:pulse 1s ease-in-out infinite}.divider{color:var(--ansi-blue);margin:1rem 0;-webkit-user-select:none;user-select:none}.ascii-art{color:var(--ansi-bright-cyan);line-height:1.1;font-size:.9em;letter-spacing:0;font-family:Perfect DOS VGA,DejaVu Sans Mono,Noto Sans Mono,Courier New,monospace;font-feature-settings:normal;text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-variant-ligatures:none}::selection{background:var(--ansi-blue);color:var(--ansi-bright-white)}::-moz-selection{background:var(--ansi-blue);color:var(--ansi-bright-white)}.bbs-post-header{margin-bottom:1rem}.bbs-post-meta{font-size:.9em;margin-bottom:1.5rem}.bbs-post-content{line-height:1.6;white-space:pre-wrap;word-wrap:break-word}.bbs-post-content .bbs-link{color:var(--ansi-bright-cyan);text-decoration:underline}.bbs-post-content .bbs-code{color:var(--ansi-bright-yellow);font-family:inherit;background:#0000004d;padding:.1em .3em}.bbs-media-container{margin:1.5rem 0;padding:1rem;background:#0003;border:2px solid var(--ansi-cyan);border-radius:4px}.bbs-image{max-width:100%;height:auto;display:block;border:1px solid var(--ansi-bright-black)}.bbs-media-caption{margin-top:.5rem;color:var(--ansi-bright-cyan);font-size:.9em;font-style:italic;text-align:center}.bbs-video{max-width:100%;height:auto;display:block;background:#000}.bbs-iframe{max-width:100%;display:block;border:1px solid var(--ansi-bright-black);aspect-ratio:16 / 9}.bbs-audio{width:100%;display:block}.bbs-image-frame,.bbs-video-frame{margin:1rem 0;padding:.5rem;border:1px solid var(--ansi-cyan);display:inline-block}.bbs-image-frame a,.bbs-video-frame a{color:var(--ansi-bright-cyan)}.pagination-controls{margin:1.5rem 0;text-align:center;font-size:1em}.pagination-controls a{color:var(--ansi-bright-cyan);text-decoration:none;padding:.3rem .5rem;margin:0 .5rem}.pagination-controls a:hover{background:var(--ansi-blue);color:var(--ansi-bright-white)}.pagination-controls .bbs-muted{padding:.3rem .5rem;margin:0 .5rem}.post-navigation{margin:2rem 0;text-align:center}.post-navigation a{color:var(--ansi-bright-cyan);text-decoration:none;padding:.3rem .8rem;margin:0 .5rem}.post-navigation a:hover{background:var(--ansi-blue);color:var(--ansi-bright-white)}.bbs-keyboard-highlight{background:var(--ansi-cyan)!important;color:var(--ansi-black)!important;outline:2px solid var(--ansi-bright-cyan);outline-offset:2px;padding:.2em .4em;margin:-.2em -.4em;display:inline-block;box-shadow:0 0 10px var(--ansi-cyan)}.menu-item.bbs-keyboard-highlight{background:var(--ansi-cyan)!important;color:var(--ansi-black)!important;padding:.5rem;margin:0}.menu-item.bbs-keyboard-highlight *{color:var(--ansi-black)!important}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}.cursor{display:inline-block;width:1ch;height:1em;background:var(--ansi-bright-white);animation:blink var(--cursor-blink-speed) step-end infinite;vertical-align:text-bottom;margin-left:2px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.pulse{animation:pulse 1s ease-in-out infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in{animation:fadeIn .5s ease-in forwards}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.fade-out{animation:fadeOut .5s ease-out forwards}.modem-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:var(--ansi-black);z-index:9999;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:2rem}.modem-overlay a{color:inherit;text-decoration:none;transition:color .2s ease;cursor:pointer}.modem-overlay a:hover{color:var(--ansi-bright-cyan);text-shadow:0 0 8px var(--ansi-cyan)}.modem-text{font-family:var(--font-family);color:var(--ansi-white);font-size:1.2em;white-space:pre-wrap;max-width:80ch;line-height:1.5}.modem-handshake{color:var(--ansi-green);font-size:.9em;letter-spacing:2px}.modem-connected{color:var(--ansi-bright-green);font-weight:700}.modem-skip{position:fixed;bottom:2rem;right:2rem;color:var(--ansi-bright-black);font-size:.9em;animation:pulse 2s ease-in-out infinite}.modem-skip.visible{color:var(--ansi-white)}@keyframes scanline{0%{transform:translateY(-100%)}to{transform:translateY(100vh)}}.scanline{position:fixed;top:0;left:0;width:100%;height:2px;background:linear-gradient(to bottom,transparent 0%,rgba(255,255,255,.05) 50%,transparent 100%);animation:scanline 8s linear infinite;pointer-events:none;z-index:10000}.text-reveal{overflow:hidden;white-space:nowrap}@keyframes slideDown{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.slide-down{animation:slideDown .5s ease-out forwards}@keyframes flicker{0%,to{opacity:1}41%,43%{opacity:.4}45%,47%{opacity:.6}49%,51%{opacity:.8}53%{opacity:.5}55%{opacity:1}}.flicker{animation:flicker .15s infinite}@keyframes glitch{0%{transform:translate(0)}20%{transform:translate(-2px,2px)}40%{transform:translate(-2px,-2px)}60%{transform:translate(2px,2px)}80%{transform:translate(2px,-2px)}to{transform:translate(0)}}.glitch{animation:glitch .3s infinite}@keyframes loadingDots{0%,20%{content:"."}40%{content:".."}60%,to{content:"..."}}.loading:after{content:"";animation:loadingDots 1.5s infinite}.modem-connect-prompt{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:3rem}.modem-prompt-text{color:var(--ansi-bright-cyan);font-size:1.5em;text-align:center;animation:pulse 2s ease-in-out infinite}.modem-prompt-blink{color:var(--ansi-bright-white);font-size:2em;animation:blink 1s step-end infinite}
