:root{--bg: #f4efe4;--surface: #fbf8f1;--surface-2: #ece5d6;--ink: #1c1a17;--ink-2: #5f584d;--ink-3: #8a8274;--line: #ddd3c1;--line-strong: #c4b8a2;--accent: #7a2e22;--accent-ink: #fbf8f1;--focus: #1f5fa8;--danger: #a33a2c;--h-exact: #3a8a5c;--h-scorching: #d6a531;--h-hot: #dc7a35;--h-warm: #c2453a;--h-cold: #3d6a9e;--h-ink: #ffffff;--serif: "Fraunces", Georgia, "Times New Roman", serif;--num: "Source Serif 4", "Iowan Old Style", Georgia, serif;--sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--radius: 10px;--max: 540px;color-scheme:light}@media (prefers-color-scheme: dark){:root{--bg: #14120f;--surface: #1d1a16;--surface-2: #29251f;--ink: #f1eadc;--ink-2: #b9b0a0;--ink-3: #8c8475;--line: #353028;--line-strong: #4a4337;--accent: #e0a07f;--accent-ink: #1c1a17;--focus: #7fb0ea;--danger: #ef8a7b;--h-exact: #3f9a66;--h-scorching: #c99a2b;--h-hot: #d27032;--h-warm: #b9443a;--h-cold: #3f6ea3;color-scheme:dark}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.55 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:3px}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.2;margin:0;letter-spacing:-.01em}h1{font-size:1.6rem}h2{font-size:1.25rem}h3{font-size:1.05rem}p{margin:0}.muted{color:var(--ink-2)}.small{font-size:.85rem}.tabular{font-variant-numeric:tabular-nums}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app{min-height:100dvh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.topbar-inner{max-width:var(--max);margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:4px}.logo{font-family:var(--serif);font-size:1.45rem;font-weight:600;text-decoration:none;margin-right:auto;letter-spacing:-.02em}.logo span{color:var(--accent)}.icon-btn{width:40px;height:40px;display:inline-grid;place-items:center;border:0;border-radius:999px;background:transparent;cursor:pointer;color:var(--ink-2);text-decoration:none}.icon-btn:hover,.icon-btn[aria-current=page]{background:var(--surface-2);color:var(--ink)}.icon-btn svg{width:21px;height:21px}.lang-picker{position:relative;font-size:.78rem;font-weight:600;letter-spacing:.04em}.lang-picker select{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:16px}.lang-picker:focus-within{outline:2px solid var(--focus);outline-offset:2px}main{width:100%;max-width:var(--max);margin:0 auto;padding:20px 16px 48px;flex:1}.stack{display:flex;flex-direction:column;gap:16px}.stack-lg{display:flex;flex-direction:column;gap:28px}.puzzle-page{gap:20px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.spread{display:flex;align-items:center;justify-content:space-between;gap:12px}footer{text-align:center;padding:16px;color:var(--ink-3);font-size:.8rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px}.section-title{font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:10px}.chip{width:fit-content;display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:500;padding:3px 10px;border-radius:999px;background:var(--surface-2);color:var(--ink-2)}.notice{padding:12px 14px;border-radius:var(--radius);background:var(--surface-2);color:var(--ink-2);font-size:.92rem}.error{color:var(--danger);font-size:.88rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;font-weight:500;text-decoration:none;white-space:nowrap}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn.primary:hover{opacity:.9}.btn.small{min-height:34px;padding:0 12px;font-size:.88rem}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{background:var(--surface-2)}.btn svg{width:18px;height:18px}.btn-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.btn-row .btn{min-width:0;white-space:normal;text-align:center;padding:6px 10px;line-height:1.2}.input,.textarea,.select{width:100%;min-height:44px;padding:10px 12px;border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--surface)}.textarea{min-height:84px;resize:vertical}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:.88rem;font-weight:500}.field .hint{font-size:.8rem;color:var(--ink-3)}.puzzle-head{display:flex;flex-direction:column;gap:10px}.event-title{font-size:clamp(1.45rem,5.5vw,1.85rem);text-wrap:balance;-webkit-hyphens:manual;hyphens:manual}.clues{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.clue{display:flex;gap:10px;align-items:flex-start;padding:9px 12px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);font-size:.93rem;animation:rise .35s ease both}.clue.latest{border-color:var(--accent);border-width:1.5px}.clue.locked{background:transparent;border-style:dashed;color:var(--ink-3);animation:none}.clue-num{font-family:var(--num);font-weight:600;color:var(--accent);min-width:14px}.clue.locked .clue-num{color:var(--ink-3)}.board{display:flex;flex-direction:column;gap:6px;align-items:center}.guess-row{display:grid;grid-template-columns:44px repeat(4,52px) 44px;gap:6px;align-items:center}.guess-row:before{content:""}.tile{height:52px;border-radius:8px;display:grid;place-items:center;font-family:var(--num);font-size:1.7rem;font-weight:600;font-variant-numeric:lining-nums tabular-nums;border:2px solid var(--line);background:transparent}.tile.typed{border-color:var(--ink-3);animation:pop .12s ease}.tile.filled{border-color:transparent;color:var(--h-ink)}.tile.flip{animation:flip .45s ease both}.tile.filled.blank{opacity:.35}.dir{width:44px;height:44px;display:grid;place-items:center;color:var(--ink-2)}.dir svg{width:26px;height:26px}.heat-exact{background:var(--h-exact)}.heat-scorching{background:var(--h-scorching)}.heat-hot{background:var(--h-hot)}.heat-warm{background:var(--h-warm)}.heat-cold{background:var(--h-cold)}.shake{animation:shake .4s ease}.legend{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 14px;font-size:.78rem;color:var(--ink-2)}.legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:5px;vertical-align:-1px}.keypad{display:flex;flex-direction:column;gap:8px;-webkit-user-select:none;user-select:none}.keypad-row{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.keypad-row.actions{grid-template-columns:1fr 1.6fr}.key{height:52px;border-radius:8px;border:0;background:var(--surface-2);cursor:pointer;font-size:1.2rem;font-weight:600;display:grid;place-items:center;touch-action:manipulation}.key:active{transform:scale(.97)}.key.enter{background:var(--ink);color:var(--bg);font-size:1rem}.key svg{width:22px;height:22px}.squares{display:inline-flex;gap:3px;vertical-align:middle}.squares i{width:14px;height:14px;border-radius:3px;display:inline-block}.squares.big i{width:22px;height:22px;border-radius:5px}.answer{text-align:center;display:flex;flex-direction:column;gap:6px;align-items:center}.answer-year{font-family:var(--num);font-variant-numeric:lining-nums;font-size:3.4rem;font-weight:600;line-height:1;letter-spacing:-.02em}.fun-fact{font-family:var(--serif);font-size:1.05rem;line-height:1.5}.bars{display:flex;flex-direction:column;gap:5px}.bar{display:grid;grid-template-columns:22px 1fr;gap:8px;align-items:center;font-size:.85rem}.bar-fill{min-width:26px;padding:2px 8px;border-radius:4px;text-align:right;font-weight:600;background:var(--surface-2);color:var(--ink-2);font-variant-numeric:tabular-nums}.bar-fill.mine{background:var(--h-exact);color:var(--h-ink)}.stacked{display:flex;height:14px;border-radius:999px;overflow:hidden;background:var(--surface-2)}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px}.metric{background:var(--surface-2);border-radius:var(--radius);padding:10px 12px}.metric b{display:block;font-family:var(--num);font-size:1.5rem;font-weight:600;line-height:1.2;font-variant-numeric:lining-nums tabular-nums}.metric span{font-size:.78rem;color:var(--ink-2)}.big-stat{font-family:var(--serif);font-size:1.35rem}.big-stat b,.big-stat.tabular{font-family:var(--num);font-variant-numeric:lining-nums tabular-nums}.big-stat b{color:var(--accent)}.list{display:flex;flex-direction:column}.list-item{display:flex;align-items:center;gap:12px;padding:12px 2px;border-bottom:1px solid var(--line);text-decoration:none}.list-item:last-child{border-bottom:0}a.list-item:hover{background:var(--surface-2)}.board-table{width:100%;border-collapse:collapse;font-size:.93rem}.board-table td,.board-table th{padding:9px 6px;border-bottom:1px solid var(--line);text-align:left}.board-table th{font-size:.75rem;color:var(--ink-3);font-weight:600;text-transform:uppercase;letter-spacing:.06em}.board-table tr.you td{background:var(--surface-2)}.board-table .num{text-align:right;font-variant-numeric:tabular-nums}.rank{font-family:var(--num);font-weight:600;color:var(--ink-3);width:28px}.tabs{display:flex;gap:4px;background:var(--surface-2);padding:4px;border-radius:14px}.tab{flex:1;border:0;background:transparent;padding:7px 8px;border-radius:10px;line-height:1.25;cursor:pointer;font-weight:500;color:var(--ink-2);font-size:.9rem}.tab[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #00000014}.comment{padding:12px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:6px}.comment:last-child{border-bottom:0}.comment-body{white-space:pre-wrap;overflow-wrap:anywhere}.badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.badge{border:1px solid var(--line);border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;gap:4px}.badge.locked{opacity:.5;border-style:dashed}.badge b{font-family:var(--serif);font-weight:600}.vote{display:flex;flex-direction:column;align-items:center;min-width:40px}.vote button{border:0;background:transparent;cursor:pointer;padding:2px 6px;border-radius:6px;color:var(--ink-3)}.vote button[aria-pressed=true]{color:var(--accent);background:var(--surface-2)}dialog{border:1px solid var(--line);border-radius:16px;padding:22px;max-width:min(460px,calc(100vw - 32px));background:var(--surface);color:var(--ink)}dialog::backdrop{background:#00000073}.toast{position:fixed;left:16px;right:16px;top:72px;margin:0 auto;width:fit-content;max-width:420px;text-align:center;z-index:50;background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:999px;font-weight:500;font-size:.92rem;animation:rise .2s ease}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes pop{50%{transform:scale(1.08)}}@keyframes flip{0%{transform:rotateX(90deg)}to{transform:rotateX(0)}}@keyframes shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important}}@media (max-width: 440px){main{padding-top:14px}.topbar-inner{gap:0;padding:10px 12px}.icon-btn{width:36px;height:36px}.logo{font-size:1.3rem}.guess-row{grid-template-columns:36px repeat(4,48px) 36px;gap:5px}.tile{height:48px;font-size:1.55rem}.board{gap:5px}.key{height:50px}.keypad,.keypad-row{gap:6px}}@media (max-width: 360px){.icon-btn{width:33px;height:33px}.icon-btn svg{width:19px;height:19px}.logo{font-size:1.2rem}.guess-row{grid-template-columns:28px repeat(4,44px) 28px}.tile{height:44px;font-size:1.4rem}.icon-btn{width:36px;height:36px}}
