.puzzle-svg{touch-action:none;width:100%;height:100%;display:block;overflow:visible}.puzzle-svg .cell{fill:#faf9f3;stroke:#a9aea0;stroke-width:.6px}.puzzle-svg .shaded{fill:#858c7d}.puzzle-svg .arrow,.puzzle-svg .arrow-head{fill:none;stroke:#353e33;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.puzzle-svg .square{fill:#faf9f3;stroke:#385d4b;stroke-width:2px;pointer-events:none}.puzzle-svg .arrow-underlay,.puzzle-svg .arrow-head-underlay{fill:none;stroke:#faf9f3;stroke-width:3.6px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.puzzle-svg .given{fill:#303a30;stroke:#303a30}.puzzle-svg .square-inset{fill:none;stroke:#385d4b;stroke-width:.65px;pointer-events:none}.puzzle-svg .given-inset{stroke:#faf9f3;stroke-width:1px}.puzzle-svg .mark{fill:#5d6558;pointer-events:none}.puzzle-svg .error-outline{stroke:#a1472d;stroke-width:1.6px;stroke-dasharray:3 2;pointer-events:none}.puzzle-svg .error-icon{fill:#a1472d;pointer-events:none;font:700 10px system-ui,sans-serif}.puzzle-svg .cursor{display:none}.puzzle-svg:focus{outline:none}.puzzle-svg .border{fill:none;stroke:#424b3e;stroke-width:1.6px;pointer-events:none}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#2c322d;font-synthesis:none;--ink:#2c322d;--muted:#686e63;--green:#385d4b;--line:#d6d7ca;--paper:#faf9f3;background:#f3f0e7;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}button,input,select{font:inherit}button,select{cursor:pointer}button{color:inherit;touch-action:manipulation}button:disabled{opacity:.4;cursor:default}button,a,select,input{outline-offset:4px}:focus-visible{outline:2px solid var(--green)}button{-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}a{color:inherit;text-underline-offset:3px}h1,h2,p{margin:0}.stage{width:100%;height:100dvh;padding:max(18px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom))}.screen{width:100%;max-width:940px;height:100%;margin:auto}.eyebrow{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;font-size:10px;font-weight:600;display:block}.subtle,.fine-print{color:var(--muted);line-height:1.6}.fine-print{font-size:12px}.text-button{text-align:left;background:0 0;border:0;padding:7px 0;font-size:12px}.text-button:hover{text-underline-offset:4px;text-decoration:underline}.primary,.secondary{border:1px solid var(--line);border-radius:3px;min-height:42px;padding:11px 15px;font-size:13px;font-weight:550}.primary{color:#faf9f3;background:var(--green);border-color:var(--green);justify-content:space-between;align-items:center;gap:12px;display:flex}.primary:hover{background:#2a4a3a}.secondary{background:0 0}.secondary:hover{background:#e6e9de}.home{grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(20px,3vh,30px);max-width:1000px;display:grid}.home-content{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);justify-self:center;align-items:center;gap:clamp(24px,6vw,72px);width:100%;min-width:0;max-width:850px;height:100%;min-height:0;display:grid}.home-heading{justify-content:space-between;align-items:center;gap:20px;width:100%;max-width:850px;margin:0 auto;padding-top:16px;display:flex}.home-heading h1{letter-spacing:-.065em;font:400 clamp(40px,5vw,58px)/1.04 Georgia,Times New Roman,serif}.home-heading p{color:var(--muted);font:400 17px/1.5 Georgia,serif}:where(.home-heading p) span{display:block}.demo{aspect-ratio:1;grid-template-rows:minmax(0,1fr) auto;gap:12px;width:100%;min-width:0;min-height:0;max-height:100%;margin:0;display:grid}#demo-board{width:100%;height:100%;min-height:0}.demo-caption{color:#5a6754;text-align:center;font:italic 12px/1.4 Georgia,serif}.mode-list{flex-direction:column;justify-content:center;min-width:0;display:flex}.mode-card{border:0;border-top:1px solid var(--line);text-align:left;background:0 0;align-items:center;gap:18px;width:100%;padding:26px 0;display:flex}.mode-card:last-child{border-bottom:1px solid var(--line)}.mode-card:focus-visible{outline:none}.mode-index{color:var(--muted);align-self:flex-start;margin-top:5px;font-size:10px}.mode-card strong{letter-spacing:-.03em;font:400 27px/1.1 Georgia,serif;display:block}.mode-card small{color:var(--muted);margin-top:9px;font-size:11px;line-height:1.5;display:block}.mode-arrow{color:var(--green);margin-left:auto;font-size:24px;font-weight:300}.mode-card:hover .mode-arrow{transform:translate(2px,-2px)}.home-footer{width:100%;max-width:850px;color:var(--muted);justify-content:space-between;align-items:end;margin:0 auto;font-size:10px;display:flex}.setup,.loading{flex-direction:column;justify-content:center;gap:20px;max-width:390px;display:flex}.setup>.home-action{border-bottom:1px solid var(--line);align-self:stretch;margin-bottom:auto;padding-bottom:16px}.loading>.home-action{border-bottom:1px solid var(--line);align-self:start;margin-bottom:0;padding-bottom:16px}.loading{grid-template-rows:auto minmax(0,1fr);display:grid}.loading-content{flex-direction:column;align-self:center;gap:20px;display:flex}.setup:after{content:"";flex-shrink:0;height:calc(12px + 3.2em);margin-top:auto;font-size:12px}.setup h1,.loading h1{letter-spacing:-.045em;font:400 clamp(36px,7vw,54px)/1.04 Georgia,serif}.setup .subtle,.loading p{font-size:13px}.settings-grid{grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:20px;display:grid}.settings-grid label,.link-label,.editor-size label{color:var(--muted);font-size:11px}select,input{border:1px solid var(--line);color:var(--ink);background:var(--paper);border-radius:3px;padding:11px}select{width:100%;margin-top:8px;display:block}.link-label{justify-content:space-between;margin-bottom:8px;display:flex}#share-link,#board-link{width:100%;font-family:ui-monospace,monospace;font-size:13px}.message{color:#8b3e2e;min-height:30px;padding:8px 0;font-size:11px}:where(#exercise-form)>button{width:100%;margin-top:8px}.play{grid-template-rows:30px auto auto minmax(0,1fr);gap:16px;max-width:1000px;display:grid}.play-header{border-bottom:1px solid var(--line);grid-row:1;justify-content:space-between;align-items:center;padding-bottom:8px;padding-right:clamp(0px,720px - 50vw,190px);font-size:12px;display:flex}.wordmark{letter-spacing:-.04em;font:400 17px Georgia,serif}#timer{font-variant-numeric:tabular-nums;text-align:right;min-width:50px;color:var(--muted)}.play-heading{grid-row:2;justify-content:space-between;align-items:center;gap:12px;min-height:55px;display:flex}.play-heading h1{letter-spacing:-.025em;margin-bottom:6px;font:400 clamp(21px,3vw,30px)/1.2 Georgia,serif}.banner{color:#694e20;background:#ece4ce;border-left:3px solid #94733e;grid-row:3;padding:7px 12px;font-size:11px;line-height:1.4}.play-layout{grid-row:4;grid-template-columns:minmax(0,1fr) 250px;align-items:center;gap:40px;min-height:0;display:grid}.board-wrap,#board{width:100%;height:100%;min-height:0}.tools{flex-direction:column;gap:12px;display:flex}.draw-mode{border:1px solid var(--line);border-radius:3px;min-width:0;margin:0;padding:0;display:flex}.draw-mode button{background:0 0;border:0;flex:1;padding:9px 6px;font-size:12px}.draw-mode button[aria-pressed=true]{box-shadow:inset 0 -2px var(--green);background:#e0e6d7}.draw-mode span{margin-right:5px;font-size:17px}.history-tools{gap:8px;display:flex}.history-tools button{flex:1;padding:9px 6px;font-size:11px}.extra-tools{justify-content:space-between;gap:12px;display:flex}.extra-tools button{font-size:11px}.feedback{color:#785143;min-height:48px;max-height:100px;font-size:11px;line-height:1.5;overflow-y:auto}:where(.feedback p+p){margin-top:4px}.feedback:empty{min-height:48px}.tutorial-text{color:var(--green);border-left:2px solid #8c9a78;padding-left:12px;font-size:12px;line-height:1.55}.board-actions{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}#share-board,#share-result{justify-content:center;min-height:46px;padding:12px;font-size:13px}.board-actions .text-button{font-size:11px}.editor{grid-template-rows:30px auto minmax(0,1fr);gap:16px;display:grid}.editor-layout{grid-template-columns:minmax(0,1fr) 275px;align-items:center;gap:36px;min-height:0;display:grid}#editor-board{width:100%;height:100%;min-height:0}.editor-tools{flex-direction:column;gap:12px;max-height:100%;display:flex;overflow-y:auto}.editor-tools .history-tools{grid-row:auto}.editor-size{grid-template-columns:1fr 1fr auto;align-items:end;gap:8px;display:grid}.editor-size select{margin-top:5px;padding:8px}.editor-size button{min-height:36px;padding:9px;font-size:11px}.editor-modes{border:1px solid var(--line);border-radius:3px;grid-template-columns:repeat(4,1fr);min-width:0;margin:0;padding:0;display:grid}.editor-modes button{background:0 0;border:0;padding:12px 4px;font-size:11px}.editor-modes [aria-pressed=true]{box-shadow:inset 0 -2px var(--green);background:#e0e6d7}.editor-arrow-actions{justify-content:space-between;display:flex}.editor-arrow-actions button{font-size:11px}.editor-tools .message{min-height:16px;padding:0}.editor-actions{flex-direction:column;flex-shrink:0;gap:8px;display:flex}.editor-actions .primary{justify-content:center}.home-footer>button{font-size:inherit;padding:0}.modal-layer{z-index:10;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#f3f0e7b8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.result-card{background:var(--paper);border:1px solid var(--line);text-align:center;border-radius:4px;width:min(100%,390px);max-height:calc(100dvh - 40px);padding:36px;overflow-y:auto;box-shadow:0 12px 40px #2c322d12}.result-card h1{letter-spacing:-.05em;margin:16px 0;font:400 42px/1.15 Georgia,serif}:where(.result-card p){color:var(--muted);font-size:13px;line-height:1.7}.result-actions{flex-direction:column;gap:9px;margin-top:22px;display:flex}.result-actions .primary{justify-content:center}.countdown{font-variant-numeric:tabular-nums;margin-top:10px}dialog{color:var(--ink);border:1px solid var(--line);background:var(--paper);border-radius:4px;max-width:min(440px,100vw - 32px);max-height:calc(100dvh - 90px);padding:28px}dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#f3f0e7c9}dialog h2{letter-spacing:-.04em;margin:9px 0 14px;font:400 30px Georgia,serif}:where(dialog p,dialog li){font-size:13px;line-height:1.6}dialog ol{padding-left:20px}dialog li{margin-bottom:9px}:where(dialog p+p){margin-top:12px}.dialog-actions{justify-content:end;gap:8px;margin-top:20px;display:flex}#share-dialog .dialog-actions{flex-wrap:wrap;align-items:center}@media (max-width:700px) and (min-height:451px){.stage{padding:max(18px, env(safe-area-inset-top)) 18px max(15px, env(safe-area-inset-bottom))}.home{gap:clamp(10px,2vh,20px)}.home-heading h1{font-size:clamp(22px,20vw - 42px,38px)}.home-heading{flex-direction:column;align-items:flex-start;gap:12px}.play-header .wordmark{display:none}.play-header #timer{min-width:40px;font-size:11px}.home-heading p{padding:0;font-size:12px}:where(.home-heading p) span{display:inline}.home-content{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:clamp(10px,2vh,20px)}.demo{justify-self:center;gap:8px;max-width:480px;height:100%}.demo-caption{font-size:11px}.mode-list{justify-self:center;width:100%;max-width:500px}.mode-card{gap:14px;padding:14px 0}.mode-card strong{font-size:23px}.mode-card small{margin-top:6px;font-size:10px}.mode-index{margin-top:2px}.home-footer{font-size:9px}.play{grid-template-rows:28px auto auto minmax(0,1fr);gap:14px}.play-heading{min-height:50px}.play-heading h1{font-size:25px}.play-layout{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:1fr;gap:12px}.tools{grid-template-columns:1fr 1fr;gap:8px 10px;display:grid}.draw-mode,.history-tools{grid-row:1}.tools>.primary{grid-row:2;padding:10px;font-size:11px}.extra-tools{grid-row:2;justify-content:space-around;align-items:center;gap:5px}.extra-tools button{font-size:10px}.feedback,.tutorial-text,.board-actions{grid-column:1/-1}.feedback,.feedback:empty{min-height:32px;max-height:66px;font-size:10px}.tutorial-text{grid-row:3;font-size:11px}#next-level{grid-area:auto/1/auto/-1}.banner{padding:5px 8px;font-size:10px}}@media (max-height:690px){.home-heading h1{font-size:clamp(22px,20vw - 42px,54px)}.home-heading p{font-size:12px}.home{gap:10px}.home-content{gap:12px 32px}.mode-card{padding:11px 0}.mode-card strong{font-size:22px}.mode-card small{margin-top:4px;font-size:10px}.demo{gap:8px}.demo-caption{font-size:10px}.setup{gap:12px}.setup:after{font-size:10px}.tools{gap:8px}}@media (max-height:540px){.loading-content{gap:12px}.loading h1{font-size:36px}.home-heading h1{font-size:clamp(22px,20vw - 42px,36px)}.mode-card{padding:8px 0}.mode-card strong{font-size:20px}.mode-card small{font-size:9px}.demo-caption{display:none}.demo{grid-template-rows:minmax(0,1fr)}.home-footer{font-size:9px}}@media (max-height:450px){.stage{padding:max(14px, env(safe-area-inset-top)) 16px max(10px, env(safe-area-inset-bottom))}.home{gap:8px}.home-heading{gap:12px;min-height:42px;padding-right:180px}.home-heading h1{font-size:clamp(22px,20vw - 42px,36px)}.home-heading p{display:none}.home-content{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:24px}.demo{justify-self:center;height:100%}.mode-card{gap:10px;padding:7px 0}.mode-card strong{font-size:20px}.mode-card small{font-size:9px;line-height:1.3}.play{grid-template-rows:28px auto auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);gap:16px}.play-header{grid-area:1/1;align-self:start;padding-bottom:5px;padding-right:190px}.play-header .wordmark{display:none}.play-heading{grid-area:2/1;align-items:center;min-height:40px}.play-heading h1{margin-bottom:3px;font-size:21px}.play-heading .eyebrow{letter-spacing:.08em;font-size:9px}.play-heading #rules{padding-top:3px;font-size:10px}.banner{grid-area:3/1/auto/-1;padding:4px 8px;font-size:10px}.play-layout{grid-area:4/1/auto/-1;grid-template-columns:minmax(0,1fr) min(250px,46vw);gap:20px;height:100%}.tools{grid-template-columns:1fr 1fr;align-content:center;gap:6px;max-height:100%;display:grid;overflow-y:auto}.draw-mode,.history-tools{grid-row:1}.draw-mode button,.history-tools button{padding:7px 3px;font-size:10px}.draw-mode span{margin-right:2px;font-size:14px}.tools>.primary{grid-row:2;padding:8px;font-size:10px}.extra-tools{grid-row:2;justify-content:space-around;align-items:center;gap:5px}.extra-tools button{font-size:9px}.feedback,.tutorial-text,.board-actions,#next-level{grid-column:1/-1}.feedback,.feedback:empty{min-height:18px;max-height:40px;font-size:9px}.tutorial-text{grid-row:3;font-size:10px;line-height:1.35}#next-level{grid-row:auto}.setup{grid-template-columns:1fr 1fr;align-content:center;gap:10px 30px;max-width:650px;display:grid}.setup>.home-action,.setup h1,.setup .subtle{grid-column:1}.setup>.eyebrow,.setup:after{display:none}.setup h1{font-size:36px}.setup .subtle{font-size:11px}#exercise-form{grid-area:1/2/5}.settings-grid{gap:10px;margin-bottom:8px}.settings-grid select{margin-top:3px;padding:6px}}@media (max-width:700px) and (min-height:451px){.editor{grid-template-rows:28px auto minmax(0,1fr);gap:14px}.editor-layout{grid-template-rows:minmax(70px,1fr) minmax(0,auto);grid-template-columns:1fr;gap:12px}.editor-tools{grid-template-columns:1fr 1fr;gap:8px 10px;max-height:min(300px,38dvh);padding:2px;display:grid}.editor-size,.editor-modes,.editor-tools .history-tools,.editor-arrow-actions,.editor-tools>.fine-print,.editor-tools>.message{grid-column:1/-1}.editor-modes button{padding:10px 4px}.editor-tools .fine-print{font-size:10px;line-height:1.4}.editor-arrow-actions{align-items:center;gap:8px}.editor-actions{grid-column:1/-1}.editor-actions>button{min-height:36px;padding:8px}}@media (max-height:540px){.editor-tools{gap:6px}.editor-tools .fine-print{font-size:10px}}@media (max-height:450px){.editor{grid-template-rows:28px auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);gap:16px}.editor-layout{grid-area:3/1;grid-template-columns:minmax(0,1fr) min(275px,48vw);gap:20px}.editor-tools{align-self:stretch}.editor .play-heading h1{font-size:23px}.editor .play-header{grid-area:1/1;padding-right:190px}.editor .play-heading{grid-area:2/1;min-height:44px}}@media (prefers-reduced-motion:reduce){.mode-card:hover .mode-arrow{transform:none}}@media (max-height:350px){.mode-card small{display:none}.mode-card{padding:8px 0}}@media (max-width:700px){.demo{padding-block:16px}}.capture .home{grid-template-rows:minmax(0,1fr);max-width:720px;max-height:720px}.capture .home-content{grid-template-rows:minmax(0,1fr);grid-template-columns:1fr}.capture .home-heading,.capture .mode-list,.capture .home-footer{display:none}.capture .demo{grid-template-rows:minmax(0,1fr) auto;width:100%;max-width:none;height:100%;padding:30px}.capture .demo-caption{font-size:16px;display:block}
