.bbs-notice-trigger {
    padding: 0; border: 0; background: none; color: inherit;
    font: inherit; letter-spacing: inherit; cursor: help;
    text-decoration: underline dotted; text-underline-offset: .16em;
}
.bbs-notice-trigger:focus-visible { outline: 1px solid #54fcfc; outline-offset: 3px; }
.bbs-notice {
    position: fixed; inset: auto; margin: 0;
    width: 330px; max-width: calc(100vw - 32px); box-sizing: border-box;
    padding: 16px; border: 1px solid #526b90;
    background: #080e1b; color: #e1eaff;
    font: 14px/1.5 monospace; text-align: left;
    box-shadow: 0 8px 30px #0008;
}
.bbs-notice strong { color: #54fcfc; font-size: 12px; }
.bbs-notice p { margin: 10px 0; color: inherit; font: inherit; letter-spacing: normal; }
.bbs-notice small { color: #9aacc8; font-size: 11px; }
.vsysop__message--logo {
    display: block;
    container-type: inline-size;
    padding-block: 12px 18px;
}
.vsysop__message--logo > b { display: none; }
.vsysop__message--receiving canvas {
    animation: vsysop-ansi-receive 2400ms steps(34, end) both;
}
@keyframes vsysop-ansi-receive {
    from { clip-path: inset(0 0 100% 0); }
    to { clip-path: inset(0); }
}
@media (prefers-reduced-motion: reduce) {
    .vsysop__message--receiving canvas { animation: none; }
}
.vsysop__message p {
    font: inherit;
    letter-spacing: inherit;
    white-space: pre-line;
}
.vsysop__message--terminal-text pre {
    font: inherit;
    letter-spacing: inherit;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    color: #d5faff;
    text-shadow: none;
}
.vsysop__message--navigation p { color: #91acb8; font-size: inherit; }
.vsysop__message--bot { grid-template-columns: minmax(0, 1fr); gap: 0; }
.vsysop__message--user { grid-template-columns: 12px minmax(0, 1fr); }
.vsysop__message--sysop b { color: #54fcfc; }
.vsysop__message--logo canvas {
    display: block;
    width: 100%;
    height: auto;
    image-rendering: auto;
}
.vsysop__screen { background: #000; }
.vsysop__screen::after {
    display: block;
    z-index: 2;
    mix-blend-mode: normal;
    background: repeating-linear-gradient(to bottom,
        rgba(0,0,0,.14) 0 var(--vsysop-crt-row, 1px),
        transparent var(--vsysop-crt-row, 1px) calc(2 * var(--vsysop-crt-row, 1px)));
}
.vsysop.is-open .vsysop__terminal { transform: none; }
.vsysop__header .vsysop__actions { display: flex; align-items: center; gap: 8px; }
.vsysop__actions > button { display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; height: 34px; }
.vsysop__power,
.vsysop__disconnect {
    padding: 7px 9px;
    border: 1px solid #7497b2;
    color: #eaffff;
    background: #00081abf;
    font: 16px/1 'VT323', monospace;
    cursor: pointer;
}
.vsysop__power { display: inline-flex; align-items: center; gap: 6px; }
.vsysop__power-track { width: 24px; height: 12px; border: 1px solid #7497b2; background: #15242c; padding: 2px; box-sizing: content-box; }
.vsysop__power-track::after { content: ''; display: block; width: 10px; height: 12px; background: #82909a; }
.vsysop__power[aria-checked="true"] .vsysop__power-track::after { transform: translateX(14px); background: #65ff8a; box-shadow: 0 0 5px #65ff8a60; }
.vsysop__power:focus-visible { outline: 2px solid #54fcfc; outline-offset: 3px; }
.vsysop__disconnect:disabled { opacity: .35; cursor: default; }
@media (max-width: 600px) {
    .vsysop__header { flex-wrap: wrap; gap: 8px; }
    .vsysop__header .vsysop__actions { flex-wrap: wrap; }
}
.vsysop__message--logo pre {
    font-size: clamp(4px, 2.15cqw, 11px);
    line-height: 1;
    color: #428fff;
    text-align: left;
    width: max-content;
    margin-inline: auto;
    background: linear-gradient(155deg, #8ac7ff, #1478ff 60%, #dff3ff 85%, #4172a8);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    text-shadow: none;
}
.vsysop__modem-lights { display: flex; gap: 8px; }
.vsysop__header { flex-wrap: wrap; row-gap: 8px; }
.vsysop__header > div:first-child { flex-wrap: wrap; row-gap: 8px; }
.vsysop__modem-lights > span { display: inline-flex; align-items: center; gap: 4px; }
.vsysop__modem-lights i { animation: none; background: #153130; box-shadow: none; }
.vsysop__modem-lights .is-lit i { background: #65ff8a; box-shadow: 0 0 7px #65ff8a80; }
.vsysop__form { grid-template-columns: auto minmax(0, 1fr) auto; background: #000; border-top-color: transparent; }
.vsysop__form label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
@font-face {
    font-family: 'Tessera Pixel Cyrillic';
    src: url('assets/fonts/press-start-2p.ttf') format('truetype');
    font-display: swap;
}
@font-face {
    font-family: 'Tessera Terminal Cyrillic';
    src: url('assets/fonts/press-start-2p.ttf') format('truetype');
    font-display: swap;
    size-adjust: 55%;
    unicode-range: U+0400-052F;
}
.vsysop__log,
.vsysop__form input {
    font-family: 'VT323', 'Tessera Terminal Cyrillic', monospace;
}
.vsysop[lang="ru"] .vsysop__log,
.vsysop[lang="ru"] .vsysop__form {
    font-family: 'Tessera Pixel Cyrillic', monospace;
    font-size: clamp(10px, 1.6vw, 13px);
    line-height: 1.85;
    letter-spacing: 0;
}
.vsysop__form input {
    font-family: 'VT323', 'Tessera Terminal Cyrillic', monospace;
    font-size: 25px;
    line-height: 1.25;
    min-height: 32px;
}
.vsysop[lang="ru"] .vsysop__form input {
    font-family: 'Tessera Pixel Cyrillic', monospace;
    font-size: 14px;
    line-height: 1.6;
}
.vsysop__form > span { font-size: 25px; }
.vsysop .vsysop__form,
.vsysop[lang] .vsysop__form input {
    font: inherit;
    letter-spacing: inherit;
}
.vsysop__log {
    scrollbar-width: thin;
    scrollbar-color: #214c69 #000;
    scrollbar-gutter: stable;
}
.vsysop__log::-webkit-scrollbar { width: 5px; height: 5px; }
.vsysop__log::-webkit-scrollbar-track { background: #000; }
.vsysop__log::-webkit-scrollbar-thumb { background: #214c69; border-radius: 3px; }
.vsysop__log::-webkit-scrollbar-button { display: none; width: 0; height: 0; }
@media (hover: hover) and (pointer: fine) {
    .vsysop__form { grid-template-columns: auto minmax(0, 1fr); }
    .vsysop__form button { display: none; }
}
.vsysop__screen { grid-template-rows: minmax(0, 1fr); }
.vsysop__log > .vsysop__form {
    position: static;
    margin: 12px 0 0;
    padding: 0;
    border: 0;
    background: transparent;
}
.vsysop__log > .vsysop__form:has(input:disabled) { visibility: hidden; }
.vsysop__log > .vsysop__form input { padding: 0; }
.vsysop__message--user { grid-template-columns: minmax(0, 1fr); gap: 0; }
.vsysop__message[hidden] { display: none; }
.vsysop__log > .vsysop__form { grid-template-columns: minmax(0, 1fr) auto; }
.vsysop__log > .vsysop__form > span { display: none; }
@media (hover: hover) and (pointer: fine) {
    .vsysop__log > .vsysop__form { grid-template-columns: minmax(0, 1fr); }
}
.vsysop__log > .vsysop__form { position: relative; }
.vsysop__form input,
.vsysop__form.is-empty input { caret-color: #b9faff; }
.vsysop__log > .vsysop__form input::placeholder {
    color: #929b9f;
    opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
    .vsysop__form.is-empty::after { animation: none !important; }
}
