.dq-graph-wrap{background:var(--ff-warm);border:2px solid var(--ff-outline);border-top:4px solid var(--pc-select,var(--ff-forge));box-shadow:0 3px 0 var(--ff-outline);border-radius:12px;justify-content:center;margin:.5rem 0 .7rem;padding:.7rem;display:flex}.dq-graph{touch-action:manipulation;width:100%;max-width:min(94%,34rem);height:auto}.dq-edge{fill:none;stroke:var(--dq-edge);stroke-width:4px;stroke-linecap:round;transition:stroke .15s}.dq-edge--crossed{stroke:var(--dq-edge-crossed);stroke-width:5.5px}.dq-node{fill:var(--dq-node);stroke:var(--ff-outline,#2a1f1a);stroke-width:2.5px;transition:fill .15s}.dq-node-label{fill:#fff;pointer-events:none;font-size:.82rem;font-weight:800}.dq-vertex--visited .dq-node{fill:var(--dq-node-visited)}.dq-vertex--current .dq-node{fill:var(--dq-node-current)}.dq-vertex--focus .dq-node{stroke:var(--ff-spark);stroke-width:4.5px}.dq-vertex--tappable{cursor:pointer}.dq-vertex--tappable:hover .dq-node{fill:var(--dq-node-current)}.dq-vertex--tappable:focus-visible{outline:none}.dq-vertex--tappable:focus-visible .dq-node{stroke:var(--ff-focus);stroke-width:4.5px}.dq-tag{text-transform:uppercase;letter-spacing:.05em;border:2px solid var(--ff-outline,#2a1f1a);background:var(--ff-spark);color:#2a1f1a;border-radius:999px;padding:.15rem .55rem;font-size:.72rem;font-weight:800;display:inline-block}.dq-prompt{color:var(--ff-anvil,#2a1f1a);margin:.55rem 0 .4rem;font-weight:700}.dq-choices{flex-wrap:wrap;gap:.5rem;margin-top:.4rem;display:flex}.dq-choice{text-align:center;min-width:3.4rem;font-weight:700}.dq-choice--correct{background:var(--pc-correct);color:#fff;border-color:var(--pc-correct)}.dq-choice--wrong{background:var(--pc-incorrect);color:#fff;border-color:var(--pc-incorrect)}.dq-trace-status{color:var(--ff-forge-text);min-height:1.2rem;margin:.5rem 0 .2rem;font-weight:600}.dq-hintcard{background:var(--pc-correct-bg);border:2px solid var(--ff-outline,#2a1f1a);border-radius:.6rem;margin-top:.5rem;padding:.6rem .8rem}.dq-hint-text{margin:0;font-size:.92rem}@media (prefers-reduced-motion:reduce){.dq-edge,.dq-node{transition:none}}.pc-theme-discretequest.pc-immersive{--pc-env-bg:url(/play/discretequest/env.webp) center / cover no-repeat, linear-gradient(to bottom, #cddeea 0%, #d7e0e6 24%, #e5e5db 56%, #eee9d8 82%, #f4efdb 100%);--pc-env-bg-dark:url(/play/discretequest/env-dark.webp) center / cover no-repeat, linear-gradient(to bottom, #0a1420 0%, #0f1a28 40%, #141c26 72%, #171b21 100%);--pc-env-bg-flat:url(/play/discretequest/env.webp) center / cover no-repeat, oklab(90.9498% -.00557584 -.0000877474);--pc-env-bg-flat-dark:url(/play/discretequest/env-dark.webp) center / cover no-repeat, #101a26}.dsq-kits{margin:.4rem 0 1rem}.dsq-kits-summary{cursor:pointer;color:var(--ff-anvil);flex-wrap:wrap;align-items:center;gap:.5rem;font-size:1.05rem;font-weight:800;list-style:none;display:flex}.dsq-kits-summary::-webkit-details-marker{display:none}.dsq-kits-summary:before{content:"▸";color:var(--pc-select);font-weight:800}.dsq-kits[open] .dsq-kits-summary:before{content:"▾"}.bc-head{margin:0 0 .6rem}.bc-title{color:var(--ff-anvil,#2d2d2d);margin:0 0 .25rem;font-size:1.15rem;font-weight:800}.bc-intro{max-width:62ch}.bc-stage{justify-content:center;padding:.9rem;display:flex}.bc-board-host{justify-content:center;width:100%;display:flex}.bc-board{width:100%;max-width:340px;height:auto}.bc-tile{fill:color-mix(in oklab, var(--pc-select,#b07a2e) 24%, var(--ff-paper,#fbf7ee));stroke:var(--ff-outline,#2a1f1a);stroke-width:2px;transition:fill .18s,opacity .18s}.bc-tile--gone{fill:#0000;stroke:color-mix(in oklab, var(--ff-outline,#2a1f1a) 22%, transparent);opacity:.35}.bc-tile--goal{stroke:var(--pc-correct,#4caf50);stroke-width:3px}.bc-flag{fill:var(--pc-correct,#4caf50);font-weight:800}.bc-cube{fill:var(--pc-select,#b07a2e);stroke:var(--ff-outline,#2a1f1a);stroke-width:2.5px;transition:x .14s,y .14s}.bc-status{color:var(--ff-anvil,#2d2d2d);max-width:62ch;margin:.5rem 0;font-weight:600}.bc-status--win{color:var(--pc-correct,#2e7d32);font-weight:800}.bc-status--stuck{color:var(--pc-incorrect,#c62828)}.bc-pad{gap:var(--space-1);grid-template-rows:repeat(2,52px);grid-template-columns:repeat(3,52px);justify-content:center;margin:.4rem auto .2rem;display:grid}.bc-dir{min-width:52px;min-height:52px;padding:0;font-size:1.4rem;line-height:1}.bc-dir--up{grid-area:1/2}.bc-dir--left{grid-area:2/1}.bc-dir--down{grid-area:2/2}.bc-dir--right{grid-area:2/3}.bc-ctrls{flex-wrap:wrap;justify-content:center;gap:.5rem;margin:.4rem 0;display:flex}.bc-hint{background:var(--pc-correct-bg,#e8f5e9);border:2px solid var(--ff-outline,#2a1f1a);border-radius:.6rem;max-width:62ch;margin:.3rem auto;padding:.55rem .8rem}.bc-levelnav{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;margin-top:.6rem;display:flex}.bc-allclear{margin:0;font-weight:700}@media (prefers-reduced-motion:reduce){.bc-tile,.bc-cube{transition:none}}.dq-palette{flex-wrap:wrap;gap:.5rem;margin:.6rem 0 .2rem;display:flex}.dq-chip{align-items:center;gap:.4rem;padding:.35rem .6rem;display:inline-flex}.dq-chip-sw{border:2px solid var(--ff-outline);border-radius:999px;flex:none;width:1.1rem;height:1.1rem}.dq-chip-num{color:var(--ff-forge-text);font-weight:700}.dq-chip--on{background:var(--pc-select-bg,var(--ff-warm));border-color:var(--pc-select)}.dq-chip--erase .dq-chip-num{color:var(--ff-anvil,var(--ff-forge-text))}.dq-vertex--conflict .dq-node{stroke:var(--pc-incorrect);stroke-width:4px;stroke-dasharray:4 3}.tp-panel{background:var(--ff-paper);border:2px solid var(--ff-outline);max-width:40rem;box-shadow:0 2px 0 var(--ff-outline);color:var(--ff-ink);border-radius:14px;margin:1rem auto;padding:clamp(1rem,3vw,1.6rem)}.tp-kicker{text-transform:uppercase;letter-spacing:.08em;color:var(--pc-select);margin:0 0 .3rem;font-size:.8rem;font-weight:700}.tp-title{color:var(--ff-anvil);margin:0 0 .4rem;font-size:clamp(1.4rem,4vw,1.9rem)}.tp-lead{color:var(--ff-ink);opacity:.92;margin:0 0 1rem;line-height:1.55}.tp-stage{border:2px solid var(--ff-outline);background:var(--ff-paper);box-shadow:0 2px 0 var(--ff-outline);border-radius:14px;justify-content:center;margin:.4rem 0;padding:.8rem;display:flex;overflow-x:auto}.tp-board{width:auto;max-width:100%;height:auto}.tp-cell{fill:var(--ff-paper);stroke:var(--ff-outline);stroke-width:2.5px;cursor:pointer}.tp-cell:hover{fill:var(--pc-select-bg);stroke:var(--pc-select)}.tp-cell:focus-visible{outline:3px solid var(--ff-focus);outline-offset:2px}.tp-cell--on{fill:var(--pc-select);stroke:var(--pc-select);cursor:default}.tp-cell--copy{fill:var(--pc-select-bg);stroke:var(--pc-select);stroke-dasharray:4 3}.tp-status{min-height:1.4rem;color:var(--ff-anvil);margin:.5rem 0;font-weight:700}.tp-btn{min-height:48px;font:inherit;border:2px solid var(--ff-outline);background:var(--ff-paper);color:var(--ff-ink);cursor:pointer;border-radius:10px;margin:.3rem .4rem 0 0;padding:.55rem 1.1rem;font-weight:700}.tp-btn:focus-visible{outline:3px solid var(--ff-focus);outline-offset:2px}.tp-btn--go{background:var(--pc-select);color:#fff;border-color:var(--pc-select)}.tp-btn[disabled]{opacity:.5;cursor:not-allowed}.tp-proof{border:2px solid var(--pc-select);background:var(--pc-select-bg);border-radius:12px;margin:.6rem 0;padding:1rem}.tp-proof-eq{color:var(--ff-anvil);font-variant-numeric:tabular-nums;margin:0 0 .4rem;font-size:clamp(1.2rem,5vw,1.7rem);font-weight:800}.tp-proof-note{color:var(--ff-ink);opacity:.9;margin:0;line-height:1.5}.tp-done{color:var(--ff-anvil);margin:.6rem 0;font-weight:700}.tt-h{color:var(--ff-forge-text);margin:0 0 .4rem;font-size:1.5rem;font-weight:800}.tt-sub{color:var(--ff-forge-text);margin:.6rem 0 .2rem;font-size:1.1rem;font-weight:800}.tt-band{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.6rem;margin-bottom:.5rem;display:flex}.tt-band-title{color:var(--ff-forge-text);font-size:1.15rem;font-weight:800}.tt-persona{margin:0 0 .4rem}.tt-persona-name{color:var(--ff-anvil);font-weight:700}.tt-setup-text{color:var(--ff-forge-text)}.tt-formula{text-align:center;background:color-mix(in oklab, var(--pc-select) 12%, var(--ff-paper));border:2px solid color-mix(in oklab, var(--pc-select) 40%, var(--ff-outline));border-radius:12px;margin:.7rem 0 .2rem;padding:.7rem .9rem}.tt-formula-text{color:var(--ff-forge-text);letter-spacing:.02em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.5rem;font-weight:800}.tt-q-stem{color:var(--ff-forge-text);margin:.2rem 0 .5rem;font-weight:700}.tt-options{flex-direction:column;gap:.5rem;display:flex}.tt-option{cursor:pointer;text-align:left;min-height:44px;color:var(--ff-forge-text);background:var(--ff-paper);border:2px solid var(--ff-outline);border-radius:12px;padding:.7rem .9rem;font-size:1rem;font-weight:700}.tt-option:hover{border-color:var(--pc-select)}.tt-option:focus-visible{outline:3px solid var(--ff-focus);outline-offset:2px}.tt-tablewrap{margin:.8rem 0;overflow-x:auto}.tt-table{border-collapse:collapse;font-variant-numeric:tabular-nums;margin:0 auto}.tt-th{border:1.5px solid var(--ff-outline);color:var(--ff-forge-text);background:color-mix(in oklab, var(--ff-anvil) 10%, var(--ff-paper));white-space:nowrap;padding:.4rem .7rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.95rem;font-weight:800}.tt-th--main{background:color-mix(in oklab, var(--pc-select) 22%, var(--ff-paper));border-color:var(--pc-select)}.tt-th--mid{background:color-mix(in oklab, var(--pc-select) 10%, var(--ff-paper))}.tt-cell{border:1.5px solid var(--ff-outline);text-align:center;color:var(--ff-forge-text);padding:.35rem .7rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1rem;font-weight:800}.tt-cell--t{background:color-mix(in oklab, var(--pc-correct) 18%, var(--ff-paper));color:var(--ff-forge-text)}.tt-cell--f{background:var(--ff-warm,color-mix(in oklab, var(--ff-paper) 92%, var(--ff-forge-text)));color:var(--ff-anvil)}.tt-cell--main{border-left:3px solid var(--pc-select);border-right:3px solid var(--pc-select)}tr:last-child .tt-cell--main{border-bottom:3px solid var(--pc-select)}thead .tt-th--main{border-top:3px solid var(--pc-select)}.tt-key{margin-top:.4rem}.tt-feedback{border-left:6px solid var(--pc-select)}.tt-feedback--ok{border-left-color:var(--pc-correct);background:var(--pc-correct-bg)}.tt-feedback--learn{border-left-color:var(--pc-select)}.tt-fb-head{align-items:center;gap:.5rem;margin:0 0 .4rem;display:flex}.tt-fb-icon{font-size:1.4rem;font-weight:800}.tt-fb-title{color:var(--ff-forge-text);font-size:1.1rem;font-weight:800}.tt-fb-your{color:var(--ff-anvil);margin:0 0 .3rem;font-weight:600}.tt-fb-answer{color:var(--ff-forge-text);font-weight:700}.tt-fb-why{color:var(--ff-forge-text);margin-top:.5rem}.tt-endbtns{flex-wrap:wrap;gap:.6rem;margin-top:.9rem;display:flex}.tt-reflect{color:var(--ff-forge-text)}.pc-theme-discretequest .dq-rm-grid{grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.6rem;margin-top:.8rem;display:grid}.pc-theme-discretequest .dq-rm-level-btn{text-align:left;flex-direction:column;gap:.2rem;display:flex}.pc-theme-discretequest .dq-rm-setup{margin-bottom:1rem}.pc-theme-discretequest .dq-rm-region{flex-direction:column;gap:1rem;display:flex}.pc-theme-discretequest .dq-rm-choice-row{flex-wrap:wrap;gap:.6rem;margin-top:.75rem;display:flex}.pc-theme-discretequest .dq-rm-choice{flex:12rem}.pc-theme-discretequest .dq-rm-choice--on{outline:.2rem solid var(--pc-select);outline-offset:.12rem}.pc-theme-discretequest .dq-rm-once{margin-top:1rem}.pc-theme-discretequest .dq-rm-once-val{font-size:1.15rem;font-weight:700}.pc-theme-discretequest .dq-rm-hist{align-items:flex-end;gap:.35rem;height:9rem;padding:.5rem 0;display:flex}.pc-theme-discretequest .dq-rm-hist-col{flex-direction:column;flex:1 1 0;justify-content:flex-end;align-items:center;gap:.15rem;height:100%;display:flex}.pc-theme-discretequest .dq-rm-hist-bar{background:var(--pc-select);border-radius:.2rem .2rem 0 0;width:100%;min-height:.12rem}.pc-theme-discretequest .dq-rm-hist-count{opacity:.8;font-size:.75rem;font-weight:700}.pc-theme-discretequest .dq-rm-hist-tick{opacity:.65;font-size:.7rem}.pc-theme-discretequest .dq-rm-stats{margin-top:.5rem}.pc-theme-discretequest .dq-rm-lesson{border-left:.2rem solid var(--pc-select);margin-top:.5rem;padding-left:.6rem}.pc-theme-discretequest .dq-rm-nav{margin-top:1rem}
