/* Local retro accents. Full reading content remains accessible and selectable. */
:root { --retro-type: "Lucida Console", "Liberation Mono", "Courier New", monospace; }
.retro-toggle {
  display: inline-flex; align-items: center; gap: 7px; border: 1px solid #c9d6cb;
  border-radius: 5px; padding: 7px 9px; min-height: 34px;
  color: #415f4a; background: #fff; font: .65rem/1.2 var(--mono); cursor: pointer;
}
.retro-toggle span { color: #2e7850; }
.retro-toggle[aria-pressed="false"] span { color: #747d76; }
.retro-screen {
  --phosphor: #d3d0ff; --retro-base: #30396d; --retro-edge: #8b8bcb;
  position: relative; isolation: isolate; overflow: hidden;
  border: 1px solid var(--retro-edge); border-radius: 5px;
  padding: 16px 18px 13px; color: var(--phosphor); background: var(--retro-base);
  box-shadow: inset 0 0 25px #04091d36, 0 0 0 4px #e5e9ec;
  transition: background-color .4s ease, border-color .4s ease;
}
.retro-screen[data-retro-palette="atari"] {
  --phosphor: #c4efff; --retro-base: #183953; --retro-edge: #77a8be;
}
.retro-screen[data-retro-palette="amber"] {
  --phosphor: #ffdda0; --retro-base: #382c20; --retro-edge: #bba17a;
}
.retro-screen::before {
  content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background: repeating-linear-gradient(0deg,#0000000c 0 1px,transparent 1px 4px);
  opacity: .6;
}
.retro-screen::after {
  content: ""; pointer-events: none; position: absolute; inset: -80% 0 100%; z-index: 3;
  background: linear-gradient(transparent,#e4f0ff0d,transparent);
}
html[data-retro-motion="on"] .retro-screen::after { animation: crt-sweep 7s linear infinite; }
@keyframes crt-sweep { to { transform: translateY(500%); } }
.retro-caption {
  display: flex; justify-content: space-between; align-items: center; gap: 10px;
  font: .65rem/1.5 var(--mono); letter-spacing: .055em;
  opacity: .85; margin-bottom: 11px;
}
.retro-led { width: 5px; height: 5px; flex: none; background: currentColor; box-shadow: 0 0 7px currentColor; }
.retro-pixelmark { display: block; width: min(100%, 330px); height: auto; margin: 17px 0 22px; fill: var(--phosphor); filter: drop-shadow(2px 2px 0 #13152c44); }
.retro-offscreen .cursor, html[data-retro-motion="on"] .retro-offscreen .retro-screen::after { animation-play-state: paused; }
.retro-screen .command { color: var(--phosphor); font-size: .875rem; min-height: 1.6em; text-shadow: 0 0 7px #b9ccff25; }
.retro-screen .command > span:first-child { color: var(--phosphor); display: block; margin-bottom: 3px; font-size: .75rem; opacity: .85; }
.retro-screen .cursor { width: .62em; height: 1em; background: var(--phosphor); vertical-align: -.14em; margin-left: 3px; box-shadow: 0 0 9px #b9ccff30; }
.retro-output { font: .6875rem/1.6 var(--mono); color: var(--phosphor); margin-top: 10px; min-height: 3.2em; opacity: .9; white-space: pre-line; overflow-wrap: anywhere; }
.retro-loader { height: 3px; margin-top: 7px; background: #ffffff14; overflow: hidden; }
.retro-loader span { display: block; height: 100%; background: repeating-linear-gradient(90deg,var(--phosphor) 0 12px,transparent 12px 15px); transform-origin: left; opacity: .75; }
html[data-retro-motion="on"] .cursor { animation: retro-cursor .9s step-end infinite; }
@keyframes retro-cursor { 50% { opacity: 0; } }
.archive-command { position: relative; background: #19271e; }
.archive-boot {
  display: flex; gap: 14px; align-items: center; color: #c2dab9;
  padding-bottom: 17px; margin-bottom: 15px; border-bottom: 1px dashed #546c50;
  font: .8rem/1.75 var(--mono); letter-spacing: .03em;
}
.pixel-emblem { font-size: 2.3rem; line-height: 1; color: #abc9a0; text-shadow: 3px 3px 0 #354b31; }
#archive-boot-status { font-size: .6875rem; color: #9eaf99; }
.archive-memory { margin-left: auto; color: #9bac98; font-size: .65rem; }
.archive-command > span:first-of-type { color: #a9d4ae; margin-right: 10px; }
.archive-command .cursor { width: .6em; height: 1.1em; vertical-align: -.15em; }
.publication .product-label::before { content: "› "; color: #aac5a1; }
.publication.is-reading .product-label::before { content: "▌ "; }
.role-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 18px; margin-bottom: 8px; }
.role-heading > span { color: #b8d7b1; font-size: .8rem; font-weight: 600; }
.publication-role { --terminal-lime: #c3f579; font-family: var(--retro-type); }
.publication-role p { font-family: var(--retro-type); font-size: 1rem; line-height: 1.8; letter-spacing: 0; overflow-wrap: anywhere; color: var(--terminal-lime); text-shadow: 0 0 8px #b8ed6426, 0 0 18px #b8ed640d; }
#archive-command { color: #c3f579; text-shadow: 0 0 8px #b8ed6426; }
.role-skip { visibility: hidden; border: 0; background: none; color: #b4c5ae; font: .7rem/1.5 var(--mono); padding: 4px 0; text-decoration: underline; text-underline-offset: 4px; }
.is-printing .role-skip { visibility: visible; }
.role-body { position: relative; }
.role-body .role-typewriter { display: none; position: absolute; inset: 0; pointer-events: none; }
.is-printing .role-original { opacity: 0; }
.is-printing .role-typewriter { display: block; }
.is-printing .role-typewriter::after { content: ""; display: inline-block; width: .58em; height: 1em; margin-left: 3px; vertical-align: -.12em; background: var(--terminal-lime); box-shadow: 0 0 8px #b8ed644d; }
html[data-retro-motion="on"] .is-printing .role-typewriter::after { animation: retro-cursor .9s step-end infinite; }
html[data-retro-motion="on"] .publication.is-reading .product-label::before { animation: retro-cursor 1.1s step-end infinite; }
html[data-retro-motion="off"] .cursor,
html[data-retro-motion="off"] .retro-screen::after,
html[data-retro-motion="off"] .publication.is-reading .product-label::before { animation: none; }
html[data-retro-motion="off"] .retro-screen { transition: none; }
@media (max-width: 720px) { .archive-memory { display: none; } }
@media (max-width: 540px) {
  .window-chrome { gap: 6px; flex-wrap: wrap; height: auto; min-height: 48px; padding-top: 8px; padding-bottom: 8px; }
  .window-chrome > span:nth-child(2) { font-size: .625rem; }
  .window-dots { gap: 3px; }
  .window-dots i { width: 5px; height: 5px; }
  .retro-toggle { font-size: .625rem; padding: 6px; margin-left: auto; }
  .retro-screen { padding: 14px 13px 11px; }
  .retro-screen .command { font-size: .8125rem; }
  .retro-output { font-size: .6875rem; min-height: 4.8em; }
  .retro-caption { font-size: .625rem; }
  .archive-boot { font-size: .75rem; gap: 10px; }
  .archive-command > span:first-of-type { display: block; margin-bottom: 5px; }
}
@media (prefers-reduced-motion: reduce) {
  html[data-retro-motion] .cursor,
  html[data-retro-motion] .retro-screen::after,
  html[data-retro-motion] .publication.is-reading .product-label::before { animation: none !important; }
  .is-printing .role-original { opacity: 1; }
  .is-printing .role-typewriter { display: none; }
  .retro-screen { transition: none; }
}
@media print {
  .publication-role p, #archive-command { color: #202421; text-shadow: none; }
  .retro-toggle, .retro-screen { display: none; }
  .role-skip, .is-printing .role-typewriter { display: none; }
  .is-printing .role-original { opacity: 1; }
}
