@font-face{font-family:Google Sans Code;src:url(/fonts/GoogleSansCode-latin.woff2)format("woff2");font-weight:300 800;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Google Sans Code;src:url(/fonts/GoogleSansCode-latin-ext.woff2)format("woff2");font-weight:300 800;font-style:normal;font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--bg:#fbfaf8;--surface:#fff;--surface-sunk:#f2f0ec;--line:#e0ddd6;--line-strong:#c9c5bb;--ink:#23211d;--ink-dim:#6e6a61;--ink-faint:#9b968b;--accent:#2f6f5e;--accent-ink:#fff;--accent-soft:#e4efeb;--right:#2f7a52;--right-soft:#e2f1e8;--wrong:#a2413a;--wrong-soft:#f8e5e2;--warn:#8a5a2b;--warn-soft:#f6ecdf;--radius:10px;--tap:48px;--gutter:16px;--font:"Google Sans Code", ui-monospace, SFMono-Regular, Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#16150f;--surface:#1e1d18;--surface-sunk:#12110d;--line:#322f28;--line-strong:#464236;--ink:#eceadf;--ink-dim:#a49f91;--ink-faint:#767163;--accent:#7fc4ac;--accent-ink:#10231d;--accent-soft:#23342e;--right:#7fd1a1;--right-soft:#1d3326;--wrong:#ec948a;--wrong-soft:#3b201d;--warn:#d0a06a;--warn-soft:#33281b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#16150f;--surface:#1e1d18;--surface-sunk:#12110d;--line:#322f28;--line-strong:#464236;--ink:#eceadf;--ink-dim:#a49f91;--ink-faint:#767163;--accent:#7fc4ac;--accent-ink:#10231d;--accent-soft:#23342e;--right:#7fd1a1;--right-soft:#1d3326;--wrong:#ec948a;--wrong-soft:#3b201d;--warn:#d0a06a;--warn-soft:#33281b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-size:15px;line-height:1.5;overflow-x:hidden}h1,h2,h3{margin:0;font-weight:600}button,input,select,textarea{font:inherit;color:inherit}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.spacer{flex:1}.empty,.note{color:var(--ink-dim);font-size:.9rem}.empty{text-align:center;padding:24px 8px}.error{color:var(--wrong);margin:8px 0;font-size:.88rem}.inline-glyph svg{vertical-align:-.2em;width:1.1em;height:1.1em}.app{max-width:640px;min-height:100dvh;padding:calc(env(safe-area-inset-top) + 12px) var(--gutter) calc(var(--tap) + 28px + env(safe-area-inset-bottom));margin:0 auto}.banner{border-radius:var(--radius);background:var(--warn-soft);color:var(--warn);margin:0 0 12px;padding:10px 12px;font-size:.85rem}.sections{z-index:20;padding:6px var(--gutter) calc(6px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--line);justify-content:center;gap:8px;display:flex;position:fixed;bottom:0;left:0;right:0}.sections button{width:72px;height:var(--tap);border-radius:var(--radius);color:var(--ink-faint);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.sections button svg{width:24px;height:24px}.sections button[aria-current=page]{color:var(--accent);background:var(--accent-soft)}.icon-btn{width:var(--tap);height:var(--tap);border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:999px;flex:none;justify-content:center;align-items:center;padding:0;transition:background .15s,border-color .15s,color .15s;display:inline-flex;position:relative}.icon-btn:hover:not(:disabled){border-color:var(--line-strong)}.icon-btn.quiet{color:var(--ink-dim);background:0 0;border-color:#0000}.icon-btn.quiet:hover:not(:disabled){color:var(--ink);border-color:var(--line)}.icon-btn.primary{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.icon-btn[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.icon-btn.primary[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.icon-btn:disabled{opacity:.4;cursor:default}.icon-btn.big{width:64px;height:64px}.icon-btn.big svg{width:26px;height:26px}.icon-btn.hold{color:var(--ink-dim);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.icon-btn.hold:hover{color:var(--wrong)}.hold-ring{pointer-events:none;background:conic-gradient(var(--wrong) var(--fill,0deg), transparent 0);border-radius:999px;position:absolute;inset:3px;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 3px),#000 calc(100% - 2px));mask:radial-gradient(farthest-side,#0000 calc(100% - 3px),#000 calc(100% - 2px))}@property --fill{syntax:"<angle>";inherits:false;initial-value:0deg}.icon-btn.hold.holding{color:var(--wrong)}.icon-btn.hold.holding .hold-ring{animation:fill var(--hold) linear forwards}@keyframes fill{to{--fill:360deg}}.stage{--bg:#121d2e;--surface:#1c2a41;--surface-sunk:#0b1320;--line:#2b3b55;--line-strong:#3c5278;--ink:#eaf1fa;--ink-dim:#a3b4cc;--ink-faint:#76889f;--accent:#7fc4ac;--accent-ink:#0d2119;--accent-soft:#23413a;--right:#7fd1a1;--right-soft:#1b3a2c;--wrong:#ef9187;--wrong-soft:#43231f;min-height:calc(100dvh - var(--tap) - 70px - env(safe-area-inset-top) - env(safe-area-inset-bottom));border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:18px;flex-direction:column;padding:16px 14px 12px;display:flex;box-shadow:0 10px 26px #0a101c2e}.stage>*{flex-direction:column;flex:1;display:flex}.stage-nav{align-items:center;gap:8px;margin-top:auto;padding-top:14px;display:flex}.gear{color:var(--ink-dim)}.setup .field{border:none;margin:0;padding:0}.groups-pick{flex-direction:column;gap:8px;max-height:44dvh;padding:2px;display:flex;overflow-y:auto}.choice{min-height:var(--tap);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);text-align:left;cursor:pointer;align-items:center;gap:10px;width:100%;padding:10px 14px;display:flex}.choice[aria-checked=true]{border-color:var(--accent);background:var(--accent-soft)}.choice-name{overflow-wrap:anywhere;flex:1;min-width:0}.choice-count{color:var(--ink-dim);font-size:.8rem}.setup-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:16px;display:flex}.limit{width:76px;height:var(--tap);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-sunk);text-align:center;appearance:textfield;padding:0 8px;font-size:1rem}.limit::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.limit::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.walk{min-width:0}.crumbs{scrollbar-width:none;gap:6px;margin:-4px -14px 12px;padding:0 14px 4px;display:flex;overflow-x:auto;-webkit-mask:linear-gradient(90deg,#0000,#000 14px calc(100% - 14px),#0000);mask:linear-gradient(90deg,#0000,#000 14px calc(100% - 14px),#0000)}.crumbs::-webkit-scrollbar{display:none}.crumb{text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--line);max-width:11em;color:var(--ink-dim);cursor:pointer;background:0 0;border-radius:999px;flex:none;padding:3px 10px;font-size:.75rem;overflow:hidden}.crumb.missed{border-color:color-mix(in srgb, var(--wrong) 45%, transparent)}.card-screen{flex-direction:column;flex:1;justify-content:center;animation:.18s ease-out arrive;display:flex}@keyframes arrive{0%{opacity:0;transform:translate(10px)}}.prompt{text-align:center;text-wrap:balance;overflow-wrap:anywhere;margin:8px 0 22px;font-size:1.3rem;font-weight:600;line-height:1.45}.prompt:focus{outline:none}.options{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.option button{border:1px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;border-radius:12px;align-items:center;gap:12px;width:100%;min-height:54px;padding:12px 16px;font-size:1.02rem;transition:background .18s,border-color .18s,opacity .18s;display:flex}.option button:hover:not(:disabled){border-color:var(--line-strong)}.option button:disabled{cursor:default}.option .key{width:1.5em;color:var(--ink-faint);flex:none;font-size:.78rem}@media (hover:none){.option .key{display:none}}.option-text{overflow-wrap:anywhere;flex:1}.option.right button{border-color:var(--right);background:var(--right-soft)}.option.wrong button{border-color:var(--wrong);background:var(--wrong-soft)}.option.dim button{opacity:.55}.why{border-left:2px solid var(--wrong);color:var(--ink-dim);margin:6px 0 2px 28px;padding-left:12px;font-size:.9rem;animation:.2s ease-out grow}@keyframes grow{0%{opacity:0;transform:translateY(-4px)}}.reveal{flex-direction:column;align-items:center;gap:12px;display:flex}.answer{border:1px solid var(--line);background:var(--surface);text-align:center;overflow-wrap:anywhere;border-radius:12px;margin:0;padding:12px 20px;font-size:1.15rem;animation:.2s ease-out grow}.answer.right{border-color:var(--right)}.answer.wrong{border-color:var(--wrong)}.hint{max-width:34em;color:var(--ink-dim);text-align:center;margin:0;font-size:.9rem}.grade{gap:18px;margin-top:6px;display:flex}.grade .grade-right{color:var(--right)}.grade .grade-right[aria-pressed=true]{background:var(--right);border-color:var(--right);color:var(--accent-ink)}.grade .grade-wrong{color:var(--wrong)}.grade .grade-wrong[aria-pressed=true]{background:var(--wrong);border-color:var(--wrong);color:var(--surface-sunk)}.grade .icon-btn:disabled{opacity:.35}.grade .icon-btn[aria-pressed=true]:disabled{opacity:1}.holdbar{justify-content:center;margin-top:16px;display:flex}.stay{position:relative}.stay-ring{pointer-events:none;background:conic-gradient(var(--accent) var(--fill,360deg), transparent 0);animation:drain var(--hold) linear forwards;border-radius:999px;position:absolute;inset:2px;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 3px),#000 calc(100% - 2px));mask:radial-gradient(farthest-side,#0000 calc(100% - 3px),#000 calc(100% - 2px))}@keyframes drain{0%{--fill:360deg}to{--fill:0deg}}.walk.end:focus{outline:none}.misses{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.misses li{border:1px solid var(--line);border-left:3px solid var(--wrong);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:2px;padding:10px 12px;display:flex}.misses li.gone{opacity:.6}.miss-prompt{overflow-wrap:anywhere}.miss-answer{color:var(--right);font-size:.88rem}.miss-chosen{color:var(--wrong);font-size:.82rem;text-decoration:line-through}.end-clear{color:var(--right);flex:1;justify-content:center;align-items:center;margin:0;display:flex}.end-clear svg{width:72px;height:72px}.manage{flex-direction:column;gap:8px;display:flex}.manage-head,.toolbar,.group-head,.editor-actions,.inline-form,.destination{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.manage-head{z-index:5;background:var(--bg);padding:4px 0;position:sticky;top:0}.panel-body{flex-direction:column;gap:12px;display:flex}.rows,.items{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.row-main{width:100%;min-height:var(--tap);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);text-align:left;cursor:pointer;align-items:center;gap:10px;padding:10px 14px;display:flex}.row-main svg{color:var(--ink-faint);flex:none}.row-text{overflow-wrap:anywhere;flex:1;min-width:0}.row-count{color:var(--ink-dim);font-size:.8rem}.row-warn{background:var(--warn-soft);width:20px;height:20px;color:var(--warn);border-radius:999px;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:inline-flex}.group-name{overflow-wrap:anywhere;flex:1;min-width:0;font-size:1.05rem}.inline-form input,.pending-name,.destination select,.move select{min-width:0;height:var(--tap);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex:1;padding:0 12px}.item{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);align-items:flex-start;gap:8px;padding:8px 8px 8px 14px;display:flex}.item.editing{padding:10px;display:block}.item-main{flex:1;min-width:0;padding-top:11px}.item-prompt{overflow-wrap:anywhere;margin:0}.item-actions{flex:none;display:flex}.warnings{color:var(--warn);margin:6px 0 0;padding:0 0 0 18px;font-size:.82rem}.editor{flex-direction:column;gap:8px;display:flex}.editor.adding{border:1px solid var(--accent);border-radius:var(--radius);background:var(--surface);padding:10px}.concise{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-sunk);width:100%;min-height:8em;font-family:var(--font);tab-size:4;resize:vertical;white-space:pre;padding:10px 12px;font-size:.92rem;line-height:1.5;overflow-x:auto}.parse-summary p{color:var(--ink-dim);margin:0;font-size:.85rem}.warned-item{margin-top:6px}.move{min-width:0;color:var(--ink-dim);flex:1;align-items:center;gap:6px;display:flex}.copy-prompt,.quick-generate,.import-source,.pending{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:8px;padding:12px;display:flex}.copy-prompt,.quick-generate{border-color:color-mix(in srgb, var(--accent) 50%, var(--line))}.copy-prompt .note,.quick-generate .note,.import-source+.note{margin:0}.pending-name{flex:none;width:100%}.pending-summary,.destination-says{color:var(--ink-dim);margin:0;font-size:.85rem}.pending .warnings b{font-weight:600}.sessions{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.session{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.session-head{width:100%;min-height:var(--tap);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:12px;padding:10px 12px 10px 14px;display:flex}.session-head>svg{color:var(--ink-faint);flex:none}.session-when{flex-direction:column;flex:1;min-width:0;display:flex}.session-when time{color:var(--ink-dim);font-size:.85rem}.session-group{overflow-wrap:anywhere}.session-nums{font-variant-numeric:tabular-nums;flex-direction:column;align-items:flex-end;gap:2px;display:flex}.num{color:var(--ink-dim);font-size:.85rem}.num.score{color:var(--ink);font-size:1rem;font-weight:600}.session-body{padding:0 12px 12px}@media (width>=720px){:root{--gutter:24px}.stage{padding:24px 28px 18px}.prompt{font-size:1.5rem}.crumbs{margin-left:-28px;margin-right:-28px;padding:0 28px 4px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.stay-ring,.icon-btn.hold.holding .hold-ring{animation-duration:var(--hold)!important}}
