.gf-goal{background:var(--ff-warm);border:2px solid var(--ff-outline);box-shadow:0 2px 0 var(--ff-outline);border-radius:.9rem;margin-bottom:.9rem;padding:.75rem 1rem}.gf-label{letter-spacing:.03em;text-transform:uppercase;color:var(--ff-forge-text);margin:0 0 .3rem;font-size:.78rem;font-weight:800}.gf-goal-text{margin:0;font-weight:600}.gf-live{text-align:center;font-variant-numeric:tabular-nums;color:var(--ff-forge-text);margin:.4rem 0 .7rem;font-size:1.35rem;font-weight:800}.gf-live strong{color:var(--ff-forge-text);font-variant-numeric:tabular-nums}.gf-canvas{border:2px solid var(--ff-outline);border-top:4px solid var(--pc-select,var(--ff-forge));background:var(--ff-paper);box-shadow:0 3px 0 var(--ff-outline);border-radius:.9rem;justify-content:center;align-items:center;margin:.4rem 0 .8rem;padding:1.1rem 1rem;display:flex;overflow-x:auto}.gf-svg{touch-action:none;width:100%;max-width:460px;height:auto;display:block}.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:4px}.gf-ray--move{stroke:var(--ff-forge);stroke-width:4px}.gf-arc{stroke:var(--ff-spark);stroke-width:3px}.gf-arc--given{stroke:var(--ff-slate);stroke-width:3px}.gf-arc--your{stroke:var(--ff-spark);stroke-width:3px}.gf-deg{fill:var(--ff-forge-text);font-size:15px;font-weight:800}.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:2px;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:3px}.gf-stepper{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;margin:.3rem 0 .7rem;display:flex}.gf-step{min-width:3.4rem;font-weight:800}.gf-step-val{text-align:center;min-width:5rem;color:var(--ff-forge-text);font-size:1.1rem;font-weight:800}.gf-check{margin:.2rem auto 0;display:block}.gf-opts{gap:.55rem;margin:.5rem 0 .3rem;display:grid}.gf-opts--row{grid-template-columns:repeat(2,1fr)}.gf-opt{text-align:left;border-left:5px solid var(--pc-select,var(--ff-forge));align-items:center;min-height:52px;padding:.7rem .9rem;font-weight:700;display:flex}.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:1px;opacity:.28}.gf-axis{stroke:var(--ff-slate-text);stroke-width:2px;opacity:.7}.gf-shape{stroke-width:3px}.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:3px;stroke-dasharray:6 4}.gf-vlabel{fill:var(--ff-forge-text);font-size:14px;font-weight:800}.gf-vertex--a{fill:var(--ff-forge)}.gf-vertex--hit-ok{fill:var(--pc-correct);stroke:var(--ff-outline);stroke-width:2px}.gf-hit{fill:#0000;cursor:pointer}.gf-hit:hover{fill:color-mix(in srgb, var(--ff-forge) 30%, transparent)}.gf-hit:focus{fill:color-mix(in srgb, var(--ff-focus) 40%, transparent);outline:none}.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:3px}.gf-band-node{fill:var(--ff-forge);stroke:var(--ff-outline);stroke-width:2px;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{max-width:54ch;margin:0 auto .75rem}.gf-diss-kicker{letter-spacing:.04em;text-transform:uppercase;color:var(--pc-select);margin:0;font-size:.72rem;font-weight:700}.gf-diss-title{color:var(--ff-forge-text);margin:.15rem 0 .3rem;font-size:1.35rem;font-weight:800}.gf-diss-goal{color:var(--ff-anvil);opacity:.9;margin:0}.gf-diss-grid{background:var(--ff-outline);border-radius:.5rem;justify-content:center;gap:3px;width:max-content;margin:.9rem auto;padding:3px;display:grid}.gf-diss-cell{border:2px solid var(--ff-outline);background:var(--ff-paper);cursor:pointer;border-radius:.3rem;width:46px;height:46px;padding:0;transition:background .12s,transform 80ms}.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{flex-wrap:wrap;justify-content:center;gap:.5rem;margin:.5rem 0;display:flex}.gf-diss-bank{flex-wrap:wrap;justify-content:center;gap:.7rem;margin:.9rem 0 .3rem;display:flex}.gf-diss-piece{border:2px solid var(--ff-outline);background:var(--ff-paper);cursor:pointer;border-radius:.6rem;flex-direction:column;align-items:center;gap:.35rem;min-width:64px;min-height:44px;padding:.5rem .7rem;display:flex}.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{gap:2px;display:grid}.gf-diss-minicell{border-radius:2px;width:14px;height:14px}.gf-diss-minicell.is-empty{background:0 0}.gf-diss-frac{font-variant-numeric:tabular-nums;color:var(--ff-forge-text);font-size:1.05rem;font-weight:800}.gf-diss-fb{border:2px solid var(--ff-outline);background:var(--ff-warm);max-width:54ch;color:var(--ff-anvil);border-radius:.5rem;margin:.6rem auto 0;padding:.5rem .75rem;font-weight:600}.gf-diss-fb.is-good{background:color-mix(in oklab, #2f8f4e 16%, var(--ff-paper));border-color:#2f8f4e}.gf-diss-fb.is-bad{background:color-mix(in oklab, #b23b3b 14%, var(--ff-paper));border-color:#b23b3b}.gf-diss-readout{font-variant-numeric:tabular-nums;margin:.4rem 0 0}.gf-diss-menu{margin:1rem 0 0}@media (prefers-reduced-motion:reduce){.gf-diss-cell{transition:none}}.pc-theme-geometryforge .gfc-tools{flex-wrap:wrap;gap:.5rem;margin:.4rem 0 .6rem;display:flex}.pc-theme-geometryforge .gfc-tool{min-height:44px;color:var(--ff-forge-text,#2f49b0);background:var(--ff-paper,#fffdf7);border:2px solid var(--ff-outline,#2a1f1a);box-shadow:2px 2px 0 var(--ff-outline,#2a1f1a);cursor:pointer;border-radius:10px;padding:.5rem .9rem;font-size:1rem;font-weight:700}.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{touch-action:none;background:var(--ff-warm,#fbf7ef);border:2px solid var(--ff-outline,#2a1f1a);border-radius:12px;width:100%;max-width:460px;height:auto;margin:0 auto;display:block}.pc-theme-geometryforge .gfc-line{stroke:var(--pc-select,#7a4fd0);stroke-width:2px}.pc-theme-geometryforge .gfc-given{stroke:var(--ff-slate,#6a7686);stroke-width:2.5px}.pc-theme-geometryforge .gfc-circ{fill:none;stroke:var(--pc-select,#7a4fd0);stroke-width:2px;opacity:.75}.pc-theme-geometryforge .gfc-halo{fill:#0000;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.5px;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);pointer-events:none;font-size:15px;font-weight:800}.pc-theme-geometryforge .gfc-count{font-variant-numeric:tabular-nums;margin:.3rem 0}.pc-theme-geometryforge .gfc-actions{flex-wrap:wrap;gap:.5rem;margin-top:.6rem;display:flex}@media (width<=640px){.pc-theme-geometryforge .gfc-halo{r:30px}}@media (aspect-ratio>=1) and (width>=900px){.pc-theme-geometryforge .ff-sxs-main{width:min(30rem,46vw)}}
