:root{--bg:#F6F5F1;--panel:#FFFFFF;--line:#C7D1DC;--line-strong:#8FA1B3;--ink:#22303F;--fill:#2B3D52;--muted:#7A8694;--mark:#9AA7B4;--accent:#B5472F;--gold:#C9A227;--silver-c:#8E9BA8;--bronze:#A87344;--hover:#EDF1F5;--cell:clamp(18px, calc(72vmin / var(--n, 15)), 32px)}@media(prefers-color-scheme:dark){:root{--bg:#151A21;--panel:#1C232C;--line:#333E4A;--line-strong:#55677A;--ink:#DEE5EC;--fill:#C9D6E4;--muted:#75828F;--mark:#55626F;--accent:#D0684F;--gold:#D4AF37;--silver-c:#A9B6C2;--bronze:#C08A5A;--hover:#232C37}}:root[data-theme=light]{--bg:#F6F5F1;--panel:#FFFFFF;--line:#C7D1DC;--line-strong:#8FA1B3;--ink:#22303F;--fill:#2B3D52;--muted:#7A8694;--mark:#9AA7B4;--accent:#B5472F;--gold:#C9A227;--silver-c:#8E9BA8;--bronze:#A87344;--hover:#EDF1F5}:root[data-theme=dark]{--bg:#151A21;--panel:#1C232C;--line:#333E4A;--line-strong:#55677A;--ink:#DEE5EC;--fill:#C9D6E4;--muted:#75828F;--mark:#55626F;--accent:#D0684F;--gold:#D4AF37;--silver-c:#A9B6C2;--bronze:#C08A5A;--hover:#232C37}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,segoe ui,sans-serif;line-height:1.5;min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:1.5rem 1rem 4rem;gap:1.5rem}.site-head{display:flex;align-items:baseline;gap:.8rem;width:100%;max-width:44rem}.brand{font-family:iowan old style,palatino linotype,Palatino,Georgia,serif;font-size:1.5rem;font-weight:700;color:var(--ink);text-decoration:none;letter-spacing:-.01em}.tagline{font-size:.8rem;color:var(--muted);letter-spacing:.05em;text-transform:uppercase}.site-nav{margin-left:auto;font-size:.85rem;display:flex;gap:1rem}.site-nav a{color:var(--muted);text-decoration:none}.site-nav a:hover{color:var(--ink)}.site-foot{margin-top:auto;font-size:.8rem;color:var(--muted)}.site-foot a{color:var(--muted)}.site-foot a:hover{color:var(--ink)}main{display:flex;flex-direction:column;align-items:center;max-width:100%}section{display:flex;flex-direction:column;align-items:center;gap:1.1rem}h1{font-family:iowan old style,palatino linotype,Palatino,Georgia,serif;font-size:1.9rem;font-weight:600;letter-spacing:-.01em;text-wrap:balance;text-align:center}h1 .dim{color:var(--muted);font-weight:400}.lede{max-width:34rem;text-align:center;color:var(--muted);text-wrap:balance}a{color:var(--ink)}.tier{--tier-c:var(--gold)}.tier-bronze{--tier-c:var(--bronze)}.tier-silver{--tier-c:var(--silver-c)}.tier-gold{--tier-c:var(--gold)}.tier h2,.tier-heading{font-family:iowan old style,palatino linotype,Palatino,Georgia,serif;font-weight:600;font-size:1.4rem;color:var(--tier-c);margin-top:1.2rem}.tier-sub{color:var(--muted);font-size:.9rem;text-align:center}.meta-board{display:grid;grid-template-columns:repeat(var(--gn,5),clamp(42px,calc(60vmin/var(--gn,5)),64px));grid-template-rows:repeat(var(--gn,5),clamp(42px,calc(60vmin/var(--gn,5)),64px));gap:6px;background:var(--panel);border:2px solid var(--tier-c);border-radius:10px;padding:10px}.gtile{display:flex;align-items:center;justify-content:center;border-radius:6px;font-family:iowan old style,Palatino,Georgia,serif;font-size:1.4rem;font-weight:700;text-decoration:none}.gtile.locked{border:1px dashed var(--line-strong);color:var(--muted);background:var(--bg)}.gtile.locked:hover,.gtile.locked:focus-visible{border-color:var(--tier-c);color:var(--tier-c);background:var(--hover)}.gtile.revealed.fill{background:var(--tier-c);border:1px solid var(--tier-c)}.gtile.revealed.blank{background:var(--panel);border:1px solid var(--line)}.gtile.revealed.blank::after{content:"·";color:var(--line-strong);font-size:1.2rem}.meta-board.complete .gtile{border-color:var(--tier-c)}.progress{color:var(--muted);font-size:.95rem}.stamp.tier-stamp div{border-color:var(--tier-c);color:var(--tier-c)}.board-wrap{position:relative;overflow-x:auto;max-width:100%;padding:4px}.golden-wrap{overflow:visible}.board{display:grid;grid-template-columns:auto auto;background:var(--panel);border:2px solid var(--line-strong);padding:.5rem;border-radius:6px;user-select:none;touch-action:none;width:fit-content;margin:0 auto}.col-clues{display:grid;align-items:end}.col-clue{display:flex;flex-direction:column;align-items:center;justify-content:end;gap:1px;padding-bottom:4px}.row-clues{display:grid}.row-clue{display:flex;align-items:center;justify-content:end;gap:6px;padding-right:7px;padding-left:6px}.col-clue span,.row-clue span{font-family:ui-monospace,sf mono,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;font-size:calc(var(--cell) * .44);line-height:1.1;color:var(--ink)}.clue-done span{color:var(--mark)}.cells{display:grid;border-top:2px solid var(--line-strong);border-left:2px solid var(--line-strong)}.cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);position:relative;cursor:pointer}.cell.b-r{border-right:2px solid var(--line-strong)}.cell.b-b{border-bottom:2px solid var(--line-strong)}.cell:hover{background:var(--hover)}.cell.filled,.cell.filled:hover{background:var(--fill)}.cell.mark::after{content:"×";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--mark);font-size:calc(var(--cell) * .6)}.puzzle-page{width:100%}.crumbs{align-self:flex-start;font-size:.85rem}.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{color:var(--ink)}#game{display:flex;flex-direction:column;align-items:center;gap:1.1rem}.puzzle-head{text-align:center}.puzzle-sub{color:var(--muted);font-size:.9rem}.win-panel{display:none;text-align:center}.won .win-panel{display:block}.won .actions,.won .hint{display:none}.caption{font-size:.95rem;color:var(--muted)}.caption b{color:var(--ink)}.win-links{margin-top:.6rem;display:flex;gap:.6rem;justify-content:center}.actions{display:flex;gap:.6rem}button,.btn{font:inherit;font-size:.85rem;padding:.4rem 1rem;border:1px solid var(--line-strong);border-radius:6px;background:var(--panel);color:var(--ink);cursor:pointer;text-decoration:none;display:inline-block}button:hover,.btn:hover{background:var(--hover)}button:focus-visible,.btn:focus-visible,.gtile:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.stamp{position:absolute;inset:0;display:none;align-items:center;justify-content:center;pointer-events:none}.stamp.show{display:flex}.stamp div{transform:rotate(-8deg);border:3px solid var(--accent);color:var(--accent);border-radius:8px;padding:.4rem 1.4rem;font-family:iowan old style,Palatino,Georgia,serif;font-size:1.6rem;font-weight:700;letter-spacing:.08em;background:color-mix(in srgb,var(--panel) 88%,transparent)}@media(prefers-reduced-motion:no-preference){.stamp.show div{animation:stamp-in .25s ease-out}@keyframes stamp-in{from{transform:rotate(-8deg)scale(1.6);opacity:0}to{transform:rotate(-8deg)scale(1);opacity:1}}}.hint{font-size:.8rem;color:var(--muted);text-align:center;max-width:34rem}.streak{border:1px solid var(--line);border-radius:999px;padding:.3rem 1rem;font-size:.85rem;color:var(--muted);font-variant-numeric:tabular-nums;margin-bottom:.8rem}.streak.hot{border-color:var(--gold);color:var(--gold)}.streak:empty{display:none}.pager{display:flex;justify-content:space-between;width:100%;max-width:30rem;font-size:.9rem}.pager a{color:var(--muted);text-decoration:none}.pager a:hover{color:var(--ink)}.home-blurb{max-width:38rem;color:var(--muted);font-size:.95rem;display:flex;flex-direction:column;gap:.7rem;margin-top:1rem}.example-figure{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:1.5rem 2.5rem;margin:.5rem 0}.example-item{display:flex;flex-direction:column;align-items:center;gap:.5rem}.board-example{--cell:30px;pointer-events:none}.example-label{font-size:.85rem;color:var(--muted)}.example-figure figcaption{flex-basis:100%;text-align:center;font-size:.9rem;color:var(--muted);max-width:38rem;margin:0 auto}.prose{max-width:42rem;width:100%;display:flex;flex-direction:column;gap:.9rem}.prose h1{text-align:left}.prose h2,.prose h3{font-family:iowan old style,palatino linotype,Palatino,Georgia,serif;font-weight:600;margin-top:.8rem}.prose ul{padding-left:1.3rem;display:flex;flex-direction:column;gap:.3rem}.prose code{font-family:ui-monospace,sf mono,Menlo,Consolas,monospace;font-size:.9em;background:var(--hover);border:1px solid var(--line);border-radius:4px;padding:0 .3em}.puzzle-list{list-style:none;display:flex;flex-direction:column;gap:.4rem}.puzzle-list li{display:flex;gap:.8rem;align-items:baseline}.puzzle-list .meta{color:var(--muted);font-size:.85rem}.puzzle-list li.done a{color:var(--muted)}