:root{--bg:#f6f1e7;--surface:#fffdf8;--ink:#1d2433;--muted:#5d6576;--line:#e0d6c3;--accent:#0f766e;--accent-ink:#fff;--accent-soft:#d9efeb;--warn:#b93815;--tile:#fffaf0;--tile-edge:#cfc2a6;--tile-shadow:#b9ab8d;--pip:#1d2433;--rc0:#e9e2d3;--rc1:#f8d2cf;--rc2:#fbe0b3;--rc3:#d6eabf;--rc4:#c5e6e9;--rc5:#d5dbf6;--rc6:#ead3f1;--rc7:#f6d5e6;--rc8:#dde4c9;--rb1:#bf3f38;--rb2:#a96400;--rb3:#47832a;--rb4:#0e7882;--rb5:#4355c4;--rb6:#8a3ea6;--rb7:#bb3476;--rb8:#5c6a2e;--radius:14px;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;color-scheme:light dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#13161d;--surface:#1b202a;--ink:#eef0f4;--muted:#a3abbb;--line:#2f3644;--accent:#3fc1b3;--accent-ink:#06231f;--accent-soft:#16383a;--warn:#ff8a66;--tile:#f7f0e1;--tile-edge:#b5a788;--tile-shadow:#07090c;--rc0:#2a303b;--rc1:#5b302d;--rc2:#594420;--rc3:#33492a;--rc4:#224a4e;--rc5:#303a67;--rc6:#4a2f58;--rc7:#582f46;--rc8:#3d4530;--rb1:#f08a83;--rb2:#f0b24a;--rb3:#9ad27a;--rb4:#6cd0da;--rb5:#9aa8ff;--rb6:#d59bee;--rb7:#f590c2;--rb8:#c3d18a}}:root[data-theme=dark]{--bg:#13161d;--surface:#1b202a;--ink:#eef0f4;--muted:#a3abbb;--line:#2f3644;--accent:#3fc1b3;--accent-ink:#06231f;--accent-soft:#16383a;--warn:#ff8a66;--tile:#f7f0e1;--tile-edge:#b5a788;--tile-shadow:#07090c;--rc0:#2a303b;--rc1:#5b302d;--rc2:#594420;--rc3:#33492a;--rc4:#224a4e;--rc5:#303a67;--rc6:#4a2f58;--rc7:#582f46;--rc8:#3d4530;--rb1:#f08a83;--rb2:#f0b24a;--rb3:#9ad27a;--rb4:#6cd0da;--rb5:#9aa8ff;--rb6:#d59bee;--rb7:#f590c2;--rb8:#c3d18a}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font:17px/1.6 var(--sans);margin:0}a{color:var(--accent);text-underline-offset:3px}h1,h2,h3{font-family:var(--serif);letter-spacing:-.01em;margin:0 0 .5em;line-height:1.2}h1{font-size:clamp(1.9rem,6vw,2.6rem)}h2{margin-top:2.2em;font-size:1.5rem}h3{margin-top:1.6em;font-size:1.15rem}p{margin:0 0 1em}.wrap{max-width:760px;margin:0 auto;padding:0 16px}.site-head{border-bottom:1px solid var(--line);background:var(--surface)}.site-head .wrap{flex-wrap:wrap;align-items:center;gap:8px 18px;padding-top:10px;padding-bottom:10px;display:flex}.logo{font:700 1.2rem var(--serif);color:var(--ink);align-items:center;gap:8px;margin-right:auto;text-decoration:none;display:inline-flex}.logo svg{width:34px;height:20px}.site-nav{flex-wrap:wrap;gap:2px;display:flex}.site-nav a{color:var(--ink);border-radius:999px;padding:6px 10px;font-size:.93rem;text-decoration:none}.site-nav a:hover{background:var(--accent-soft)}.site-nav a[aria-current=page]{background:var(--ink);color:var(--bg)}main{padding:26px 0 50px}.site-head .play{background:var(--accent);color:var(--accent-ink);white-space:nowrap;border-radius:999px;padding:6px 14px;font-size:.93rem;font-weight:600;text-decoration:none}.site-head .play:hover{filter:brightness(1.08)}.theme-btn{border:1px solid var(--line);width:36px;height:36px;color:var(--ink);cursor:pointer;background:0 0;border-radius:50%;place-items:center;padding:0;display:grid}.theme-btn:hover{background:var(--accent-soft)}.theme-btn svg{width:18px;height:18px}.theme-btn .sun{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-btn .sun{display:block}:root:not([data-theme=light]) .theme-btn .moon{display:none}}:root[data-theme=dark] .theme-btn .sun{display:block}:root[data-theme=dark] .theme-btn .moon{display:none}.site-head .play[aria-current=page]{background:var(--ink);color:var(--bg)}@media (width<=640px){.site-head .theme-btn,.site-head .play{order:2}.site-nav{order:3;width:100%}}.site-foot{border-top:1px solid var(--line);background:var(--surface);color:var(--muted);margin-top:20px;padding:34px 0 30px;font-size:.92rem}.foot-grid{grid-template-columns:1.6fr 1fr 1fr 1fr;gap:28px 24px;display:grid}.foot-brand .logo{margin:0 0 8px}.foot-brand p{max-width:30ch;margin:0 0 14px}.site-foot nav{align-content:start;gap:8px;display:grid}.site-foot nav h2{font:700 .76rem var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--ink);margin:4px 0}.site-foot nav a{color:var(--muted);width:fit-content;text-decoration:none}.site-foot nav a:hover{color:var(--accent);text-decoration:underline}.foot-legal{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:6px 24px;margin-top:28px;padding-top:16px;font-size:.82rem;display:flex}.foot-legal p{margin:0}.foot-legal p:last-child{max-width:62ch}@media (width<=640px){.foot-grid{grid-template-columns:1fr 1fr}.foot-brand{grid-column:1/-1}}.lede{color:var(--muted);font-size:1.08rem}.kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:6px;font-size:.82rem;font-weight:700}.btn{font:600 .95rem var(--sans);color:var(--ink);background:var(--surface);border:1px solid var(--line);cursor:pointer;border-bottom-width:3px;border-radius:11px;align-items:center;gap:9px;padding:9px 14px;text-decoration:none;transition:transform 80ms,background .15s;display:inline-flex}.btn:hover{background:var(--accent-soft)}.btn:active{border-bottom-width:1px;margin-bottom:2px;transform:translateY(2px)}.btn[disabled]{opacity:.45;cursor:default}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000 #0000 #00000040}.btn.primary:hover{filter:brightness(1.08)}.btn[aria-expanded=true],.btn[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent)}.btn b{background:var(--ink);width:22px;height:22px;color:var(--bg);border-radius:50%;place-items:center;font-size:.78rem;display:inline-grid}.btn.danger{border-color:var(--warn);color:var(--warn)}.link{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.dates{scrollbar-width:thin;gap:6px;margin:14px 0 6px;padding:4px 0 10px;display:flex;overflow-x:auto}.dates button{font:600 .85rem var(--sans);color:var(--muted);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:999px;flex:none;padding:5px 12px}.dates button[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.banner{background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--radius);margin:10px 0;padding:10px 14px;font-size:.95rem}.tabs{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:repeat(3,1fr);gap:6px;margin:8px 0 18px;padding:5px;display:grid}.tabs button{font:700 1rem var(--sans);color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;gap:0;padding:8px 4px;display:grid}.tabs button small{font-size:.74rem;font-weight:500}.tabs button[aria-selected=true]{background:var(--ink);color:var(--bg)}.level{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:18px 16px 20px}.level-title{margin:0 0 2px;font-size:1.35rem}.meta{color:var(--muted);margin-bottom:12px;font-size:.88rem}.board-wrap{justify-content:center;margin:4px -6px 10px;display:flex}.status{text-align:center;color:var(--muted);min-height:1.6em;margin-bottom:14px;font-size:.93rem}.note{color:var(--muted);border-left:3px solid var(--line);padding-left:10px;font-size:.9rem}.controls{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:4px;display:flex}.note{margin-top:12px}.written{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.written summary{cursor:pointer;font-weight:600}.written ol,.written ul{padding-left:1.4em;font-size:.95rem}.cta{border-radius:var(--radius);background:var(--accent-soft);border:1px solid var(--accent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding:14px 16px;display:flex}.cta div{display:grid}.cta span{color:var(--muted);font-size:.9rem}.board{touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:100%;height:auto;display:block}.axes text{font:600 10px var(--sans);fill:var(--muted);opacity:.75}.cell{fill:var(--rc0)}.rc1{fill:var(--rc1)}.rc2{fill:var(--rc2)}.rc3{fill:var(--rc3)}.rc4{fill:var(--rc4)}.rc5{fill:var(--rc5)}.rc6{fill:var(--rc6)}.rc7{fill:var(--rc7)}.rc8{fill:var(--rc8)}.badge rect{fill:var(--muted);stroke:var(--surface);stroke-width:2px}.badge text{font:700 12px var(--sans);fill:var(--surface)}.rb1 rect{fill:var(--rb1)}.rb2 rect{fill:var(--rb2)}.rb3 rect{fill:var(--rb3)}.rb4 rect{fill:var(--rb4)}.rb5 rect{fill:var(--rb5)}.rb6 rect{fill:var(--rb6)}.rb7 rect{fill:var(--rb7)}.rb8 rect{fill:var(--rb8)}.tile{fill:var(--tile);stroke:var(--tile-edge);stroke-width:1.5px}.tile-shadow{fill:var(--tile-shadow);opacity:.55}.tile-mid{stroke:var(--tile-edge);stroke-width:2px;stroke-linecap:round}.pip{fill:var(--pip)}.pipn{font:700 18px var(--sans);fill:var(--pip)}.dom,.ring{display:none}.board.solved .dom,.dom.on{display:block}.dom.on{transform-box:fill-box;transform-origin:50%;animation:.28s cubic-bezier(.2,.9,.3,1.3) drop}.ring.on{fill:none;stroke:var(--accent);stroke-width:4px;stroke-dasharray:7 5;animation:1s linear infinite march;display:block}.board.pick .cell,.board.pick .dom{cursor:pointer}.board.pick .cell:hover{filter:brightness(.94)}.bridge{pointer-events:none}@keyframes pulse{50%{stroke-width:7px}}@keyframes drop{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes march{to{stroke-dashoffset:-24px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}code{background:var(--rc0);border-radius:5px;padding:1px 5px;font-size:.9em}.table-scroll{overflow-x:auto}.cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:14px 0;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);padding:14px 16px;text-decoration:none;display:block}.card:hover{border-color:var(--accent)}.card strong{font-family:var(--serif);font-size:1.08rem;display:block}.card span{color:var(--muted);font-size:.92rem}.play-hero{background:var(--ink);color:var(--bg);border-radius:18px;grid-template-columns:1fr auto;align-items:center;gap:14px;margin:26px 0;padding:18px 20px;display:grid}.play-hero h2{color:inherit;margin:0 0 4px}.play-hero p{opacity:.8;margin:0;font-size:.95rem}@media (width<=520px){.play-hero{grid-template-columns:1fr}}.faq details{border-bottom:1px solid var(--line);padding:10px 0}.faq summary{cursor:pointer;font-weight:600}.faq details p{color:var(--muted);margin:8px 0 4px}table.rules{border-collapse:collapse;width:100%;margin:12px 0;font-size:.96rem}table.rules th,table.rules td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:8px 10px}.chip{text-align:center;background:var(--rb5);min-width:30px;color:var(--surface);border-radius:999px;padding:1px 9px;font-size:.85rem;font-weight:700;display:inline-block}.game{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:14px 12px 16px;position:relative}.game-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.seg{background:var(--bg);border:1px solid var(--line);border-radius:11px;padding:3px;display:inline-flex}.seg button{font:600 .88rem var(--sans);color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:6px 12px}.seg button[aria-pressed=true]{background:var(--ink);color:var(--bg)}.game-stats{color:var(--muted);font-variant-numeric:tabular-nums;gap:14px;font-size:.9rem;display:flex}.game-board{justify-content:center;min-height:200px;display:flex}.game-board .cell{transition:filter .12s}.game-board .cell.target{filter:brightness(.86)saturate(1.3)}.game-board .placed{cursor:grab}.game-board .placed.locked{cursor:default}.game-board .placed.locked .tile{stroke:var(--accent);stroke-width:2.5px}.game-board .badge.ok rect{fill:var(--accent)}.game-board .badge.bad rect{fill:var(--warn)}.game-board .badge.bad{transform-box:fill-box;transform-origin:50%;animation:.35s shake}@keyframes shake{25%{transform:translate(-3px)rotate(-4deg)}75%{transform:translate(3px)rotate(4deg)}}.tray{border-top:1px dashed var(--line);flex-wrap:wrap;justify-content:center;gap:8px;min-height:76px;margin-top:8px;padding:12px 4px 4px;display:flex}.tray button{cursor:grab;touch-action:none;background:0 0;border:0;border-radius:12px;padding:3px;line-height:0;transition:transform .12s}.tray button svg{width:84px;height:44px;display:block;overflow:visible}.tray button.v svg{width:44px;height:84px}.tray button[aria-pressed=true]{outline:3px solid var(--accent);outline-offset:1px;transform:translateY(-3px)}.tray button.gone{visibility:hidden}.tray-hint{text-align:center;color:var(--muted);min-height:1.5em;margin:6px 0 0;font-size:.86rem}.game-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:10px;display:flex}.ghost{pointer-events:none;z-index:50;filter:drop-shadow(0 8px 10px #0000004d);position:fixed;top:0;left:0;overflow:visible}.win{text-align:center;border-radius:var(--radius);background:var(--accent-soft);border:1px solid var(--accent);margin-top:10px;padding:16px 14px 18px;animation:.3s ease-out drop}.game.is-won .tray,.game.is-won .tray-hint{display:none}.win h2{margin:0 0 4px;font-size:1.7rem}.win p{color:var(--muted)}.win .row{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.game-board .board.won .placed{transform-box:fill-box;transform-origin:50%;animation:.5s ease-out both hop}@keyframes hop{40%{transform:translateY(-7px)scale(1.04)}}
