.gf-goal{background:var(--ff-warm);border:2px solid var(--ff-outline);border-radius:.9rem;padding:.75rem 1rem;margin-bottom:.9rem;box-shadow:0 2px 0 var(--ff-outline)}.gf-label{font-weight:800;font-size:.78rem;letter-spacing:.03em;text-transform:uppercase;color:var(--ff-forge-text);margin:0 0 .3rem}.gf-goal-text{margin:0;font-weight:600}.gf-live{text-align:center;font-size:1.35rem;font-weight:800;font-variant-numeric:tabular-nums;margin:.4rem 0 .7rem;color:var(--ff-forge-text)}.gf-live strong{color:var(--ff-forge-text);font-variant-numeric:tabular-nums}.gf-canvas{overflow-x:auto;margin:.4rem 0 .8rem;display:flex;justify-content:center;align-items:center;padding:1.1rem 1rem;border:2px solid var(--ff-outline);border-top:4px solid var(--pc-select, var(--ff-forge));border-radius:.9rem;background:var(--ff-paper);box-shadow:0 3px 0 var(--ff-outline)}.gf-svg{width:100%;max-width:460px;height:auto;display:block;touch-action:none}.gf-svg--poly{max-width:320px}.gf-svg--grid,.gf-svg--geo{max-width:380px}.gf-ray{stroke-linecap:round}.gf-ray--base{stroke:var(--ff-slate);stroke-width:4}.gf-ray--move{stroke:var(--ff-forge);stroke-width:4}.gf-arc{stroke:var(--ff-spark);stroke-width:3}.gf-arc--given{stroke:var(--ff-slate);stroke-width:3}.gf-arc--your{stroke:var(--ff-spark);stroke-width:3}.gf-deg{fill:var(--ff-forge-text);font-weight:800;font-size:15px}.gf-deg--your{fill:var(--ff-spark)}.gf-vertex{fill:var(--ff-outline)}.gf-handle{fill:var(--ff-spark);stroke:var(--ff-outline);stroke-width:2;cursor:grab}.gf-handle:focus{outline:3px solid var(--ff-focus)}.gf-poly{fill:color-mix(in srgb,var(--ff-forge) 18%,transparent);stroke:var(--ff-forge);stroke-width:3}.gf-stepper{display:flex;align-items:center;justify-content:center;gap:.5rem;margin:.3rem 0 .7rem;flex-wrap:wrap}.gf-step{min-width:3.4rem;font-weight:800}.gf-step-val{min-width:5rem;text-align:center;font-weight:800;font-size:1.1rem;color:var(--ff-forge-text)}.gf-check{display:block;margin:.2rem auto 0}.gf-opts{display:grid;gap:.55rem;margin:.5rem 0 .3rem}.gf-opts--row{grid-template-columns:repeat(2,1fr)}.gf-opt{text-align:left;min-height:52px;font-weight:700;padding:.7rem .9rem;border-left:5px solid var(--pc-select, var(--ff-forge));display:flex;align-items:center}.gf-opt:hover:not(:disabled){transform:translateY(-2px)}.gf-opt--correct{background:var(--pc-correct);color:#fff;border-color:var(--ff-outline);border-left-color:var(--ff-outline)}.gf-opt--wrong{background:var(--pc-incorrect);color:#fff;border-left-color:var(--ff-outline)}.gf-opt--sel{box-shadow:0 0 0 3px var(--ff-forge) inset}.gf-grid{stroke:var(--ff-slate);stroke-width:1;opacity:.28}.gf-axis{stroke:var(--ff-slate-text);stroke-width:2;opacity:.7}.gf-shape{stroke-width:3}.gf-shape--pre{fill:color-mix(in srgb,var(--ff-forge) 22%,transparent);stroke:var(--ff-forge)}.gf-shape--img{fill:color-mix(in srgb,var(--pc-correct) 22%,transparent);stroke:var(--pc-correct)}.gf-shape--refl{fill:color-mix(in srgb,var(--ff-spark) 20%,transparent);stroke:var(--ff-spark);stroke-dasharray:5 3}.gf-mirror{stroke:var(--ff-spark);stroke-width:3;stroke-dasharray:6 4}.gf-vlabel{fill:var(--ff-forge-text);font-weight:800;font-size:14px}.gf-vertex--a{fill:var(--ff-forge)}.gf-vertex--hit-ok{fill:var(--pc-correct);stroke:var(--ff-outline);stroke-width:2}.gf-hit{fill:transparent;cursor:pointer}.gf-hit:hover{fill:color-mix(in srgb,var(--ff-forge) 30%,transparent)}.gf-hit:focus{outline:none;fill:color-mix(in srgb,var(--ff-focus) 40%,transparent)}.gf-peg{fill:var(--ff-slate);opacity:.55}.gf-band{fill:color-mix(in srgb,var(--ff-spark) 18%,transparent);stroke:var(--ff-spark);stroke-width:3}.gf-band-node{fill:var(--ff-forge);stroke:var(--ff-outline);stroke-width:2;cursor:grab}.gf-band-node:focus{outline:3px solid var(--ff-focus)}.gf-pick-note{text-align:center;margin:.2rem 0 .4rem}.gf-meta-dim{opacity:.7}@media(prefers-reduced-motion:reduce){.gf-arc,.gf-shape--refl,.gf-mirror{transition:none}.gf-opt:hover:not(:disabled){transform:none}}.gf-diss-stage{text-align:center}.gf-diss-head{margin:0 auto .75rem;max-width:54ch}.gf-diss-kicker{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--pc-select);margin:0}.gf-diss-title{font-size:1.35rem;font-weight:800;margin:.15rem 0 .3rem;color:var(--ff-forge-text)}.gf-diss-goal{margin:0;color:var(--ff-anvil);opacity:.9}.gf-diss-grid{display:grid;gap:3px;justify-content:center;margin:.9rem auto;width:-moz-max-content;width:max-content;background:var(--ff-outline);padding:3px;border-radius:.5rem}.gf-diss-cell{width:46px;height:46px;border:2px solid var(--ff-outline);border-radius:.3rem;background:var(--ff-paper);cursor:pointer;padding:0;transition:background .12s,transform .08s}.gf-diss-cell:hover:not(:disabled):not(.is-filled){background:color-mix(in oklab,var(--pc-select) 14%,var(--ff-paper))}.gf-diss-cell:focus-visible{outline:3px solid var(--pc-select);outline-offset:2px}.gf-diss-cell--off{visibility:hidden}.gf-diss-cell.is-filled{border-color:var(--ff-outline)}.gf-diss-c0{background:#e8734a}.gf-diss-c1{background:#2ba9a4}.gf-diss-c2{background:#8b5cf6}.gf-diss-c3{background:#4a9e5c}.gf-diss-c4{background:#d6558f}.gf-diss-c5{background:#4a7fd6}.gf-diss-ctl{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;margin:.5rem 0}.gf-diss-bank{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap;margin:.9rem 0 .3rem}.gf-diss-piece{display:flex;flex-direction:column;align-items:center;gap:.35rem;min-width:64px;min-height:44px;padding:.5rem .7rem;border:2px solid var(--ff-outline);border-radius:.6rem;background:var(--ff-paper);cursor:pointer}.gf-diss-piece.is-sel{outline:3px solid var(--pc-select);outline-offset:2px;box-shadow:0 3px 0 var(--ff-outline)}.gf-diss-piece.is-used{opacity:.4;cursor:default}.gf-diss-piece:focus-visible{outline:3px solid var(--pc-select);outline-offset:2px}.gf-diss-mini{display:grid;gap:2px}.gf-diss-minicell{width:14px;height:14px;border-radius:2px}.gf-diss-minicell.is-empty{background:transparent}.gf-diss-frac{font-weight:800;font-variant-numeric:tabular-nums;color:var(--ff-forge-text);font-size:1.05rem}.gf-diss-fb{margin:.6rem auto 0;max-width:54ch;padding:.5rem .75rem;border-radius:.5rem;border:2px solid var(--ff-outline);background:var(--ff-warm);color:var(--ff-anvil);font-weight:600}.gf-diss-fb.is-good{border-color:#2f8f4e;background:color-mix(in oklab,#2f8f4e 16%,var(--ff-paper))}.gf-diss-fb.is-bad{border-color:#b23b3b;background:color-mix(in oklab,#b23b3b 14%,var(--ff-paper))}.gf-diss-readout{margin:.4rem 0 0;font-variant-numeric:tabular-nums}.gf-diss-menu{margin:1rem 0 0}@media(prefers-reduced-motion:reduce){.gf-diss-cell{transition:none}}.pc-theme-geometryforge .gfc-tools{display:flex;flex-wrap:wrap;gap:.5rem;margin:.4rem 0 .6rem}.pc-theme-geometryforge .gfc-tool{min-height:44px;padding:.5rem .9rem;font-weight:700;font-size:1rem;color:var(--ff-forge-text, #2f49b0);background:var(--ff-paper, #fffdf7);border:2px solid var(--ff-outline, #2a1f1a);border-radius:10px;box-shadow:2px 2px 0 var(--ff-outline, #2a1f1a);cursor:pointer}.pc-theme-geometryforge .gfc-tool[aria-pressed=true]{background:var(--pc-select-bg, color-mix(in oklab, var(--pc-select, #7a4fd0) 18%, var(--ff-paper, #fff)));border-color:var(--pc-select, #7a4fd0);box-shadow:2px 2px 0 var(--pc-select, #7a4fd0)}.pc-theme-geometryforge .gfc-tool:focus-visible{outline:3px solid var(--ff-focus, #3b5bdb);outline-offset:2px}.pc-theme-geometryforge .gfc-wrap{margin:.4rem 0}.pc-theme-geometryforge .gfc-svg{width:100%;height:auto;max-width:460px;display:block;margin:0 auto;touch-action:none;background:var(--ff-warm, #fbf7ef);border:2px solid var(--ff-outline, #2a1f1a);border-radius:12px}.pc-theme-geometryforge .gfc-line{stroke:var(--pc-select, #7a4fd0);stroke-width:2}.pc-theme-geometryforge .gfc-given{stroke:var(--ff-slate, #6a7686);stroke-width:2.5}.pc-theme-geometryforge .gfc-circ{fill:none;stroke:var(--pc-select, #7a4fd0);stroke-width:2;opacity:.75}.pc-theme-geometryforge .gfc-halo{fill:transparent;cursor:pointer;pointer-events:all}.pc-theme-geometryforge .gfc-halo:focus-visible{outline:3px solid var(--ff-focus, #3b5bdb);outline-offset:1px;border-radius:50%}.pc-theme-geometryforge .gfc-pt{fill:var(--ff-outline, #2a1f1a);stroke:var(--ff-paper, #fffdf7);stroke-width:1.5;pointer-events:none}.pc-theme-geometryforge .gfc-pt--sel{fill:var(--pc-correct, #2f9e44)}.pc-theme-geometryforge .gfc-lbl{fill:var(--ff-forge-text, #2f49b0);font-size:15px;font-weight:800;pointer-events:none}.pc-theme-geometryforge .gfc-count{font-variant-numeric:tabular-nums;margin:.3rem 0}.pc-theme-geometryforge .gfc-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.6rem}@media(max-width:640px){.pc-theme-geometryforge .gfc-halo{r:30px}}
