:root{--paper: #f3eddf;--paper-deep: #ece4d0;--ink: #26317a;--ink-soft: #26317ab3;--ink-tint: #26317a14;--riso: #e2502f;--riso-tint: #e2502f1c;--rule: #d8cdb4;--serif: "Instrument Serif", Georgia, "Times New Roman", serif;--mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--mono);font-size:15px}#root{max-width:880px;margin:0 auto;padding:28px 20px 80px}h1,h2,h3{font-family:var(--serif);font-weight:400;margin:0 0 .35em}h1{font-size:2.1rem}h2{font-size:1.4rem;margin-top:1.6em}h3{font-size:1.1rem}.sub{color:var(--ink-soft);margin:0 0 1.6em}.rule{border:0;border-top:1px solid var(--rule);margin:1.4em 0}button{font-family:var(--mono);font-size:14px;color:var(--ink);background:transparent;border:1.5px solid var(--ink);padding:8px 14px;cursor:pointer}button.primary{background:var(--ink);color:var(--paper)}button.riso{border-color:var(--riso);color:var(--riso)}button:disabled{opacity:.45;cursor:default}input,select{font-family:var(--mono);font-size:15px;color:var(--ink);background:var(--paper-deep);border:1.5px solid var(--ink);padding:8px 10px}label{display:block;margin:1em 0 .3em;color:var(--ink-soft);font-size:13px}table{border-collapse:collapse;width:100%;margin:.6em 0 1.2em}th,td{text-align:left;padding:6px 10px 6px 0;border-bottom:1px solid var(--rule);font-size:14px}th{color:var(--ink-soft);font-weight:400;font-size:12px;text-transform:uppercase;letter-spacing:.06em}.riso-text{color:var(--riso)}.badge{display:inline-block;background:var(--riso-tint);color:var(--riso);padding:1px 8px;margin-left:8px;font-size:12px}.card{background:var(--paper-deep);border:1.5px solid var(--ink);padding:18px 20px;margin:1em 0}.students{color:var(--ink-soft);font-size:13px}.bar{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2px solid var(--ink);padding-bottom:10px;margin-bottom:26px}.mis-desc{margin:.2em 0 .8em}.pile{font-size:14px}.pile code{background:var(--ink-tint);padding:1px 6px}.wrap-student{max-width:36rem;margin:0 auto;padding:1.2rem 1.2rem 4rem}.bar{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;border-bottom:1px solid var(--rule);padding-bottom:.6rem;margin-bottom:1.6rem;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.bar b{color:var(--ink);font-weight:600}button.quiet{border-color:transparent;color:var(--ink-soft)}button:focus-visible,input:focus-visible{outline:2.5px solid var(--riso);outline-offset:2px}.card{background:var(--paper-deep);border:1px solid var(--rule);border-radius:3px;padding:1.6rem 1.5rem 1.4rem;position:relative}.card .no{position:absolute;top:.7rem;right:.9rem;font-size:.68rem;letter-spacing:.1em;color:var(--ink-soft)}.prompt{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 .5rem}.stem{position:relative;font-family:var(--serif);font-size:2.3rem;line-height:1.15;margin:0 0 1.1rem}.stem .under{position:absolute;left:1.5px;top:1.5px;color:var(--riso);opacity:.5;z-index:0;-webkit-user-select:none;user-select:none}.stem .over{position:relative;z-index:1}.answer-row{display:flex;align-items:baseline;gap:.8rem;flex-wrap:wrap}.answer-row .lbl{font-family:var(--serif);font-size:1.5rem}.answer-row input{font-size:1.25rem;background:transparent;border:none;border-bottom:2px solid var(--ink);padding:.3rem .1rem;width:9ch;text-align:center}.fmt-hint{font-size:.78rem;color:var(--riso);margin:.5rem 0 0;min-height:1.2em}.fmt-example{font-size:.72rem;color:var(--ink-soft);margin:.4rem 0 0}.opts{display:grid;gap:.55rem;margin:.2rem 0 .4rem}.opts button{text-align:left;font-size:1.15rem;padding:.7rem .9rem;border-color:var(--rule);background:var(--paper)}.opts button[aria-pressed=true]{border-color:var(--ink);background:var(--ink-tint)}.actions{margin-top:1rem;display:flex;gap:.7rem;align-items:center}.fb{border-left:3px solid;padding:.9rem 1rem;margin-top:1.2rem;border-radius:2px}.fb.ok{border-color:var(--ink);background:var(--ink-tint)}.fb.miss{border-color:var(--riso);background:var(--riso-tint)}.fb h3{margin:0 0 .3rem;font-family:var(--serif);font-size:1.3rem;font-weight:400}.fb.miss h3{color:var(--riso)}.fb p{margin:.35rem 0}.mode{display:inline-flex;border:1px solid var(--rule);border-radius:2px}.mode button{border:none;font-size:.72rem;padding:.25rem .6rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.mode button[aria-pressed=true]{background:var(--ink);color:var(--paper)}details{margin-top:2.2rem;border-top:1px solid var(--rule);padding-top:.8rem}summary{cursor:pointer;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.stats{font-size:.8rem;margin:.6rem 0}td.riso{color:var(--riso)}.join{margin-top:3.5rem}.join h1{font-family:var(--serif);font-size:2.6rem;font-weight:400;margin:0 0 .2rem}.join .sub{color:var(--ink-soft);margin:0 0 1.6rem}.join label{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin:1rem 0 .3rem}.join input{width:16ch}.done h2{font-family:var(--serif);font-size:2rem;font-weight:400}@media (prefers-reduced-motion: no-preference){.fb{animation:settle .18s ease-out}@keyframes settle{0%{transform:translateY(3px);opacity:0}}}.identity-row{display:flex;gap:1.6rem;flex-wrap:wrap;margin-bottom:1.8rem}.identity-row label{margin-top:0}.unit{margin:1.4rem 0 0}.unit-head{font-family:var(--mono, inherit);font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--riso);border-bottom:1px solid var(--rule);padding-bottom:.3rem;margin:0 0 .6rem}.opts.skills{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr))}.sticky-start{position:sticky;bottom:0;background:var(--paper);padding:.8rem 0;border-top:1px solid var(--rule);margin-top:1.6rem}.sticky-start .picked{font-size:.8rem;color:var(--ink-soft)}.opts.figures{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.opts.figures button{padding:.5rem;display:flex;justify-content:center}.opts.figures button[aria-pressed=true]{border-width:2px}.stem-figure{max-width:15rem;margin:0 0 .9rem;border:1px solid var(--rule);border-radius:2px}.opts.figures button:has(svg[viewBox^="0 0 260"]){grid-column:1 / -1}
