/* Akari tokens only (fonts, sizes, spacing, colours); layout mirrors krtmtthw.dev: a 1120px column, 16px gutter. */
body { margin: 0; }
.col { max-width: var(--ak-layout-page); margin-inline: auto; padding-inline: var(--ak-layout-gutter); }
.bar { border-bottom: 1px solid var(--ak-border); }
.bar .col { display: flex; align-items: center; justify-content: space-between; gap: var(--ak-space-2); padding-block: var(--ak-space-1-5); }
.brand { display: inline-flex; align-items: center; gap: var(--ak-space-1); font-family: var(--ak-font-display); font-weight: var(--ak-font-weight-bold); font-size: var(--ak-font-size-lg); color: var(--ak-text); text-decoration: none; letter-spacing: -0.01em; }
.brand .seal { color: var(--ak-seal-color); flex: none; font-family: var(--ak-font-display); }
.back { font-family: var(--ak-font-mono); font-size: var(--ak-font-size-2xs); letter-spacing: 0.08em; text-transform: uppercase; color: var(--ak-text-muted); text-decoration: none; }
.back:hover { color: var(--ak-text); }
.gate { display: grid; gap: var(--ak-space-2); padding-block: var(--ak-space-5) var(--ak-space-8); justify-items: start; }
.gate .ak-eyebrow, .gate h1, .gate p { margin: 0; }
.gate h1 { font-family: var(--ak-font-display); font-size: var(--ak-font-size-3xl); line-height: var(--ak-leading-tight); letter-spacing: -0.01em; }
.state { display: flex; align-items: center; gap: var(--ak-space-2); }
.glyph { font-family: var(--ak-font-display); font-weight: var(--ak-font-weight-bold); font-size: var(--ak-font-size-3xl); line-height: 1; color: var(--ak-text-muted); }
#status { font-size: var(--ak-font-size-lg); }
.note { color: var(--ak-text-muted); font-size: var(--ak-font-size-sm); max-width: 62ch; }
.actions:has(> [hidden]) { display: none; }
#challenge:empty { display: none; }
.gate[data-state="ready"] .glyph { color: var(--ak-text-accent); }
.gate[data-state="error"] #status { color: var(--ak-danger); }
@media (prefers-reduced-motion: no-preference) {
  .gate[data-state="checking"] .glyph { animation: breathe 1.6s var(--ak-ease-standard) infinite alternate; }
  @keyframes breathe { from { opacity: 1; } to { opacity: 0.45; } }
}
