:root{--ink:#1b2430;--muted:#55606e;--paper:#fbfaf7;--line:#d9d5cc;--brand:#1f4e79;--note:#fff4d6;color:var(--ink);background:var(--paper);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.55}*{box-sizing:border-box}body{margin:0}.public{max-width:46rem;margin:0 auto;padding:0 16px 48px}.public header{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px 20px;padding:16px 0;display:flex}.brand{color:var(--brand);font-size:1.5rem;font-weight:700;text-decoration:none}.menu{flex-wrap:wrap;flex:auto;gap:4px 16px;display:flex}.menu a{color:var(--ink);align-items:center;min-height:44px;padding:10px 2px;text-decoration:none;display:inline-flex}.menu a[aria-current=page]{color:var(--brand);box-shadow:inset 0 -2px 0 var(--brand);font-weight:600}.lang{gap:6px;display:flex}.lang button{font:inherit;border:1px solid var(--line);min-height:44px;color:var(--ink);cursor:pointer;background:#fff;border-radius:8px;padding:6px 12px}.lang button[aria-pressed=true]{border-color:var(--brand);color:var(--brand);font-weight:600}a:focus-visible,button:focus-visible{outline-offset:2px;outline:3px solid #f0a500}main h1{text-wrap:balance;margin:32px 0 16px;font-size:1.75rem;line-height:1.25}main h2{margin:28px 0 8px;font-size:1.15rem}main p,main li{overflow-wrap:anywhere}main ul{padding-left:1.25rem}main li{margin:6px 0}.draft{background:var(--note);border-radius:8px;padding:10px 14px;font-size:.95rem}footer{border-top:1px solid var(--line);color:var(--muted);margin-top:40px;padding-top:16px;font-size:.9rem}:root{--surface:#fff;--sky:#4a90c8;--sun:#f2b632;--apple:#d9534f;--leaf:#4f9a4a;--wood:#b07a45;--wood-dark:#7a5230;--accent:#1f4e79;--accent-ink:#fff;--target:44px}.stage-1{--target:64px}.stage-2{--target:52px}.card.item{flex-direction:column;gap:16px;max-width:60rem;min-height:100dvh;margin:0 auto;padding:16px;display:flex}.card.item .prompt{align-items:flex-start;gap:12px;font-family:Lexend,system-ui,sans-serif;font-size:20px;display:flex}.card.item.stage-1 .prompt,.card.item.stage-2 .prompt{font-size:24px}.speak{min-width:var(--target);min-height:var(--target);border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:50%;font-size:22px}.stage-area{flex-direction:column;flex:auto;align-items:center;gap:16px;display:flex}.stage-area>*,.fields>*{min-width:0;max-width:100%}.stage-area>.fields{width:100%}svg.scene{width:100%;max-width:640px;height:auto}.msg{background:var(--note);border-radius:8px;padding:10px 14px;font-size:20px}.foot{background:var(--paper);justify-content:space-between;align-items:center;gap:8px;padding:8px 0;display:flex;position:sticky;bottom:0}.no-timer{text-align:center;flex:auto;font-size:13px}.btn{font:inherit;min-height:var(--target);min-width:var(--target);border:2px solid var(--brand);background:var(--surface);color:var(--brand);cursor:pointer;border-radius:12px;padding:8px 20px;font-weight:600}.btn.primary{background:var(--brand);color:#fff}.btn.ghost{border-color:var(--line);color:var(--muted)}.btn:disabled{opacity:.45;cursor:default}.row{flex-wrap:wrap;gap:8px;display:flex}.row.center{justify-content:center}.fields{flex-direction:column;align-items:center;gap:12px;display:flex}.field-row{align-items:center;gap:10px;font-size:22px;font-weight:600;display:flex}.field{min-width:120px;min-height:var(--target);border:3px solid var(--line);background:var(--surface);border-radius:10px;justify-content:center;align-items:center;padding:6px 12px;font-size:28px;font-weight:700;display:flex}.field.small{min-width:72px}.field.on{border-color:var(--brand)}.field.fixed{border-style:dotted}.field .ph{color:var(--muted)}.frac-stack{flex-direction:column;align-items:center;gap:6px;display:flex}.frac-line{background:var(--ink);border-radius:2px;width:100%;min-width:90px;height:4px}.keypad{grid-template-columns:repeat(4,minmax(56px,72px));gap:8px;display:grid}.keypad.k3{grid-template-columns:repeat(3,minmax(56px,72px))}.keypad button{min-width:56px;min-height:max(56px, var(--target));font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:12px;font-size:24px;font-weight:600}.keypad button.wide{grid-column:span 2}.keypad button:disabled{opacity:.5}.fr{vertical-align:middle;flex-direction:column;align-items:center;margin:0 2px;line-height:1.1;display:inline-flex}.fr>span:first-child{border-bottom:2px solid}.mixed{align-items:center;gap:2px;display:inline-flex}.small-note{font-size:13px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.opts{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;width:100%;display:grid}.opts.one-col{grid-template-columns:1fr}.opt{min-height:max(64px, var(--target));border:2px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;text-align:center;cursor:pointer;border-radius:14px;justify-content:center;align-items:center;gap:10px;padding:10px;font-size:20px;font-weight:600;display:flex;position:relative}.opt.textopt{font-size:16px;font-weight:500}.opt.picopt{flex-direction:column}.opt svg{max-width:100%;height:auto}.opt .pic-label{font-size:13px}.opt[aria-pressed=true],.tile[aria-pressed=true],.tile.sel,.objbtn.sel{border-color:var(--accent);border-width:4px}.opt[aria-pressed=true]:after,.tile[aria-pressed=true]:after{content:"✓";background:var(--accent);width:22px;height:22px;color:var(--accent-ink);text-align:center;border-radius:50%;font-size:14px;line-height:22px;position:absolute;top:4px;right:6px}.opt:disabled,.tile:disabled{cursor:default}.seq{font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;font-size:28px;font-weight:600;display:flex}.seq .num{min-width:64px;min-height:max(58px, var(--target));background:var(--surface);border:1px solid var(--line);border-radius:12px;place-items:center;padding:0 8px;display:grid}.seq .gap{min-width:72px;min-height:max(58px, var(--target));border:2px dashed var(--muted);background:var(--surface);cursor:pointer;border-radius:12px;place-items:center;display:grid}.seq .gap.on{border-style:solid;border-color:var(--accent)}.seq .gap{position:relative}.seq .gap[aria-pressed=true]{border-style:solid;border-color:var(--accent);border-width:4px}.seq .gap[aria-pressed=true]:after{content:"✓";background:var(--accent);width:20px;height:20px;color:var(--accent-ink);text-align:center;border-radius:50%;font-size:13px;line-height:20px;position:absolute;top:2px;right:4px}.tray{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.tile{min-width:64px;min-height:max(58px, var(--target));border:2px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;border-radius:12px;padding:0 10px;font-size:24px;font-weight:600;position:relative}.dragghost{pointer-events:none;z-index:50;opacity:.85;position:fixed;transform:translate(-50%,-50%)}.pile{max-width:520px;min-height:var(--target);flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.plates{flex-wrap:wrap;justify-content:center;gap:12px;width:100%;display:flex}.plate{border:3px solid var(--wood-dark);background:var(--surface);cursor:pointer;border-radius:50%/40%;flex-wrap:wrap;place-content:center;gap:4px;min-width:132px;min-height:110px;padding:14px;display:flex}.objbtn{width:var(--target);height:var(--target);cursor:pointer;background:0 0;border:2px solid #0000;border-radius:10px;place-items:center;padding:0;display:grid;position:relative}.objbtn .tick-badge{position:absolute;top:-4px;right:-4px}.tap-obj{cursor:pointer}.cue-numeral{border:3px solid var(--line);background:var(--surface);border-radius:16px;padding:4px 28px;font-size:56px;font-weight:700}.hint{text-align:center;font-size:14px}.label{font-size:18px;font-weight:600}.feedback{background:var(--note);border-radius:8px;padding:10px 14px;font-size:18px}.target{font-size:30px;font-weight:700}svg.numline{touch-action:none;cursor:pointer}svg.numline:focus-visible{outline-offset:2px;outline:3px solid #f0a500}.pairs .opts.pair{grid-template-columns:1fr 1fr;max-width:460px}.opt.big{min-height:max(96px, var(--target));font-variant-numeric:tabular-nums;font-size:32px}.pvchart{border:2px solid var(--line);border-radius:8px;max-width:100%;display:flex;overflow-x:auto}.pvcol{min-width:max(72px, var(--target));border-right:2px solid var(--line);cursor:pointer;flex-direction:column;align-items:center;gap:8px;min-height:150px;padding:8px;display:flex;position:relative}.pvcol:last-child{border-right:0}.pvhead{color:var(--muted);font-size:18px;font-weight:600}.pvcell{flex:auto;place-items:center;display:grid}.pvcell .tile{min-width:max(56px, var(--target));min-height:max(64px, var(--target));font-size:36px}.zero{color:var(--muted);font-size:40px;font-weight:600}.pvpoint{background:var(--ink);z-index:1;border-radius:50%;width:12px;height:12px;position:absolute;bottom:26px;right:-7px}.equation{font-size:28px;font-weight:700}.column{font-variant-numeric:tabular-nums;flex-direction:column;align-items:flex-end;gap:4px;display:inline-flex}.crow{align-items:center;display:flex}.cop{text-align:center;width:30px;font-size:28px;font-weight:700}.ccell{place-items:center;width:46px;height:52px;font-size:30px;font-weight:600;display:grid}.ccell.pt{width:16px}.ccell.dash{border-bottom:1px dashed var(--line);width:30px;height:44px;font-size:24px}.ccell.dash.pt{width:14px}.ccell.ans{width:max(46px, var(--target));height:max(56px, var(--target));border:2px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;border-radius:8px;margin:0 1px;font-size:28px;font-weight:600}.ccell.ans.on{border-color:var(--accent);border-width:4px}.cline{background:var(--ink);border-radius:2px;width:100%;height:3px}.column.div{align-items:flex-start}.divtop{border-bottom:3px solid var(--ink);align-self:stretch;height:46px;margin-left:46px}.divbody{border-left:3px solid var(--ink);padding-left:6px;display:flex}.setup{flex-direction:column;gap:8px;max-width:100%;display:flex;overflow-x:auto}.srow{align-items:center;gap:8px;display:flex}.scells{gap:2px;display:flex}.btn.small{padding:4px 10px}.scrollx{max-width:100%;overflow-x:auto}.scrollx>*{width:max-content;margin-inline:auto}.grid100{border:2.5px solid var(--ink);touch-action:none;grid-template-columns:repeat(10,max(32px,min(44px,8vw)));gap:0;display:grid}.sq{aspect-ratio:1;border:1px solid var(--muted);background:var(--surface);cursor:pointer;width:100%;padding:0;position:relative}.sq.on{background:color-mix(in srgb, var(--sky) 80%, transparent)}.sq.on:after{content:"";border-top:2px solid var(--accent-ink);position:absolute;inset:20%;transform:rotate(-45deg)}.rtable{border-collapse:collapse;font-size:22px}.rtable th,.rtable td{border:2px solid var(--line);text-align:center;padding:6px 10px}.rtable th{text-align:left;font-size:16px;font-weight:600}.rtable .given{font-variant-numeric:tabular-nums;font-weight:700}.factq{font-variant-numeric:tabular-nums;min-height:60px;font-size:44px;font-weight:700}.sent{justify-content:center;gap:8px;display:flex}.slot{min-width:max(52px, var(--target));min-height:max(58px, var(--target));border:2px dashed var(--muted);background:var(--surface);font-variant-numeric:tabular-nums;cursor:pointer;border-radius:10px;place-items:center;padding:0 4px;font-size:24px;font-weight:600;display:grid;position:relative}.slot.full{border-style:solid;border-color:var(--line)}.slot[aria-pressed=true]{border-color:var(--accent);border-width:4px}.slot[aria-pressed=true]:after{content:"✓";background:var(--accent);width:18px;height:18px;color:var(--accent-ink);text-align:center;border-radius:50%;font-size:12px;line-height:18px;position:absolute;top:2px;right:3px}.steps{flex-direction:column;align-items:center;gap:12px;width:100%;display:flex}.step-text{text-align:center;font-size:22px;font-weight:600}
