/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--paper:#eef3f0;--surface:#fff;--surface-2:#e7ede9;--ink:#16211c;--ink-2:#51605a;--ink-3:#87928b;--line:#d9e0db;--line-2:#c4cdc7;--accent:#12805e;--accent-2:#0c6247;--accent-soft:#dceee6;--accent-soft-2:#a3d5be;--amber:#b0740e;--amber-soft:#f6e9d2;--danger:#a6352f;--danger-soft:#f7dedb;--grass:#3fa96b;--grass-d:#2e8552;--sun:#e8b23a}@media(prefers-color-scheme:dark){:root{--paper:#0e1512;--surface:#161d19;--surface-2:#1f2823;--ink:#e9edea;--ink-2:#9faaa3;--ink-3:#6b766f;--line:#28312b;--line-2:#36403a;--accent:#4fbd91;--accent-2:#6fd0a9;--accent-soft:#173026;--accent-soft-2:#2c5a46;--amber:#d69b4e;--amber-soft:#2c2313;--danger:#e27e76;--danger-soft:#2c1613;--grass:#4fbd7e;--grass-d:#39975f}}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:SF Pro Rounded,ui-rounded,system-ui,-apple-system,sans-serif}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}.card{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:22px;max-width:560px;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.numin{-webkit-user-select:text;user-select:text}.head{margin-bottom:18px}.pt{font-weight:700;font-size:20px;line-height:1.28}.speak{margin-top:10px;display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--accent-2);background:var(--accent-soft);border:none;border-radius:999px;padding:6px 13px;cursor:pointer}.speak:active{transform:scale(.96)}.ctl{display:flex;align-items:center;gap:12px;margin-top:20px;flex-wrap:wrap}.check,.replay{font-weight:700;font-size:15px;border-radius:13px;cursor:pointer}.check{border:none;background:var(--accent);color:#fff;padding:12px 26px}.check:active{transform:scale(.97)}.replay{border:1.5px solid var(--line-2);background:transparent;color:var(--ink-2);padding:10px 18px;font-weight:600}.hint{flex:1;min-width:180px;font-size:14px;color:var(--amber);font-weight:500;display:flex;align-items:center;gap:8px}.hint .ic{width:22px;height:22px;border-radius:50%;background:var(--amber);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex:none}.doneMsg{font-weight:700;font-size:18px;color:var(--accent-2)}.stars{display:flex;gap:4px}.star{color:var(--line-2)}.star.lit{color:var(--sun)}.kbd{margin-top:16px;font-size:12.5px;color:var(--ink-3)}.options{display:flex;gap:10px;flex-wrap:wrap}.opt{min-width:58px;height:56px;padding:0 16px;display:flex;align-items:center;justify-content:center;border-radius:14px;background:var(--surface);border:2px solid var(--line-2);font-weight:700;font-size:22px;color:var(--ink);cursor:pointer;transition:transform .08s,background .15s,border-color .15s}.opt:hover:enabled{border-color:var(--accent)}.opt:active:enabled{transform:scale(.95)}.opt.right{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-2)}.opt.wrong{background:#f1dad8;border-color:var(--danger);color:var(--danger);opacity:.85}.opt:disabled{cursor:default}.inpwrap{display:flex;align-items:center;gap:12px;font-weight:700;font-size:24px}.eq{color:var(--ink-2)}.numin{width:84px;height:58px;text-align:center;font-weight:700;font-size:26px;border:2px solid var(--line-2);border-radius:14px;background:var(--surface);color:var(--ink)}.numin:focus{outline:none;border-color:var(--accent)}.numin.wrong{border-color:var(--amber)}.crow{display:flex;align-items:flex-start;gap:14px}.prompt{flex:1;min-width:0}.track{position:relative;height:120px;margin-top:22px}.axis{position:absolute;left:2%;right:2%;top:82px;height:3px;background:var(--line-2);border-radius:2px}.tick{position:absolute;top:74px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center}.tick .b{width:2px;height:12px;background:var(--line-2);border-radius:2px}.tick.major .b{height:18px;background:var(--ink-3)}.tick .l{font-size:12px;color:var(--ink-2);margin-top:6px;font-variant-numeric:tabular-nums}.tick.startmark .b{background:var(--accent)}.arc{position:absolute;top:52px;height:34px;border:2px solid var(--amber);border-bottom:none;border-radius:50% 50% 0 0/100% 100% 0 0}.arc .cap{position:absolute;top:-17px;left:50%;transform:translate(-50%);font-size:11px;color:var(--amber)}.gh{position:absolute;top:34px;transform:translate(-50%);width:46px;height:46px;cursor:grab;touch-action:none;transition:left .32s cubic-bezier(.34,1.56,.64,1);z-index:3}.gh:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:50%}.gh .read{position:absolute;top:-20px;left:50%;transform:translate(-50%);font-weight:700;font-size:15px;color:var(--accent-2);background:var(--surface);padding:1px 8px;border-radius:8px;border:1px solid var(--accent);font-variant-numeric:tabular-nums}.crt{transform-origin:50% 80%}.crt.mood-idle{animation:breathe 2.6s ease-in-out infinite}.crt.mood-happy{animation:cheer .5s ease}.crt.mood-oops{animation:wob .45s ease}@keyframes breathe{50%{transform:scale(1.04)}}@keyframes cheer{0%,to{transform:translateY(0) rotate(0)}30%{transform:translateY(-8px) rotate(-6deg)}60%{transform:translateY(-3px) rotate(5deg)}}@keyframes wob{0%,to{transform:rotate(0)}20%{transform:rotate(-9deg)}60%{transform:rotate(8deg)}}@media(prefers-reduced-motion:reduce){.crt.mood-idle,.crt.mood-happy,.crt.mood-oops{animation:none}.gh{transition:left .2s linear}}.dc-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}.dc-face{font-size:40px;line-height:1;flex:none;transition:transform .2s ease}.dc-face.mood-happy{transform:scale(1.12) rotate(-4deg)}.dc-face.mood-oops{transform:rotate(6deg)}.dc-zone{border:1.5px solid var(--line);border-radius:14px;padding:12px;background:var(--surface)}.dc-label{font-size:12px;color:var(--ink-3);margin:0 0 8px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.dc-pool{display:flex;flex-wrap:wrap;gap:8px;min-height:52px;margin-bottom:12px}.dc-chip{font-size:30px;line-height:1;width:46px;height:46px;display:flex;align-items:center;justify-content:center;background:var(--surface-2);border:1px solid var(--line-2);border-radius:12px;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;transition:transform .12s ease,box-shadow .12s ease}.dc-chip:hover{transform:translateY(-2px);box-shadow:0 4px 10px #00000014}.dc-chip:active{cursor:grabbing}.dc-pool-empty{color:var(--ink-3);font-size:13px;align-self:center}.dc-basket{border:2px dashed var(--accent);border-radius:14px;background:var(--accent-soft);padding:12px;min-height:92px;position:relative}.dc-basket.over{border-style:solid;box-shadow:0 0 0 3px var(--accent-soft)}.dc-count{position:absolute;top:8px;right:12px;font-size:13px;font-weight:700;color:var(--accent-2)}.dc-frame{display:grid;grid-template-columns:repeat(5,44px);grid-auto-rows:44px;gap:6px;justify-content:center}.dc-slot{border:1.5px dashed var(--line-2);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:26px}.dc-slot.filled{border-style:solid;border-color:var(--accent);background:var(--surface);cursor:pointer}.dc-free{display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start}.dc-free .dc-chip{cursor:pointer;background:var(--surface);border-color:var(--accent)}.dc-ghost{position:fixed;z-index:50;font-size:34px;pointer-events:none;transform:translate(-50%,-50%)}.sc-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}.sc-face{font-size:40px;line-height:1;flex:none;transition:transform .2s ease}.sc-face.mood-happy{transform:scale(1.12) rotate(-4deg)}.sc-face.mood-oops{transform:rotate(6deg)}.sc-zone{border:1.5px solid var(--line);border-radius:16px;padding:16px;background:var(--surface);position:relative}.sc-total{position:absolute;top:10px;right:14px;font-size:13px;font-weight:700;color:var(--accent-2)}.sc-frame{display:grid;grid-template-columns:repeat(5,52px);grid-auto-rows:52px;gap:8px;justify-content:center;margin:6px auto 0;width:max-content}.sc-slot{border:2px dashed var(--line-2);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:30px;line-height:1;cursor:default;-webkit-user-select:none;user-select:none;transition:transform .1s ease,background .15s}.sc-slot.given{border-style:solid;border-color:var(--line-2);background:var(--surface-2)}.sc-slot.child{border-style:solid;border-color:var(--accent);background:var(--accent-soft);cursor:pointer}.sc-slot.child:hover{background:var(--surface-2)}.sc-slot.next{border-color:var(--accent);color:var(--accent-2);font-size:24px;cursor:pointer;box-shadow:0 0 0 2px var(--accent-soft)}.sc-slot.next:hover{background:var(--accent-soft)}.sc-slot.next:active{transform:scale(.94)}.om-head{display:flex;align-items:center;gap:12px;margin-bottom:18px}.om-face{font-size:40px;line-height:1;flex:none;transition:transform .2s ease}.om-face.mood-happy{transform:scale(1.12) rotate(-4deg)}.om-face.mood-oops{transform:rotate(6deg)}.om-wrap{position:relative;display:flex;justify-content:space-between;gap:90px;padding:6px 8px}.om-lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}.om-col{display:flex;flex-direction:column;gap:14px;z-index:1}.om-item{min-width:62px;height:56px;padding:0 14px;display:flex;align-items:center;justify-content:center;border-radius:14px;background:var(--surface);border:2px solid var(--line-2);font-weight:700;font-size:22px;color:var(--ink);cursor:pointer;font-family:inherit;transition:transform .08s,border-color .15s,background .15s}.om-item:active{transform:scale(.96)}.om-item.sel{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 3px var(--accent-soft)}.om-item.linked{border-color:var(--accent);color:var(--accent-2)}.om-item:disabled{cursor:default}.pc-table{display:flex;flex-direction:column;margin:4px 0 20px;border:2px solid var(--line-2);border-radius:16px;overflow:hidden;background:var(--surface)}.pc-row{display:flex}.pc-row+.pc-row{border-top:1.5px solid var(--line)}.pc-cell{flex:1 1 50%;min-width:0;display:flex;align-items:center;justify-content:center;padding:22px 12px;font-weight:800;font-size:24px;color:var(--ink);background:var(--surface-2)}.pc-cell.pc-right{border-left:1.5px solid var(--line);background:var(--surface)}.pc-cell.pc-q-mark{background:var(--accent-soft);color:var(--accent-2);box-shadow:inset 0 0 0 2px var(--accent);border-bottom-right-radius:14px;border-left-color:transparent}.pc-options{display:flex;flex-direction:column;gap:12px}.pc-opt{width:100%;min-height:60px;padding:14px 20px;display:flex;align-items:center;justify-content:center;border-radius:16px;background:var(--surface);border:2px solid var(--line-2);font-weight:800;font-size:22px;color:var(--ink);cursor:pointer;transition:transform .08s,background .15s,border-color .15s,color .15s}.pc-opt:hover:enabled{border-color:var(--accent)}.pc-opt:active:enabled{transform:scale(.98)}.pc-opt.sel,.pc-opt.right{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-2)}.pc-opt.wrong{background:var(--danger);border-color:var(--danger);color:var(--paper);opacity:.9}.pc-opt:disabled{cursor:default}.check:disabled{opacity:.5;cursor:default}.sic-top{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:4px}.sic-bubble{position:relative;max-width:440px;padding:14px 20px;border-radius:18px;background:var(--surface-2);border:2px solid var(--line);color:var(--ink);font-size:19px;font-weight:700;line-height:1.3;text-align:center;font-variant-numeric:tabular-nums}.sic-bubble:after{content:"";position:absolute;left:50%;bottom:-9px;width:16px;height:16px;background:var(--surface-2);border-right:2px solid var(--line);border-bottom:2px solid var(--line);border-bottom-right-radius:3px;transform:translate(-50%) rotate(45deg)}.sic-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:520px;margin:18px auto 4px}.sic-opt{aspect-ratio:1 / 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:12px;border-radius:22px;background:var(--surface);border:3px solid var(--line-2);cursor:pointer;font-family:inherit;transition:transform .08s,background .15s,border-color .15s,box-shadow .15s}.sic-opt:hover:enabled{border-color:var(--accent)}.sic-opt:active:enabled{transform:scale(.97)}.sic-opt.selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 3px var(--accent-soft)}.sic-opt.right{border-color:var(--accent);background:var(--accent-soft);box-shadow:none}.sic-opt.wrong{border-color:var(--danger);background:var(--surface);opacity:.5}.sic-opt:disabled{cursor:default}.sic-fig{flex:1;min-height:0;width:100%;display:flex;align-items:center;justify-content:center}.sic-pic{width:100%;height:100%;display:block}.sic-label{font-size:18px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}.ms-target{display:flex;align-items:center;justify-content:center;min-height:104px;margin:4px 0 24px}.ms-num{font-size:64px;font-weight:800;line-height:1;color:var(--ink);letter-spacing:.5px}.ms-frac{display:inline-flex;flex-direction:column;align-items:center}.ms-frac-num,.ms-frac-den{font-size:46px;font-weight:800;line-height:1.06;color:var(--ink)}.ms-frac-bar{width:58px;height:6px;border-radius:999px;background:var(--accent);margin:7px 0}.ms-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.ms-opt{position:relative;aspect-ratio:1 / 1;min-height:150px;display:flex;align-items:center;justify-content:center;border-radius:20px;background:var(--surface);border:2px solid var(--line-2);color:var(--ink);cursor:pointer;transition:transform .08s ease,background .15s,border-color .15s,box-shadow .15s}.ms-opt:hover:enabled{border-color:var(--accent)}.ms-opt:active:enabled{transform:scale(.97)}.ms-opt:disabled{cursor:default}.ms-opt.selected,.ms-opt.right{background:var(--accent-soft);border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.ms-opt.wrong{border-color:var(--danger);color:var(--danger);opacity:.9}.ms-txt{font-size:30px;font-weight:800;line-height:1.15;text-align:center}.ms-op{color:var(--accent);font-weight:800;margin:0 4px}.ms-opt.wrong .ms-op{color:var(--danger)}.ms-tick{position:absolute;top:9px;right:9px;width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:900;line-height:1}.ms-tick-bad{background:var(--danger)}@media(max-width:420px){.ms-opt{min-height:132px}.ms-txt{font-size:26px}.ms-num{font-size:56px}}.bt-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}.bt-face{font-size:40px;line-height:1;flex:none;transition:transform .2s ease}.bt-face.mood-happy{transform:scale(1.12) rotate(-4deg)}.bt-face.mood-oops{transform:rotate(6deg)}.bt-zone{border:1.5px solid var(--line);border-radius:14px;padding:12px;background:var(--surface)}.bt-label{font-size:12px;color:var(--ink-3);margin:0 0 8px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.bt-label+.bt-label{margin-top:14px}.bt-equation{display:flex;align-items:center;gap:12px;margin-bottom:4px}.bt-slots{display:flex;gap:8px}.bt-slot{width:52px;height:52px;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;border-radius:12px;-webkit-user-select:none;user-select:none;transition:transform .1s ease,background .15s,border-color .15s}.bt-slot.empty{border:2px dashed var(--line-2);color:var(--ink-3)}.bt-slot.filled{border:2px solid var(--accent);background:var(--accent-soft);color:var(--accent-2);cursor:pointer}.bt-slot.filled:hover{background:var(--surface-2)}.bt-slot.filled:active{transform:scale(.94)}.bt-eq{font-size:26px;font-weight:700;color:var(--ink-2)}.bt-target{min-width:52px;height:52px;padding:0 10px;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:800;color:var(--accent-2);background:var(--accent-soft);border:2px solid var(--accent);border-radius:12px}.bt-bank{display:flex;flex-wrap:wrap;gap:8px;min-height:52px;margin-top:18px}.bt-tile{min-width:46px;height:46px;padding:0 12px;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;line-height:1;-webkit-user-select:none;user-select:none;cursor:pointer;background:var(--surface-2);border:1px solid var(--line-2);border-radius:12px;transition:transform .12s ease,box-shadow .12s ease}.bt-tile:hover{transform:translateY(-2px);box-shadow:0 4px 10px #00000014}.bt-tile:active{transform:scale(.95)}.bt-bank-empty{color:var(--ink-3);font-size:13px;align-self:center}.clk-head{display:flex;align-items:flex-start;gap:14px}.clk-face-emo{font-size:40px;line-height:1;transform-origin:50% 60%}.clk-face-emo.mood-idle{animation:clk-breathe 2.6s ease-in-out infinite}.clk-face-emo.mood-happy{animation:clk-cheer .5s ease}.clk-face-emo.mood-oops{animation:clk-wob .45s ease}@keyframes clk-breathe{50%{transform:scale(1.06)}}@keyframes clk-cheer{0%,to{transform:translateY(0) rotate(0)}30%{transform:translateY(-6px) rotate(-8deg)}60%{transform:translateY(-2px) rotate(6deg)}}@keyframes clk-wob{0%,to{transform:rotate(0)}20%{transform:rotate(-10deg)}60%{transform:rotate(9deg)}}.clk-wrap{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:18px}.clk-svg{width:100%;max-width:260px;height:auto;touch-action:none;-webkit-user-select:none;user-select:none}.clk-sweep{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.5;opacity:.9}.clk-rim{fill:var(--surface);stroke:var(--line-2);stroke-width:3}.clk-tick{stroke:var(--line-2);stroke-width:1.5;stroke-linecap:round}.clk-tick.major{stroke:var(--ink-3);stroke-width:2.5}.clk-num{font-size:15px;font-weight:700;fill:var(--ink-2);text-anchor:middle;dominant-baseline:central;font-variant-numeric:tabular-nums}.clk-hand{stroke-linecap:round;transition:x2 .28s cubic-bezier(.34,1.56,.64,1),y2 .28s cubic-bezier(.34,1.56,.64,1)}.clk-hand-hour{stroke:var(--ink);stroke-width:6}.clk-hand-min{stroke:var(--accent-2);stroke-width:4}.clk-pin{fill:var(--accent-2)}.clk-handle{cursor:grab;transition:transform .28s cubic-bezier(.34,1.56,.64,1)}.clk-handle:active{cursor:grabbing}.clk-handle:focus-visible .clk-hit{stroke:var(--accent);stroke-width:2}.clk-hit{fill:transparent}.clk-knob{stroke-width:2}.clk-knob-hour{fill:var(--ink);stroke:var(--surface)}.clk-knob-min{fill:var(--accent-2);stroke:var(--surface)}.clk-readout{font-weight:700;font-size:22px;color:var(--accent-2);background:var(--surface-2);padding:4px 16px;border-radius:12px;font-variant-numeric:tabular-nums}.clk-line-svg{width:100%;max-width:300px;height:auto;touch-action:none;-webkit-user-select:none;user-select:none}.clk-line-track{stroke:var(--line-2);stroke-width:3;stroke-linecap:round}.clk-line-tick{stroke:var(--line-2);stroke-width:2;stroke-linecap:round}.clk-line-tick.major{stroke:var(--ink-3);stroke-width:2.5}.clk-line-num{font-size:15px;font-weight:700;fill:var(--ink-2);text-anchor:middle;dominant-baseline:central;font-variant-numeric:tabular-nums}.clk-marker{cursor:grab;transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.clk-marker:active{cursor:grabbing}.clk-marker-stem{stroke:var(--accent);stroke-width:2.5;stroke-linecap:round}.clk-marker-shape{fill:var(--accent);stroke:var(--surface);stroke-width:2;stroke-linejoin:round}.clk-marker:focus{outline:none}.clk-marker:focus-visible .clk-marker-shape{stroke:var(--accent-2);stroke-width:3}@media(prefers-reduced-motion:reduce){.clk-face-emo.mood-idle,.clk-face-emo.mood-happy,.clk-face-emo.mood-oops{animation:none}.clk-hand,.clk-handle,.clk-marker{transition:none}}.dt-head{display:flex;align-items:flex-start;gap:12px}.dt-mascot{font-size:40px;line-height:1;flex:none;margin-top:4px}.dt-bubble{position:relative;flex:1;min-width:0;background:var(--surface-2);border:1.5px solid var(--line);border-radius:16px;padding:12px 16px}.dt-bubble:before{content:"";position:absolute;left:-9px;top:18px;width:16px;height:16px;background:var(--surface-2);border-left:1.5px solid var(--line);border-bottom:1.5px solid var(--line);transform:rotate(45deg)}.dt-question{margin:0;font-weight:700;font-size:19px;line-height:1.3;color:var(--ink)}.speak{margin-top:12px;margin-bottom:4px}.dt-zone{margin-top:14px;border:2.5px dashed var(--line-2);border-radius:18px;background:var(--surface-2);min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px;position:relative;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.dt-zone.filled{justify-content:space-between}.dt-zone.over{border-color:var(--accent);border-style:solid;background:var(--accent-soft);box-shadow:0 0 0 3px var(--accent-soft)}.dt-zone-ph{font-size:16px;font-weight:700;letter-spacing:.02em;color:var(--ink-3);text-transform:uppercase}.dt-zone-tokens{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;justify-content:center;width:100%}.dt-placed{border:none;background:transparent;padding:0;cursor:pointer;line-height:0;border-radius:12px;transition:transform .1s ease,opacity .1s ease}.dt-placed:hover:enabled{transform:translateY(-2px)}.dt-placed:active:enabled{transform:scale(.94)}.dt-placed:disabled{cursor:default}.dt-placed .dt-svg{width:58px}.dt-sum{align-self:center;font-weight:800;font-size:20px;color:var(--accent-2);background:var(--surface);border:1.5px solid var(--line);border-radius:999px;padding:5px 16px;font-variant-numeric:tabular-nums}.dt-tray-label{font-size:12px;color:var(--ink-3);margin:16px 0 8px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.dt-tray{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end}.dt-tray-item{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;line-height:0;border-radius:12px;transition:transform .12s ease,filter .12s ease}.dt-tray-item:hover{transform:translateY(-3px);filter:brightness(1.04)}.dt-tray-item:active{cursor:grabbing;transform:scale(.95)}.dt-tray-item:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.dt-tray-item .dt-svg{width:74px}.dt-svg{display:block;height:auto;overflow:visible}.dt-svg-label{fill:#fff;font-weight:800;font-size:20px;paint-order:stroke;stroke:var(--accent-2);stroke-width:3.5px;stroke-linejoin:round;font-family:inherit}.dt-ghost{position:fixed;z-index:50;pointer-events:none;transform:translate(-50%,-50%);line-height:0;filter:drop-shadow(0 8px 16px rgba(0,0,0,.28))}.dt-ghost .dt-svg{width:78px}.dt-zone.shake{animation:dt-shake .4s ease;border-color:var(--danger)}@keyframes dt-shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(7px)}60%{transform:translate(-5px)}80%{transform:translate(3px)}}@media(prefers-reduced-motion:reduce){.dt-zone.shake{animation:none}.dt-tray-item,.dt-placed{transition:none}}.sh-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}.sh-face{font-size:40px;line-height:1;flex:none;transition:transform .2s ease}.sh-face.mood-happy{transform:scale(1.12) rotate(-4deg)}.sh-face.mood-oops{transform:rotate(6deg)}.sh-zone{border:1.5px solid var(--line);border-radius:16px;padding:18px 16px;background:var(--surface);position:relative;display:flex;flex-direction:column;align-items:center;gap:12px}.sh-top{display:flex;align-items:center;justify-content:center;gap:16px;width:100%}.sh-total{font-size:13px;font-weight:700;color:var(--accent-2)}.sh-frac{display:inline-flex;flex-direction:column;align-items:center;line-height:1;font-weight:800}.sh-frac-n,.sh-frac-d{font-size:30px;color:var(--ink)}.sh-frac-bar{width:34px;height:4px;border-radius:2px;background:var(--accent);margin:4px 0}.sh-svg{display:block}.sh-part{fill:var(--surface-2);stroke:var(--surface);stroke-width:2;transition:fill .15s ease}.sh-part.clickable{cursor:pointer}.sh-part.clickable:hover{fill:var(--line-2)}.sh-part.on{fill:var(--accent)}.sh-part.clickable.on:hover{fill:var(--accent-2)}.sh-div{stroke:var(--surface);stroke-width:2.5}.sh-bar{display:flex;width:100%;max-width:420px;height:66px;border-radius:12px;overflow:hidden;border:1.5px solid var(--line-2)}.sh-bar .sh-part{flex:1 1 0;border-right:2px solid var(--line-2);background:var(--surface-2);cursor:default}.sh-bar .sh-part.clickable{cursor:pointer}.sh-bar .sh-part:last-child{border-right:none}.sh-bar .sh-part.clickable:hover{background:var(--line-2)}.sh-bar .sh-part.on{background:var(--accent)}.sh-bar .sh-part.clickable.on:hover{background:var(--accent-2)}.sh-strips{display:flex;gap:8px;height:150px;align-items:stretch}.sh-strips .sh-part{width:34px;border-radius:8px;background:var(--surface-2);border:1.5px solid var(--line-2);cursor:default}.sh-strips .sh-part.clickable{cursor:pointer}.sh-strips .sh-part.clickable:hover{background:var(--line-2)}.sh-strips .sh-part.on{background:var(--accent);border-color:var(--accent)}.sh-strips .sh-part.clickable.on:hover{background:var(--accent-2)}.sh-grid{display:grid;gap:6px;width:210px;height:210px}.sh-grid .sh-part{border-radius:8px;background:var(--surface-2);border:1.5px solid var(--line-2);cursor:default}.sh-grid .sh-part.clickable{cursor:pointer}.sh-grid .sh-part.clickable:hover{background:var(--line-2)}.sh-grid .sh-part.on{background:var(--accent);border-color:var(--accent)}.sh-grid .sh-part.clickable.on:hover{background:var(--accent-2)}.sh-opts{display:flex;flex-direction:column;gap:10px;margin-top:14px}.sh-opt{width:100%;min-height:56px;padding:10px 18px;border-radius:14px;background:var(--surface);border:2px solid var(--line-2);color:var(--ink);font-weight:800;font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .08s,background .15s,border-color .15s}.sh-opt:hover:enabled{border-color:var(--accent)}.sh-opt:active:enabled{transform:scale(.98)}.sh-opt.sel,.sh-opt.right{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-2)}.sh-opt.wrong{border-color:var(--danger);color:var(--danger);opacity:.85}.sh-opt.frac .sh-frac-n,.sh-opt.frac .sh-frac-d{font-size:22px}.sh-opt.frac .sh-frac-bar{width:26px}.ps-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}.ps-face{font-size:40px;line-height:1;flex:none;transition:transform .2s ease}.ps-face.mood-happy{transform:scale(1.12) rotate(-4deg)}.ps-face.mood-oops{transform:rotate(6deg)}.ps-zone{border:1.5px solid var(--line);border-radius:16px;padding:18px;background:var(--surface);display:flex;flex-direction:column;align-items:center;gap:14px}.ps-readout{font-size:15px;font-weight:700;color:var(--accent-2);letter-spacing:.01em}.ps-circle-wrap{display:flex;justify-content:center}.ps-circle{display:block}.ps-slice{stroke:var(--surface);stroke-width:1.5;transition:fill .15s ease}.ps-slice-a{fill:var(--accent-soft)}.ps-slice-b{fill:var(--amber-soft)}.ps-outline{fill:none;stroke:var(--line-2);stroke-width:2}.ps-controls{display:flex;gap:12px}.ps-btn{font-weight:700;font-size:15px;border-radius:13px;cursor:pointer;border:1.5px solid var(--line-2);background:var(--surface-2);color:var(--ink);padding:10px 18px;transition:transform .08s ease,background .15s ease,border-color .15s ease}.ps-btn:hover:enabled{border-color:var(--accent)}.ps-btn:active:enabled{transform:scale(.95)}.ps-btn:disabled{opacity:.45;cursor:default}.gt-card{display:flex;flex-direction:column}.gt-top{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:18px}.gt-expr{font-weight:800;font-size:40px;line-height:1.05;letter-spacing:.01em;color:var(--ink);text-align:center;font-variant-numeric:tabular-nums;max-width:100%;word-break:break-word}.gt-work{min-width:0}.gt-empty{border:2.5px dashed var(--line-2);border-radius:20px;background:var(--surface-2);min-height:220px;width:100%}.gt-groups{display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;gap:12px;min-width:0}.gt-group{flex:1 1 76px;min-width:66px;max-width:128px;border:2.5px dashed var(--line-2);border-radius:18px;background:var(--surface-2);min-height:220px;padding:14px 8px;display:flex;align-items:center;justify-content:center}.gt-group.first{border-color:var(--accent)}.gt-group-tokens{display:flex;flex-wrap:wrap;align-content:center;justify-content:center;gap:8px;max-width:100%}.gt-tray{display:flex;flex-wrap:wrap;justify-content:center;align-content:flex-start;gap:8px;margin-top:16px;padding:14px 10px;min-height:60px;border-radius:16px;background:var(--surface-2);max-width:100%}.gt-token{width:30px;height:30px;flex:none;border-radius:8px;background:var(--accent);box-shadow:0 3px #00000038;transition:transform .12s ease,background .12s ease,box-shadow .12s ease}.gt-token.spent{background:var(--line);box-shadow:none}.gt-controls{display:flex;gap:12px;margin-top:18px}.gt-gbtn{flex:1 1 0;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:13px 12px;border-radius:14px;cursor:pointer;font-weight:700;font-size:15px;color:var(--accent-2);background:var(--accent-soft);border:1.5px solid var(--accent);transition:transform .08s ease,filter .15s ease}.gt-gbtn:hover:enabled{filter:brightness(1.04)}.gt-gbtn:active:enabled{transform:scale(.97)}.gt-gbtn:disabled{opacity:.42;cursor:default}.gt-badge{width:24px;height:24px;flex:none;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;font-size:18px;font-weight:800;line-height:1}.check:disabled{opacity:.4;cursor:default}.check:disabled:active{transform:none}.sog-head{display:flex;align-items:flex-start;gap:14px}.sog-target{margin-top:18px;text-align:center;font-size:40px;font-weight:800;line-height:1.05;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}.sog-gridwrap{margin-top:18px;display:flex;justify-content:center;overflow-x:auto}.sog-grid{position:relative;flex:none;background:var(--surface);border:2px solid var(--line-2);border-radius:12px}.sog-fill{position:absolute;z-index:1;border-radius:4px;background:color-mix(in srgb,var(--accent) 22%,transparent);transition:left .28s cubic-bezier(.34,1.56,.64,1),top .28s cubic-bezier(.34,1.56,.64,1),width .28s cubic-bezier(.34,1.56,.64,1),height .28s cubic-bezier(.34,1.56,.64,1);pointer-events:none}.sog-lines{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;border-radius:10px}.sog-rect{position:absolute;z-index:3;background:transparent;border:2.5px solid var(--accent);border-radius:4px;pointer-events:none;transition:left .28s cubic-bezier(.34,1.56,.64,1),top .28s cubic-bezier(.34,1.56,.64,1),width .28s cubic-bezier(.34,1.56,.64,1),height .28s cubic-bezier(.34,1.56,.64,1)}.sog-rect.done{border-color:var(--accent-2)}.sog-handle{position:absolute;z-index:5;width:34px;height:34px;margin:-17px 0 0 -17px;display:flex;align-items:center;justify-content:center;cursor:grab;touch-action:none;transition:left .28s cubic-bezier(.34,1.56,.64,1),top .28s cubic-bezier(.34,1.56,.64,1)}.sog-handle:active,.sog-handle.dragging{cursor:grabbing}.sog-handle.dragging .sog-handle-dot{transform:scale(1.22)}.sog-handle:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:50%}.sog-handle-dot{width:20px;height:20px;border-radius:50%;background:var(--accent);border:3px solid var(--surface);box-shadow:0 2px 5px #0000004d;transition:transform .15s ease}.sog-handle.done .sog-handle-dot{background:var(--accent-2)}.sog-grid.dragging .sog-fill,.sog-grid.dragging .sog-rect,.sog-grid.dragging .sog-handle{transition:none}.sog-readout{display:flex;flex-wrap:wrap;gap:14px;margin-top:16px;padding:10px 14px;background:var(--surface-2);border-radius:12px;font-size:13.5px;color:var(--ink-2);font-variant-numeric:tabular-nums}.sog-readout b{color:var(--ink);font-weight:700}.sog-readout .sog-goal,.sog-readout .sog-goal b{color:var(--accent-2)}@media(prefers-reduced-motion:reduce){.sog-fill,.sog-rect,.sog-handle,.sog-handle-dot{transition:none}}.cp-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}.cp-face{font-size:40px;line-height:1;flex:none;transition:transform .2s ease}.cp-face.mood-happy{transform:scale(1.12) rotate(-4deg)}.cp-face.mood-oops{transform:rotate(6deg)}.cp-prompt{flex:1}.cp-sum{font-weight:700;font-size:16px;color:var(--ink-2);margin-bottom:14px}.cp-sum b{color:var(--ink)}.cp-wrap{position:relative;padding:6px 8px}.cp-lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}.cp-grid{display:grid;gap:10px;position:relative;z-index:1;max-width:320px}.cp-cell{aspect-ratio:1;min-width:52px;display:flex;align-items:center;justify-content:center;border-radius:14px;background:var(--surface);border:2px solid var(--line-2);font-weight:700;font-size:20px;color:var(--ink);cursor:pointer;font-family:inherit;transition:transform .08s,border-color .15s,background .15s}.cp-cell:active{transform:scale(.96)}.cp-cell.in-path{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-2)}.cp-cell.last{box-shadow:0 0 0 3px var(--accent-soft)}.cp-cell:disabled{cursor:default}.ec-wrap{--ec-cell: 52px;display:flex;flex-direction:column;align-items:center;gap:22px}.ec-grid{display:grid;gap:6px;justify-content:center;margin:6px 0 2px}.ec-cell{width:var(--ec-cell);height:var(--ec-cell);box-sizing:border-box;display:flex;align-items:center;justify-content:center;border-radius:12px;font-weight:800;font-size:22px;font-variant-numeric:tabular-nums;line-height:1}.ec-cell.num{border:2px solid var(--line-2);background:var(--surface-2);color:var(--ink)}.ec-cell.op{border:2px solid var(--line);background:transparent;color:var(--accent);font-size:24px}.ec-cell.blank{border:2px solid var(--accent);background:var(--surface);color:var(--ink);cursor:pointer;padding:0;font-family:inherit;transition:transform .08s,background .15s,border-color .15s,box-shadow .15s}.ec-cell.blank:active{transform:scale(.95)}.ec-cell.blank.sel{background:var(--accent-soft);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.ec-cell.blank.wrong{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,var(--surface));color:var(--danger)}.ec-cell.blank.right{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-2)}.ec-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%;max-width:340px}.ec-key{height:54px;border-radius:14px;border:2px solid var(--line-2);background:var(--surface-2);color:var(--ink);font-weight:800;font-size:22px;font-family:inherit;cursor:pointer;transition:transform .08s,background .15s,border-color .15s}.ec-key:hover:enabled{border-color:var(--accent)}.ec-key:active:enabled{transform:scale(.95)}.ec-key.check{background:var(--accent);border:none;color:#fff;font-size:24px}.ec-key.check:disabled{opacity:.45;cursor:default}.ec-key.back{color:var(--ink-2);font-size:20px}.kit-keypad-dock{flex:0 0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%;margin-top:14px;padding-top:12px;border-top:1.5px solid var(--line)}.kkey{height:42px;border-radius:12px;border:1.5px solid var(--line-2);background:var(--surface-2);color:var(--ink);font-size:20px;font-weight:800;font-variant-numeric:tabular-nums;font-family:inherit;cursor:pointer;transition:transform .06s,border-color .14s,background .14s}.kkey:hover:enabled{border-color:var(--accent)}.kkey:active:enabled{transform:scale(.95);background:var(--accent-soft)}.kkey:disabled{opacity:.5;cursor:default}.kkey.kkey-op{background:var(--accent-soft);border-color:var(--accent);color:var(--ink)}.kkey.back{color:var(--ink-2);background:transparent;border-color:transparent;display:inline-flex;align-items:center;justify-content:center}.kkey.back:hover:enabled{border-color:transparent;color:var(--ink)}.kkey.back:active:enabled{background:transparent;transform:scale(.9)}.kkey-back-icon,.kkey-gap{display:block}.kkey.kkey-check{background:var(--accent);border-color:var(--accent);color:#fff;font-size:22px}.kkey.kkey-check:hover:enabled{border-color:var(--accent-2);background:var(--accent-2)}.kkey.kkey-check:active:enabled{background:var(--accent-2)}@media(prefers-reduced-motion:reduce){.kkey{transition:none}}.kit-ruler-field{display:flex;flex-direction:column;align-items:center;gap:8px;padding:4px 0 2px}.krf-svg{display:block;max-width:100%;height:auto;touch-action:none;user-select:none;-webkit-user-select:none}.krf-field{fill:var(--surface);stroke:var(--line-2);stroke-width:2;stroke-dasharray:7 6;stroke-linecap:round}.krf-figure .krf-rect{fill:var(--accent);stroke:var(--accent-2);stroke-width:3}.krf-figure .krf-seg{stroke:var(--accent);stroke-width:10;stroke-linecap:round}.krf-figure .krf-seg-end{fill:var(--accent-2)}.krf-ruler-body{fill:var(--ink);fill-opacity:.1;stroke:var(--ink-2);stroke-opacity:.55;stroke-width:1.5;transition:fill-opacity .12s}.krf-ruler-body:active{fill-opacity:.16;cursor:grabbing}.krf-ruler-edge{stroke:var(--ink-2);stroke-width:2;stroke-linecap:round}.krf-tick{stroke:var(--ink-2);stroke-linecap:round}.krf-tick.major{stroke-width:2}.krf-tick.minor{stroke-width:1.5;opacity:.7}.krf-tick-num{fill:var(--ink-2);font-size:11px;font-weight:800;font-variant-numeric:tabular-nums}.krf-handle:active{cursor:grabbing}.krf-handle-dot{fill:var(--accent);stroke:var(--surface);stroke-width:2.5;transition:fill .12s}.krf-handle:active .krf-handle-dot{fill:var(--accent-2)}.krf-handle-arc{fill:none;stroke:var(--surface);stroke-width:1.6;stroke-linecap:round}.krf-handle-arrow{fill:var(--surface)}.krf-hint{font-size:12.5px;color:var(--ink-3);text-align:center;text-wrap:balance;max-width:320px}.kit-stage-root{display:flex;gap:14px;height:100vh;padding:12px;box-sizing:border-box}.kit-rail{flex:none;width:138px;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:6px;padding-right:4px}.kit-stage{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}.kit-stage-bar{flex:none;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.kit-nav.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-2)}.kit-nav-regen{border-color:var(--accent);color:var(--accent-2)}.kit-demo-tag{font-size:12.5px;color:var(--ink-3)}.kit-demo-tag code{color:var(--ink-2)}.kit-demo-tag-r{color:var(--accent-2)}.kit-demo-tag-t{color:var(--accent-2);font-weight:700}.kit-nav{font-weight:700;font-size:13px;padding:8px 14px;border-radius:999px;border:1.5px solid var(--line-2);background:transparent;color:var(--ink-2);cursor:pointer;transition:transform .08s,border-color .15s}.kit-nav:hover{border-color:var(--accent)}.kit-nav:active{transform:scale(.96)}.kit-card{position:relative;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;width:100%;max-width:560px;margin:0 auto}.kit-prompt{font-weight:800;font-size:25px;line-height:1.22;margin:2px 48px 16px 2px;text-wrap:balance}.kit-hl{color:var(--accent-2)}.kit-fit{flex:1 1 auto;min-height:0;width:100%;overflow:hidden;display:flex;align-items:center;justify-content:center}.kit-fit-inner{width:max-content;max-width:none;transform-origin:center center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.kit-answer-dock{width:100%;flex:0 0 auto}.kit-card .ctl{display:block;margin-top:14px}.kit-card .ctl:empty{display:none}.kit-card .check{width:100%;padding:14px;font-size:16px;border-radius:14px}.kit-card .check.wrong{background:var(--danger)}.kit-card .kit-result{display:flex;flex-direction:column;gap:12px;padding:14px;border-radius:16px}.kit-card .kit-result.ok{background:var(--accent-soft)}.kit-card .kit-result.bad{background:var(--danger-soft)}.kit-feedback{display:flex;align-items:flex-start;gap:10px;text-align:left}.kit-fb-icon{flex:none;width:24px;height:24px;border-radius:50%;margin-top:1px;display:inline-flex;align-items:center;justify-content:center;font-size:15px;font-weight:900;color:#fff;line-height:1}.kit-result.ok .kit-fb-icon{background:var(--accent)}.kit-result.bad .kit-fb-icon{background:var(--danger)}.kit-fb-text{display:flex;flex-direction:column;gap:2px;min-width:0}.kit-fb-title{font-size:18px;font-weight:800;line-height:1.2}.kit-fb-hint{font-size:14px;font-weight:600;color:var(--ink-2)}.kit-result.ok .kit-fb-title{color:var(--accent-2)}.kit-result.bad .kit-fb-title{color:var(--danger)}.kit-card .kit-result .check{margin:0}.kit-card .kit-done{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}.kit-card .hint{display:inline-flex;margin-top:10px}.kit-card .kit-hint-slot{min-height:34px;display:flex;align-items:flex-start;justify-content:center}.kit-card .kit-hint-slot .hint{margin-top:10px}.kit-speak{position:absolute;top:16px;right:16px;width:38px;height:38px;flex:none;display:inline-flex;align-items:center;justify-content:center;font-size:17px;border-radius:50%;border:none;background:var(--accent-soft);color:var(--accent-2);cursor:pointer;transition:transform .08s,background .15s}.kit-speak:hover{background:var(--surface-2)}.kit-speak:active{transform:scale(.92)}.kit-stim{text-align:center;margin:4px 0 20px;color:var(--ink);text-wrap:balance}.kit-stim-text{font-size:22px;font-weight:700;line-height:1.3}.kit-stim-big{font-size:42px;font-weight:800;letter-spacing:.5px;font-variant-numeric:tabular-nums}.kit-stim-objects{display:flex;flex-direction:column;align-items:center;gap:10px}.kit-objrow{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.kit-obj{font-size:52px;line-height:1;-webkit-user-select:none;user-select:none}.kit-op{color:var(--accent)}.kit-blank{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;font-size:24px;font-weight:800;border-radius:9px;border:2px solid var(--line-2);color:var(--ink-3);vertical-align:middle}.kit-blank-field{display:inline-flex;align-items:center;justify-content:center;min-width:66px;height:58px;padding:0 12px;border-radius:14px;border:2.5px solid var(--line-2);background:var(--surface-2);color:var(--ink);vertical-align:middle}.kit-blank-field.filled{border-color:var(--accent);color:var(--accent-2)}.kit-blank-caret{width:3px;height:40px;border-radius:2px;background:var(--accent);animation:kit-blank-blink 1.05s step-end infinite}@keyframes kit-blank-blink{0%,55%{opacity:1}56%,to{opacity:0}}@media(prefers-reduced-motion:reduce){.kit-blank-caret{animation:none}}.kit-frac{display:inline-flex;flex-direction:column;align-items:center;line-height:1;font-weight:800}.kit-frac-n,.kit-frac-d{font-size:30px}.kit-frac-bar{width:34px;height:4px;border-radius:2px;background:var(--accent);margin:4px 0}.kit-table{display:inline-block;border:2px solid var(--line-2);border-radius:14px;overflow:hidden}.kit-table-row{display:grid;grid-template-columns:1fr 1fr}.kit-table-row+.kit-table-row .kit-table-cell{border-top:1px solid var(--line)}.kit-table-cell{min-width:96px;padding:14px 22px;font-size:24px;font-weight:800;font-variant-numeric:tabular-nums}.kit-table-cell+.kit-table-cell{border-left:1px solid var(--line)}.kit-table-cell.q{color:var(--accent-2);background:var(--accent-soft)}.kit-table-cell-rich{display:flex;align-items:center;justify-content:center;padding:10px 16px;font-weight:700}.kit-seq{display:flex;gap:12px;justify-content:center;align-items:center;font-size:30px;font-weight:800;font-variant-numeric:tabular-nums}.kit-seq-cell{min-width:40px}.kit-seq-cell.q{color:var(--accent-2);border:2px solid var(--accent);border-radius:12px;padding:4px 12px}.kit-scale{display:flex;justify-content:center;padding:10px 0 2px}.kit-scale-svg{display:block;max-width:100%;height:auto;overflow:visible;touch-action:none}.kit-scale-beaker .kit-scale-svg,.kit-scale-thermometer .kit-scale-svg{max-width:220px}.kit-axis{stroke:var(--line-2);stroke-width:3;stroke-linecap:round}.kit-axis-thick{stroke:var(--ink-3);stroke-width:6;stroke-linecap:round}.kit-tick{stroke:var(--line-2);stroke-width:2.5;stroke-linecap:round}.kit-tick.on{stroke:var(--accent);stroke-width:4}.kit-tick-num{fill:var(--ink-2);font-size:14px;font-weight:700;text-anchor:middle;font-variant-numeric:tabular-nums}.kit-tick-num.on{fill:var(--accent-2);font-weight:800}.kit-tick-num-l{text-anchor:start}.kit-pin{cursor:grab;touch-action:none}.kit-pin:active{cursor:grabbing}.kit-pin-body{fill:var(--accent);stroke:var(--accent-2);stroke-width:1.5;transition:fill .12s;filter:drop-shadow(0 2px 2.5px rgba(0,0,0,.28))}.kit-pin:active .kit-pin-body{fill:var(--accent-2)}.kit-pin-dot{fill:var(--surface)}.kit-ruler-body{fill:var(--surface-2);stroke:var(--line-2);stroke-width:1.5}.kit-marker{fill:var(--accent);stroke:var(--accent-2);stroke-width:1.5;transition:fill .12s}.kit-marker:active{fill:var(--accent-2)}.kit-seg{stroke:var(--accent);stroke-width:6;stroke-linecap:round}.kit-handle{fill:var(--accent);stroke:var(--surface);stroke-width:3;transition:fill .12s}.kit-handle:active{fill:var(--accent-2)}.kit-vessel{fill:none;stroke:var(--ink-2);stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.kit-bulb{fill:var(--surface-2)}.kit-fill{fill:var(--accent);opacity:.9}.kit-level-hit{fill:transparent}.kit-level{fill:var(--surface);opacity:.95;pointer-events:none}.kit-pic{display:block}.kit-pic-on{fill:var(--accent);stroke:var(--surface);stroke-width:1.5}.kit-baseten-seam{stroke:var(--surface);stroke-width:1.2;opacity:.85}.kit-pic-off{fill:var(--surface-2);stroke:var(--line-2);stroke-width:1.5}.kit-pic-line line{stroke:var(--accent);stroke-width:4;stroke-linecap:round}.kit-pic-line polygon{fill:var(--accent)}.kit-pic-line-sq{fill:none;stroke:var(--accent);stroke-width:2}.kit-stim-pic{display:flex;justify-content:center}.kit-cell-inner{display:inline-flex;flex-direction:column;align-items:center;gap:6px}.kit-cell-label{font-size:11px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--ink-3)}.kit-cell-text,.kit-cell-num{font-size:22px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}.kit-missing{text-align:center;color:var(--ink-3);font-size:14px;padding:24px;border:1.5px dashed var(--line-2);border-radius:14px}.kit-stepper{display:flex;gap:12px;justify-content:center;width:100%;max-width:420px;margin:12px auto 0}.kit-stepper-btn{flex:1 1 0;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:10px;height:54px;padding:0 14px;border-radius:16px;border:2px solid var(--accent);background:var(--accent-soft);color:var(--accent-2);font-family:inherit;cursor:pointer;transition:transform .08s,background .15s,border-color .15s,opacity .15s}.kit-stepper-btn:hover:enabled{background:var(--surface-2)}.kit-stepper-btn:active:enabled{transform:scale(.97)}.kit-stepper-btn:disabled{cursor:default;opacity:.5;border-color:var(--line-2);background:var(--surface-2);color:var(--ink-3)}.kit-stepper-ico{flex:none;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:2.5px solid currentColor;font-size:17px;font-weight:900;line-height:1}.kit-stepper-label{text-transform:uppercase;letter-spacing:.5px;font-size:15px;font-weight:800}@media(prefers-reduced-motion:reduce){.kit-stepper-btn{transition:none}}.kit-di{display:inline-flex;align-items:center;justify-content:center;line-height:0}.kit-di-svg{display:block;height:auto;overflow:visible}.kit-di-money .kit-di-svg{width:66px}.kit-di-weight .kit-di-svg{width:58px}.kit-di-label{font-size:20px;font-weight:800;fill:#fff;paint-order:stroke;stroke:var(--accent-2);stroke-width:3.5px;stroke-linejoin:round}.kit-di-object{display:block;width:28px;height:28px;border-radius:8px;background:var(--accent)}.kit-di.compact .kit-di-object{width:26px;height:26px;border-radius:7px}.kit-dropfield{border:2.5px dashed var(--line-2);border-radius:18px;background:var(--surface-2);box-sizing:border-box;transition:border-color .15s,background .15s,box-shadow .15s}.kit-dropfield.over{border-color:var(--accent);border-style:solid;background:var(--accent-soft);box-shadow:0 0 0 3px var(--accent-soft)}.kit-prot{display:block;margin:0 auto}.kit-prot-fill{fill:var(--accent-soft)}.kit-prot-body{fill:none;stroke:var(--accent);stroke-width:2}.kit-prot-edge{stroke:var(--accent);stroke-width:2;stroke-linecap:round}.kit-prot-tick{stroke:var(--ink-3);stroke-width:1.5}.kit-prot-num{fill:var(--ink-2);font-size:12px;font-weight:700;text-anchor:middle;font-variant-numeric:tabular-nums}.kit-prot-ray{stroke:var(--accent-2);stroke-width:5;stroke-linecap:round}.kit-prot-arrow,.kit-prot-hub{fill:var(--accent-2)}.kit-clocks{display:flex;align-items:center;justify-content:center;gap:24px}.kit-clock{display:inline-flex;flex-direction:column;align-items:center;gap:6px}.kit-clock-label{font-size:13px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;color:var(--ink-3)}.kit-persona-dock{flex:0 0 auto;width:100%}.kit-persona{display:flex;align-items:center;justify-content:flex-start;gap:14px;text-align:left;margin:4px 0 18px;padding-bottom:18px;border-bottom:1.5px solid var(--line)}.kit-persona-avatar{flex:none;width:92px;height:92px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:60px;background:var(--surface-2);border:1.5px solid var(--line-2)}.kit-persona-bubble{position:relative;text-align:left;flex:0 1 auto;min-width:0;font-size:15px;font-weight:700;line-height:1.35;color:var(--ink);background:var(--surface-2);border:1.5px solid var(--line-2);padding:11px 15px;border-radius:16px;text-wrap:pretty;overflow-wrap:anywhere}.kit-persona-bubble:before{content:"";position:absolute;left:-8px;top:50%;width:16px;height:16px;background:var(--surface-2);border-left:1.5px solid var(--line-2);border-bottom:1.5px solid var(--line-2);border-bottom-left-radius:5px;transform:translateY(-50%) rotate(45deg)}.kit-hands{display:flex;flex-direction:column;align-items:center;gap:10px;padding:10px 0 2px}.kit-hands-svg{display:block;max-width:100%;height:auto;overflow:visible;touch-action:none;-webkit-user-select:none;user-select:none}.hd-rim{fill:var(--surface);stroke:var(--line-2);stroke-width:3}.hd-sweep{fill:var(--accent);opacity:.18}.hd-tick{stroke:var(--line-2);stroke-width:2;stroke-linecap:round}.hd-tick.major{stroke:var(--ink-3);stroke-width:3}.hd-num{fill:var(--ink-2);font-size:17px;font-weight:800;text-anchor:middle;dominant-baseline:central;font-variant-numeric:tabular-nums}.hd-hand{stroke-linecap:round}.hd-hand-hour{stroke:var(--ink-2);stroke-width:8}.hd-hand-min{stroke:var(--accent);stroke-width:6}.hd-pin{fill:var(--accent-2);stroke:var(--surface);stroke-width:2}.hd-handle{cursor:grab}.hd-handle:active{cursor:grabbing}.hd-hit{fill:transparent}.hd-knob{stroke:var(--surface);stroke-width:3;transition:fill .12s,transform .08s}.hd-knob-hour{fill:var(--ink-2)}.hd-knob-min{fill:var(--accent)}.hd-handle:active .hd-knob{fill:var(--accent-2)}.hd-readout{font-size:24px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:.5px}.sc-root{display:flex;justify-content:center;padding:8px 0 4px;--sc-water: #1cb0f6;--sc-water-d: #1391d1;--sc-water-lite: #a9e0fb;--sc-merc: #ff4b4b;--sc-merc-d: #e03d3d;--sc-on-accent: #ffffff}@media(prefers-color-scheme:dark){.sc-root{--sc-water: #38bdf8;--sc-water-d: #1c9fe0;--sc-water-lite: #cbebfc;--sc-merc: #ff5b5b;--sc-merc-d: #e64a4a;--sc-on-accent: #0e1512}}.sc-svg{display:block;max-width:100%;height:auto;overflow:visible;touch-action:none}.sc-svg.sc-vert{max-width:240px}.sc-grab{cursor:grab;touch-action:none}.sc-grab:active{cursor:grabbing}.sc-hit{fill:transparent}.sc-marker{fill:var(--accent);stroke:var(--accent);stroke-width:5;stroke-linejoin:round;paint-order:stroke;transition:fill .12s,stroke .12s}.sc-marker:active{fill:var(--accent-2);stroke:var(--accent-2)}.sc-thermo .sc-marker{fill:var(--sc-merc);stroke:var(--sc-merc)}.sc-thermo .sc-marker:active{fill:var(--sc-merc-d);stroke:var(--sc-merc-d)}.sc-marker-ruler{fill:var(--sun);stroke:var(--sun)}.sc-marker-ruler:active{fill:color-mix(in srgb,var(--sun) 82%,#000);stroke:color-mix(in srgb,var(--sun) 82%,#000)}.sc-num{fill:var(--ink-3);font-size:15px;font-weight:800;text-anchor:middle;font-variant-numeric:tabular-nums}.sc-num.on{fill:var(--accent)}.sc-thermo .sc-num.on{fill:var(--sc-merc)}.sc-beaker .sc-num.on{fill:var(--sc-water)}.sc-line-axis{stroke:var(--ink-3);stroke-width:2.5;stroke-linecap:round}.sc-tick{stroke:var(--line-2);stroke-width:4;stroke-linecap:round;transition:stroke .12s}.sc-tick.on{stroke:var(--accent)}.sc-ruler-track{fill:color-mix(in srgb,var(--sun) 34%,var(--surface-2));stroke:none}.sc-ruler-fill{fill:var(--sun)}.sc-ruler-edge{fill:none;stroke:color-mix(in srgb,var(--sun) 62%,#000);stroke-width:2}.sc-ruler-num{font-size:17px;font-weight:800;text-anchor:middle;font-variant-numeric:tabular-nums;fill:#6a4d12;stroke:none}.sc-ruler-num.filled{fill:#402d06}.sc-ruler-zero{text-anchor:start}.sc-ruler-tick{stroke:#7a5a1e;stroke-width:2.5;stroke-linecap:round}.sc-ruler-tick.filled{stroke:#402d06}.sc-ruler-minor{stroke:#7a5a1e;stroke-width:2;stroke-linecap:round;opacity:.7}.sc-ruler-minor.filled{stroke:#402d06;opacity:.8}.sc-vessel{fill:none;stroke:var(--ink-2);stroke-width:3.5;stroke-linejoin:round;stroke-linecap:round}.sc-vessel-rim{fill:none;stroke:var(--ink-2);stroke-width:3;stroke-linecap:round;opacity:.55}.sc-water{fill:var(--sc-water)}.sc-handle-shadow{fill:var(--sc-water-d)}.sc-handle-blob{fill:var(--sc-water)}.sc-beaker-num{fill:var(--ink-3);font-size:15px;font-weight:800;text-anchor:end;font-variant-numeric:tabular-nums}.sc-beaker-tick{stroke:var(--ink-3);stroke-width:2.5;stroke-linecap:round}.sc-beaker-minor{stroke:var(--ink-3);stroke-width:2;stroke-linecap:round;opacity:.6}.sc-thermo-edge{fill:var(--line-2)}.sc-thermo-track{fill:var(--surface-2);stroke:none}.sc-merc{fill:var(--sc-merc)}.sc-merc-dot{fill:#ffffff47}.sc-thermo-tick{stroke:var(--ink-3);stroke-width:2.5;stroke-linecap:round}.sc-thermo-minor{stroke:var(--ink-3);stroke-width:2;stroke-linecap:round;opacity:.6}.sc-thermo-num{fill:var(--ink-2);font-size:15px;font-weight:800;text-anchor:middle;font-variant-numeric:tabular-nums;stroke:none}.sc-seg{stroke:var(--accent);stroke-width:6;stroke-linecap:round}.sc-seg-handle{fill:var(--accent);stroke:var(--surface);stroke-width:3;transition:fill .12s}.sc-seg-handle:active{fill:var(--accent-2)}.kit-choice{display:flex;flex-direction:column;gap:10px;width:100%;margin:0 auto}.kit-choice-opt{position:relative;display:flex;align-items:center;justify-content:center;width:100%;min-height:50px;padding:8px 20px;border:2px solid var(--line-2);border-radius:14px;background:var(--surface);color:var(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color .15s,background .15s,transform .08s}.kit-choice-opt:hover:not(:disabled){border-color:var(--accent)}.kit-choice-opt:active:not(:disabled){transform:scale(.97)}.kit-choice-opt:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.kit-choice-opt.selected{border-color:var(--accent);background:var(--accent-soft)}.kit-choice-opt:disabled{cursor:default}.kit-choice.kit-choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;max-width:320px}.kit-choice-grid .kit-choice-opt{min-height:0;aspect-ratio:1 / 1;padding:10px}.kit-choice-grid .kit-cell-text,.kit-choice-grid .kit-cell-num{font-size:34px}.kit-choice-grid:has(.kit-choice-opt:nth-child(3):last-child){grid-template-columns:repeat(3,1fr);max-width:360px}.kit-choice-tick{position:absolute;top:8px;right:10px;font-size:15px;font-weight:900;line-height:1;color:var(--accent)}.kit-input{display:flex;flex-direction:column;align-items:center;gap:26px;padding:8px 0 2px}.kit-input:focus,.kit-input:focus-visible{outline:none}.kit-in-blanks{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px}.kit-in-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 10px;padding:4px 0}.kit-in-text{font-size:40px;font-weight:800;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:.5px}.kit-in-row .kit-in-cell{min-width:52px;height:60px}.kit-in-row .kit-in-val{font-size:36px}.kit-in-cell{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:62px;height:68px;padding:0 10px;border-radius:16px;border:2.5px solid var(--line-2);background:var(--surface-2);color:var(--ink);cursor:pointer;transition:border-color .14s,background .14s,transform .08s}.kit-in-blanks.kit-in-solo{width:100%}.kit-in-blanks.kit-in-solo .kit-in-cell{width:100%;min-width:0;height:54px;justify-content:flex-start;padding:0 18px;border-radius:14px}.kit-in-blanks.kit-in-solo .kit-in-cell:active{transform:none}.kit-in-blanks.kit-in-solo .kit-in-val{font-size:21px}.kit-in-blanks.kit-in-solo .kit-in-caret{position:static;right:auto;margin-left:0;margin-right:2px;height:24px}.kit-in-placeholder{font-size:21px;font-weight:700;line-height:1;color:var(--ink-3);opacity:.7;font-variant-numeric:tabular-nums;pointer-events:none}.kit-in-cell:active{transform:scale(.97)}.kit-in-cell:disabled{cursor:default}.kit-in-cell.filled{border-color:var(--accent);color:var(--accent-2)}.kit-in-cell.sel{border-color:var(--accent);background:var(--accent-soft)}.kit-in-val{font-size:32px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:.5px}.kit-in-caret{position:absolute;right:12px;width:2.5px;height:34px;border-radius:2px;background:var(--accent);animation:kit-in-blink 1.05s step-end infinite}@keyframes kit-in-blink{0%,55%{opacity:1}56%,to{opacity:0}}.kit-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:300px;max-width:100%}.kit-key{height:46px;border-radius:12px;border:1.5px solid var(--line-2);background:var(--surface-2);color:var(--ink);font-size:20px;font-weight:800;font-variant-numeric:tabular-nums;cursor:pointer;transition:transform .06s,border-color .14s,background .14s}.kit-key:hover{border-color:var(--accent)}.kit-key:active{transform:scale(.94);background:var(--accent-soft)}.kit-key:disabled{cursor:default;opacity:.5}.kit-key.back{color:var(--ink-2);font-size:20px}.kit-key-gap{display:block}.kit-keypad.compact{max-width:264px;gap:8px}.kit-keypad.compact .kit-key{height:44px;font-size:19px;border-radius:12px}.kit-in-open{margin-top:4px;padding:11px 22px;border-radius:13px;cursor:pointer;font-weight:800;font-size:15px;border:1.5px solid var(--accent);background:var(--accent-soft);color:var(--accent-2);transition:transform .08s,background .15s}.kit-in-open:hover{background:var(--surface-2)}.kit-in-open:active{transform:scale(.97)}.kit-in-open:disabled{opacity:.5;cursor:default}.kit-keypad-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:flex-end;justify-content:center;background:#00000047}.kit-keypad-sheet{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--line);border-radius:20px 20px 0 0;box-shadow:0 -10px 34px #00000052;padding:10px 16px calc(18px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;align-items:center;gap:8px;animation:kit-sheet-up .18s ease-out}@keyframes kit-sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.kit-keypad-done{align-self:flex-end;padding:6px 16px;border-radius:999px;cursor:pointer;font-weight:800;font-size:14px;border:none;background:var(--accent);color:#fff}.kit-keypad-done:active{transform:scale(.96)}@media(prefers-reduced-motion:reduce){.kit-in-cell,.kit-key,.kit-in-open{transition:none}.kit-in-caret,.kit-keypad-sheet{animation:none}}.kit-shade{display:flex;flex-direction:column;align-items:center;gap:12px;padding:8px 0 2px}.kit-shade.interactive{touch-action:none;user-select:none;-webkit-user-select:none}.kit-shade-svg{display:block;max-width:100%;height:auto;overflow:visible;touch-action:manipulation}.kit-shade.interactive .kit-shade-svg{touch-action:none}.kit-shade-part{fill:var(--surface-2);transition:fill .15s ease;-webkit-tap-highlight-color:transparent}.kit-shade-part.clickable{cursor:pointer}.kit-shade-part.clickable:hover{fill:var(--line-2)}.kit-shade-part.on{fill:var(--accent)}.kit-shade-part.clickable.on:hover{fill:var(--accent-2)}.kit-shade-svg--pie .kit-shade-part{stroke:var(--surface);stroke-width:2}.kit-shade-svg--bar .kit-shade-part{stroke:none}.kit-shade-div{stroke:var(--surface);stroke-width:2;pointer-events:none}.kit-shade-outline{fill:none;stroke:var(--line-2);stroke-width:1.5;pointer-events:none}.kit-shade-seam{stroke:var(--surface);stroke-width:1.5;opacity:.8;pointer-events:none}.kit-shade-svg--cells .kit-shade-part{stroke:var(--line-2);stroke-width:1.5}.kit-shade-svg--cells .kit-shade-part.on{stroke:var(--accent)}.kit-shade-count{font-size:13px;font-weight:700;color:var(--accent-2);font-variant-numeric:tabular-nums}.kit-part{display:flex;flex-direction:column;align-items:center;gap:14px;padding:6px 0 2px}.kit-part-readout{font-size:15px;font-weight:700;color:var(--accent-2);letter-spacing:.01em;font-variant-numeric:tabular-nums}.kit-part-shape{display:flex;justify-content:center}.kit-part-svg{display:block;max-width:100%;height:auto;overflow:visible}.kit-part-piece{stroke:var(--surface);stroke-width:1.5;transition:fill .15s ease}.kit-part-a{fill:var(--accent-soft)}.kit-part-b{fill:var(--accent-soft-2)}.kit-part-outline{fill:none;stroke:var(--line-2);stroke-width:2}.kit-part-controls{display:flex;gap:12px}.kit-part-btn{font-weight:700;font-size:15px;border-radius:13px;cursor:pointer;border:1.5px solid var(--line-2);background:var(--surface-2);color:var(--ink);padding:10px 18px;transition:transform .08s ease,background .15s ease,border-color .15s ease}.kit-part-btn:hover:enabled{border-color:var(--accent)}.kit-part-btn:active:enabled{transform:scale(.95)}.kit-part-btn:disabled{opacity:.45;cursor:default}.kit-connect{position:relative;display:flex;justify-content:space-between;gap:56px;width:460px;max-width:100%;margin:8px auto 2px;padding:4px}.kit-connect-lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}.kit-connect-line{stroke:var(--accent);stroke-width:4;stroke-linecap:round}.kit-connect-col{display:flex;flex-direction:column;gap:14px;z-index:1;flex:1 1 0;min-width:0}.kit-connect-cell{position:relative;height:96px;box-sizing:border-box;padding:10px 14px;display:flex;align-items:center;justify-content:center;border:2px solid var(--line-2);border-radius:16px;background:var(--surface);color:var(--ink);cursor:pointer;font-family:inherit;-webkit-tap-highlight-color:transparent;transition:border-color .15s,background .15s,transform .08s;overflow:hidden}.kit-connect-cell .kit-cell-inner{gap:0}.kit-connect-cell .kit-cell-text{font-size:16px;line-height:1.15;white-space:normal;text-wrap:balance;overflow-wrap:anywhere}.kit-connect-cell .kit-cell-emoji{font-size:34px;line-height:1.05;letter-spacing:1px}.kit-connect-cell .kit-cell-label{position:absolute;top:9px;left:8px;right:8px;text-align:center;pointer-events:none}.kit-connect-cell:hover:not(:disabled){border-color:var(--accent)}.kit-connect-cell:active:not(:disabled){transform:scale(.97)}.kit-connect-cell:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.kit-connect-cell.sel{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 3px var(--accent-soft)}.kit-connect-cell.linked{border-color:var(--accent)}.kit-connect-cell:disabled{cursor:default}.kit-build{width:400px;max-width:100%;box-sizing:border-box}.kit-build-eq{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:nowrap;min-height:64px}.kit-build-slots{display:flex;gap:8px}.kit-build-slot{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;border-radius:12px;font-family:inherit;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;padding:0;transition:transform .1s ease,background .15s,border-color .15s}.kit-build-slot.empty{border:2px dashed var(--line-2);background:transparent;color:var(--ink-3);cursor:default}.kit-build-slot.filled{border:2px solid var(--accent);background:var(--accent-soft);color:var(--accent-2);cursor:pointer}.kit-build-slot.filled:hover{background:var(--surface-2)}.kit-build-slot.filled:active{transform:scale(.94)}.kit-build-slot:disabled.filled{cursor:default}.kit-build-op{font-size:26px;font-weight:700;color:var(--ink-2)}.kit-build-target{min-width:52px;height:52px;padding:0 10px;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--accent-2);background:var(--accent-soft);border:2px solid var(--accent);border-radius:12px}.kit-build-bank{display:flex;flex-wrap:wrap;align-content:flex-start;justify-content:center;gap:8px;min-height:112px;margin-top:22px}.kit-build-tile{min-width:46px;height:46px;padding:0 12px;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;font-family:inherit;font-variant-numeric:tabular-nums;line-height:1;-webkit-user-select:none;user-select:none;cursor:pointer;color:var(--ink);background:var(--surface-2);border:1px solid var(--line-2);border-radius:12px;transition:transform .12s ease,box-shadow .12s ease}.kit-build-tile:hover{transform:translateY(-2px);box-shadow:0 4px 10px #00000014}.kit-build-tile:active{transform:scale(.95)}.kit-build-tile:disabled{cursor:default;transform:none;box-shadow:none}.kit-build-tile-op{background:var(--accent-soft);border-color:var(--accent);color:var(--ink)}.kit-build-empty{color:var(--ink-3);font-size:13px;align-self:center}.kit-group{position:relative;display:flex;flex-direction:column;min-width:0}.kit-group-tray{display:flex;flex-wrap:wrap;justify-content:center;align-content:center;align-items:center;gap:7px;padding:12px 10px;min-height:52px;border-radius:16px;background:var(--surface-2);max-width:100%}.kit-group-work{min-width:0;margin-top:12px;height:264px;display:flex;align-items:center;justify-content:center}.kit-group-empty{height:100%;width:100%;display:flex;align-items:center;justify-content:center}.kit-group-hint{color:var(--ink-3);font-weight:600;font-size:14px}.kit-group-cols{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;align-content:center;gap:10px;min-width:0;width:100%;max-width:316px;margin:0 auto}.kit-group-col{position:relative;flex:none;width:96px;height:122px;border:2.5px dashed var(--line-2);border-radius:18px;background:var(--surface-2);padding:12px 6px;display:flex;align-items:center;justify-content:center;transition:border-color .15s ease;box-sizing:border-box}.kit-group-col-tokens{display:flex;flex-wrap:wrap;align-content:center;justify-content:center;gap:7px;max-width:100%;max-height:100%;overflow-y:auto}.kit-group-del{position:absolute;top:5px;right:5px;width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;padding:0;line-height:1;font-size:16px;font-weight:800;color:var(--ink-3);background:var(--surface-1);border:1.5px solid var(--line-2);cursor:pointer;transition:color .12s ease,border-color .12s ease,transform .08s ease}.kit-group-del:hover:enabled{color:var(--ink-1);border-color:var(--ink-3)}.kit-group-del:active:enabled{transform:scale(.9)}.kit-group-del:disabled{opacity:.4;cursor:default}.kit-group-token{width:26px;height:26px;flex:none;border-radius:7px;background:var(--accent);box-shadow:0 3px #00000038;touch-action:none;user-select:none;-webkit-user-select:none;transition:transform .1s ease,opacity .1s ease}.kit-group-token:active{transform:scale(.94)}.kit-group-token.dragging{opacity:.3}.kit-group-ghost{position:fixed;z-index:20;margin:0;transform:translate(-50%,-50%) scale(1.12);box-shadow:0 6px 14px #0000004d;pointer-events:none}.kit-group-controls{display:flex;gap:12px;margin-top:14px}.kit-group-btn{flex:1 1 0;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px;border-radius:14px;cursor:pointer;font-weight:700;font-size:15px;color:var(--accent-2);background:var(--accent-soft);border:1.5px solid var(--accent);transition:transform .08s ease,filter .15s ease}.kit-group-btn:hover:enabled{filter:brightness(1.04)}.kit-group-btn:active:enabled{transform:scale(.97)}.kit-group-btn:disabled{opacity:.42;cursor:default}.kit-group-badge{width:24px;height:24px;flex:none;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;font-size:18px;font-weight:800;line-height:1}.kt{display:flex;flex-direction:column;align-items:stretch}.kt-zone{min-height:176px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px;position:relative;box-sizing:border-box}.kt-zone-ph{font-size:16px;font-weight:700;letter-spacing:.02em;color:var(--ink-3);text-transform:uppercase}.kt-zone-tokens{display:flex;flex-wrap:wrap;gap:10px;align-items:center;align-content:center;justify-content:center;width:100%}.kt-placed{border:none;background:transparent;padding:0;cursor:pointer;line-height:0;border-radius:12px;transition:transform .1s ease,opacity .1s ease}.kt-placed:hover:enabled{transform:translateY(-2px)}.kt-placed:active:enabled{transform:scale(.94)}.kt-placed:disabled{cursor:default}.kt-placed .kt-svg{width:58px}.kt-sum{align-self:center;font-weight:800;font-size:20px;color:var(--accent-2);background:var(--surface);border:1.5px solid var(--line);border-radius:999px;padding:5px 16px;font-variant-numeric:tabular-nums}.kt-tray-label{font-size:12px;color:var(--ink-3);margin:16px 0 8px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.kt-tray{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;justify-content:center}.kt-tray-item{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;line-height:0;border-radius:12px;transition:transform .12s ease,filter .12s ease}.kt-tray-item:hover{transform:translateY(-3px);filter:brightness(1.04)}.kt-tray-item:active{cursor:grabbing;transform:scale(.95)}.kt-tray-item:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.kt-tray-item .kt-svg{width:74px}.kt-svg{display:block;height:auto;overflow:visible}.kt-svg-label{fill:#fff;font-weight:800;font-size:20px;paint-order:stroke;stroke:var(--accent-2);stroke-width:3.5px;stroke-linejoin:round;font-family:inherit}.kt-ghost{position:fixed;z-index:50;pointer-events:none;transform:translate(-50%,-50%);line-height:0;filter:drop-shadow(0 8px 16px rgba(0,0,0,.28))}.kt-ghost .kt-svg{width:78px}@media(prefers-reduced-motion:reduce){.kt-tray-item,.kt-placed{transition:none}}.kit-count{display:flex;flex-direction:column;align-items:center;gap:16px;padding:6px 0 2px}.kit-count-readout{font-size:44px;font-weight:800;color:var(--accent-2);line-height:1;font-variant-numeric:tabular-nums}.kit-count-frame{display:grid;grid-template-columns:repeat(5,58px);grid-template-rows:repeat(2,58px);gap:8px;padding:10px;border-radius:18px;background:var(--surface-2);border:2px solid var(--line-2)}.kit-count-slot{display:flex;align-items:center;justify-content:center;background:var(--surface);border:1.5px solid var(--line);border-radius:13px;font-size:32px;line-height:1;-webkit-user-select:none;user-select:none;transition:transform .08s ease,border-color .15s ease,background .15s ease}.kit-count-slot.filled{cursor:pointer}.kit-count-slot.filled:hover{border-color:var(--accent)}.kit-count-slot.filled:active{transform:scale(.92)}.kit-count-slot.next{cursor:pointer;color:var(--accent);border-style:dashed;border-color:var(--accent);background:var(--accent-soft);font-weight:800}.kit-count-slot.next:active{transform:scale(.92)}.kit-count-free{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;max-width:360px;min-height:64px}.kit-count-chip,.kit-count-add{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:16px;cursor:pointer;font-size:36px;line-height:1;padding:0;transition:transform .08s ease,border-color .15s ease,background .15s ease}.kit-count-chip{background:var(--surface);border:1.5px solid var(--line-2)}.kit-count-chip:hover:enabled{border-color:var(--accent)}.kit-count-chip:active:enabled{transform:scale(.92)}.kit-count-add{background:var(--accent-soft);border:2px dashed var(--accent);color:var(--accent);font-weight:800}.kit-count-add:active:enabled{transform:scale(.92)}.kit-count-chip:disabled,.kit-count-add:disabled{opacity:.45;cursor:default}.cw{--cw-cell: 52px;--cw-font: 22px;display:flex;flex-direction:column;align-items:center;gap:12px}.cw:focus,.cw:focus-visible{outline:none}.cw-scroll{display:flex;justify-content:center;width:100%}.cw-grid{display:grid;gap:6px;justify-content:center}.cw-cell{width:var(--cw-cell);height:var(--cw-cell);box-sizing:border-box;display:flex;align-items:center;justify-content:center;border-radius:12px;font-weight:800;font-size:var(--cw-font);font-variant-numeric:tabular-nums;line-height:1}.cw-cell.num{border:2px solid var(--line-2);background:var(--surface-2);color:var(--ink)}.cw-cell.op{border:2px solid var(--line);background:transparent;color:var(--accent);font-size:calc(var(--cw-font) + 2px)}.cw-cell.blank{border:2px solid var(--accent);background:var(--surface);color:var(--ink);cursor:pointer;padding:0;font-family:inherit;transition:transform .08s,background .15s,border-color .15s,box-shadow .15s}.cw-cell.blank:active:enabled{transform:scale(.95)}.cw-cell.blank.sel{background:var(--accent-soft);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.cw-cell.blank:disabled{cursor:default}.cw-pad{flex:0 0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%;max-width:340px}.cw-key{height:46px;border-radius:12px;border:1.5px solid var(--line-2);background:var(--surface-2);color:var(--ink);font-weight:800;font-size:20px;font-family:inherit;cursor:pointer;transition:transform .08s,background .15s,border-color .15s}.cw-key:hover:enabled{border-color:var(--accent)}.cw-key:active:enabled{transform:scale(.95)}.cw-key:disabled{opacity:.55;cursor:default}.cw-key.back{color:var(--ink-2);font-size:20px}.cw-key.ph{border:none;background:transparent;cursor:default;pointer-events:none}.kit-sg{display:flex;flex-direction:column;align-items:center;padding:6px 0 2px}.kit-sg-svg{display:block;max-width:100%;height:auto;touch-action:none;overflow:visible;-webkit-user-select:none;user-select:none}.kit-sg-bg{fill:var(--surface);stroke:var(--line-2);stroke-width:2}.kit-sg-line{stroke:var(--line-2);stroke-width:1}.kit-sg-fill{fill:color-mix(in srgb,var(--accent) 12%,transparent);transition:x .26s cubic-bezier(.34,1.56,.64,1),y .26s cubic-bezier(.34,1.56,.64,1),width .26s cubic-bezier(.34,1.56,.64,1),height .26s cubic-bezier(.34,1.56,.64,1);pointer-events:none}.kit-sg-rect{fill:none;stroke:var(--accent);stroke-width:3;stroke-linejoin:round;transition:x .26s cubic-bezier(.34,1.56,.64,1),y .26s cubic-bezier(.34,1.56,.64,1),width .26s cubic-bezier(.34,1.56,.64,1),height .26s cubic-bezier(.34,1.56,.64,1);pointer-events:none}.kit-sg-fill-poly{fill:color-mix(in srgb,var(--accent) 12%,transparent);pointer-events:none}.kit-sg-rect-poly{fill:none;stroke:var(--accent);stroke-width:3;stroke-linejoin:round;pointer-events:none}.kit-sg-rect-poly.solved{stroke:var(--accent-2);stroke-width:3.5}.kit-sg-seg{fill:none;stroke:var(--accent);stroke-width:4;stroke-linecap:round;pointer-events:none}.kit-sg-seg.solved{stroke:var(--accent-2);stroke-width:4.5}.kit-sg-hit{fill:transparent}.kit-sg-dot{fill:var(--accent);stroke:var(--surface);stroke-width:3;transition:transform .15s ease,fill .12s;transform-box:fill-box;transform-origin:center}.kit-sg-handle{cursor:grab}.kit-sg-handle:active,.kit-sg-handle.dragging{cursor:grabbing}.kit-sg-handle:hover .kit-sg-dot,.kit-sg-handle.dragging .kit-sg-dot{fill:var(--accent-2);transform:scale(1.18)}.kit-sg-handle:focus{outline:none}.kit-sg-handle:focus-visible .kit-sg-dot{stroke:var(--accent-2);stroke-width:4}.kit-sg-svg.dragging .kit-sg-fill,.kit-sg-svg.dragging .kit-sg-rect{transition:none}.kit-sg-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;width:100%;max-width:260px}.kit-sg-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line-2);background:var(--surface-2);color:var(--accent-2);font-size:14px;font-weight:600;line-height:1;padding:8px 14px;border-radius:10px;cursor:pointer;transition:background .14s,border-color .14s,transform .1s}.kit-sg-btn:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent)}.kit-sg-btn:active:not(:disabled){transform:scale(.96)}.kit-sg-btn:disabled{opacity:.45;cursor:default}.kit-sg-hint{font-size:12.5px;color:var(--ink-3)}.kit-sg-readout{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px;padding:8px 14px;background:var(--surface-2);border-radius:12px;font-size:13.5px;color:var(--ink-2);font-variant-numeric:tabular-nums}.kit-sg-readout b{color:var(--ink);font-weight:700}.kit-sg-readout .kit-sg-goal,.kit-sg-readout .kit-sg-goal b{color:var(--accent-2)}.kit-sg-readout .kit-sg-goal.ok{color:var(--accent);font-weight:700}@media(prefers-reduced-motion:reduce){.kit-sg-fill,.kit-sg-rect,.kit-sg-dot{transition:none}}.kit-path{display:flex;flex-direction:column;align-items:center;gap:12px;padding:6px 0 2px}.kit-path-bar{display:flex;flex-direction:column;align-items:center;gap:4px;min-height:34px}.kit-path-expr{font-weight:800;font-size:26px;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:.5px;transition:color .15s}.kit-path-expr.bad{color:var(--danger)}.kit-path-found{font-weight:700;font-size:13.5px;color:var(--ink-3);font-variant-numeric:tabular-nums}.kit-path-found b{color:var(--ink-2)}.kit-path-svg{display:block;max-width:100%;height:auto;overflow:visible;touch-action:none}.kit-path-line{stroke:var(--ink-3);opacity:.85}.kit-path-circle{fill:var(--surface-2);stroke:var(--line-2);stroke-width:2.5;filter:drop-shadow(0 2px 0 var(--line));transition:fill .14s,stroke .14s}.kit-path-num{fill:var(--ink);font-size:26px;font-weight:800;text-anchor:middle;font-variant-numeric:tabular-nums;pointer-events:none;-webkit-user-select:none;user-select:none;transition:fill .14s}.kit-path-cell.on .kit-path-circle{fill:var(--surface);stroke:var(--ink-3);stroke-width:3}.kit-path-cell.on .kit-path-num{fill:var(--ink)}.kit-path-cell.flash .kit-path-circle{fill:var(--grass);stroke:var(--grass-d)}.kit-path-cell.flash .kit-path-num{fill:var(--surface)}.kit-path-cell{animation:kit-path-drop .34s cubic-bezier(.22,1.2,.36,1) both;transform-box:fill-box;transform-origin:center}@keyframes kit-path-drop{0%{transform:translateY(-26px);opacity:0}to{transform:translateY(0);opacity:1}}.kit-path-hint{font-size:13px;color:var(--ink-3);text-align:center;text-wrap:balance}@media(prefers-reduced-motion:reduce){.kit-path-cell{animation:none}}.cf{display:flex;flex-direction:column;align-items:center;gap:12px;padding:4px 0 2px}.cf-current{display:inline-flex;align-items:baseline;gap:8px;font-variant-numeric:tabular-nums}.cf-current-frac{font-size:17px;font-weight:800;color:var(--ink)}.cf-current-slash{color:var(--accent);padding:0 1px}.cf-current-note{font-size:13px;font-weight:700;color:var(--accent-2)}.cf-shape{display:flex;justify-content:center}.cf-svg{display:block;max-width:100%;height:auto;overflow:visible;touch-action:manipulation}.cf-part{fill:var(--surface-2);transition:fill .15s ease;-webkit-tap-highlight-color:transparent}.cf-part.clickable{cursor:pointer}.cf-part.clickable:hover{fill:var(--line-2)}.cf-part.on{fill:var(--accent)}.cf-part.clickable.on:hover{fill:var(--accent-2)}.cf-svg--pie .cf-part,.cf-svg--grid .cf-part,.cf-svg--tri .cf-part{stroke:var(--surface);stroke-width:2}.cf-svg--bar .cf-part{stroke:none}.cf-div{stroke:var(--surface);stroke-width:2;pointer-events:none}.cf-outline{fill:none;stroke:var(--line-2);stroke-width:1.5;pointer-events:none}.cf-controls{display:flex;gap:12px}.cf-btn{font-weight:700;font-size:15px;border-radius:13px;cursor:pointer;border:1.5px solid var(--line-2);background:var(--surface-2);color:var(--ink);padding:10px 18px;transition:transform .08s ease,background .15s ease,border-color .15s ease}.cf-btn:hover:enabled{border-color:var(--accent)}.cf-btn:active:enabled{transform:scale(.95)}.cf-btn:disabled{opacity:.45;cursor:default}.ab-root{display:flex;flex-direction:column;align-items:center;padding:8px 0 4px}.ab-degrees{height:46px;display:flex;align-items:center;justify-content:center;font-size:40px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;margin-bottom:6px;letter-spacing:-.01em}.ab-svg{display:block;max-width:100%;height:auto;overflow:visible;touch-action:none}.ab-hit{fill:transparent}.ab-hit,.ab-ray-arrow,.ab-vertex,.ab-knob{cursor:grab;touch-action:none}.ab-hit:active,.ab-ray-arrow:active,.ab-vertex:active,.ab-knob:active{cursor:grabbing}.ab-body{fill:var(--surface-2);stroke:none}.ab-fill{fill:var(--accent-soft);stroke:none}.ab-rim{fill:none;stroke:var(--line-2);stroke-width:2}.ab-rim-on{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round}.ab-dot{fill:var(--line-2);transition:fill .12s ease}.ab-dot.on{fill:var(--accent)}.ab-num,.ab-readout,.ab-track-end{stroke:none}.ab-num{fill:var(--ink-3);font-size:14px;font-weight:800;text-anchor:middle;font-variant-numeric:tabular-nums;transition:fill .12s ease}.ab-num.on{fill:var(--accent-2)}.ab-base{stroke:var(--ink-2);stroke-width:4;stroke-linecap:round}.ab-base-arrow{fill:var(--ink-2);stroke:none}.ab-ray{stroke:var(--accent);stroke-width:5;stroke-linecap:round;transition:stroke .12s}.ab-ray-arrow{fill:var(--accent);stroke:none}.ab-vertex{fill:var(--accent);stroke:var(--surface);stroke-width:3}.ab-readout{fill:var(--accent-2);font-size:22px;font-weight:800;text-anchor:middle;font-variant-numeric:tabular-nums}.ab-track{stroke:var(--line-2);stroke-width:8;stroke-linecap:round}.ab-track-fill{stroke:var(--accent);stroke-width:8;stroke-linecap:round}.ab-knob{fill:var(--accent);stroke:var(--surface);stroke-width:3.5;transition:fill .12s}.ab-knob:active{fill:var(--accent-2)}.ab-track-end{fill:var(--ink-3);font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}.ab-track-end-l{text-anchor:start}.ab-track-end-r{text-anchor:end}.ab-arc-num{fill:var(--accent-2);font-size:18px;font-weight:800;text-anchor:middle;stroke:none;font-variant-numeric:tabular-nums}.ab-knob-num{fill:var(--ink);font-size:15px;font-weight:800;text-anchor:middle;stroke:none;font-variant-numeric:tabular-nums}@media(prefers-reduced-motion:reduce){.ab-ray,.ab-handle,.ab-knob{transition:none}}.kit-pf{display:flex;justify-content:center;padding:6px 0 2px}.kit-pf-svg{display:block;max-width:100%;height:auto;overflow:visible;-webkit-user-select:none;user-select:none;touch-action:manipulation}.kit-pf-poly{fill:color-mix(in srgb,var(--surface-2) 70%,transparent);stroke:var(--line-2);stroke-width:3;stroke-linejoin:round}.kit-pf-anglemark{fill:none;stroke:var(--line-2);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.kit-pf-hit{fill:transparent}.kit-pf-dot{fill:var(--surface);stroke:var(--ink-3);stroke-width:2.5;transition:fill .14s,stroke .14s,transform .14s ease;transform-box:fill-box;transform-origin:center}.kit-pf-marker{outline:none}.kit-pf-marker:hover:not(.disabled) .kit-pf-dot{stroke:var(--accent);transform:scale(1.12)}.kit-pf-marker:active:not(.disabled) .kit-pf-dot{transform:scale(.94)}.kit-pf-marker:focus-visible .kit-pf-dot{stroke:var(--accent-2);stroke-width:4}.kit-pf-marker.selected .kit-pf-dot{fill:var(--accent-soft);stroke:var(--accent);stroke-width:3.5}.kit-pf-marker.disabled{pointer-events:none}@media(prefers-reduced-motion:reduce){.kit-pf-dot{transition:fill .14s,stroke .14s}}.kit-tc{display:flex;flex-direction:column;align-items:center;gap:4px}.kit-tc-table{display:inline-block;border:2px solid var(--line-2);border-radius:14px;overflow:hidden;background:var(--surface)}.kit-tc-row{display:grid;grid-template-columns:1fr 1fr}.kit-tc-row+.kit-tc-row .kit-tc-cell{border-top:1px solid var(--line)}.kit-tc-cell{min-width:92px;min-height:60px;padding:10px 20px;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.kit-tc-cell+.kit-tc-cell{border-left:1px solid var(--line)}.kit-tc-num{font-size:26px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1}.kit-tc-head .kit-tc-cell{min-height:0;padding:8px 20px;background:var(--surface-2)}.kit-tc-h{font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}.kit-tc-slot{font-family:inherit;cursor:pointer;background:transparent;border:none;transition:background .15s,box-shadow .15s,transform .08s}.kit-tc-slot.empty{background:repeating-linear-gradient(45deg,var(--surface-2),var(--surface-2) 6px,transparent 6px,transparent 12px);box-shadow:inset 0 0 0 2px var(--line-2);border-radius:10px;color:var(--ink-3)}.kit-tc-slot.filled{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent);border-radius:10px}.kit-tc-slot.filled .kit-tc-num{color:var(--accent-2)}.kit-tc-slot.active{box-shadow:inset 0 0 0 2.5px var(--accent);background:var(--accent-soft)}.kit-tc-slot.empty:hover{box-shadow:inset 0 0 0 2px var(--accent)}.kit-tc-slot.filled:hover{background:var(--surface-2)}.kit-tc-slot:active{transform:scale(.96)}.kit-tc-slot:disabled{cursor:default;transform:none}.kit-tc-label{font-size:12px;color:var(--ink-3);margin:14px 0 8px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.kit-tc-bank{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:22px;max-width:320px}.kit-tc-tile{min-width:46px;height:46px;padding:0 12px;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;font-family:inherit;font-variant-numeric:tabular-nums;line-height:1;-webkit-user-select:none;user-select:none;cursor:pointer;color:var(--ink);background:var(--surface-2);border:1px solid var(--line-2);border-radius:12px;transition:transform .12s ease,box-shadow .12s ease,opacity .15s}.kit-tc-tile:hover{transform:translateY(-2px);box-shadow:0 4px 10px #00000014}.kit-tc-tile:active{transform:scale(.95)}.kit-tc-tile.used{opacity:.32;cursor:default;transform:none;box-shadow:none}.kit-tc-tile:disabled{cursor:default}.kit-ftree{display:flex;flex-direction:column;align-items:center;gap:14px}.kit-ftree-svg{display:block;overflow:visible}.kit-ftree-line{stroke:var(--line-2);stroke-width:2.5;stroke-linecap:round}.kit-ftree-circle{fill:var(--surface);stroke:var(--line-2);stroke-width:2;transition:fill .15s,stroke .15s}.kit-ftree-num{fill:var(--ink);font-size:22px;font-weight:800;font-variant-numeric:tabular-nums;pointer-events:none;-webkit-user-select:none;user-select:none}.kit-ftree-node.given .kit-ftree-circle{fill:var(--surface-2);stroke:var(--line-2)}.kit-ftree-node.blank{cursor:pointer}.kit-ftree-node.blank.empty .kit-ftree-circle{fill:var(--surface-2);stroke:var(--accent);stroke-width:2.5;stroke-dasharray:5 4}.kit-ftree-node.blank.empty:hover .kit-ftree-circle{fill:var(--accent-soft)}.kit-ftree-node.blank.active .kit-ftree-circle{fill:var(--accent-soft);stroke:var(--accent-2);stroke-width:3.5;stroke-dasharray:none}.kit-ftree-node.blank.full .kit-ftree-circle{fill:var(--surface);stroke:var(--accent);stroke-width:2.5}.kit-ftree-node.blank.full .kit-ftree-num{fill:var(--accent-2)}.kit-ftree-node.blank.full:hover .kit-ftree-circle{fill:var(--accent-soft)}.kit-ftree-bank{display:flex;flex-wrap:wrap;align-content:flex-start;justify-content:center;gap:8px;max-width:340px}.kit-ftree-tile{min-width:46px;height:46px;padding:0 12px;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;font-family:inherit;font-variant-numeric:tabular-nums;line-height:1;-webkit-user-select:none;user-select:none;cursor:pointer;color:var(--ink);background:var(--surface-2);border:1px solid var(--line-2);border-radius:12px;transition:transform .12s ease,box-shadow .12s ease,opacity .15s}.kit-ftree-tile:hover{transform:translateY(-2px);box-shadow:0 4px 10px #00000014}.kit-ftree-tile:active{transform:scale(.95)}.kit-ftree-tile.used,.kit-ftree-tile:disabled{cursor:default;transform:none;box-shadow:none;opacity:.32}.kit-step{display:flex;flex-direction:column;align-items:center;gap:14px;padding:6px 0 2px}.kit-step-shape{display:flex;justify-content:center}.kit-step-svg{display:block;max-width:100%;height:auto;overflow:visible;cursor:grab;touch-action:none}.kit-step-svg.drag{cursor:grabbing}.kit-step-rail{stroke:var(--line-2);stroke-width:8;stroke-linecap:round}.kit-step-fill{stroke:var(--accent);stroke-width:8;stroke-linecap:round;transition:none}.kit-step-tick{stroke:var(--line-2);stroke-width:3;stroke-linecap:round;transition:stroke .15s ease}.kit-step-tick.end{stroke-width:4}.kit-step-tick.on{stroke:var(--accent)}.kit-step-end{fill:var(--ink-2);font-size:16px;font-weight:800;text-anchor:middle;stroke:none;font-variant-numeric:tabular-nums}.kit-step-marker{fill:var(--line-2);stroke:none;transition:fill .15s ease;filter:drop-shadow(0 2px 2.5px rgba(0,0,0,.24))}.kit-step-marker.ready{fill:var(--accent)}.kit-step-sector{fill:var(--surface-2);stroke:var(--surface);stroke-width:1.5;transition:fill .18s ease}.kit-step-sector.on{fill:var(--accent)}.kit-step-outline{fill:none;stroke:var(--line-2);stroke-width:2.5}@media(prefers-reduced-motion:reduce){.kit-step-tick,.kit-step-marker,.kit-step-sector{transition:none}}.kit-step-controls{display:flex;gap:14px}.kit-step-btn{min-height:48px;min-width:108px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:800;font-size:15px;letter-spacing:.03em;border-radius:14px;cursor:pointer;border:1.5px solid var(--line-2);background:var(--surface-2);color:var(--ink);padding:10px 20px;transition:transform .08s ease,background .15s ease,border-color .15s ease}.kit-step-sign{font-size:21px;line-height:1}.kit-step-btn-add{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-2)}.kit-step-btn:hover:enabled{border-color:var(--accent)}.kit-step-btn:active:enabled{transform:scale(.95)}.kit-step-btn:disabled{opacity:.42;cursor:default}@media(prefers-reduced-motion:reduce){.kit-step-btn{transition:background .15s ease,border-color .15s ease}.kit-step-btn:active:enabled{transform:none}}.kit-compose{display:flex;flex-direction:column;align-items:center;gap:16px;padding:4px 0}.kit-compose-row{display:flex;align-items:stretch;justify-content:center;gap:14px;width:100%}.kit-compose-part{flex:1 1 0;min-width:0;max-width:220px;display:flex;flex-direction:column;align-items:center;gap:8px;min-height:150px;padding:14px 12px 10px;box-sizing:border-box}.kit-compose-items{flex:1;display:flex;flex-wrap:wrap;align-content:center;justify-content:center;gap:8px;width:100%}.kit-compose-item{width:46px;height:46px;padding:0;border-radius:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:30px;line-height:1;background:var(--surface);border:1.5px solid var(--line-2);transition:transform .08s ease,border-color .15s ease}.kit-compose-item:hover:enabled{border-color:var(--accent);transform:translateY(-2px)}.kit-compose-item:active:enabled{transform:scale(.92)}.kit-compose-item:disabled{cursor:default}.kit-compose-empty{color:var(--ink-3);font-size:13px;font-weight:600}.kit-compose-count{font-size:26px;font-weight:800;color:var(--accent-2);font-variant-numeric:tabular-nums;line-height:1}.kit-compose-plus{align-self:center;font-size:30px;font-weight:800;color:var(--ink-2)}.kit-compose-eq{font-size:30px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:.5px}.trace-root{display:flex;justify-content:center;padding:4px 0}.trace-svg{display:block;max-width:100%;height:auto;touch-action:none;-webkit-user-select:none;user-select:none;cursor:crosshair}.trace-frame{fill:var(--surface);stroke:var(--line-2);stroke-width:1.5}.trace-grid{stroke:var(--line-2);stroke-width:1;stroke-dasharray:3 5}.trace-ghost{fill:none;stroke:var(--line-2);stroke-width:11;stroke-linecap:round;stroke-linejoin:round}.trace-hidden{visibility:hidden}.trace-dash{fill:none;stroke:var(--accent);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:5 7;opacity:.9}.trace-paint{fill:none;stroke:var(--accent);stroke-width:11;stroke-linecap:round;stroke-linejoin:round}.trace-progress{transition:stroke-dashoffset 60ms linear}.trace-end{fill:var(--accent-2)}.trace-badge{fill:var(--accent);animation:trace-pulse 1.6s ease-in-out infinite;transform-origin:center;transform-box:fill-box}.trace-badge-arrow{stroke:var(--surface);stroke-width:2.4;stroke-linecap:round}.trace-badge-head{fill:var(--surface)}@keyframes trace-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.trace-shake{animation:trace-shake .3s ease;transform-origin:center;transform-box:fill-box}@keyframes trace-shake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}55%{transform:translate(3px)}80%{transform:translate(-1.5px)}}@media(prefers-reduced-motion:reduce){.trace-progress{transition:none}.trace-badge,.trace-shake{animation:none}}
