/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */
@layer theme, base, components, utilities;
@layer theme {
  :root, :host {
    --font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
    --default-font-family: var(--font-sans);
    --default-mono-font-family: var(--font-mono);
    --color-bg: #07090c;
    --color-panel: #11151a;
    --color-panel-strong: #161c23;
    --color-text: #e7edf3;
    --color-muted: #8c99a7;
    --color-line: #28313a;
    --color-ok: #4ade80;
    --color-warn: #fbbf24;
    --color-bad: #fb7185;
    --color-accent: #67e8f9;
    --color-stage: #050608;
  }
}
@layer base {
  *, ::after, ::before, ::backdrop, ::file-selector-button {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border: 0 solid;
  }
  html, :host {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji');
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }
  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
  }
  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
  }
  h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-weight: inherit;
  }
  a {
    color: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit;
  }
  b, strong {
    font-weight: bolder;
  }
  code, kbd, samp, pre {
    font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace);
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(--default-mono-font-variation-settings, normal);
    font-size: 1em;
  }
  small {
    font-size: 80%;
  }
  sub, sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }
  sub {
    bottom: -0.25em;
  }
  sup {
    top: -0.5em;
  }
  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }
  :-moz-focusring {
    outline: auto;
  }
  progress {
    vertical-align: baseline;
  }
  summary {
    display: list-item;
  }
  ol, ul, menu {
    list-style: none;
  }
  img, svg, video, canvas, audio, iframe, embed, object {
    display: block;
    vertical-align: middle;
  }
  img, video {
    max-width: 100%;
    height: auto;
  }
  button, input, select, optgroup, textarea, ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    border-radius: 0;
    background-color: transparent;
    opacity: 1;
  }
  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder;
  }
  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }
  ::file-selector-button {
    margin-inline-end: 4px;
  }
  ::placeholder {
    opacity: 1;
  }
  @supports (not (-webkit-appearance: -apple-pay-button))  or (contain-intrinsic-size: 1px) {
    ::placeholder {
      color: currentcolor;
      @supports (color: color-mix(in lab, red, red)) {
        color: color-mix(in oklab, currentcolor 50%, transparent);
      }
    }
  }
  textarea {
    resize: vertical;
  }
  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }
  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit;
  }
  ::-webkit-datetime-edit {
    display: inline-flex;
  }
  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }
  ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0;
  }
  ::-webkit-calendar-picker-indicator {
    line-height: 1;
  }
  :-moz-ui-invalid {
    box-shadow: none;
  }
  button, input:where([type='button'], [type='reset'], [type='submit']), ::file-selector-button {
    appearance: button;
  }
  ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
    height: auto;
  }
  [hidden]:where(:not([hidden='until-found'])) {
    display: none !important;
  }
}
@layer utilities {
  .static {
    position: static;
  }
  .block {
    display: block;
  }
  .hidden {
    display: none;
  }
}
@layer components {
  :root {
    color-scheme: dark;
  }
  ::selection {
    background: color-mix(in srgb, #67e8f9 28%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-accent) 28%, transparent);
    }
  }
  body {
    margin: 0;
    min-height: 100vh;
    background: radial-gradient(80rem 42rem at 50% -14rem, rgba(103, 232, 249, .05), transparent 60%), var(--color-bg);
    color: var(--color-text);
    font: 15px/1.5 var(--font-sans);
    -webkit-font-smoothing: antialiased;
    caret-color: var(--color-accent);
  }
  button, input {
    font: inherit;
  }
  button {
    border: 1px solid var(--color-line);
    background: var(--color-panel-strong);
    color: var(--color-text);
    cursor: pointer;
    font-family: var(--font-mono);
    font-size: .74rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    transition: border-color .15s ease, background-color .15s ease, color .15s ease;
  }
  button:hover:not(:disabled) {
    border-color: color-mix(in srgb, #67e8f9 45%, #28313a);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in srgb, var(--color-accent) 45%, var(--color-line));
    }
    color: var(--color-accent);
  }
  button:active:not(:disabled) {
    background: var(--color-panel);
  }
  button:disabled {
    color: var(--color-muted);
    cursor: not-allowed;
    opacity: .55;
  }
  button:focus-visible, input:focus-visible {
    outline: 1px solid var(--color-accent);
    outline-offset: 1px;
  }
  input {
    min-width: 0;
    border: 1px solid var(--color-line);
    background: var(--color-panel);
    color: var(--color-text);
    transition: border-color .15s ease;
  }
  input::placeholder {
    color: color-mix(in srgb, #8c99a7 70%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      color: color-mix(in srgb, var(--color-muted) 70%, transparent);
    }
  }
  input:focus {
    border-color: color-mix(in srgb, #67e8f9 55%, #28313a);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in srgb, var(--color-accent) 55%, var(--color-line));
    }
    outline: none;
  }
  .topbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    min-height: 3.5rem;
    padding: .6rem 1rem;
    border-bottom: 1px solid var(--color-line);
    background: color-mix(in srgb, #11151a 55%, #07090c);
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-panel) 55%, var(--color-bg));
    }
  }
  .brand {
    color: var(--color-text);
    font: 700 1.05rem/1 var(--font-mono);
    letter-spacing: .02em;
    user-select: none;
  }
  .brand .brand-wire {
    color: var(--color-accent);
    text-shadow: 0 0 14px color-mix(in srgb, #67e8f9 55%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      text-shadow: 0 0 14px color-mix(in srgb, var(--color-accent) 55%, transparent);
    }
  }
  .session {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin-left: auto;
  }
  .session input {
    width: 11rem;
    height: 2rem;
    padding: .25rem .55rem;
  }
  .session button, .create-game button, .library-toolbar button, .folder-actions button, .room button, .chat-form button {
    height: 2rem;
    padding: .25rem .7rem;
  }
  .session button, .chat-form button {
    border-color: color-mix(in srgb, #67e8f9 35%, #28313a);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in srgb, var(--color-accent) 35%, var(--color-line));
    }
    color: var(--color-accent);
    background: color-mix(in srgb, #67e8f9 6%, #161c23);
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-accent) 6%, var(--color-panel-strong));
    }
  }
  .session button:hover:not(:disabled), .chat-form button:hover:not(:disabled) {
    border-color: color-mix(in srgb, #67e8f9 65%, #28313a);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in srgb, var(--color-accent) 65%, var(--color-line));
    }
    background: color-mix(in srgb, #67e8f9 14%, #161c23);
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-accent) 14%, var(--color-panel-strong));
    }
  }
  .status-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5em;
    min-width: 7rem;
    padding: .25rem .55rem;
    border: 1px solid var(--color-line);
    color: var(--color-muted);
    background: var(--color-panel);
    font-family: var(--font-mono);
    font-size: .72rem;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
  .status-pill::before {
    content: "";
    flex: 0 0 auto;
    width: .5em;
    height: .5em;
    border-radius: 999px;
    background: currentColor;
    box-shadow: 0 0 6px currentColor;
  }
  .status-pill.ok {
    border-color: rgba(74, 222, 128, .45);
    color: var(--color-ok);
    background: rgba(74, 222, 128, .07);
  }
  .status-pill.warn {
    border-color: rgba(251, 191, 36, .45);
    color: var(--color-warn);
    background: rgba(251, 191, 36, .07);
  }
  .status-pill.bad {
    border-color: rgba(251, 113, 133, .45);
    color: var(--color-bad);
    background: rgba(251, 113, 133, .07);
  }
  @media (prefers-reduced-motion: no-preference) {
    .status-pill.warn::before {
      animation: pill-pulse 1.2s ease-in-out infinite;
    }
  }
  @keyframes pill-pulse {
    50% {
      opacity: .35;
    }
  }
  .tabs {
    display: flex;
    align-items: center;
    gap: .35rem;
  }
  .tab {
    min-width: 5.5rem;
    height: 2rem;
    color: var(--color-muted);
    background: transparent;
    border-color: transparent;
  }
  .tab:hover:not(:disabled) {
    color: var(--color-text);
    border-color: var(--color-line);
  }
  .tab.active {
    border-color: color-mix(in srgb, #67e8f9 50%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in srgb, var(--color-accent) 50%, transparent);
    }
    color: var(--color-accent);
    background: color-mix(in srgb, #67e8f9 8%, #11151a);
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-accent) 8%, var(--color-panel));
    }
  }
  .layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 20rem;
    gap: 1px;
    min-height: calc(100vh - 3.5rem);
    background: var(--color-line);
  }
  .main-panel, .side {
    background: var(--color-bg);
  }
  .main-panel[hidden] {
    display: none;
  }
  .main-panel.chat {
    display: grid;
    grid-template-rows: 1fr auto;
    min-height: calc(100vh - 3.5rem);
  }
  .library-panel {
    min-height: calc(100vh - 3.5rem);
    overflow: auto;
    padding: 1rem;
    scrollbar-width: thin;
    scrollbar-color: var(--color-line) transparent;
  }
  .log {
    overflow: auto;
    overscroll-behavior: contain;
    padding: 1.1rem 1.25rem;
    scrollbar-width: thin;
    scrollbar-color: var(--color-line) transparent;
  }
  .line {
    display: grid;
    grid-template-columns: 8rem minmax(0, 1fr);
    gap: .75rem;
    padding: .18rem 0;
    font-family: var(--font-mono);
    font-size: .92rem;
  }
  .line:hover {
    background: rgba(231, 237, 243, .03);
  }
  .line .nick {
    color: var(--color-accent);
    text-align: right;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .line.system .nick {
    color: var(--color-warn);
  }
  .line.system {
    color: var(--color-muted);
  }
  .line.error .nick, .error-text {
    color: var(--color-bad);
  }
  .chat-form {
    display: flex;
    gap: .5rem;
    padding: .75rem;
    border-top: 1px solid var(--color-line);
    background: var(--color-panel);
  }
  .chat-form input {
    flex: 1;
    height: 2rem;
    padding: .25rem .55rem;
    font-family: var(--font-mono);
    font-size: .92rem;
  }
  .side {
    display: grid;
    grid-template-rows: auto auto 1fr;
    gap: 1px;
    position: sticky;
    top: 0;
    align-self: start;
    height: calc(100vh - 3.5rem);
    overflow: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--color-line) transparent;
  }
  .section {
    padding: 1rem;
    background: var(--color-bg);
  }
  .section h2 {
    margin: 0 0 .75rem;
    color: var(--color-muted);
    font: 700 .72rem/1.4 var(--font-mono);
    letter-spacing: .14em;
    text-transform: uppercase;
  }
  .section h2::before {
    content: "// ";
    color: color-mix(in srgb, #67e8f9 55%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      color: color-mix(in srgb, var(--color-accent) 55%, transparent);
    }
  }
  .create-games {
    display: grid;
    gap: .2rem;
  }
  .create-game {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .5rem;
    min-height: 2.4rem;
    border-bottom: 1px solid rgba(40, 49, 58, .7);
  }
  .create-game:last-child {
    border-bottom: 0;
  }
  .create-game-title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .create-game.open .create-game-title {
    color: var(--color-ok);
  }
  .create-game.open button {
    border-color: rgba(74, 222, 128, .4);
    color: var(--color-ok);
    background: rgba(74, 222, 128, .06);
  }
  .create-game.open button:hover:not(:disabled) {
    border-color: rgba(74, 222, 128, .65);
    color: var(--color-ok);
  }
  .library-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--color-line);
  }
  .library-toolbar h1 {
    margin: 0;
    color: var(--color-text);
    font: 700 .9rem/1.4 var(--font-mono);
    letter-spacing: .14em;
    text-transform: uppercase;
  }
  .library-toolbar h1::before {
    content: "// ";
    color: color-mix(in srgb, #67e8f9 55%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      color: color-mix(in srgb, var(--color-accent) 55%, transparent);
    }
  }
  .library-toolbar .muted, .folder-title .muted, .library-game .muted {
    font-family: var(--font-mono);
    font-size: .78rem;
  }
  .library-toolbar button {
    border-color: color-mix(in srgb, #67e8f9 35%, #28313a);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in srgb, var(--color-accent) 35%, var(--color-line));
    }
    color: var(--color-accent);
    background: color-mix(in srgb, #67e8f9 6%, #161c23);
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-accent) 6%, var(--color-panel-strong));
    }
  }
  .library-toolbar button:hover:not(:disabled) {
    border-color: color-mix(in srgb, #67e8f9 65%, #28313a);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in srgb, var(--color-accent) 65%, var(--color-line));
    }
    background: color-mix(in srgb, #67e8f9 14%, #161c23);
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-accent) 14%, var(--color-panel-strong));
    }
  }
  .library-folders {
    display: grid;
    gap: 1rem;
  }
  .library-folder {
    display: grid;
    gap: .65rem;
    padding: .85rem .95rem 1rem;
    border: 1px solid var(--color-line);
    background: var(--color-panel);
  }
  .folder-head {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: .65rem;
    border-bottom: 1px solid rgba(40, 49, 58, .7);
  }
  .folder-title {
    min-width: 0;
  }
  .folder-title h2 {
    margin: 0;
    color: var(--color-text);
    font: 700 .95rem/1.5 var(--font-mono);
    letter-spacing: .01em;
    text-transform: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .folder-actions {
    display: flex;
    gap: .4rem;
    flex: 0 0 auto;
  }
  .library-games {
    display: grid;
    gap: 0;
  }
  .library-game {
    display: grid;
    gap: .2rem;
    padding: .55rem 0 .55rem .7rem;
    border-bottom: 1px solid rgba(40, 49, 58, .7);
    border-left: 2px solid var(--color-line);
    transition: background-color .15s ease;
  }
  .library-game:last-child {
    border-bottom: 0;
  }
  .library-game:hover {
    background: rgba(231, 237, 243, .025);
  }
  .library-game.owned {
    border-left-color: color-mix(in srgb, #4ade80 55%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      border-left-color: color-mix(in srgb, var(--color-ok) 55%, transparent);
    }
  }
  .library-game.incomplete {
    border-left-color: color-mix(in srgb, #fbbf24 55%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      border-left-color: color-mix(in srgb, var(--color-warn) 55%, transparent);
    }
  }
  .library-game-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    min-width: 0;
  }
  .library-game-title strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .library-badge {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: .5em;
    padding: .08rem .5rem;
    border: 1px solid var(--color-line);
    color: var(--color-muted);
    background: var(--color-panel-strong);
    font-family: var(--font-mono);
    font-size: .68rem;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
  .library-badge::before {
    content: "";
    flex: 0 0 auto;
    width: .5em;
    height: .5em;
    border-radius: 999px;
    background: currentColor;
    box-shadow: 0 0 6px currentColor;
  }
  .library-game.owned .library-badge {
    border-color: rgba(74, 222, 128, .45);
    color: var(--color-ok);
    background: rgba(74, 222, 128, .07);
  }
  .library-game.incomplete .library-badge {
    border-color: rgba(251, 191, 36, .45);
    color: var(--color-warn);
    background: rgba(251, 191, 36, .07);
  }
  .notice {
    margin: 0 0 1rem;
    padding: .7rem .8rem;
    border: 1px solid rgba(251, 191, 36, .45);
    border-left-width: 2px;
    color: var(--color-warn);
    background: rgba(251, 191, 36, .08);
    font-family: var(--font-mono);
    font-size: .85rem;
  }
  .rooms, .users {
    display: grid;
    gap: .5rem;
  }
  .room, .user {
    display: grid;
    gap: .35rem;
    padding: .65rem .7rem;
    border: 1px solid var(--color-line);
    background: var(--color-panel);
    transition: border-color .15s ease;
  }
  .room:hover, .user:hover {
    border-color: color-mix(in srgb, #8c99a7 35%, #28313a);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in srgb, var(--color-muted) 35%, var(--color-line));
    }
  }
  .room {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }
  .room button {
    border-color: color-mix(in srgb, #67e8f9 35%, #28313a);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in srgb, var(--color-accent) 35%, var(--color-line));
    }
    color: var(--color-accent);
    background: color-mix(in srgb, #67e8f9 6%, #161c23);
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-accent) 6%, var(--color-panel-strong));
    }
  }
  .room button:hover:not(:disabled) {
    border-color: color-mix(in srgb, #67e8f9 65%, #28313a);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in srgb, var(--color-accent) 65%, var(--color-line));
    }
    background: color-mix(in srgb, #67e8f9 14%, #161c23);
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-accent) 14%, var(--color-panel-strong));
    }
  }
  .room .close-room {
    width: 2rem;
    padding: 0;
    border-color: var(--color-line);
    color: var(--color-muted);
    background: var(--color-panel-strong);
  }
  .room .close-room:hover:not(:disabled) {
    border-color: rgba(251, 113, 133, .6);
    color: var(--color-bad);
    background: rgba(251, 113, 133, .08);
  }
  .room.flash {
    border-color: var(--color-warn);
    box-shadow: 0 0 0 1px color-mix(in srgb, #fbbf24 55%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      box-shadow: 0 0 0 1px color-mix(in srgb, var(--color-warn) 55%, transparent);
    }
  }
  .room-title, .user strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .user {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: baseline;
  }
  .muted {
    color: var(--color-muted);
    font-size: .85rem;
  }
  .has-tip {
    position: relative;
    cursor: help;
  }
  .tip {
    position: absolute;
    right: 0;
    bottom: calc(100% + .5rem);
    z-index: 30;
    width: max-content;
    max-width: 19rem;
    padding: .55rem .7rem;
    border: 1px solid color-mix(in srgb, #67e8f9 35%, #28313a);
    @supports (color: color-mix(in lab, red, red)) {
      border: 1px solid color-mix(in srgb, var(--color-accent) 35%, var(--color-line));
    }
    background: var(--color-panel-strong);
    color: var(--color-text);
    font: 400 .78rem/1.55 var(--font-sans);
    letter-spacing: 0;
    text-align: left;
    text-transform: none;
    white-space: pre-line;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .55);
    opacity: 0;
    visibility: hidden;
    transition: opacity .12s ease, visibility .12s ease;
    pointer-events: none;
  }
  .tip-below {
    bottom: auto;
    top: calc(100% + .5rem);
  }
  .has-tip:hover > .tip, .has-tip:focus-visible > .tip, .has-tip:focus-within > .tip {
    opacity: 1;
    visibility: visible;
  }
  .room-action {
    display: inline-flex;
  }
  .help-panel {
    min-height: calc(100vh - 3.5rem);
    overflow: auto;
    padding: 1.5rem 1rem 3rem;
    scrollbar-width: thin;
    scrollbar-color: var(--color-line) transparent;
  }
  .help-inner {
    max-width: 46rem;
    margin: 0 auto;
    display: grid;
    gap: 1.25rem;
  }
  .help-inner h1 {
    margin: 0;
    color: var(--color-text);
    font: 700 .9rem/1.4 var(--font-mono);
    letter-spacing: .14em;
    text-transform: uppercase;
  }
  .help-inner h1::before {
    content: "// ";
    color: color-mix(in srgb, #67e8f9 55%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      color: color-mix(in srgb, var(--color-accent) 55%, transparent);
    }
  }
  .help-inner p, .help-inner li, .help-inner dd {
    margin: 0;
    line-height: 1.65;
  }
  .help-inner em {
    font-style: normal;
    color: var(--color-accent);
  }
  .help-inner code {
    padding: .05em .4em;
    border: 1px solid var(--color-line);
    background: var(--color-panel-strong);
    font-family: var(--font-mono);
    font-size: .85em;
  }
  .help-callout {
    padding: .85rem 1rem;
    border: 1px solid color-mix(in srgb, #67e8f9 40%, #28313a);
    @supports (color: color-mix(in lab, red, red)) {
      border: 1px solid color-mix(in srgb, var(--color-accent) 40%, var(--color-line));
    }
    border-left-width: 2px;
    background: color-mix(in srgb, #67e8f9 6%, #11151a);
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-accent) 6%, var(--color-panel));
    }
    line-height: 1.65;
  }
  .help-callout strong {
    display: block;
    color: var(--color-accent);
  }
  .help-section {
    display: grid;
    gap: .6rem;
  }
  .help-section h2 {
    margin: .5rem 0 0;
    color: var(--color-muted);
    font: 700 .72rem/1.4 var(--font-mono);
    letter-spacing: .14em;
    text-transform: uppercase;
  }
  .help-section h2::before {
    content: "// ";
    color: color-mix(in srgb, #67e8f9 55%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      color: color-mix(in srgb, var(--color-accent) 55%, transparent);
    }
  }
  .help-section ol, .help-section ul {
    margin: 0;
    padding-left: 1.4rem;
    display: grid;
    gap: .45rem;
  }
  .help-section ol {
    list-style: decimal;
  }
  .help-section ul {
    list-style: square;
  }
  .help-section ol li::marker {
    color: var(--color-accent);
    font-family: var(--font-mono);
  }
  .help-section ul li::marker {
    color: var(--color-muted);
  }
  .help-games-table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid var(--color-line);
    background: var(--color-panel);
  }
  .help-games-table th {
    padding: .5rem .7rem;
    border-bottom: 1px solid var(--color-line);
    color: var(--color-muted);
    text-align: left;
    font: 700 .68rem/1.4 var(--font-mono);
    letter-spacing: .1em;
    text-transform: uppercase;
  }
  .help-games-table td {
    padding: .45rem .7rem;
    border-bottom: 1px solid rgba(40, 49, 58, .7);
  }
  .help-games-table tr:last-child td {
    border-bottom: 0;
  }
  .help-games-table td code {
    border: 0;
    background: transparent;
    padding: 0;
    color: var(--color-accent);
  }
  .help-badges {
    margin: 0;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .6rem .9rem;
    align-items: start;
  }
  .help-badges dt {
    padding-top: .1rem;
  }
  .help-badge {
    display: inline-flex;
    align-items: center;
    gap: .5em;
    padding: .08rem .5rem;
    border: 1px solid var(--color-line);
    color: var(--color-muted);
    background: var(--color-panel-strong);
    font-family: var(--font-mono);
    font-size: .68rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    white-space: nowrap;
  }
  .help-badge::before {
    content: "";
    flex: 0 0 auto;
    width: .5em;
    height: .5em;
    border-radius: 999px;
    background: currentColor;
    box-shadow: 0 0 6px currentColor;
  }
  .help-badge.ok {
    border-color: rgba(74, 222, 128, .45);
    color: var(--color-ok);
    background: rgba(74, 222, 128, .07);
  }
  .help-badge.warn {
    border-color: rgba(251, 191, 36, .45);
    color: var(--color-warn);
    background: rgba(251, 191, 36, .07);
  }
  .page-nav {
    display: inline-grid;
    grid-auto-flow: column;
    gap: .25rem;
    padding: .25rem;
    border: 1px solid var(--color-line);
    background: var(--color-panel);
  }
  .page-nav a {
    min-width: 4.5rem;
    padding: .35rem .65rem;
    color: var(--color-muted);
    text-align: center;
    font-family: var(--font-mono);
    font-size: .74rem;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
  .page-nav a[aria-current="page"] {
    background: color-mix(in srgb, #67e8f9 8%, #161c23);
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-accent) 8%, var(--color-panel-strong));
    }
    color: var(--color-accent);
  }
  .netplay-form {
    display: flex;
    align-items: center;
    gap: .4rem;
  }
  .netplay-form input {
    width: 8rem;
    height: 2rem;
    padding: .25rem .55rem;
    font-family: var(--font-mono);
    font-size: .88rem;
  }
  .netplay-form button {
    height: 2rem;
    min-width: 3.5rem;
    padding: .25rem .65rem;
    border-color: color-mix(in srgb, #67e8f9 35%, #28313a);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in srgb, var(--color-accent) 35%, var(--color-line));
    }
    color: var(--color-accent);
    background: color-mix(in srgb, #67e8f9 6%, #161c23);
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-accent) 6%, var(--color-panel-strong));
    }
  }
  .netplay-form button:hover:not(:disabled) {
    border-color: color-mix(in srgb, #67e8f9 65%, #28313a);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in srgb, var(--color-accent) 65%, var(--color-line));
    }
    background: color-mix(in srgb, #67e8f9 14%, #161c23);
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-accent) 14%, var(--color-panel-strong));
    }
  }
  .status-group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    margin-left: auto;
  }
  #netplay-delay.status-pill::before, #netplay-rate.status-pill::before {
    display: none;
  }
  .status-button {
    height: 1.85rem;
    min-width: 4.75rem;
    padding: .2rem .55rem;
    background: var(--color-panel);
    color: var(--color-accent);
    font-size: .7rem;
  }
  .stage {
    position: relative;
    min-height: calc(100vh - 3.5rem);
    background: var(--color-stage);
  }
  .emulator-root, .emulator-root > div {
    width: 100%;
    min-height: calc(100vh - 3.5rem);
  }
  .boot-status {
    position: absolute;
    inset: 1rem;
    display: grid;
    place-items: center;
    padding: 1rem;
    border: 1px dashed var(--color-line);
    background: color-mix(in srgb, #11151a 82%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-panel) 82%, transparent);
    }
    color: var(--color-muted);
    text-align: center;
    white-space: pre-line;
    font-family: var(--font-mono);
    font-size: .92rem;
  }
  .boot-status.ok {
    color: var(--color-ok);
    border-color: rgba(74, 222, 128, .45);
  }
  .boot-status.warn {
    color: var(--color-warn);
    border-color: rgba(251, 191, 36, .45);
  }
  .boot-status.bad {
    color: var(--color-bad);
    border-color: rgba(251, 113, 133, .45);
  }
  .stage.booted .boot-status {
    display: none;
  }
  .connection-overlay {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(0, 0, 0, .72);
    backdrop-filter: blur(3px);
  }
  .connection-overlay[hidden] {
    display: none;
  }
  .connection-modal {
    position: absolute;
    inset: 3.5rem 0 0;
    display: grid;
    place-items: center;
    border-top: 1px solid rgba(251, 113, 133, .45);
    background: radial-gradient(42rem 22rem at 50% 50%, rgba(251, 113, 133, .1), transparent 65%), color-mix(in srgb, #050608 94%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background: radial-gradient(42rem 22rem at 50% 50%, rgba(251, 113, 133, .1), transparent 65%), color-mix(in srgb, var(--color-stage) 94%, transparent);
    }
    box-shadow: inset 0 0 8rem rgba(0, 0, 0, .75);
  }
  .connection-modal-copy {
    width: min(34rem, calc(100% - 4rem));
    padding: 2.5rem;
    border: 1px solid rgba(251, 113, 133, .55);
    background: color-mix(in srgb, #161c23 92%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-panel-strong) 92%, transparent);
    }
    color: var(--color-text);
    text-align: center;
    box-shadow: 0 0 3rem rgba(251, 113, 133, .12);
  }
  .connection-modal-kicker {
    margin: 0 0 .75rem;
    color: var(--color-bad);
    font: 700 .72rem/1 var(--font-mono);
    letter-spacing: .16em;
    text-transform: uppercase;
  }
  .connection-modal h1 {
    margin: 0;
    color: var(--color-bad);
    font: 700 2rem/1.15 var(--font-mono);
    letter-spacing: .03em;
    text-transform: uppercase;
  }
  .connection-modal-copy > :last-child {
    margin: 1rem 0 0;
    color: var(--color-muted);
  }
}
