:root {
  color-scheme:light;
  --ink:#17231f; --paper:#f3efe5; --panel:#fffdf7; --muted:#606b66; --line:#cccec5;
  --accent:#98452a; --hit:#20705a; --miss:#ad493f; --amber:#ead298;
  --sans:'Helvetica Neue',Helvetica,Arial,sans-serif;
  --mono:'SFMono-Regular',Consolas,'Liberation Mono',monospace;
  color:var(--ink); background:var(--paper); font-family:var(--sans); font-size:16px; font-synthesis:none;
}
* {box-sizing:border-box}
body {margin:0;-webkit-font-smoothing:antialiased}
::selection {background:#d7d9d0;color:var(--ink)}
button,input {font:inherit}
button,a,input {-webkit-tap-highlight-color:transparent}
button {cursor:pointer;color:inherit}
button:disabled {cursor:default}
a {color:inherit;text-underline-offset:3px}
button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible {outline:2px solid var(--accent);outline-offset:4px}
[hidden] {display:none!important}
.site-header {max-width:820px;height:72px;margin:auto;padding:0 24px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand {font-size:24px;font-weight:500;letter-spacing:-1.2px;text-decoration:none}
.header-actions {display:flex;align-items:center;gap:12px}
.help-button {display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid var(--line);width:32px;height:32px;border-radius:2px;background:transparent;font:14px var(--mono)}
.help-button:hover {background:var(--panel);border-color:var(--ink)}
.mode-switch {display:flex;gap:16px;align-items:center}
.mode-switch button {border:0;border-bottom:1px solid transparent;background:transparent;padding:8px 0;border-radius:0;font-size:13px;font-weight:400;color:var(--muted)}
.mode-switch button[aria-pressed=true] {color:var(--ink);border-bottom-color:var(--ink)}
main {max-width:820px;margin:auto;padding:0 24px}
h1 {font:400 26px/1.2 var(--sans);letter-spacing:-.8px;text-align:center;margin:30px 0 24px}
.quote-card {background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:2px;padding:22px 28px 28px}
.quote-meta {display:flex;justify-content:space-between;gap:12px;color:var(--muted);font:11px/1.4 var(--mono)}
#puzzle-label {color:var(--accent)}
blockquote {font:400 32px/1.35 var(--sans);letter-spacing:-1px;margin:26px 0 6px;white-space:pre-line}
.practice-controls {display:flex;justify-content:flex-end;gap:22px;margin-top:12px}
.text-button {padding:0;border:0;background:transparent;font-size:12px;color:var(--muted)}
.text-button:hover {color:var(--ink);text-decoration:underline}
.guess-section {margin:24px 0}
form {display:flex;gap:8px}
.picker {position:relative;flex:1;min-width:0}
input {width:100%;height:51px;border-radius:2px;background:var(--panel);border:1px solid #b9beb4;padding:0 16px;font-size:16px;color:var(--ink)}
input::placeholder {color:#737b72}
input:disabled {background:#eae8df}
.primary-button {display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ink);border-radius:2px;background:var(--ink);color:var(--panel);padding:12px 26px;min-height:48px;font-size:14px;font-weight:500}
.primary-button:hover {background:#303e36}
.primary-button:disabled {opacity:.45}
.under-input {display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:12px;font:11px var(--mono);color:var(--muted)}
.attempts {display:flex;gap:5px}
.attempt {width:20px;height:5px;border-radius:0;background:#d5d8ce}
.attempt.used {background:#68756b}
.attempt.won {background:var(--hit)}
.notice {font-size:13px;margin:12px 0 0;color:var(--miss)}
.notice:empty {display:none}
#input-help:not(.sr-only) {font-size:12px;color:var(--muted)}
#suggestions {position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;list-style:none;margin:0;padding:4px;background:var(--panel);border:1px solid #b9beb4;border-radius:2px;box-shadow:0 8px 20px #17231f12;max-height:258px;overflow-y:auto}
#suggestions li[role=option] {display:flex;align-items:center;gap:10px;padding:10px;border-radius:0;font-size:14px;cursor:pointer}
#suggestions li[aria-selected=true],#suggestions li:hover {background:#eae8df}
.person-initials {width:29px;height:29px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font:11px var(--mono);background:#eae8df;border:1px solid var(--line);border-radius:2px;color:var(--muted)}
.no-match,.picker-note {padding:12px;font-size:12px;color:var(--muted)}
.picker-note {border-top:1px solid var(--line)}
.history-section {margin-top:28px}
.legend {display:flex;gap:20px;align-items:center;margin-bottom:16px;font-size:11px;color:var(--muted)}
.legend>span {display:inline-flex;align-items:center;gap:5px}
.swatch {display:inline-flex;align-items:center;justify-content:center;border-radius:1px;width:18px;height:18px;font-size:13px;font-style:normal;font-weight:600}
.exact {background:var(--hit);color:#fff}
.miss {background:var(--miss);color:#fff}
.close {background:var(--amber);color:#493917}
.unknown {background:#eae8df;color:#5d675e;border:1px dashed #aeb5a7}
.column-labels,.guess-grid {display:grid;grid-template-columns:1.5fr repeat(5,minmax(0,1fr));gap:6px}
.column-labels {margin-bottom:9px;color:var(--muted);font:10px var(--mono);letter-spacing:.4px}
.column-labels span:not(:first-child) {text-align:center}
.guess-row {margin:0 0 10px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.guess-grid {align-items:stretch}
.guess-person {display:flex;align-items:center;gap:8px;min-width:0;padding:8px 2px;font-size:13px;line-height:1.3}
.guess-person strong {font-weight:600}
.guess-number {font:11px var(--mono);color:var(--muted);font-variant-numeric:tabular-nums}
.clue-cell {padding:10px 5px;border-radius:2px;min-height:78px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;font-size:12px;font-weight:500;line-height:1.35;overflow-wrap:anywhere}
.clue-cell .mark {font-size:17px;font-weight:700;line-height:1}
.clue-cell .mobile-label {display:none}
.guess-person a {text-decoration:none}
.guess-person a:hover {text-decoration:underline}
.result {border:1px solid #bcd9c7;background:#e7f2e9;padding:20px;border-radius:2px;margin-bottom:22px}
.result.loss {background:#f7e9e6;border-color:#dfb9b3}
.result .result-kicker {font-size:12px;font-weight:650;color:#24673f;margin:0 0 5px}
.result.loss .result-kicker {color:#943831}
.result h2 {font:400 28px var(--sans);letter-spacing:-.7px;margin:0 0 8px}
.result p {font-size:13px;line-height:1.6;margin:7px 0}
.result .answer-details {color:var(--muted)}
.result summary,.result a {font-size:12px}
.result-actions {margin-top:16px}
.result .primary-button {min-height:38px;padding:9px 16px;font-size:12px}
details {font-size:13px;color:var(--muted)}
summary {cursor:pointer;width:fit-content}
details p {font-size:13px;line-height:1.65}
footer {display:flex;justify-content:center;gap:22px;margin:30px 0 0;padding:20px 0 28px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}
footer a {text-decoration:none}
footer a:hover {text-decoration:underline}
dialog {border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:3px;padding:26px;width:calc(100% - 32px);max-width:460px;max-height:85dvh;overflow:auto;box-shadow:0 18px 60px #17231f24}
dialog::backdrop {background:#17231f55;backdrop-filter:blur(2px)}
.dialog-heading {display:flex;align-items:center;justify-content:space-between;gap:15px}
.dialog-heading h2 {font:400 24px var(--sans);letter-spacing:-.6px;margin:0}
.close-button {border:0;background:transparent;width:32px;height:32px;font-size:26px;color:var(--muted)}
dialog>p {font-size:14px;line-height:1.65;color:var(--muted)}
.help-legend {display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:20px 0}
.help-legend p {display:flex;align-items:center;gap:8px;font-size:13px;margin:0}
dialog>.primary-button {margin-top:22px;width:100%}
.source-links {font-size:12px}
.sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:620px) {
  .site-header {height:70px;padding:0 18px;gap:12px}
  .brand {font-size:23px}
  .header-actions {gap:12px}
  .mode-switch {gap:15px}
  .mode-switch button {padding:8px 0;font-size:12px}
  .help-button {width:29px;height:29px}
  main {padding:0 18px}
  h1 {font-size:23px;margin:24px 0 20px}
  .quote-card {padding:20px 22px 24px}
  blockquote {font-size:27px;letter-spacing:-.7px;margin-top:24px}
  .quote-meta {font-size:10px}
  .primary-button {padding-inline:21px}
  .legend {gap:15px;font-size:10px}
  .column-labels {display:none}
  .guess-row {padding-bottom:14px;margin-bottom:14px}
  .guess-grid {grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
  .guess-person {grid-column:1/-1;font-size:14px;padding:0 0 6px}
  .clue-cell {grid-column:span 2;font-size:13px;min-height:89px;padding:10px 5px;gap:6px}
  .clue-cell:nth-last-child(-n+2) {grid-column:span 3;min-height:82px}
  .clue-cell .mobile-label {display:block;font:9px var(--mono);letter-spacing:.4px;opacity:.85}
}
@media(prefers-reduced-motion:reduce) {*{scroll-behavior:auto!important}}

.credits-page {max-width:780px;padding:48px 24px}
.credits-page h1 {font-size:36px;white-space:normal;text-align:left;margin:28px 0}
.credits-page h2 {font-size:20px;font-weight:400;letter-spacing:-.4px;margin-top:32px}
.credits-page p,.credits-page li {font-size:14px;line-height:1.7;color:var(--muted)}
.credits-page pre {white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.7 var(--mono);padding:20px;background:#eae8df;border:1px solid var(--line)}

#daily-reset {margin-left:auto;font:11px var(--mono);font-variant-numeric:tabular-nums}
.stats-grid {display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:28px 0 14px;text-align:center}
.stats-grid>div {display:flex;flex-direction:column-reverse;gap:7px}
.stats-grid dt {font-size:11px;color:var(--muted)}
.stats-grid dd {font:28px var(--mono);margin:0}
.stats-caption {font-size:12px;color:var(--muted);line-height:1.6}
.recent-heading {margin:24px 0 8px;font-size:13px;font-weight:500}
.recent-results {list-style:none;padding:0;margin:0;font:12px var(--mono)}
.recent-results li {display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}
.result-win {color:var(--hit)}
.result-miss {color:var(--miss)}
.empty-history {font:12px var(--sans);color:var(--muted)}
@media(max-width:620px){
  footer {flex-wrap:wrap;gap:16px}
  #daily-reset {width:100%;margin:0;text-align:center}
  .header-actions {gap:9px}
  .stats-grid {gap:6px}
  .stats-grid dd {font-size:25px}
}
