:root{--cell: 38px;--ink: #1a1a1a;--paper: #fff;--block: #111;--accent: #bcd6ff;--accent-strong: #93b8f5;--current: #f7d44a;--wrong: #ef6c6c;--themed: #b388ff;--muted: #777;--line: #d0d0d0}*{box-sizing:border-box}html,body{margin:0;background:#f3f1ec;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-text-size-adjust:100%}.app{max-width:960px;margin:0 auto;padding:.75rem 1rem 3rem}.masthead{text-align:center;margin:.5rem 0 .25rem}.masthead h1{font-family:Playfair Display,Georgia,Times New Roman,serif;font-weight:900;font-size:2rem;margin:0;letter-spacing:.01em;font-variation-settings:normal}.masthead .date{margin:.15rem 0;color:var(--muted);font-size:.95rem}.masthead .theme{margin:0;font-style:italic;color:var(--ink);font-size:.95rem}.date-nav{margin-top:.35rem}.date-nav .date-link{color:#1a5fb4;font-size:.85rem;text-decoration:none;border-bottom:1px solid currentColor}.date-nav .date-picker{display:inline-flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--muted)}.date-nav .date-picker input[type=date]{font:inherit;color:var(--ink);padding:.3rem .5rem;border:1px solid #c9c9c9;border-radius:6px;background:var(--paper)}.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}.state-msg{max-width:36rem;margin:3rem auto;text-align:center;color:var(--ink)}.hint{color:var(--muted);font-size:.85rem}.hint.small{font-size:.78rem;margin:.4rem 0 0;text-align:center}code{background:#eee;padding:.1em .35em;border-radius:3px}.hidden-input{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap;margin:.75rem 0}.timer{display:flex;align-items:center;gap:.5rem}.timer-display{font-variant-numeric:tabular-nums;font-size:1.05rem;min-width:4ch}.tool-group{display:flex;gap:.4rem;flex-wrap:wrap}.btn{font:inherit;border:1px solid var(--line);background:var(--paper);padding:.35rem .7rem;border-radius:6px;cursor:pointer;color:var(--ink)}.btn:hover{background:#f6f6f6}.btn.active{background:var(--accent);border-color:var(--accent-strong)}.btn.big{font-size:1.1rem;padding:.6rem 1.2rem}.menu{position:relative;display:inline-block}.menu-list{position:absolute;top:100%;left:0;margin:.2rem 0 0;padding:.25rem 0;list-style:none;background:var(--paper);border:1px solid var(--line);border-radius:6px;box-shadow:0 4px 14px #0000001f;z-index:20;min-width:7rem}.menu-list li{padding:.4rem .7rem;cursor:pointer}.menu-list li:hover{background:var(--accent)}.menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:15}.clue-bar{display:flex;align-items:center;gap:.6rem;padding:.6rem .8rem;background:var(--paper);border:1px solid var(--line);border-radius:8px;margin-bottom:.75rem;min-height:3.2rem}.clue-bar.empty{opacity:.4}.clue-bar-num{font-weight:700;display:flex;align-items:baseline;gap:.2rem}.clue-bar-dir{font-size:.7rem;color:var(--muted)}.clue-bar-text{flex:1}.play-area{display:grid;grid-template-columns:auto 1fr;gap:1.25rem;align-items:start}.grid-wrap{display:grid;justify-items:center;row-gap:.35rem}.grid{grid-row:1;grid-column:1}.hint{grid-row:2;grid-column:1}.grid{display:grid;grid-template-columns:repeat(var(--cell),var(--cell));background:var(--block);border:2px solid var(--block);-webkit-user-select:none;user-select:none}.cell{width:var(--cell);height:var(--cell);background:var(--paper);border:1px solid var(--line);position:relative;display:flex;align-items:center;justify-content:center;padding:0;font:inherit;color:var(--ink);cursor:pointer}.cell.block{background:var(--block);border-color:var(--block);cursor:default}.cell.selected{background:var(--accent)}.cell.current{background:var(--current);outline:2px solid var(--ink);outline-offset:-2px;z-index:2}.cell.wrong .letter{color:var(--wrong)}.cell .num{position:absolute;top:0;left:2px;font-size:.55rem;line-height:1;color:var(--muted)}.cell .letter{font-size:calc(var(--cell) * .5);font-weight:600}.clues{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.clue-list-section{min-width:0}.clue-heading{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 .3rem}.clue-list{list-style:none;margin:0;padding:0;max-height:70vh;overflow-y:auto}.clue-item{display:flex;gap:.5rem;padding:.35rem .4rem;border-radius:5px;cursor:pointer;font-size:.88rem;line-height:1.3}.clue-item:hover{background:#eee}.clue-item.active{background:var(--accent-strong)}.clue-item.themed .clue-text{color:var(--ink)}.themed-tag{color:var(--themed)}.clue-num{font-weight:700;min-width:1.5ch;color:var(--ink)}.clue-text{flex:1}.pause-overlay{grid-row:1;grid-column:1;align-self:stretch;background:#222;color:#fff;border-radius:6px;display:flex;align-items:center;justify-content:center}.win-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:50}.win-card{background:var(--paper);padding:1.5rem 2rem;border-radius:12px;text-align:center;box-shadow:0 10px 40px #0000004d}.win-card h2{margin:0 0 .5rem}.win-card .muted{color:var(--muted)}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:60}.view-tabs,.clue-tabs{display:none}@media (max-width: 720px){.app{padding:.5rem .75rem calc(2rem + env(safe-area-inset-bottom))}.masthead{margin-top:.25rem}.masthead h1{font-size:1.6rem}.play-area,.clues{grid-template-columns:1fr}.grid-wrap{align-items:center}.toolbar{flex-direction:column;align-items:stretch;gap:.5rem}.toolbar .timer,.toolbar .tool-group{justify-content:space-between}.tool-group .btn{flex:1}.btn{padding:.55rem .7rem}.menu-list{min-width:8rem}.view-tabs{display:flex;gap:.25rem;margin:0 0 .75rem;background:#e8e4dc;border-radius:8px;padding:.2rem}.view-tabs .tab{flex:1;font:inherit;font-weight:600;border:none;background:transparent;padding:.5rem;border-radius:6px;cursor:pointer;color:var(--muted)}.view-tabs .tab.active{background:var(--paper);color:var(--ink);box-shadow:0 1px 3px #00000026}.clue-tabs{display:flex;gap:.25rem;margin-bottom:.6rem;background:#e8e4dc;border-radius:8px;padding:.2rem}.clue-tabs .tab{flex:1;font:inherit;font-weight:600;border:none;background:transparent;padding:.45rem .5rem;border-radius:6px;cursor:pointer;color:var(--muted)}.clue-tabs .tab.active{background:var(--paper);color:var(--ink);box-shadow:0 1px 3px #00000026}.clue-list{max-height:none}.clue-item{padding:.55rem .5rem}.clue-bar{position:static;box-shadow:none;min-height:0;padding:.5rem .6rem;font-size:.85rem;margin-bottom:0;max-width:100%}.grid-wrap .clue-bar{max-width:90vw}.hidden-input{position:fixed;left:0;right:0;bottom:0;top:auto;width:100%;height:1px;opacity:0}.win-card{width:calc(100vw - 3rem);max-width:24rem}}
