.construction-practice{--surface:var(--card);--subject-surface:var(--mint);--construction-ray:#9b4b1f;color:var(--ink)}.construction-practice[data-subject=math]{--subject-surface:var(--apricot)}.construction-practice[data-subject=reasoning]{--subject-surface:var(--lavender)}.construction-practice[data-format=area]{--area-symmetry-guide:#6b5b91}.construction-practice .construction-stage{border:1px solid var(--line);background:var(--card);border-radius:16px;padding:24px}.construction-practice .construction-stage>h2{text-align:center;margin:18px 0 24px;font-size:1.35rem;line-height:1.4}.construction-practice .construction-stage>h2:focus{outline:none}.construction-practice .construction-board{max-width:760px;margin-inline:auto}.construction-practice .construction-example{background:var(--subject-surface);border-radius:12px;min-width:0;padding:20px}.construction-practice .practice-setup-example>.construction-example{background:0 0;border-radius:0;padding:0}.construction-practice .construction-feedback{max-width:760px;margin:20px auto 0;font-size:1rem;line-height:1.5}.construction-practice .construction-feedback[data-state=error]{color:var(--bad)}.construction-practice .construction-feedback[data-state=success]{color:var(--good)}.construction-practice .construction-actions{justify-content:space-between;align-items:center;max-width:760px;margin-inline:auto}.construction-practice .construction-utilities,.construction-help-actions{flex-wrap:wrap;gap:12px;display:flex}.construction-practice .construction-help-actions{max-width:760px;margin:12px auto 0}.construction-practice .construction-help-actions>.btn{flex:0 auto;width:auto;min-width:120px}.construction-practice .construction-utilities{flex-wrap:nowrap;flex:none}.construction-practice .construction-utilities>.btn{flex:0 auto;width:auto;min-width:100px}.construction-practice .construction-note{color:var(--muted);font-size:.875rem}.construction-practice #construction-results>h2{text-align:start;letter-spacing:-.025em;text-wrap:balance;margin:0 0 8px;font-size:clamp(1.25rem,1.05rem + .7vw,1.5rem);line-height:1.35}.construction-practice .practice-help>div>p{max-width:65ch;line-height:1.6}.construction-practice #construction-assistance{color:var(--muted);font-weight:400}.construction-practice :is(.fw-remove,.fwe-action){min-width:44px;min-height:44px}:root[data-theme=dark] .construction-practice{--construction-ray:#f2ae77}:root[data-theme=dark] .construction-practice[data-format=area]{--area-symmetry-guide:#c5b1ed}@media (prefers-color-scheme:dark){:root[data-theme=system] .construction-practice{--construction-ray:#f2ae77}:root[data-theme=system] .construction-practice[data-format=area]{--area-symmetry-guide:#c5b1ed}}@media (width<=40.625em){.construction-practice .construction-stage,.construction-practice .construction-example{padding:16px 12px}.construction-practice .construction-stage>h2{margin:16px 0 20px;font-size:1.15rem}.construction-practice .construction-utilities{width:100%}.construction-practice .construction-utilities>.btn{flex:1}.construction-practice .construction-help-actions>.btn{flex:1 1 0;min-width:0}}@media (forced-colors:active){.construction-practice{--construction-ray:Highlight}}.ab-surface{background:var(--subject-surface);border-radius:12px;max-width:440px;margin:auto;padding:18px}.ab-targets{font-variant-numeric:tabular-nums;grid-template-columns:1fr 1fr;gap:20px;max-width:360px;margin:0 auto 14px;display:grid}.ab-targets dt{margin-bottom:3px;font-size:14px}.ab-targets dd{margin:0;font-size:24px;font-weight:600;line-height:1.25}.ab-targets dd span:last-child{font-size:16px;font-weight:400}.ab-wrap{background:var(--surface);border:1px solid var(--control-border);border-radius:3px;width:100%;max-width:360px;margin:auto;position:relative}.ab-grid{grid-template-columns:repeat(6,minmax(0,1fr));display:grid}.ab-cell{aspect-ratio:1;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);touch-action:manipulation;background:0 0;border-radius:0;place-items:center;min-width:0;min-height:0;padding:0;display:grid;position:relative}.ab-cell:after{content:"";background:var(--line);border-radius:50%;width:3px;height:3px}.ab-cell[data-filled=true]{background:color-mix(in oklab,var(--accent) 50%,var(--card))}.ab-cell[data-filled=true]:after{display:none}.ab-cell[data-blocked=true]{background:var(--accent-soft);cursor:default}.ab-cell[data-blocked=true]:after{display:none}.ab-cell[data-fixed=true]{cursor:default}.ab-cell svg{pointer-events:none;width:20px;height:20px;position:absolute}.ab-cell:hover:not([aria-disabled=true]){box-shadow:inset 0 0 0 2px var(--accent)}.ab-cell:focus-visible{outline:3px solid var(--accent);outline-offset:-4px;z-index:1}.ab-outline{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.ab-rule{max-width:440px;color:var(--muted);margin:10px auto 0;font-size:14px;line-height:1.5}.ab-example{grid-template-columns:auto minmax(0,260px);justify-content:center;align-items:center;gap:24px;min-height:168px;display:grid}.ab-mini{grid-template-rows:repeat(2,48px);grid-template-columns:repeat(3,48px);display:grid}.ab-mini button{border:1px solid var(--control-border);background:var(--surface);border-radius:0;padding:0}.ab-mini button[data-filled=true]{background:color-mix(in oklab,var(--accent) 50%,var(--card))}.ab-example p{max-width:28ch;font-size:14px;line-height:1.55}.ab-example p+p{margin-top:8px}.ab-example strong{font-weight:650}@media (width<=40.625em){.ab-surface{padding:8px}.ab-targets{gap:12px;margin-bottom:12px}.ab-targets dd{font-size:23px}.ab-rule{font-size:13px}.ab-example{grid-template-columns:1fr;justify-items:center;gap:12px}.ab-example p{max-width:32ch}.ab-example>div:last-child{text-align:center}.ab-targets dt{font-size:13px}}@media (width<=22.5em){.ab-surface{padding:2px}.ab-targets{padding:8px 6px 0}}@media (forced-colors:active){.ab-cell[data-filled=true]{background:highlight}.ab-cell{border-color:canvastext}.ab-outline path{stroke:canvastext}}.ab-proof{max-width:65ch;margin:24px auto 0}.ab-proof p{margin-top:12px;font-size:1rem;line-height:1.6}.mirror-task{--mirror-ray:var(--construction-ray);width:100%}.mirror-task .mirror-board{touch-action:manipulation;width:100%;max-width:430px;margin-inline:auto;display:block;overflow:visible}.mirror-task .mirror-grid-base{fill:var(--card,#fff);stroke:var(--control-border);stroke-width:1.25px}.mirror-task .mirror-grid-line{stroke:var(--line);stroke-width:1px}.mirror-task .mirror-socket{cursor:pointer;outline:none}.mirror-task .socket-base{fill:var(--card,#fff)}.mirror-task .socket-disc{fill:none;stroke:var(--control-border);stroke-width:1.25px}.mirror-task .mirror-socket:not([aria-disabled=true]):hover .socket-disc{stroke:var(--ink);stroke-width:2px}.mirror-task .mirror-socket:focus-visible .socket-disc{stroke:var(--accent);stroke-width:3px}.mirror-task .mirror-socket[aria-disabled=true]{cursor:default}.mirror-task .mirror-socket.is-hint .socket-disc{stroke:var(--accent);stroke-width:2.5px;stroke-dasharray:4 3}.mirror-task .mirror-surface{stroke:var(--ink);stroke-width:4px;stroke-linecap:round}.mirror-task .mirror-label{fill:var(--ink);text-anchor:end;dominant-baseline:central;font-family:inherit;font-size:19px;font-weight:650}.mirror-task .mirror-ray{fill:none;stroke:var(--mirror-ray);stroke-width:3px;stroke-linejoin:round;stroke-linecap:round}.mirror-task .mirror-dot{fill:var(--mirror-ray)}.mirror-task .mirror-checkpoint{fill:var(--card,#fff);stroke:var(--ink);stroke-width:1.75px}.mirror-task .mirror-checkpoint.hit{stroke:var(--mirror-ray);stroke-width:2px}.mirror-task .mirror-checkpoint-label{fill:var(--ink);text-anchor:middle;dominant-baseline:central;font-family:inherit;font-size:17px;font-weight:600}.mirror-task .mirror-source{fill:var(--ink)}.mirror-task .mirror-receiver{fill:var(--card,#fff);stroke:var(--ink);stroke-width:2px}.mirror-task .mirror-receiver.hit{fill:var(--mirror-ray);stroke:var(--mirror-ray)}.mirror-task .mirror-wall{fill:var(--muted)}.mirror-task .mirror-wall-line{stroke:var(--card,#fff);stroke-width:1.5px;stroke-linecap:round}.mirror-task .mirror-legend{color:var(--ink);flex-wrap:wrap;justify-content:center;gap:8px 20px;margin-top:8px;font-size:.8125rem;display:flex}.mirror-task .mirror-legend span{align-items:center;gap:6px;display:inline-flex}.mirror-task .mirror-legend svg{flex:none;width:16px;height:16px}.mirror-task .mirror-controls{display:none}.mirror-task .mirror-controls-label{margin:0 0 8px;font-size:.875rem;font-weight:600;display:block}.mirror-task .mirror-buttons{grid-template-columns:repeat(4,minmax(44px,1fr));gap:8px;display:grid}.mirror-task .mirror-turn{background:var(--card,#fff);border:1px solid var(--line);min-width:44px;min-height:44px;color:var(--ink);font:inherit;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:10px;font-weight:600;display:flex}.mirror-task .mirror-turn:not(:disabled):hover{background:var(--mint);border-color:var(--accent)}.mirror-task .mirror-turn svg{fill:none;stroke:currentColor;stroke-width:2.5px;stroke-linecap:round;width:20px;height:20px}.mirror-task .mirror-turn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.mirror-task .mirror-turn.is-hint{border:2px dashed var(--accent)}.mirror-task .mirror-turn:disabled{cursor:default;opacity:.6}.mirror-task.mirror-example .mirror-board{max-width:320px}.mirror-task .mirror-example-note{text-align:center;max-width:42ch;min-height:2.9em;color:var(--ink);margin:8px auto 0;font-size:.875rem;line-height:1.45}.mirror-task .mirror-example-actions{justify-content:center;margin-top:4px;display:flex}.mirror-task .mirror-example-actions .btn{min-height:44px;font-size:.875rem}@media (width<=40.625em){.mirror-task .mirror-controls{max-width:430px;margin:16px auto 0;display:block}.mirror-task.mirror-example .mirror-controls{max-width:320px;margin-top:12px}.mirror-task .mirror-example-note{min-height:4.35em}.mirror-task .mirror-legend{gap:8px 14px}}@media (forced-colors:active){.mirror-task .mirror-ray{stroke:highlight}.mirror-task .mirror-surface,.mirror-task .mirror-grid-line{stroke:canvastext}.mirror-task .socket-base,.mirror-task .mirror-grid-base,.mirror-task .mirror-checkpoint,.mirror-task .mirror-receiver{fill:canvas;stroke:canvastext}.mirror-task .socket-disc{stroke:canvastext}.mirror-task .mirror-source,.mirror-task .mirror-wall{fill:canvastext}.mirror-task .mirror-socket:focus-visible .socket-disc{stroke:highlight}}.fw{--piece-color:var(--mint);min-width:0;color:var(--ink)}.fw *{box-sizing:border-box}.fw button{font:inherit;color:inherit;touch-action:manipulation}.fw button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.fw-board{background:var(--apricot);border-radius:12px;padding:20px}.fw-ruler{width:calc(120 / var(--span) * 100%);border-top:1px solid var(--muted);height:29px;margin:5px 0 14px;position:relative}.fw-ruler:before,.fw-ruler:after{content:"";background:var(--muted);width:1px;height:9px;position:absolute;top:-5px}.fw-ruler:before{left:0}.fw-ruler:after{right:0}.fw-ruler span{text-align:center;color:var(--muted);padding-top:5px;font-size:.875rem;display:block}.fw-track+.fw-track{margin-top:18px}.fw-target{text-align:left;background:0 0;border:0;border-radius:4px;width:100%;padding:0;display:block}.fw-target[aria-disabled=true]{cursor:default}.fw-track-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;margin-bottom:8px;display:flex}.fw-track-name{font-weight:650}.fw-total{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.9375rem}.fw-exact{color:var(--accent);font-weight:650}.fw-meter{width:calc(var(--target) / var(--span) * 100%);border:1px dashed var(--muted);background:var(--surface);border-radius:4px;height:36px;display:flex;overflow:hidden}.fw-segment{flex:0 0 calc(var(--value) / var(--target) * 100%);background:var(--piece-color);border-right:1px solid var(--muted);height:100%;display:block}.fw-segment:last-child{border-right:0}.fw-target[data-ready=true] .fw-meter{border:2px solid var(--accent)}.fw-target[data-ready=true]:hover .fw-meter{background:var(--mint)}.fw-target[data-exact=true] .fw-meter{border-style:solid;border-color:var(--accent)}.fw-place-cue{color:var(--accent);margin-left:8px;font-weight:600}.fw-placed{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.fw-remove{border:1px solid var(--muted);font-variant-numeric:tabular-nums;background:0 0;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:6px 10px;display:inline-flex}.fw-remove:hover:not(:disabled){background:var(--surface);border-color:var(--accent)}.fw-remove svg{width:12px;height:12px}.fw-rack{margin-top:22px}.fw-rack h3{margin:0;font-size:1rem;font-weight:650}.fw-rack-note{min-height:22px;color:var(--muted);margin:5px 0 12px;font-size:.9375rem;line-height:1.45}.fw-pieces{flex-wrap:wrap;align-items:flex-start;gap:8px 12px;min-height:48px;display:flex;container-type:inline-size}.fw-piece{width:max(48px, calc(var(--value) / var(--span) * 100cqw));text-align:left;background:0 0;border:0;border-radius:4px;flex-direction:column;align-items:flex-start;gap:5px;min-height:56px;padding:0 0 4px;display:flex}.fw-piece-bar{width:calc(var(--value) / var(--span) * 100cqw);border:1px solid var(--muted);background:var(--piece-color);border-radius:4px;height:27px;display:block}.fw-piece-label{font-variant-numeric:tabular-nums;padding-left:2px;font-size:1rem;font-weight:600}.fw-piece:hover:not(:disabled) .fw-piece-bar{border-color:var(--accent)}.fw-piece[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:3px}.fw-piece[aria-pressed=true] .fw-piece-label{color:var(--accent)}.fw[data-locked=true] button:disabled{opacity:1;cursor:default}.fw[data-locked=true] .fw-remove{border-color:#0000;padding-inline:0}.fw[data-locked=true] .fw-remove svg{display:none}.fw-example{--span:210;max-width:640px;margin-inline:auto}.fwe-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 16px;margin-bottom:12px;display:flex}.fwe-heading h3{margin:0;font-size:1rem;font-weight:650}.fwe-actions{gap:4px 12px;display:flex}.fw .fwe-action{min-height:44px;color:var(--accent);text-underline-offset:4px;background:0 0;border:0;border-radius:4px;padding:8px 2px;font-size:.875rem;text-decoration:underline}.fw .fwe-action:hover:not(:disabled){background:var(--accent-soft)}.fw-example .fw-ruler{margin:4px 0 8px}.fw-example .fw-meter{height:36px}.fw-example .fw-meter[data-exact=true]{border-style:solid;border-color:var(--accent)}.fw-example .fw-segment{font-variant-numeric:tabular-nums;justify-content:center;align-items:center;font-size:.875rem;font-weight:600;line-height:1;display:flex}.fwe-math{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-top:12px;display:flex}.fwe-equation{margin:0;font-size:1rem;line-height:1.5}.fwe-remaining{color:var(--muted);font-size:.875rem}.fwe-remaining[data-exact=true]{color:var(--accent);font-weight:650}.fwe-instruction{color:var(--muted);margin:20px 0 12px;font-size:.875rem;line-height:1.5}.fw-example .fw-pieces{gap:12px}.fw-example .fw-piece{min-height:58px;width:max(48px, calc(var(--value) / var(--span) * 100cqw))}.fw-example .fw-piece[aria-pressed=true]:not(:focus-visible){outline:none}.fw-example .fw-piece:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.fw-example .fw-piece-label{align-items:center;gap:4px;padding-left:0;font-size:.9375rem;display:flex}.fwe-piece-mark{visibility:hidden;width:12px;height:12px;display:inline-flex}.fwe-piece-mark svg{width:12px;height:12px;display:block}.fw-example [aria-pressed=true] .fwe-piece-mark{visibility:visible}.fw-example [aria-pressed=true] .fw-piece-bar{border-color:var(--accent);background:var(--accent-soft)}.fwe-feedback{min-height:3em;color:var(--ink);margin:16px 0 0;font-size:.875rem;line-height:1.5}.fwe-feedback[data-kind=blocked],.fwe-feedback[data-kind=too-long]{color:var(--bad,var(--bad))}@media (width<=40.625em){.fw-board{padding:14px}.fw-track+.fw-track{margin-top:16px}.fw-place-cue{text-align:right;margin:2px 0 0;display:block}.fw-rack{margin-top:20px}.fw-example{--span:var(--example-mobile-span)}.fwe-heading{align-items:baseline}.fwe-actions{gap:10px}.fwe-feedback{min-height:6em}}@media (forced-colors:active){.fw-meter,.fw-piece-bar,.fw-segment{border:1px solid canvastext}.fw-piece[aria-pressed=true],.fw-target[data-ready=true] .fw-meter{outline:2px solid highlight}}.matrix-task{width:100%;color:var(--ink)}.matrix-field{background:var(--subject-surface,var(--mint));border-radius:12px;padding:16px}.matrix-grid{background:var(--control-border);border:1px solid var(--control-border);grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;width:100%;max-width:300px;margin:auto;display:grid}.matrix-cell{aspect-ratio:1;background:var(--card);justify-content:center;align-items:center;min-width:0;display:flex}.matrix-cell svg{width:100%;height:auto;display:block}.matrix-cell.is-missing{background:var(--accent-soft);outline:2px dashed var(--accent);outline-offset:-5px}.matrix-task .matrix-cell.is-missing[data-answer-state=correct]{background:var(--right-bg);color:var(--right-ink);outline:2px solid var(--right-line);outline-offset:-5px;border:0}.matrix-cell.is-missing>span{color:var(--accent);font-size:36px;font-weight:500}.matrix-task .matrix-glyph{fill:currentColor}.matrix-task .matrix-guide{fill:none;stroke:var(--control-border);stroke-width:1.3px}.matrix-options{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;width:100%;max-width:600px;margin:16px auto 0;display:grid}.matrix-choice{border:2px solid var(--control-border);background:var(--card);min-width:44px;min-height:120px;font:inherit;color:var(--ink);cursor:pointer;border-radius:10px;grid-template-rows:64px 18px 16px;align-content:center;justify-items:center;row-gap:2px;padding:7px 4px;display:grid}.matrix-choice>svg{width:64px;max-width:100%;height:64px;display:block}.matrix-choice-caption{place-items:center;width:100%;height:18px;font-size:13px;font-weight:600;line-height:1.2;display:grid;position:relative}.matrix-task [data-answer-label]{width:100%;height:100%;color:inherit;text-align:center;justify-content:center;align-items:center;font-size:12px;font-weight:600;line-height:1.2;display:flex}.matrix-choice:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent)}.matrix-choice:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.matrix-choice:disabled{opacity:1;cursor:default}.matrix-task [data-answer-state][data-answer-state]{border-style:solid;border-width:2px}.matrix-task [data-answer-state=chosen]{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.matrix-task [data-answer-state=correct]{border-color:var(--right-line);background:var(--right-bg);color:var(--right-ink)}.matrix-task [data-answer-state][data-answer-state=wrong]{border-color:var(--wrong-line);background:var(--wrong-bg);color:var(--wrong-ink);border-style:dashed}.matrix-task [data-answer-state=neutral]{border-color:var(--line);background:var(--card);color:var(--muted)}.matrix-task [data-answer-mark]{inset-inline-start:calc(50% + 10px);width:16px;height:16px;color:var(--card);border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;top:50%;transform:translateY(-50%)}.matrix-task :is([data-answer-state=correct],[data-answer-state=wrong]) [data-answer-mark]{display:inline-flex}.matrix-task [data-answer-state=correct] [data-answer-mark]{background:var(--right-line)}.matrix-task [data-answer-state=wrong] [data-answer-mark]{background:var(--wrong-line)}.matrix-task [data-answer-mark] svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:12px;height:12px;display:block}.matrix-explanation{max-width:70ch;color:var(--ink);margin:16px auto 0;font-size:14px;line-height:1.6}.matrix-example{grid-template-columns:210px minmax(0,312px);justify-content:center;align-items:start;gap:12px 24px;display:grid}.matrix-example .matrix-field{background:0 0;padding:0}.matrix-example .matrix-answers{min-width:0;height:210px}.matrix-example .matrix-options{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;height:100%;margin:0}.matrix-example .matrix-choice{grid-template-rows:52px 16px 15px;row-gap:1px;height:100%;min-height:0;padding:6px 4px}.matrix-example .matrix-choice>svg{width:52px;height:52px}.matrix-example .matrix-choice-caption{height:16px}.matrix-example-feedback-frame{grid-column:1/-1;min-width:0;display:grid}.matrix-example-feedback-frame>p{text-align:center;grid-area:1/1;margin:0;font-size:13px;line-height:1.5}.matrix-example-feedback-reserve{visibility:hidden;pointer-events:none}@media (width<=40.625em){.matrix-field{padding:12px}.matrix-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-width:360px;margin-top:12px}.matrix-choice{grid-template-rows:58px 18px 30px;min-height:128px}.matrix-choice>svg{width:58px;height:58px}.matrix-example{grid-template-columns:minmax(0,1fr);gap:14px}.matrix-example .matrix-grid{max-width:210px}.matrix-example .matrix-answers{justify-self:center;width:100%;max-width:312px;height:auto}.matrix-example .matrix-options{grid-template-rows:repeat(2,112px);max-width:312px;height:auto;margin:auto}.matrix-example .matrix-choice{grid-template-rows:52px 16px 30px;padding:4px}}@media (forced-colors:active){.matrix-grid{background:canvastext;border-color:canvastext}.matrix-cell,.matrix-choice{color:canvastext;background:canvas}.matrix-cell.is-missing{outline-color:highlight}.matrix-task [data-answer-state][data-answer-state]{border-color:buttontext}.matrix-task [data-answer-state][data-answer-state=correct]{border-color:highlight}.matrix-task .matrix-cell.is-missing[data-answer-state=correct]{outline:2px solid highlight}.matrix-task [data-answer-state][data-answer-state=wrong]{border-color:canvastext}.matrix-task [data-answer-mark]{forced-color-adjust:none;color:canvas;background:canvastext}}
