.pc-theme-functionforge .fnf-machine{border:1.5px dashed var(--ff-slate);background:0 0;border-radius:.8rem;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;margin:0;padding:.4rem;display:flex}.pc-theme-functionforge .fnf-port{border:2px solid var(--ff-outline);background:var(--ff-paper);min-width:4rem;box-shadow:0 2px 0 var(--ff-outline);border-radius:.7rem;flex-direction:column;align-items:center;gap:.15rem;padding:.5rem .7rem;display:flex}.pc-theme-functionforge .fnf-port-cap{letter-spacing:.08em;color:var(--ff-slate-text);font-size:.7rem;font-weight:700}.pc-theme-functionforge .fnf-port-val{font-variant-numeric:tabular-nums;color:var(--ff-anvil);font-family:ui-monospace,monospace;font-size:1.7rem;font-weight:800}.pc-theme-functionforge .fnf-port--out .fnf-port-val{color:var(--ff-forge-text)}.pc-theme-functionforge .fnf-gear{border:2px solid var(--ff-outline);background:var(--ff-forge);color:#fff;min-width:5rem;box-shadow:0 2px 0 var(--ff-outline);border-radius:.7rem;flex-direction:column;align-items:center;gap:.1rem;padding:.55rem .8rem;display:flex}.pc-theme-functionforge .fnf-gear-icon{font-size:1.3rem;line-height:1}.pc-theme-functionforge .fnf-gear-rule{font-variant-numeric:tabular-nums;font-family:ui-monospace,monospace;font-size:1.15rem;font-weight:800}.pc-theme-functionforge .fnf-arrow{color:var(--ff-slate-text);font-size:1.5rem;font-weight:800}.pc-theme-functionforge .fnf-arrow--down{text-align:center;width:100%}.pc-theme-functionforge .fnf-chain{flex-direction:column;align-items:center;gap:.3rem;display:flex}.pc-theme-functionforge .fnf-answer-row{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.6rem;display:flex}.pc-theme-functionforge .fnf-input{border:2px solid var(--ff-outline);background:var(--ff-paper);min-width:6rem;color:var(--ff-anvil);border-radius:.6rem;flex:0 8rem;padding:.5rem .75rem;font-family:ui-monospace,monospace;font-size:1.15rem}.pc-theme-functionforge .fnf-input:focus-visible{outline:3px solid var(--ff-focus);outline-offset:1px}.pc-theme-functionforge .fnf-options{gap:.55rem;margin-top:.6rem;display:grid}.pc-theme-functionforge .fnf-rule-opt,.pc-theme-functionforge .fnf-options .ff-btn{text-align:left}.pc-theme-functionforge .fnf-guess-q{margin-top:.9rem;font-size:1.05rem;font-weight:800}.pc-theme-functionforge .fnf-answer-card{border-width:2px;border-left:5px solid var(--pc-select,var(--ff-forge));min-height:52px;padding:.7rem .9rem .7rem 1.05rem;font-size:1.02rem;font-weight:700;line-height:1.3;transition:transform .12s,box-shadow .12s}.pc-theme-functionforge .fnf-answer-card:not(:disabled):hover{box-shadow:0 4px 0 var(--ff-outline);transform:translateY(-1px)}.pc-theme-functionforge .fnf-guess-bench{flex-direction:column;align-items:center;gap:.5rem;width:100%;display:flex}.pc-theme-functionforge .fnf-probes{flex-wrap:wrap;gap:.4rem;margin:.4rem 0 .6rem;display:flex}.pc-theme-functionforge .fnf-probe{min-width:2.6rem;font-family:ui-monospace,monospace;font-weight:700}.pc-theme-functionforge .fnf-io-table{border-collapse:collapse;min-width:8rem;margin:.3rem 0 .4rem}.pc-theme-functionforge .fnf-io-table th,.pc-theme-functionforge .fnf-io-table td{border:1.5px solid var(--ff-outline);text-align:center;padding:.25rem .9rem;font-family:ui-monospace,monospace;font-size:1.05rem}.pc-theme-functionforge .fnf-io-table th{background:var(--ff-slate);color:#fff;font-weight:700}.pc-theme-functionforge .fnf-io-table td{background:var(--ff-paper);color:var(--ff-anvil)}.pc-theme-functionforge .fnf-graph{border:2px solid var(--ff-outline);background:var(--ff-paper);border-radius:.7rem;width:100%;max-width:min(94%,34rem);margin:.6rem auto;display:block}.pc-theme-functionforge .fnf-grid{stroke:#d7dde6;stroke-width:1px}.pc-theme-functionforge .fnf-axis{stroke:var(--ff-slate-text);stroke-width:2px}.pc-theme-functionforge .fnf-tick{fill:var(--ff-slate-text);font-family:ui-monospace,monospace;font-size:11px}.pc-theme-functionforge .fnf-line-live{stroke:var(--ff-forge);stroke-width:3.5px;stroke-linecap:round}.pc-theme-functionforge .fnf-line-target{stroke:var(--ff-spark);stroke-width:3.5px;stroke-dasharray:7 5;stroke-linecap:round}.pc-theme-functionforge .fnf-pt{fill:var(--ff-forge);stroke:var(--ff-outline);stroke-width:1.5px}.pc-theme-functionforge .fnf-pt--intercept{fill:var(--ff-spark);r:5}.pc-theme-functionforge .fnf-controls{flex-wrap:wrap;justify-content:center;gap:.8rem;margin-top:.5rem;display:flex}.pc-theme-functionforge .fnf-stepper{align-items:center;gap:.4rem;display:flex}.pc-theme-functionforge .fnf-stepper-label{color:var(--ff-slate-text);font-size:.9rem;font-weight:700}.pc-theme-functionforge .fnf-stepper-val{font-variant-numeric:tabular-nums;text-align:center;min-width:2rem;color:var(--ff-anvil);font-family:ui-monospace,monospace;font-size:1.2rem;font-weight:800}.pc-theme-functionforge .fnf-eq{text-align:center;font-variant-numeric:tabular-nums;color:var(--ff-forge-text);margin:0;font-family:ui-monospace,monospace;font-size:1.5rem;font-weight:800}.pc-theme-functionforge .fnf-dl-wrap{margin:.9rem 0 .4rem}.pc-theme-functionforge .fnf-dl-svg{touch-action:none;width:100%;max-width:660px;height:auto;margin:0 auto;display:block}.pc-theme-functionforge .fnf-dl-axis{stroke:var(--ff-slate,#6a7686);stroke-width:2px}.pc-theme-functionforge .fnf-dl-axis-lbl{fill:var(--ff-anvil,#45566a);font-size:15px;font-weight:700}.pc-theme-functionforge .fnf-dl-pt{fill:var(--pc-select,#3b7dd8);stroke:var(--ff-outline,#2a1f1a);stroke-width:1.5px}.pc-theme-functionforge .fnf-dl-guessline{stroke:var(--pc-select,#3b7dd8);stroke-width:3.5px;stroke-linecap:round}.pc-theme-functionforge .fnf-dl-bestline{stroke:var(--pc-correct,#2f9e44);stroke-width:3px;stroke-dasharray:7 5;stroke-linecap:round}.pc-theme-functionforge .fnf-dl-resid{stroke:var(--pc-incorrect,#c0392b);stroke-width:2px;opacity:.7}.pc-theme-functionforge .fnf-dl-halo{fill:#0000;cursor:grab;pointer-events:all}.pc-theme-functionforge .fnf-dl-halo:focus-visible{outline:3px solid var(--ff-focus,#3b5bdb);outline-offset:2px;border-radius:50%}.pc-theme-functionforge .fnf-dl-knob{fill:var(--pc-select,#3b7dd8);stroke:var(--ff-paper,#fffdf7);stroke-width:2.5px;pointer-events:none}@media (width<=640px){.pc-theme-functionforge .fnf-dl-halo{r:48px}}.pc-theme-functionforge .fmg-preview{margin:.2rem 0 .5rem}.pc-theme-functionforge .fmg-svg{width:100%;max-width:600px;height:auto;margin:0 auto;display:block}.pc-theme-functionforge .fmg-axis{stroke:var(--ff-slate,#6a7686);stroke-width:2.5px;stroke-linecap:round}.pc-theme-functionforge .fmg-axlbl{fill:var(--ff-anvil,#2d2d2d);font-size:15px;font-weight:700}.pc-theme-functionforge .fmg-line{stroke-width:4px;stroke-linecap:round;fill:none}.pc-theme-functionforge .fmg-line--blue{stroke:#2f6fd0}.pc-theme-functionforge .fmg-line--orange{stroke:#e07b1a}.pc-theme-functionforge .fmg-note{font-size:13px;font-weight:800}.pc-theme-functionforge .fmg-note--blue{fill:#2f6fd0}.pc-theme-functionforge .fmg-note--orange{fill:#e07b1a}.pc-theme-functionforge .fmg-choices{grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.7rem;display:grid}.pc-theme-functionforge .fmg-choice{min-height:56px;color:var(--ff-anvil,#2d2d2d);background:var(--ff-warm,#f3ede2);border:2px solid var(--ff-outline,#2a1f1a);cursor:pointer;border-radius:12px;padding:.7rem 1rem;font-size:1.4rem;font-weight:800;transition:transform .12s,background .12s}.pc-theme-functionforge .fmg-choice--blue{border-left:8px solid #2f6fd0}.pc-theme-functionforge .fmg-choice--orange{border-left:8px solid #e07b1a}.pc-theme-functionforge .fmg-choice:hover:not(:disabled),.pc-theme-functionforge .fmg-choice:focus-visible{background:var(--pc-select,var(--ff-forge));color:#fff;transform:translateY(-1px)}.pc-theme-functionforge .fmg-choice:focus-visible{outline:3px solid var(--ff-outline,#2a1f1a);outline-offset:2px}.pc-theme-functionforge .fmg-choice:disabled{cursor:default;opacity:.95}.pc-theme-functionforge .fmg-choice--correct{background:color-mix(in oklab, #2f8f5b 22%, var(--ff-warm,#f3ede2));color:var(--ff-anvil,#2d2d2d);border-color:#2f8f5b}.pc-theme-functionforge .fmg-choice--wrong{background:color-mix(in oklab, #c0392b 16%, var(--ff-warm,#f3ede2));color:var(--ff-anvil,#2d2d2d);border-color:#c0392b}@media (prefers-reduced-motion:reduce){.pc-theme-functionforge .fmg-choice{transition:none}.pc-theme-functionforge .fmg-choice:hover:not(:disabled){transform:none}}.pc-theme-functionforge.pc-immersive{--pc-env-bg:url(/play/functionforge/env.webp) center / cover no-repeat, linear-gradient(to bottom, #cfe0f0 0%, #dbe4ec 22%, #ece3d0 52%, #f2e7cc 78%, #f6efdb 100%);--pc-env-bg-dark:url(/play/functionforge/env-dark.webp) center / cover no-repeat, linear-gradient(to bottom, #101529 0%, #171d34 40%, #1c2030 72%, #211f2b 100%);--pc-env-bg-flat:url(/play/functionforge/env.webp) center / cover no-repeat, oklab(92.1252% -.00297573 .00963742);--pc-env-bg-flat-dark:url(/play/functionforge/env-dark.webp) center / cover no-repeat, #171d33}.functionforge-kits{border:2px solid var(--ff-outline);border-radius:.9rem;margin-top:.6rem;padding:.7rem .9rem}.functionforge-kits-summary{cursor:pointer;font-weight:800}.functionforge-kits-summary:focus-visible{outline:3px solid var(--ff-focus)}.coop-title{color:var(--ff-anvil,#2d2d2d);margin:0 0 .25rem;font-size:1.15rem;font-weight:800}.coop-intro{max-width:62ch}.coop-progress{color:var(--ff-anvil,#2d2d2d);margin:.4rem 0 .2rem;font-weight:700}.coop-prompt{color:var(--ff-anvil,#2d2d2d);max-width:60ch;margin:0 0 .6rem;font-weight:700}.coop-stage{flex-direction:column;align-items:center;padding:.9rem;display:flex}.coop-grid-host{justify-content:center;width:100%;display:flex}.coop-grid{width:100%;max-width:300px;height:auto}.coop-gridline{stroke:var(--ff-outline,#2a1f1a);stroke-width:1px;opacity:.4}.coop-band{opacity:.28}.coop-band--a{fill:var(--pc-select,#b07a2e)}.coop-band--b{fill:var(--pc-correct,#4caf50)}.coop-point{fill:var(--ff-anvil,#2d2d2d);stroke:var(--ff-paper,#fbf7ee);stroke-width:2px}.coop-turn{text-align:center;color:var(--ff-anvil,#2d2d2d);margin:.5rem 0;font-weight:700}.coop-roles{flex-direction:column;gap:.6rem;margin:.4rem 0;display:flex}.coop-role{border:2px solid var(--ff-outline,#2a1f1a);background:var(--ff-warm,#f4eddc);opacity:.7;border-radius:.7rem;padding:.55rem .7rem}.coop-role--active{opacity:1;box-shadow:0 2px 0 var(--ff-outline,#2a1f1a)}.coop-role--a.coop-role--active{border-color:var(--pc-select,#b07a2e)}.coop-role--b.coop-role--active{border-color:var(--pc-correct,#4caf50)}.coop-role-head{color:var(--ff-anvil,#2d2d2d);margin-bottom:.4rem;font-weight:800}.coop-opts{flex-wrap:wrap;gap:.4rem;display:flex}.coop-opt{min-width:48px;min-height:48px;font-weight:800}.coop-opt--picked{background:var(--pc-select,#b07a2e);color:var(--ff-paper,#fbf7ee)}.coop-role--b .coop-opt--picked{background:var(--pc-correct,#2e7d32)}.coop-result{border:2px solid var(--ff-outline,#2a1f1a);border-radius:.6rem;max-width:62ch;margin:.5rem auto;padding:.55rem .8rem;font-weight:600}.coop-result--open{background:var(--pc-correct-bg,#e8f5e9);color:var(--ff-anvil,#2d2d2d)}.coop-result--retry{background:var(--pc-incorrect-bg,#fdecea);color:var(--ff-anvil,#2d2d2d)}.coop-win{text-align:center;align-items:center;gap:.6rem}.coop-win-msg{color:var(--pc-correct,#2e7d32);max-width:58ch;font-weight:800}.coop-modepick,.coop-lobby{flex-direction:column;align-items:center;gap:.6rem;padding:1rem;display:flex}.coop-lobby-btn{min-height:48px;font-weight:800}.coop-join{flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem;display:flex}.coop-code-input{border:2px solid var(--ff-outline,#2a1f1a);background:var(--ff-paper,#fbf7ee);min-height:48px;color:var(--ff-anvil,#2d2d2d);text-transform:uppercase;border-radius:.6rem;width:8rem;padding:0 .7rem;font-size:1.1rem}.coop-roombanner{color:var(--ff-anvil,#2d2d2d);flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.6rem;font-weight:700;display:flex}.coop-roomcode{background:var(--pc-select,#b07a2e);color:var(--ff-paper,#fbf7ee);border-radius:.5rem;padding:.2rem .6rem}.coop-roomconn{opacity:.8;font-weight:600}@media (aspect-ratio>=1) and (width>=1000px){.pc-theme-functionforge.pc-immersive .fmg-svg{max-width:min(54rem,217dvh - 56.42rem)}}.ff-rb-stage{flex-direction:column;gap:.9rem;max-width:46rem;margin:0 auto;display:flex}.ff-rb-rule{border:2px solid var(--ff-outline,#2a1f1a);background:var(--ff-paper,#fbf7ee);color:var(--ff-anvil,#2d2d2d);border-radius:.6rem;padding:.55rem .8rem;font-size:1.05rem}.ff-rb-rule-tag{background:var(--pc-select,#b07a2e);color:var(--ff-paper,#fbf7ee);border-radius:.4rem;margin-right:.4rem;padding:.1rem .5rem;font-size:.85rem;font-weight:800;display:inline-block}.ff-rb-steplead{color:var(--ff-anvil,#2d2d2d);margin:0 0 .4rem;font-weight:800}.ff-rb-tablewrap,.ff-rb-graphwrap{border:2px solid var(--ff-outline,#2a1f1a);background:var(--ff-paper,#fbf7ee);border-radius:.7rem;padding:.7rem .8rem}.ff-rb-table{border-collapse:collapse;min-width:14rem;margin:0 0 .7rem}.ff-rb-table th,.ff-rb-table td{border:1px solid var(--ff-outline,#2a1f1a);text-align:center;color:var(--ff-anvil,#2d2d2d);padding:.35rem .7rem;font-weight:700}.ff-rb-table th{background:var(--pc-select,#b07a2e);color:var(--ff-paper,#fbf7ee)}.ff-rb-cell{border:2px solid var(--ff-outline,#2a1f1a);background:var(--ff-paper,#fbf7ee);width:5rem;min-height:44px;color:var(--ff-anvil,#2d2d2d);text-align:center;border-radius:.5rem;padding:0 .5rem;font-size:1.1rem;font-weight:700}.ff-rb-cell--ok{border-color:var(--pc-correct,#2e7d32);box-shadow:inset 0 0 0 2px var(--pc-correct,#2e7d32)}.ff-rb-cell--no{border-color:var(--pc-incorrect,#c62828);box-shadow:inset 0 0 0 2px var(--pc-incorrect,#c62828)}.ff-rb-check{min-height:44px}.ff-rb-graphgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;display:grid}@media (width<=560px){.ff-rb-graphgrid{grid-template-columns:1fr 1fr}}.ff-rb-graphbtn{border:2px solid var(--ff-outline,#2a1f1a);background:var(--ff-paper,#fbf7ee);min-height:44px;color:var(--ff-anvil,#2d2d2d);cursor:pointer;border-radius:.7rem;flex-direction:column;align-items:center;gap:.3rem;padding:.5rem;display:flex}.ff-rb-graphbtn:hover,.ff-rb-graphbtn:focus-visible{outline:3px solid var(--pc-select,#b07a2e);outline-offset:2px}.ff-rb-graphbtn--ok{border-color:var(--pc-correct,#2e7d32);box-shadow:0 0 0 3px var(--pc-correct,#2e7d32)}.ff-rb-graphbtn--ok:after{content:"✓ same function";color:var(--pc-correct,#2e7d32);font-weight:800}.ff-rb-graphbtn--no{opacity:.55}.ff-rb-graphbtn--no:after{content:"✗ different line";color:var(--pc-incorrect,#c62828);font-weight:800}.ff-rb-graphtag{font-size:.9rem;font-weight:800}.ff-rb-plane{background:var(--ff-paper,#fbf7ee);border-radius:.4rem;width:100%;max-width:160px;height:auto}.ff-rb-grid{stroke:var(--ff-outline,#2a1f1a);stroke-width:.5px;opacity:.22}.ff-rb-axis{stroke:var(--ff-anvil,#2d2d2d);stroke-width:1.5px;opacity:.75}.ff-rb-line{stroke:var(--pc-select,#b07a2e);stroke-width:3.2px;stroke-linecap:round}.ff-rb-plane--ringed{box-shadow:0 0 0 3px var(--pc-correct,#2e7d32)}.ff-rb-reveal{border:2px solid var(--pc-correct,#2e7d32);background:var(--pc-correct-bg,#e8f5e9);border-radius:.7rem;padding:.7rem .9rem}.ff-rb-reveal-lead{color:var(--ff-anvil,#2d2d2d);margin:0 0 .5rem;font-weight:800}.ff-rb-tex{color:var(--ff-anvil,#2d2d2d);font-size:1.35rem}.pc-theme-functionforge .bf-led-curve-card{margin-bottom:1rem}.pc-theme-functionforge .bf-led-curve-title{margin:0 0 .6rem}.pc-theme-functionforge .bf-led-curve-row{grid-template-columns:7rem 1fr;align-items:center;gap:.5rem;margin-bottom:.5rem;display:grid}.pc-theme-functionforge .bf-led-curve-name{font-weight:700}.pc-theme-functionforge .bf-led-bar-wrap{background:var(--ff-panel,#7f7f7f29);border-radius:999px;height:1.1rem;position:relative;overflow:hidden}.pc-theme-functionforge .bf-led-bar-fill{background:var(--pc-correct,#1b7a3d);border-radius:999px;height:100%}.pc-theme-functionforge .bf-led-bar-stated{background:var(--pc-select,#b4531f);width:.2rem;position:absolute;top:-.12rem;bottom:-.12rem;transform:translate(-50%)}.pc-theme-functionforge .bf-led-curve-read{grid-column:2}.pc-theme-functionforge .bf-led-panel{border-left:.2rem solid var(--pc-select,#b4531f);background:var(--ff-panel,#7f7f7f14);border-radius:.4rem;margin-bottom:.75rem;padding:.6rem .9rem}.pc-theme-functionforge .bf-led-panel-key{opacity:.85;font-size:.85rem;font-weight:700}.pc-theme-functionforge .bf-led-choice-row{flex-wrap:wrap;gap:.6rem;margin-top:.75rem;display:flex}.pc-theme-functionforge .bf-led-choice{flex:10rem}.pc-theme-functionforge .bf-led-choice--on{outline:.2rem solid var(--pc-select,#b4531f);outline-offset:.12rem}.pc-theme-functionforge .bf-led-result{margin-top:1rem}.pc-theme-functionforge .bf-led-beans{margin-top:.5rem}.pc-theme-functionforge .bf-led-help{border-left:.2rem solid var(--pc-select,#b4531f);margin-top:.75rem}.pc-theme-functionforge .bf-led-nav{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}
