:root{--paper: #fbfcfe;--paper-2: #eef3f8;--ink: #0d1b2a;--ink-soft: #51637a;--line: #dce4ec;--accent: #3b82f6;--accent-ink: #ffffff;--ink-german-whisper: #4c9a2a;--ink-dutch-whisper: #c4571e;--ink-killer-cage: #403226;--accent-strong: color-mix(in srgb, var(--accent) 60%, var(--ink));--wrong: #d8453f;--app-surface-elev: rgb(255 255 255);--app-surface-scrim: rgb(20 18 12 / .42);--app-on-surface: rgb(28 29 36);--app-on-surface-muted: rgb(93 87 74);--app-on-surface-faint: rgb(154 145 127);--app-on-primary: rgb(255 255 255);--app-outline: rgb(231 222 208);--app-outline-strong: rgb(216 205 186);--app-primary: rgb(31 111 224);--app-primary-soft: rgb(231 240 253);--app-medium: rgb(232 132 42);--app-quest: rgb(224 160 30);--app-danger: rgb(216 69 63);--app-fog-tint: rgb(255 255 255 / .859);--app-fog-edge: rgb(138 159 220 / .322);--app-fog-shard-glow: rgb(31 111 224 / .322);--app-fog-base: rgb(138 159 220 / .78);--app-grid-line: rgb(28 29 36 / .141);--app-grid-line-strong: rgb(28 29 36 / .459);--app-cell-given-fg: rgb(28 29 36);--app-cell-user-fg: rgb(31 111 224);--app-cell-peer-bg: rgb(31 111 224 / .059);--app-cell-same-bg: rgb(31 111 224 / .161);--app-cell-variant-peer-outline: rgb(31 111 224 / .549);--app-cell-selected: rgb(31 111 224);--app-cell-wrong-bg: rgb(216 69 63 / .118);--app-cell-wrong-fg: rgb(216 69 63);--app-cell-note-fg: rgb(93 87 74);--app-cell-hint-bg: rgb(224 160 30 / .141);--app-rule-flash-bg: rgb(216 69 63 / .239);--app-constraint-kropki-white-fill: rgb(255 255 255);--app-constraint-kropki-white-outline: rgb(28 29 36);--app-constraint-kropki-black-fill: rgb(28 29 36);--app-constraint-kropki-black-outline: rgb(0 0 0 / 0);--app-constraint-thermo-color: rgb(31 111 224);--app-constraint-arrow-color: rgb(110 110 110);--app-constraint-renban-color: rgb(147 112 219);--app-constraint-killer-cage-color: rgb(64 50 38);--app-constraint-killer-cage-sum-background: rgb(255 255 255);--app-constraint-german-whispers-color: rgb(76 154 42);--app-constraint-dutch-whispers-color: rgb(196 87 30);--app-constraint-odd-even-fill: rgb(93 87 74 / .2);--app-constraint-consecutive-color: rgb(28 29 36);--app-constraint-consecutive-outline-color: rgb(255 255 255);--app-constraint-xv-color: rgb(28 29 36);--app-constraint-xv-outline-color: rgb(255 255 255);--app-constraint-thermo-palette-0: rgb(31 111 224);--app-constraint-thermo-palette-1: rgb(15 76 129);--app-constraint-thermo-palette-2: rgb(46 157 106);--app-constraint-thermo-palette-3: rgb(53 184 198);--app-constraint-arrow-palette-0: rgb(110 110 110);--app-constraint-arrow-palette-1: rgb(39 75 117);--app-constraint-arrow-palette-2: rgb(154 134 196);--app-constraint-arrow-palette-3: rgb(203 170 110);--app-constraint-renban-palette-0: rgb(147 112 219);--app-constraint-renban-palette-1: rgb(61 43 107);--app-constraint-renban-palette-2: rgb(149 76 140);--app-constraint-renban-palette-3: rgb(179 136 255);--app-constraint-killer-cage-palette-0: rgb(64 50 38);--app-constraint-killer-cage-palette-1: rgb(78 100 112);--app-constraint-killer-cage-palette-2: rgb(0 142 125);--app-constraint-killer-cage-palette-3: rgb(168 142 132);--app-constraint-german-whispers-palette-0: rgb(76 154 42);--app-constraint-german-whispers-palette-1: rgb(30 91 46);--app-constraint-german-whispers-palette-2: rgb(127 194 65);--app-constraint-german-whispers-palette-3: rgb(195 227 155);--app-constraint-dutch-whispers-palette-0: rgb(196 87 30);--app-constraint-dutch-whispers-palette-1: rgb(122 51 18);--app-constraint-dutch-whispers-palette-2: rgb(224 135 60);--app-constraint-dutch-whispers-palette-3: rgb(242 196 155);--footer-bg: #0d1b2a;--footer-ink: #eaf1f8;--footer-soft: #7689a0;--shot-bg: #e2ddd3;--maxw: 1080px;--maxw-read: 720px;--radius: 14px;--font: "Inter", "Noto Sans TC", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang TC", "Microsoft JhengHei", sans-serif;--display: "Montserrat", "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box}html{font-family:var(--font);color:var(--ink);background:var(--paper);line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{margin:0}a{color:var(--accent-strong);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{font-family:var(--display);line-height:1.15;letter-spacing:-.01em}img{max-width:100%;height:auto}[id]{scroll-margin-top:112px}:focus-visible{outline:3px solid var(--accent-strong);outline-offset:2px}.site-footer :focus-visible{outline-color:var(--footer-ink)}.prose a:not(.btn){text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,currentColor 45%,transparent)}.prose a:not(.btn):hover{text-decoration-color:currentColor}.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:24px}.wrap.reading,.wrap.prose{max-width:var(--maxw-read)}.mark-dark{display:none}.eyebrow{font:600 12px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}.site-header{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--paper) 85%,transparent);backdrop-filter:saturate(140%) blur(8px);position:sticky;top:0;z-index:10}.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:66px}.brand{display:inline-flex;align-items:center;gap:11px;color:var(--ink)}.brand:hover{text-decoration:none}.brand img{display:block;height:26px;width:auto}.brand .mark-dark{display:none}.brand .wordmark{font:800 17px/1 var(--display);letter-spacing:.1em}.nav{display:flex;gap:26px;margin-left:auto;font:500 .95rem/1 var(--font)}.nav a{color:var(--ink-soft);white-space:nowrap}.site-header .lang-menu{margin-left:26px;font:500 .95rem/1 var(--font)}.nav a:hover{color:var(--ink);text-decoration:none}.site-footer{margin-top:96px;background:var(--footer-bg);color:var(--footer-soft)}.site-footer .wrap{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-block:22px}.site-footer .brand{color:var(--footer-ink);gap:10px}.site-footer .brand img{height:18px}.site-footer .brand .wordmark{font:700 13px/1 var(--display);letter-spacing:.1em}.site-footer .copy{font-size:.8rem}.footer-nav{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:.85rem}.footer-nav a{color:var(--footer-ink)}.footer-nav a:hover{color:var(--footer-ink);text-decoration:underline}.hero{display:flex;flex-wrap:wrap;align-items:center;gap:48px;padding-block:72px 40px}.hero-text{flex:1 1 400px;min-width:0}.hero-shot{flex:1 1 420px;min-width:0;aspect-ratio:1024 / 500;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--shot-bg)}.hero-shot img{width:100%;height:100%;object-fit:contain;display:block}.hero .eyebrow{color:var(--accent-strong);display:block;margin-bottom:20px}.hero h1{margin:0;font:800 clamp(2.5rem,6.4vw,3.9rem)/1.05 var(--display);letter-spacing:-.02em;max-width:18ch}.hero .tagline{margin:22px 0 0;font:400 clamp(1.05rem,2.4vw,1.2rem)/1.55 var(--font);color:var(--ink-soft);max-width:48ch}.hero .cta{display:flex;gap:12px;margin-top:32px;flex-wrap:wrap}.btn{display:inline-block;background:var(--accent-strong);color:var(--accent-ink);padding:14px 24px;border-radius:11px;font:600 .95rem/1 var(--font)}.btn:hover{text-decoration:none;filter:brightness(1.05)}.btn-ghost{background:transparent;color:var(--ink);border:1px solid color-mix(in srgb,var(--ink) 48%,var(--paper))}.section{padding-block:32px}.section>h2{font:600 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 18px}.project{display:grid;grid-template-columns:1.05fr 1fr;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--paper)}.project .shot{aspect-ratio:1024 / 500;background:var(--shot-bg);border-right:1px solid var(--line);overflow:hidden}.project .shot img{width:100%;height:100%;object-fit:contain;display:block}.project .body{padding:32px;display:flex;flex-direction:column;justify-content:center}.project .titlerow{display:flex;align-items:center;gap:10px;margin-bottom:14px}.project .body h3,.project .body h1{margin:0;font:700 1.5rem/1 var(--display);letter-spacing:-.01em}.project p{margin:0;color:var(--ink-soft)}.project .lede{margin-top:10px}.project .cta-links,.project .cta-note{margin-top:14px}.project .cta{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:20px}.cta-links{display:flex;flex-wrap:wrap;gap:8px 22px;margin:14px 0 0;font:600 .95rem/1.4 var(--font)}.badge{font:600 10px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent-strong);background:color-mix(in srgb,var(--accent) 14%,transparent);padding:5px 9px;border-radius:20px}.trio{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden}.trio>div{padding:30px;background:var(--paper)}.trio h2{font:600 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 12px}.trio p{margin:0;color:var(--ink-soft)}.trio-link{color:var(--ink);font:700 1.05rem/1.35 var(--display)}.tag{display:inline-block;font:600 .72rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);background:var(--paper-2);border-radius:999px;padding:4px 11px}.post-list{list-style:none;padding:0;margin:0}.post-list li{padding-block:20px;border-bottom:1px solid var(--line)}.post-list a{display:inline-flex;align-items:baseline;gap:.4em;color:var(--ink);font:700 1.15rem/1.3 var(--display);letter-spacing:-.01em}.post-list a:after{content:"→";color:var(--accent-strong)}.post-list a:hover,.post-list a:focus-visible{color:var(--accent-strong);text-decoration:none}.post-list a:focus-visible{outline:3px solid var(--accent-strong);outline-offset:4px;border-radius:2px}.post-list .meta{color:var(--ink-soft);font:500 .8rem/1 var(--mono);letter-spacing:.04em;margin-top:6px}.post-list p{margin:8px 0 0;color:var(--ink-soft)}.prose{padding-block:56px}.prose h1{font-size:clamp(1.9rem,4vw,2.5rem);margin:0 0 8px}.prose .meta{color:var(--ink-soft);font:500 .85rem/1 var(--mono);letter-spacing:.04em;margin-bottom:36px}.prose p,.prose ul,.prose ol{margin-block:1em}.prose pre{background:#0d1b2a;color:#e6edf5;padding:16px;border-radius:10px;overflow-x:auto}.prose code{font-family:var(--mono);font-size:.88em}.prose img{max-width:100%;height:auto;border-radius:var(--radius)}.prose table{width:100%;margin-block:1.75em;border:1px solid var(--line);border-radius:var(--radius);border-collapse:separate;border-spacing:0;overflow:hidden;font-size:.95rem;line-height:1.8}.prose th,.prose td{padding:15px 20px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}.prose th:not(:last-child),.prose td:not(:last-child){border-right:1px solid var(--line)}.prose tr:last-child th,.prose tr:last-child td{border-bottom:0}.prose thead th{background:var(--paper-2);font:700 .82rem/1.5 var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap}.prose tbody td:first-child{font-weight:700;color:var(--ink);white-space:nowrap}.prose figure.screenshot{margin-block:1.75em;text-align:center}.prose figure.screenshot img{max-width:260px;border:1px solid var(--line)}.prose figure.screenshot figcaption{margin-top:10px;font-size:.85rem;color:var(--ink-soft)}.cta-note{margin:14px 0 0;font:500 .8rem/1.5 var(--font);color:var(--ink-soft)}.prose .shots{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px;margin-block:1.75em}.prose .shots figure{margin:0;text-align:center}.prose .shots img{width:100%;border:1px solid var(--line);border-radius:12px;display:block}.prose .shots figcaption{margin-top:10px;font-size:.85rem;color:var(--ink-soft)}.prose .featgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-block:1.75em;padding:0;list-style:none}.prose .featgrid li{background:var(--paper);padding:18px 20px;margin:0}.prose .featgrid strong{display:block;font:600 .95rem/1.3 var(--display);margin-bottom:4px}.prose .featgrid span{font-size:.85rem;color:var(--ink-soft);line-height:1.5}.prose .pricing{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-block:1.75em}.prose .pricing>div{border:1px solid var(--line);border-radius:14px;padding:22px;background:var(--paper)}.prose .pricing>div.is-pro{border-color:var(--accent)}.prose .pricing h3{margin:0 0 4px;font:700 1.1rem/1.2 var(--display)}.prose .pricing .tier-note{margin:0 0 14px;font:500 .82rem/1.4 var(--font);color:var(--ink-soft)}.prose .pricing ul{margin:0;padding-left:1.1em}.prose .pricing li{font-size:.9rem}.prose .sgrid{display:grid;grid-template-columns:repeat(9,1fr);position:relative;width:min(100%,380px);margin:1.75em auto;border:2px solid var(--ink);border-radius:6px;overflow:hidden;background:var(--paper)}.prose .sgrid i{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font:600 clamp(.85rem,3.4vw,1.05rem)/1 var(--font);font-style:normal;color:var(--ink);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.prose .sgrid i:nth-child(9n){border-right:0}.prose .sgrid i:nth-child(3n):not(:nth-child(9n)){border-right:2px solid var(--ink)}.prose .sgrid i:nth-child(n+73){border-bottom:0}.prose .sgrid i:nth-child(n+19):nth-child(-n+27),.prose .sgrid i:nth-child(n+46):nth-child(-n+54){border-bottom:2px solid var(--ink)}.prose .sgrid i.hl{background:color-mix(in srgb,var(--accent) 13%,transparent)}.prose .sgrid i.tgt{background:color-mix(in srgb,var(--accent) 32%,transparent);font-weight:700}.prose .sgrid i.q{color:var(--accent-strong)}.prose .sgrid i.ent{color:var(--accent-strong);font-weight:500}.prose .sgrid i.fog{color:transparent;background:color-mix(in srgb,var(--ink) 20%,var(--paper))}.prose .sgrid i.mk{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:10%}.prose .sgrid i.mk b{display:grid;place-items:center;font:600 clamp(.45rem,1.6vw,.65rem)/1 var(--font)}.prose .sgrid i.mk b.d1{grid-area:1 / 1}.prose .sgrid i.mk b.d2{grid-area:1 / 2}.prose .sgrid i.mk b.d3{grid-area:1 / 3}.prose .sgrid i.mk b.d4{grid-area:2 / 1}.prose .sgrid i.mk b.d5{grid-area:2 / 2}.prose .sgrid i.mk b.d6{grid-area:2 / 3}.prose .sgrid i.mk b.d7{grid-area:3 / 1}.prose .sgrid i.mk b.d8{grid-area:3 / 2}.prose .sgrid i.mk b.d9{grid-area:3 / 3}.prose .sgrid i.mk b.x{color:var(--ink-soft);text-decoration:line-through}.prose .sgrid i.mk.ka{position:relative}.prose .sgrid i.mk.ka b.d1,.prose .sgrid i.mk.ka b.d2,.prose .sgrid i.mk.ka b.d3{position:absolute;grid-area:auto;top:10%;height:26.666%;width:calc((90% - var(--killer-sum-w)) / 3)}.prose .sgrid i.mk.ka b.d1{left:var(--killer-sum-w)}.prose .sgrid i.mk.ka b.d2{left:calc(var(--killer-sum-w) + (90% - var(--killer-sum-w)) / 3)}.prose .sgrid i.mk.ka b.d3{left:calc(var(--killer-sum-w) + (90% - var(--killer-sum-w)) * 2 / 3)}.prose .sgrid .overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.prose .sgrid .overlay.under{z-index:0}.prose .sgrid i{position:relative;z-index:1}.prose .sgrid .overlay.over{z-index:2}.prose .sgrid .overlay .kropki{r:.16;stroke:var(--ink);stroke-width:.06}.prose .sgrid .overlay .kropki.white{fill:var(--paper)}.prose .sgrid .overlay .kropki.black{fill:var(--ink)}.prose .sgrid .overlay .consecutive-bar{stroke:var(--ink);stroke-width:.06;stroke-linecap:round}.prose .sgrid .overlay .xv-mark{fill:var(--ink);font-size:.3px;font-weight:600;paint-order:stroke;stroke:var(--paper);stroke-width:.08}.prose .sgrid .overlay .thermometer-line{fill:none;stroke:var(--accent);stroke-opacity:.3;stroke-linecap:round;stroke-linejoin:round;stroke-width:.34}.prose .sgrid .overlay .thermometer-bulb{r:.3;fill:var(--accent);fill-opacity:.42}.prose .sgrid .overlay .odd-even-marker{fill:var(--ink-soft);fill-opacity:.2;stroke:none}.prose .sgrid .overlay .renban-line{fill:none;stroke:var(--accent);stroke-opacity:.34;stroke-linecap:round;stroke-linejoin:round;stroke-width:.24}.prose .sgrid .overlay .german-whisper-line,.prose .sgrid .overlay .dutch-whisper-line{fill:none;stroke-opacity:.34;stroke-linecap:round;stroke-linejoin:round;stroke-width:.24}.prose .sgrid .overlay .german-whisper-line{stroke:var(--ink-german-whisper)}.prose .sgrid .overlay .dutch-whisper-line{stroke:var(--ink-dutch-whisper)}.prose .sgrid .overlay .killer-cage{fill:none;stroke:var(--ink-killer-cage);stroke-width:.025;stroke-dasharray:.1 .07;stroke-linejoin:round}.prose .sgrid .overlay .killer-sum-bg{fill:var(--paper)}.prose .sgrid .overlay .killer-sum{fill:var(--ink-killer-cage);font-size:.2px;font-weight:700;font-variant-numeric:tabular-nums}.prose .sgrid .overlay .arrow-line{fill:none;stroke:var(--accent);stroke-opacity:.42;stroke-linecap:round;stroke-linejoin:round;stroke-width:.12}.prose .sgrid .overlay .arrow-head{fill:var(--accent);fill-opacity:.56}.prose .sgrid .overlay .arrow-circle{r:.33;fill:none;stroke:var(--accent);stroke-opacity:.56;stroke-width:.1}.prose figure.board{margin:1.75em 0}.prose figure.board .sgrid{margin-block:0 10px}.prose figure.board figcaption{text-align:center;font-size:.85rem;color:var(--ink-soft)}.learn-path{list-style:none;margin:0;padding:0}.learn-line{margin-top:34px}.learn-line h3 .step{display:inline-grid;place-items:center;width:1.5em;height:1.5em;margin-right:10px;border-radius:50%;background:var(--accent-strong);color:var(--paper);font-size:.8em;vertical-align:.08em}.learn-family h4{margin:22px 0 0;font:600 .8rem/1.2 var(--font);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.learn-line h3{margin:0 0 4px;font:700 1.05rem/1.2 var(--display)}.learn-line .line-blurb{margin:0;font-size:.9rem;color:var(--ink-soft)}.prose .learn-cta{margin-top:2.5em;padding:24px;border:1px solid var(--line);border-radius:14px;background:var(--paper-2)}.prose .learn-cta h2{margin:0 0 8px;font:700 1.15rem/1.2 var(--display)}.prose .learn-cta p{margin:0}.prose .learn-cta .links{margin-top:16px;display:flex;flex-wrap:wrap;gap:8px 20px;font-weight:600}.prose .learn-cta[hidden]{display:none}.prose .learn-cta.post-puzzle{border-color:var(--accent)}.prose .learn-persist{margin-top:2.5em;font-size:.92rem;color:var(--ink-soft)}.lang-menu{position:relative}.lang-menu summary{display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:var(--ink-soft);list-style:none}.lang-menu summary::-webkit-details-marker{display:none}.lang-menu summary:hover,.lang-menu[open] summary{color:var(--ink)}.lang-menu summary:after{content:"";width:5px;height:5px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:translateY(-2px) rotate(45deg)}.lang-menu[open] summary:after{transform:translateY(1px) rotate(-135deg)}.lang-menu svg{flex:none}.lang-panel{position:absolute;top:calc(100% + 12px);right:0;z-index:20;min-width:190px;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--paper);box-shadow:0 12px 32px #00000024}.lang-panel{line-height:1.4}.lang-panel ul{margin:0;padding:0;list-style:none}.lang-panel li{margin:0}.lang-panel a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 10px;border-radius:8px;color:var(--ink-soft);white-space:nowrap}.lang-panel a:hover{background:var(--paper-2);color:var(--ink);text-decoration:none}.lang-panel a[aria-current]{font-weight:700;color:var(--ink)}.lang-panel .lang-tag{font:600 .68rem/1 var(--display);letter-spacing:.06em;padding:3px 5px;border:1px solid var(--line);border-radius:4px;color:var(--ink-soft)}.lang-panel .lang-note{margin:8px 4px 2px;padding-top:8px;border-top:1px solid var(--line);font-size:.8rem;line-height:1.45;color:var(--ink-soft);white-space:normal;max-width:210px}@media(max-width:720px){.project{grid-template-columns:1fr}.project .shot{border-right:none;border-bottom:1px solid var(--line)}.site-header .wrap{flex-wrap:wrap;height:auto;min-height:66px;padding-block:12px;row-gap:12px}.nav{order:3;flex-basis:100%;flex-wrap:wrap;gap:10px 14px;margin-left:0}.site-header .lang-menu{margin-left:auto}.prose table{font-size:.9rem}.prose th,.prose td{padding:12px 13px}.lang-menu .lang-current{display:none}}@media(max-width:480px){.prose tbody td:first-child{white-space:normal}.prose th,.prose td{hyphens:auto}}@media(prefers-color-scheme:dark){:root{--paper: #0a1119;--paper-2: #111e2b;--ink: #eaf1f8;--ink-soft: #93a4b8;--line: #1e2c3a;--accent: #5b96f7;--accent-ink: #06101a;--ink-german-whisper: #8bc34a;--ink-dutch-whisper: #e8833c;--ink-killer-cage: #c8a98e;--wrong: #f2726c;--app-surface-elev: rgb(30 32 48);--app-surface-scrim: rgb(0 0 0 / .549);--app-on-surface: rgb(236 234 240);--app-on-surface-muted: rgb(156 154 168);--app-on-surface-faint: rgb(94 92 106);--app-on-primary: rgb(12 13 23);--app-outline: rgb(45 47 64);--app-outline-strong: rgb(61 64 85);--app-primary: rgb(91 163 230);--app-primary-soft: rgb(26 40 64);--app-medium: rgb(237 149 85);--app-quest: rgb(229 182 80);--app-danger: rgb(230 107 107);--app-fog-tint: rgb(200 210 225 / .161);--app-fog-edge: rgb(170 184 224 / .278);--app-fog-shard-glow: rgb(91 163 230 / .42);--app-fog-base: rgb(130 154 180 / .322);--app-grid-line: rgb(236 234 240 / .161);--app-grid-line-strong: rgb(236 234 240 / .522);--app-cell-given-fg: rgb(236 234 240);--app-cell-user-fg: rgb(91 163 230);--app-cell-peer-bg: rgb(91 163 230 / .102);--app-cell-same-bg: rgb(91 163 230 / .22);--app-cell-variant-peer-outline: rgb(91 163 230 / .549);--app-cell-selected: rgb(91 163 230);--app-cell-wrong-bg: rgb(230 107 107 / .18);--app-cell-wrong-fg: rgb(230 107 107);--app-cell-note-fg: rgb(156 154 168);--app-cell-hint-bg: rgb(229 182 80 / .18);--app-rule-flash-bg: rgb(230 107 107 / .239);--app-constraint-kropki-white-fill: rgb(236 234 240);--app-constraint-kropki-white-outline: rgb(12 13 23);--app-constraint-kropki-black-fill: rgb(12 13 23);--app-constraint-kropki-black-outline: rgb(156 154 168);--app-constraint-thermo-color: rgb(91 163 230);--app-constraint-arrow-color: rgb(180 178 190);--app-constraint-renban-color: rgb(179 157 219);--app-constraint-killer-cage-color: rgb(200 169 142);--app-constraint-killer-cage-sum-background: rgb(30 32 48);--app-constraint-german-whispers-color: rgb(139 195 74);--app-constraint-dutch-whispers-color: rgb(232 131 60);--app-constraint-odd-even-fill: rgb(156 154 168 / .2);--app-constraint-consecutive-color: rgb(236 234 240);--app-constraint-consecutive-outline-color: rgb(30 32 48);--app-constraint-xv-color: rgb(236 234 240);--app-constraint-xv-outline-color: rgb(30 32 48);--app-constraint-thermo-palette-0: rgb(91 163 230);--app-constraint-thermo-palette-1: rgb(49 90 125);--app-constraint-thermo-palette-2: rgb(148 114 201);--app-constraint-thermo-palette-3: rgb(95 208 222);--app-constraint-arrow-palette-0: rgb(180 178 190);--app-constraint-arrow-palette-1: rgb(110 147 196);--app-constraint-arrow-palette-2: rgb(211 183 238);--app-constraint-arrow-palette-3: rgb(232 206 154);--app-constraint-renban-palette-0: rgb(179 157 219);--app-constraint-renban-palette-1: rgb(124 107 176);--app-constraint-renban-palette-2: rgb(183 132 167);--app-constraint-renban-palette-3: rgb(209 196 233);--app-constraint-killer-cage-palette-0: rgb(200 169 142);--app-constraint-killer-cage-palette-1: rgb(0 168 147);--app-constraint-killer-cage-palette-2: rgb(204 188 182);--app-constraint-killer-cage-palette-3: rgb(197 209 214);--app-constraint-german-whispers-palette-0: rgb(139 195 74);--app-constraint-german-whispers-palette-1: rgb(63 107 42);--app-constraint-german-whispers-palette-2: rgb(94 148 64);--app-constraint-german-whispers-palette-3: rgb(203 232 164);--app-constraint-dutch-whispers-palette-0: rgb(232 131 60);--app-constraint-dutch-whispers-palette-1: rgb(177 84 27);--app-constraint-dutch-whispers-palette-2: rgb(242 168 104);--app-constraint-dutch-whispers-palette-3: rgb(248 215 180)}.mark-light{display:none}.mark-dark{display:block}.brand .mark-light{display:none}.brand .mark-dark{display:block}}.prose figure.board.play .sgrid i{cursor:default}.prose figure.board.play .sgrid i[role=button]{cursor:pointer}.prose figure.board.play .sgrid i.sel{background:color-mix(in srgb,var(--accent) 18%,var(--paper))}.prose figure.board.play .sgrid i:focus-visible{outline:3px solid var(--accent-strong);outline-offset:-3px;position:relative;z-index:1}.prose figure.board.play .sgrid i.err{background:color-mix(in srgb,var(--wrong) 22%,var(--paper));animation:board-reject .35s ease}@keyframes board-reject{50%{background:color-mix(in srgb,var(--wrong) 45%,var(--paper))}}@media(prefers-reduced-motion:reduce){.prose figure.board.play .sgrid i.err{animation:none;background:color-mix(in srgb,var(--wrong) 45%,var(--paper))}}.prose figure.board.play .pad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:min(100%,380px);margin:10px auto 0}.prose figure.board.play .pad button{min-height:48px;border:1px solid var(--line);border-radius:6px;background:var(--paper-2);color:var(--ink);font:600 1rem/1 var(--font)}.prose figure.board.play .pad .note-toggle{grid-column:1 / -1}.prose figure.board.play .pad .note-toggle[aria-pressed=true]{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--paper)}.prose figure.board.play .pad button:focus-visible{outline:3px solid var(--accent-strong);outline-offset:2px}.prose figure.board.play .board-status{min-height:1.65em;margin:10px auto 0;width:min(100%,380px);color:var(--ink-soft);text-align:center}.prose figure.board.play.done .sgrid{border-color:var(--accent)}
