@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(./archivo-vietnamese-wdth-normal-rJmnGBSt.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(./archivo-latin-ext-wdth-normal-7khWdh9v.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(./archivo-latin-wdth-normal-DY7AcnAa.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#eef1ee;--sheet:#fff;--ink:#1b2226;--muted:#525c63;--line:#c3ccc9;--rule:#b4c2be;--pen:#2350b8;--pencil:#56616a;--red:#c2352a;--hl:#ffe94d;--hl-ink:#1b2226;--hl-pen:#1c46a6;--hl-pencil:#3f4850;--zone:#fff6bf;--hit:#fde3df;--sel:#cddff6;--peer:#e8eef5;--same:#b5cdef;--take:#c62828;--marker:#ffe94d;--marker-ink:#1b2226;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--paper:#121619;--sheet:#1b2024;--ink:#e7ecee;--muted:#a3adb4;--line:#38424a;--rule:#37414a;--pen:#8fb5ff;--pencil:#b3bcc3;--red:#ff7b6e;--hl:#6b5c12;--hl-ink:#fff8dc;--hl-pen:#c4d8ff;--hl-pencil:#f0e6bd;--zone:#29271a;--hit:#3b2220;--sel:#25405f;--peer:#1f2830;--same:#2e4c73;--take:#f87171;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}body{background:var(--paper);color:var(--ink);-webkit-text-size-adjust:100%;margin:0;font-family:Archivo Variable,system-ui,sans-serif;font-size:1rem;line-height:1.5}button,input{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:active:not(:disabled){transform:translateY(1px)}button:disabled{cursor:default}a{color:var(--pen)}:focus-visible{outline:3px solid var(--pen);outline-offset:2px}[hidden]{display:none!important}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;max-width:1080px;margin:0 auto;padding:22px 24px 14px;display:flex}h1{letter-spacing:-.015em;margin:0;font-size:clamp(1.75rem,3.4vw,2.5rem);font-weight:800;font-stretch:125%;line-height:1}.picker{border:0;min-width:0;margin:0;padding:0;display:flex}.picker label{display:block;position:relative}.picker input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.picker span{border:1.5px solid var(--ink);background:var(--sheet);justify-content:center;align-items:center;min-height:44px;margin-left:-1.5px;padding:0 16px;font-weight:600;font-stretch:105%;display:flex}.picker label:first-of-type span{border-radius:6px 0 0 6px;margin-left:0}.picker label:last-of-type span{border-radius:0 6px 6px 0}.picker input:checked+span{background:var(--ink);color:var(--paper)}.picker input:hover:not(:checked)+span{background:var(--peer)}.picker input:focus-visible+span{outline:3px solid var(--pen);outline-offset:2px;z-index:1;position:relative}main{max-width:1080px;margin:0 auto;padding:0 24px}.play{grid-template-columns:minmax(0,640px) minmax(280px,1fr);grid-template-areas:"bar.""board side";align-items:start;gap:10px 48px;display:grid}.bar{grid-area:bar;align-items:center;gap:8px 14px;min-height:44px;display:flex}.label{flex-wrap:wrap;align-items:baseline;gap:0 10px;min-width:0;margin:0 auto 0 0;display:flex}.label strong{font-size:1.15rem;font-weight:750;font-stretch:112%}.label span{color:var(--muted);font-size:.95rem}.clock{font-variant-numeric:tabular-nums;margin:0;font-size:1.25rem;font-weight:650}.quiet{border:1.5px solid var(--line);background:var(--sheet);border-radius:6px;min-height:44px;padding:0 14px;font-weight:600}.quiet:hover:not(:disabled){border-color:var(--ink)}.quiet:disabled{color:var(--muted)}.quiet.warn{border-color:var(--red);color:var(--red)}.board-wrap{grid-area:board;position:relative;container-type:inline-size}.board{aspect-ratio:1;background:var(--sheet);border:3px solid var(--ink);-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border-radius:4px;grid-template-rows:repeat(9,minmax(0,1fr));grid-template-columns:repeat(9,minmax(0,1fr));display:grid}.row{display:contents}.cell{--c-ink:var(--ink);--c-pen:var(--pen);--c-pencil:var(--pencil);border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);cursor:pointer;outline:none;place-items:center;min-width:0;min-height:0;display:grid;position:relative}.row>.cell:nth-child(3n){border-right:2.5px solid var(--ink)}.row>.cell:nth-child(9){border-right:0}.row:nth-child(3n)>.cell{border-bottom:2.5px solid var(--ink)}.row:nth-child(9)>.cell{border-bottom:0}.cell .v{font-size:6.44444cqi;font-stretch:105%;line-height:1}.cell .v:empty{display:none}.cell.given .v{color:var(--c-ink);font-weight:700}.cell.entry .v{color:var(--c-pen);font-weight:450}.cell .n{grid-template-rows:repeat(3,minmax(0,1fr));grid-template-columns:repeat(3,minmax(0,1fr));display:grid;position:absolute;inset:1px}.cell .n span{min-width:0;color:var(--c-pencil);place-items:center;font-size:2.22222cqi;font-weight:560;font-stretch:90%;line-height:1;display:grid;position:relative}.cell.peer{background:var(--peer)}.cell.same{background:var(--same)}.cell.sel{background:var(--sel);box-shadow:inset 0 0 0 2px var(--pen)}.board:focus-within .cell.sel{box-shadow:inset 0 0 0 3px var(--pen)}.cell .n span.match{color:var(--c-pen);font-weight:800}.cell.conflict .v,.cell.wrong .v{color:var(--red)}.cell.wrong .v{text-underline-offset:.12em;-webkit-text-decoration:underline wavy;text-decoration:underline wavy;text-decoration-thickness:1.5px}.cell.zone{background:var(--zone)}.cell.hit{background:var(--hit)}.cell.hl{--c-ink:var(--hl-ink);--c-pen:var(--hl-pen);--c-pencil:var(--hl-pencil);background:var(--hl)}.cell .n span.mark{color:var(--c-ink);font-weight:800}.cell .n span.mark:before{content:"";border:1.5px solid var(--red);border-radius:50%;width:1.45em;height:1.45em;margin:auto;position:absolute;inset:0}.cell .n span.strike{color:var(--red)}.cell .n span.strike:after{content:"";background:var(--red);width:1.5em;height:1.5px;margin:auto;position:absolute;inset:0;transform:rotate(-50deg)}.cell.target .n span.mark{font-size:2.96296cqi}.board.paused .cell>*{visibility:hidden}.board.paused .cell{background:var(--sheet);box-shadow:none}.cover{flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.cover p{margin:0;font-size:1.6rem;font-weight:800;font-stretch:125%}.cover button,.hint{border:1.5px solid var(--marker-ink);background:var(--marker);min-height:48px;color:var(--marker-ink);border-radius:6px;padding:0 22px;font-weight:750}@media (prefers-reduced-motion:no-preference){.board.sweep .cell{animation:1s ease-out both sweep;animation-delay:calc((var(--r) + var(--c)) * 40ms)}}@keyframes sweep{0%{background-color:var(--sheet)}30%{background-color:var(--hl)}to{background-color:var(--sheet)}}.side{flex-direction:column;grid-area:side;align-self:stretch;gap:16px;min-width:0;display:flex}.coach{flex:1 0 auto;min-height:8.5rem}.coach-note{border-left:5px solid var(--marker);padding:2px 0 2px 14px}.coach[data-state=idle] .coach-text,.coach[data-state=loading] .coach-text{color:var(--muted)}.coach p{margin:0}.coach-head{font-size:1.05rem;font-weight:750;font-stretch:110%;margin-bottom:4px!important}.coach-head:empty{display:none}.coach-text{line-height:1.45}.pad{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.pad button{border:1.5px solid var(--line);background:var(--sheet);height:60px;color:var(--pen);border-radius:6px;place-items:center;padding:0;font-size:1.65rem;font-weight:560;display:grid}.pad button:hover:not(:disabled){border-color:var(--ink)}.pad button.used{color:var(--muted);font-weight:400}.pad button:disabled{color:var(--muted);background:0 0}.pad .erase{height:48px;color:var(--ink);grid-column:span 3;font-size:1rem;font-weight:600}.pad.notes button[data-d]{color:var(--pencil);padding:5px 9px;font-size:1.05rem;font-weight:600}.pad.notes [data-d="1"],.pad.notes [data-d="4"],.pad.notes [data-d="7"]{justify-items:start}.pad.notes [data-d="3"],.pad.notes [data-d="6"],.pad.notes [data-d="9"]{justify-items:end}.pad.notes [data-d="1"],.pad.notes [data-d="2"],.pad.notes [data-d="3"]{align-items:start}.pad.notes [data-d="7"],.pad.notes [data-d="8"],.pad.notes [data-d="9"]{align-items:end}.tools{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.tools button{border:1.5px solid var(--line);background:var(--sheet);border-radius:6px;min-height:48px;padding:0 6px;font-weight:600}.tools button:hover:not(:disabled){border-color:var(--ink)}.tools button:disabled{color:var(--muted)}.tools #notes[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.tools .hint{border-color:var(--marker-ink);background:var(--marker);color:var(--marker-ink)}.tools .hint.armed{background:var(--marker-ink);color:var(--marker)}.tools .hint:disabled{background:var(--sheet);border-color:var(--line);color:var(--muted)}.options{flex-wrap:wrap;gap:0 20px;display:flex}.options label{cursor:pointer;align-items:center;gap:8px;min-height:44px;display:flex}.options input{width:20px;height:20px;accent-color:var(--pen);margin:0}.actions{flex-wrap:wrap;gap:8px;display:flex}.print-title{display:none}.guide{border-top:3px solid var(--ink);margin-top:72px;padding-top:18px}.guide h2,.keys h2{margin:0 0 16px;font-size:clamp(1.5rem,2.6vw,2rem);font-weight:800;font-stretch:125%;line-height:1.1}.intro{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px 48px;margin-bottom:12px;display:grid}.intro p{max-width:60ch;margin:0}.levels{margin:0}.levels div{border-bottom:1px solid var(--line);grid-template-columns:5.5rem minmax(0,1fr);gap:12px;padding:6px 0;display:grid}.levels div:first-child{padding-top:0}.levels dt{font-weight:750}.levels dd{margin:0}.tech{border-top:1px solid var(--line);grid-template-columns:220px minmax(0,1fr);gap:8px 32px;padding:26px 0;scroll-margin-top:16px;display:grid}.tech:first-of-type{margin-top:28px}.tech h3{margin:0;font-size:1.2rem;font-weight:750;font-stretch:112%;line-height:1.25}.tech-body{grid-template-columns:minmax(0,1fr) minmax(0,408px);align-items:start;gap:18px 36px;display:grid}.tech-body>p{max-width:58ch;margin:0}.figs{flex-direction:column;gap:22px;display:flex}.tech figure{margin:0}.tech figcaption{color:var(--muted);margin-top:8px;font-size:.9rem;line-height:1.4}.diagram{min-height:40px}.dg{max-width:100%;height:auto;font-family:Archivo Variable,system-ui,sans-serif;display:block}.dg-sheet{fill:var(--sheet)}.dg-zone{fill:var(--zone)}.dg-hl{fill:var(--hl)}.dg-hit{fill:var(--hit)}.dg-thin{stroke:var(--rule);stroke-width:1px}.dg-thick{stroke:var(--ink);stroke-width:2px}.dg-frame{fill:none;stroke:var(--ink);stroke-width:2.5px}.dg-given,.dg-pen,.dg-cand{text-anchor:middle;dominant-baseline:central}.dg-given{fill:var(--ink);font-weight:700}.dg-pen{fill:var(--hl-pen);font-weight:600}.dg-ring{fill:none;stroke:var(--red);stroke-width:1.4px}.dg-cand{fill:var(--pencil);font-weight:600}.dg-mark{fill:var(--hl-ink);font-weight:800}.dg-struck{fill:var(--red)}.dg-strike{stroke:var(--red);stroke-width:1.4px}.dg-hatch{stroke:var(--red);stroke-width:2px;stroke-linecap:round;opacity:.6}.dg-path{fill:none;stroke:var(--pen);stroke-width:2px;stroke-linejoin:round;opacity:.75}.dg-dash{stroke:var(--red);stroke-width:1.5px;stroke-dasharray:4 3}.keys{border-top:3px solid var(--ink);margin-top:48px;padding-top:18px}.keys dl{grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:0 48px;margin:0;display:grid}.keys dl div{border-bottom:1px solid var(--line);grid-template-columns:9.5rem minmax(0,1fr);align-items:baseline;gap:16px;padding:9px 0;display:grid}.keys dt{white-space:nowrap}.keys dd{color:var(--muted);margin:0}kbd{border:1px solid var(--line);background:var(--sheet);min-width:1.7em;font:inherit;text-align:center;border-bottom-width:2px;border-radius:4px;padding:1px 6px;font-size:.85rem;font-weight:600;display:inline-block}.site-footer{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:center;gap:.5rem 1.5rem;margin-top:56px;padding:24px 16px 32px;font-size:.9rem;display:flex}.site-footer a{color:var(--ink);padding:12px 4px;display:inline-block}.tt-take{color:var(--take)}@media (width<=780px){.top{gap:10px;padding:12px 12px 8px}h1{font-size:1.55rem}.picker{width:100%}.picker label{flex:1 1 0}.picker span{padding:0 4px;font-size:.95rem}main{padding:0 12px}.play{grid-template-columns:minmax(0,1fr);grid-template-areas:"bar""board""side";gap:8px}.side{gap:12px;padding-top:6px}.coach{min-height:5.6rem;font-size:.95rem}.pad{grid-template-columns:repeat(5,minmax(0,1fr))}.pad button{height:52px}.pad .erase{grid-column:auto;height:52px}.intro,.tech,.tech-body,.keys dl{grid-template-columns:minmax(0,1fr)}.keys dl div{grid-template-columns:8.5rem minmax(0,1fr);gap:12px}}@media (width<=380px){.picker span{padding:0 2px;font-size:.9rem;font-stretch:88%}.keys dl div{grid-template-columns:minmax(0,1fr);gap:4px}}@media print{@page{margin:16mm}body{color:#000;background:#fff}.top,.bar,.side,.cover,.guide,.keys,.site-footer{display:none!important}main{max-width:none;padding:0}.play{display:block}.print-title{width:150mm;margin:0 auto 6mm;font-size:12pt;display:block}.print-title strong{margin-right:.4em;font-weight:800;font-stretch:125%}.board-wrap{width:150mm;margin:0 auto}.board{background:#fff;border-color:#000}.cell,.cell.peer,.cell.same,.cell.sel,.cell.zone,.cell.hit,.cell.hl{border-color:#888;box-shadow:none!important;background:#fff!important;animation:none!important}.row>.cell:nth-child(3n),.row:nth-child(3n)>.cell{border-color:#000}.row>.cell:nth-child(3n){border-bottom-color:#888}.row:nth-child(3n)>.cell:nth-child(3n){border-bottom-color:#000}.cell .n,.cell:not(.given) .v{visibility:hidden}.cell.given .v{color:#000}}@media (width<=1040px) and (width>=781px){.tech{grid-template-columns:minmax(0,1fr)}}
