/* PC-98: 16 приглушённых цветов, двойные рамки, без градиентов и свечения.
   Пиксельный шрифт - только заголовки и сцена (подключится в фазе 4); тексты - читаемым шрифтом. */
/* DotGothic16 (SIL OFL 1.1, fonts/DotGothic16-OFL.txt) - урезан до латиницы, кириллицы и знаков вывески */
@font-face { font-family: "DotGothic16"; src: url("fonts/DotGothic16.woff2") format("woff2"); font-display: swap; }
:root {
  --bg: #10102a; --panel: #1c1c40; --line: #d8d8e8; --ink: #e8e8f0; --muted: #9090b0;
  --amber: #e0b040; --cyan: #60c0c0; --red: #d05050; --green: #60b060; --violet: #8060b0;
  --screen: #081810; --cork: #8a6a40; --paper: #e8e0c8; --paper-ink: #302820;
  --pixel: "DotGothic16", "Osaka-Mono", ui-monospace, "Menlo", "Consolas", monospace;
  --read: system-ui, -apple-system, "Segoe UI", "Roboto", "Noto Sans", sans-serif;
  --mono: ui-monospace, "SF Mono", "Menlo", "Consolas", "DejaVu Sans Mono", monospace;
}
* { box-sizing: border-box; }
html { background: var(--bg); }
body { margin: 0; background: var(--bg); color: var(--ink); font: 16px/1.5 var(--read); }
a { color: var(--cyan); }
a:hover { color: var(--amber); }
code, pre, .mono { font-family: var(--mono); }
code { background: #000020; padding: 0 .25em; }
main { max-width: 960px; margin: 0 auto; padding: 0 16px 32px; }
h1, h2, h3 { font-family: var(--pixel); font-weight: normal; letter-spacing: .02em; }
h1 { font-size: 1.6rem; margin: 0 0 .5em; color: var(--amber); }
h2 { font-size: 1.2rem; margin: 0 0 .5em; color: var(--amber); }
.muted { color: var(--muted); }
.warn { color: var(--red); }

.top { display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: baseline; justify-content: space-between;
  max-width: 960px; margin: 0 auto; padding: 12px 16px; font-family: var(--pixel); }
.sign { color: var(--amber); text-decoration: none; font-size: 1.3rem; }
.sign .kanji { color: var(--red); font-size: 1.5em; }
.sign .tr, h1 .tr { color: var(--muted); font-size: .7em; }
.sign .year { color: var(--muted); font-size: .9rem; }
.top nav { display: flex; flex-wrap: wrap; gap: 4px 16px; }
.top nav a { color: var(--ink); text-decoration: none; }
.top nav a:hover { color: var(--amber); }
.bottom { max-width: 960px; margin: 0 auto; padding: 16px; color: var(--muted); font-size: .85rem; }

/* окно с двойной рамкой */
.win { background: var(--panel); border: 4px double var(--line); padding: 14px 16px; margin: 16px 0; }
.win.wide { overflow-x: auto; }
.cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 0 16px; }

/* сцена 640×400 (16:10): арт - в фазе 4, пока - плоские цвета */
.scene { border: 4px double var(--line); background: #181838; margin: 16px 0; aspect-ratio: 16 / 10;
  image-rendering: pixelated; position: relative; }
.splash { display: flex; align-items: center; justify-content: center; }
.signboard { font-family: var(--pixel); color: var(--amber); font-size: clamp(1.4rem, 5vw, 2.6rem); text-align: center;
  border: 4px solid var(--red); padding: 12px 24px; background: #200810; }
.signboard span { color: var(--cyan); font-size: .55em; letter-spacing: .3em; }
.hall-floor { aspect-ratio: auto; min-height: 220px; display: flex; flex-wrap: wrap; gap: 16px; padding: 24px 16px;
  align-content: flex-start; background: url("art/bg-hall.png") center / cover; image-rendering: pixelated; }
.hall-floor .cab .plate, .hall-floor .cab .state { background: rgba(16, 16, 42, .8); }
.hall-floor .empty { background: rgba(16, 16, 42, .9); border: 2px solid var(--line); margin: 40px auto; }
.splash { background: url("art/bg-street.png") center / cover; }
.showcase { background-image: url("art/bg-street.png"); background-size: cover; background-position: center; image-rendering: pixelated; }
.empty { color: var(--muted); padding: 16px; }

/* автомат: спрайт 40×56 (art/cab-*.png, ×3), демо-текст студента - поверх экрана */
.cab { width: 120px; position: relative; font-family: var(--pixel); }
.cab .body { width: 120px; height: 168px; background: no-repeat 0 0 / 100% 100%; image-rendering: pixelated; position: relative; }
.cab-off .body { background-image: url("art/cab-off.png"); }
.cab-playing .body { background-image: url("art/cab-playing.png"); }
.cab-shift .body { background-image: url("art/cab-shift.png"); }
.cab-tournament .body { background-image: url("art/cab-tournament.png"); }
.cab .screen { position: absolute; left: 20%; top: 21.5%; width: 60%; height: 28.5%; background: rgba(8, 24, 16, .88);
  color: var(--green); font-size: .62rem; line-height: 1.15; padding: 2px 3px; overflow: hidden; white-space: pre-wrap;
  overflow-wrap: break-word; }
.cab-off .screen { color: var(--muted); background: rgba(16, 16, 42, .9); }
.cab .plate { color: var(--amber); text-align: center; margin-top: 4px; }
.cab .state { color: var(--muted); text-align: center; font-size: .7rem; white-space: nowrap; }
.cab-tournament .state { color: var(--amber); }
.cab.big { width: 240px; }
.cab.big .body { width: 240px; height: 336px; }
.cab.big .screen { font-size: .95rem; padding: 4px 6px; }

/* диалог с портретом */
.dialog { display: flex; gap: 16px; align-items: flex-start; }
.portrait { flex: none; width: 72px; height: 72px; border: 3px solid var(--line); background: var(--violet);
  display: flex; align-items: center; justify-content: center; font: 2rem var(--pixel); color: var(--ink); }
.lines p { margin: 0 0 .6em; }
.portrait-img { flex: none; width: 128px; height: 144px; image-rendering: pixelated; border: 3px solid var(--line); background: var(--panel); }

/* задания */
.tasks, .plain, .feed { list-style: none; margin: 0; padding: 0; }
.tasks li { padding: 4px 0; border-bottom: 1px dotted #404070; }
.task .mark { display: inline-block; width: 1.4em; font-family: var(--mono); }
.task .num { display: inline-block; width: 1.8em; text-align: right; margin-right: .5em; color: var(--muted); }
.st-done .mark { color: var(--green); }
.st-fail .mark { color: var(--red); }
.reason { margin: 2px 0 2px 3.7em; color: var(--muted); font-size: .92rem; }
.parts { color: var(--muted); font-family: var(--mono); font-size: .9rem; }
.feed li { padding: 2px 0; }
table { border-collapse: collapse; width: 100%; }
td, th { padding: 3px 6px; border-bottom: 1px dotted #404070; text-align: left; vertical-align: top; }
td.num { text-align: right; width: 3em; }
.admin tr.test td { color: var(--muted); }
.admin tr.hidden-text td { text-decoration: line-through; color: var(--muted); }
pre.small { margin: 0; font-size: .8rem; white-space: pre-wrap; }
button { font: inherit; background: var(--bg); color: var(--ink); border: 2px solid var(--line); padding: 2px 10px; cursor: pointer; }
button:hover { border-color: var(--amber); color: var(--amber); }
input { font: inherit; background: #000020; color: var(--ink); border: 2px solid var(--line); padding: 2px 6px; }

/* тексты: README, лекция, уроки */
.text h1 { font-size: 1.5rem; } .text h2 { margin-top: 1.4em; } .text h3 { color: var(--cyan); margin-top: 1.2em; }
.text pre, .card-text { background: #000018; border: 2px solid #404070; padding: 10px; overflow-x: auto; white-space: pre; }
.card-text { white-space: pre-wrap; margin: 0; }
.card-html p { margin: 0 0 .7em; }
.card-html pre.cmd { background: #000018; border: 2px solid #404070; padding: 8px 10px; margin: 0 0 .7em; overflow-x: auto; white-space: pre; }
.text table { margin: .5em 0; }
.table-wrap { overflow-x: auto; }
.text hr { border: 0; border-top: 4px double var(--line); margin: 1.5em 0; }

/* доска и витрина */
.corkboard { background: var(--cork); border: 4px double var(--line); padding: 16px; display: flex; flex-wrap: wrap; gap: 16px; }
.note { background: var(--paper); color: var(--paper-ink); padding: 10px 12px; width: 220px; }
.note pre { margin: 0; white-space: pre-wrap; word-break: break-word; font-family: var(--read); }
.note .sig { text-align: right; font-family: var(--pixel); }
.showcase { background-color: #05050f; border: 4px double var(--line); padding: 16px; display: flex; flex-wrap: wrap; gap: 16px; }
.poster-frame { margin: 0; border: 3px solid var(--amber); padding: 8px; background: #000; }
.poster-frame figcaption { font-family: var(--pixel); color: var(--amber); text-align: right; }
pre.poster { margin: 0; color: var(--ink); font-size: .85rem; line-height: 1.15; overflow-x: auto; }

/* пейджер */
.pager-box .lcd { display: inline-block; background: #a8b890; color: #182010; font-family: var(--pixel);
  padding: 6px 14px; border: 3px solid #404040; letter-spacing: .1em; }
.pet { font-family: var(--mono); font-size: 1.1rem; }
.credits { text-align: center; }

@media (max-width: 560px) {
  body { font-size: 16px; }
  .hall-floor .cab { width: calc(50% - 8px); } .hall-floor .cab .body { width: 100%; height: auto; aspect-ratio: 40 / 56; }
  .dialog { flex-direction: column; }
  .reason { margin-left: 0; }
}

.pet-img { width: 96px; height: 96px; image-rendering: pixelated; display: block; margin: 4px 0 8px; }
.cab-view { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-start; }
