@font-face{font-family:Epilogue;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ab49af76d7c009a9-s.1-0pj82ghqjo9.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Epilogue;font-style:normal;font-weight:400;font-display:swap;src:url(../media/106228f661107065-s.2jqbow-w8jxdq.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Epilogue;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9e3b2749d7e186a3-s.p.1gz0im97vmwrs.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Epilogue;font-style:normal;font-weight:600;font-display:swap;src:url(../media/ab49af76d7c009a9-s.1-0pj82ghqjo9.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Epilogue;font-style:normal;font-weight:600;font-display:swap;src:url(../media/106228f661107065-s.2jqbow-w8jxdq.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Epilogue;font-style:normal;font-weight:600;font-display:swap;src:url(../media/9e3b2749d7e186a3-s.p.1gz0im97vmwrs.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Epilogue;font-style:normal;font-weight:700;font-display:swap;src:url(../media/ab49af76d7c009a9-s.1-0pj82ghqjo9.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Epilogue;font-style:normal;font-weight:700;font-display:swap;src:url(../media/106228f661107065-s.2jqbow-w8jxdq.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Epilogue;font-style:normal;font-weight:700;font-display:swap;src:url(../media/9e3b2749d7e186a3-s.p.1gz0im97vmwrs.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Epilogue Fallback;src:local(Arial);ascent-override:71.15%;descent-override:21.16%;line-gap-override:0.0%;size-adjust:111.04%}.WzOYoW_className{font-family:Epilogue,Epilogue Fallback;font-style:normal}.WzOYoW_variable{--font-epilogue:"Epilogue", "Epilogue Fallback"}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--space-3xs:2px;--space-2xs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:40px;--space-2xl:64px;--space-3xl:96px;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.266rem;--text-2xl:1.602rem;--text-3xl:2.027rem;--text-figure:clamp(3.25rem, 2.6rem + 2vw, 4rem);--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:ease-in-out;--spring:linear(0, .6 18%, 1.16 40%, .97 65%, 1);--dur-stagger:40ms;--dur-micro:80ms;--dur-quick:.15s;--dur-fast:.25s;--dur-medium:.35s;--dur-slow:.4s;--dur-very-slow:.5s;--container:1200px;--gutter:40px;--z-sticky:200;--z-bar:300;--z-toast:500;--color-paper:#fefdfb;--color-paper-2:#f6f5f2;--color-paper-3:#ecebe7;--color-ink:#0d0d0d;--color-ink-2:#292929;--color-muted:#525252;--color-rule:#dbdbd8;--color-rule-2:#eae9e7;--color-rule-strong:#81807e;--color-accent:#00736d;--color-accent-ink:#fefdfb;--color-accent-soft:#c3f3ef;--color-accent-soft-ink:#022d2b;--color-focus:#00736d;--color-error:#b7191c;--color-error-soft:#ffebe8;--color-overlay:#0d0d0d66;--shadow-float:0 16px 40px #16161629, 0 2px 6px #16161614;--shadow-thumb:0 1px 3px #00000029;--icon-color:#383838;--switch-track:#e5e5e2;--switch-track-hover:#dbdbd8;--switch-edge:#d1d1ce;--switch-thumb:#fefdfb;--switch-thumb-edge:#d1d1ce;--switch-icon:#484848;--switch-faint:#525252;--font-display:var(--font-epilogue), ui-sans-serif, system-ui, sans-serif;--font-body:var(--font-display);--radius-card:12px;--radius-control:10px;--radius-pill:999px;--rule-hair:1px;--tracking-display:-.035em}@supports (color:lab(0% 0 0)){:root{--color-paper:lab(99.442% -.1854 1.12419);--color-paper-2:lab(96.5493% -.246078 1.49966);--color-paper-3:lab(93.0837% -.365585 2.25191);--color-ink:lab(3.6999% 0 0);--color-ink-2:lab(16.48% 0 0);--color-muted:lab(35.04% -.0000149012 0);--color-rule:lab(87.2693% -.24569 1.49992);--color-rule-2:lab(92.482% -.185251 1.12431);--color-rule-strong:lab(53.6291% -.243455 1.50146);--color-accent:lab(43.1053% -32.5653 -5.15115);--color-accent-ink:lab(99.442% -.1854 1.12419);--color-accent-soft:lab(92.4511% -16.7144 -3.42705);--color-accent-soft-ink:lab(15.8313% -15.2177 -3.02114);--color-focus:lab(43.1053% -32.5653 -5.15115);--color-error:lab(40.095% 59.891 42.9038);--color-error-soft:lab(94.5132% 9.0484 5.32261);--color-overlay:lab(3.6999% 0 0/.4);--shadow-float:0 16px 40px lab(7.22637% -.0000149012 0/.16), 0 2px 6px lab(7.22637% -.0000149012 0/.08);--shadow-thumb:0 1px 3px lab(0% 0 0/.16);--icon-color:lab(23.44% -.0000149012 0);--switch-track:lab(90.7493% -.245839 1.49983);--switch-track-hover:lab(87.2693% -.24569 1.49992);--switch-edge:lab(83.7893% -.245541 1.50006);--switch-thumb:lab(99.442% -.1854 1.12419);--switch-thumb-edge:lab(83.7893% -.245541 1.50006);--switch-icon:lab(30.4% -.0000149012 0);--switch-faint:lab(35.04% -.0000149012 0)}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-paper:#0f0f0f;--color-paper-2:#171717;--color-paper-3:#202020;--color-ink:#f2f2f0;--color-ink-2:#d1d1cf;--color-muted:#a5a5a2;--color-rule:#303030;--color-rule-2:#232323;--color-rule-strong:#6f6f6f;--color-accent:#52cec4;--color-accent-ink:#0f0f0f;--color-accent-soft:#043e3c;--color-accent-soft-ink:#c7eeea;--color-focus:#52cec4;--color-error:#fb8276;--color-error-soft:#3b1c19;--color-overlay:#0009;--shadow-float:0 16px 40px #00000080, 0 0 0 1px #303030;--switch-track:#1f1f1f;--switch-track-hover:#292929;--switch-edge:#353535;--switch-thumb:#383838;--switch-thumb-edge:#484848;--switch-icon:#e4e4e4;--switch-faint:#a4a4a4;--icon-color:#929292}@supports (color:lab(0% 0 0)){:root[data-theme=dark]{--color-paper:lab(4.4379% 0 0);--color-paper-2:lab(7.78201% -.0000149012 0);--color-paper-3:lab(12.42% -.00000745058 .00000298023);--color-ink:lab(95.382% -.185341 1.12425);--color-ink-2:lab(83.782% -.185072 1.12445);--color-muted:lab(67.542% -.184506 1.1248);--color-rule:lab(19.96% -.0000149012 0);--color-rule-2:lab(13.58% 0 0);--color-rule-strong:lab(46.64% 0 0);--color-accent:lab(75.7617% -37.4472 -6.01544);--color-accent-ink:lab(4.4379% 0 0);--color-accent-soft:lab(22.905% -18.5994 -3.69252);--color-accent-soft-ink:lab(91.1771% -13.3587 -2.7472);--color-focus:lab(75.7617% -37.4472 -6.01544);--color-error:lab(68.4205% 46.4231 28.6961);--color-error-soft:lab(14.8497% 15.4402 9.47062);--color-overlay:lab(.112911% 0 0/.6);--shadow-float:0 16px 40px lab(0% 0 0/.5), 0 0 0 1px lab(19.96% -.0000149012 0);--switch-track:lab(11.84% 0 0);--switch-track-hover:lab(16.48% 0 0);--switch-edge:lab(22.28% 0 0);--switch-thumb:lab(23.44% -.0000149012 0);--switch-thumb-edge:lab(30.4% -.0000149012 0);--switch-icon:lab(90.72% .0000298023 -.0000119209);--switch-faint:lab(67.52% -.0000298023 0);--icon-color:lab(60.56% 0 0)}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-paper:#0f0f0f;--color-paper-2:#171717;--color-paper-3:#202020;--color-ink:#f2f2f0;--color-ink-2:#d1d1cf;--color-muted:#a5a5a2;--color-rule:#303030;--color-rule-2:#232323;--color-rule-strong:#6f6f6f;--color-accent:#52cec4;--color-accent-ink:#0f0f0f;--color-accent-soft:#043e3c;--color-accent-soft-ink:#c7eeea;--color-focus:#52cec4;--color-error:#fb8276;--color-error-soft:#3b1c19;--color-overlay:#0009;--shadow-float:0 16px 40px #00000080, 0 0 0 1px #303030;--switch-track:#1f1f1f;--switch-track-hover:#292929;--switch-edge:#353535;--switch-thumb:#383838;--switch-thumb-edge:#484848;--switch-icon:#e4e4e4;--switch-faint:#a4a4a4;--icon-color:#929292}@supports (color:lab(0% 0 0)){:root:not([data-theme=light]){--color-paper:lab(4.4379% 0 0);--color-paper-2:lab(7.78201% -.0000149012 0);--color-paper-3:lab(12.42% -.00000745058 .00000298023);--color-ink:lab(95.382% -.185341 1.12425);--color-ink-2:lab(83.782% -.185072 1.12445);--color-muted:lab(67.542% -.184506 1.1248);--color-rule:lab(19.96% -.0000149012 0);--color-rule-2:lab(13.58% 0 0);--color-rule-strong:lab(46.64% 0 0);--color-accent:lab(75.7617% -37.4472 -6.01544);--color-accent-ink:lab(4.4379% 0 0);--color-accent-soft:lab(22.905% -18.5994 -3.69252);--color-accent-soft-ink:lab(91.1771% -13.3587 -2.7472);--color-focus:lab(75.7617% -37.4472 -6.01544);--color-error:lab(68.4205% 46.4231 28.6961);--color-error-soft:lab(14.8497% 15.4402 9.47062);--color-overlay:lab(.112911% 0 0/.6);--shadow-float:0 16px 40px lab(0% 0 0/.5), 0 0 0 1px lab(19.96% -.0000149012 0);--switch-track:lab(11.84% 0 0);--switch-track-hover:lab(16.48% 0 0);--switch-edge:lab(22.28% 0 0);--switch-thumb:lab(23.44% -.0000149012 0);--switch-thumb-edge:lab(30.4% -.0000149012 0);--switch-icon:lab(90.72% .0000298023 -.0000119209);--switch-faint:lab(67.52% -.0000298023 0);--icon-color:lab(60.56% 0 0)}}}@media (max-width:60rem){:root{--gutter:24px}}@media (max-width:40rem){:root{--gutter:16px}}*,:before,:after{box-sizing:border-box}html,body{overflow-x:clip}html{-moz-text-size-adjust:100%;text-size-adjust:100%;scrollbar-color:var(--color-rule-strong) var(--color-paper);scroll-padding-top:88px}body{background:var(--color-paper);min-height:100dvh;color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-md);-webkit-font-smoothing:antialiased;caret-color:var(--color-accent);-webkit-tap-highlight-color:transparent;flex-direction:column;margin:0;line-height:1.55;display:flex}::selection{background:var(--color-accent-soft);color:var(--color-accent-soft-ink)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}a{color:inherit;text-underline-offset:.18em;text-decoration-thickness:1px}h1,h2,h3{font-family:var(--font-display);font-synthesis:none;letter-spacing:var(--tracking-display);overflow-wrap:break-word;text-wrap:balance;min-width:0;margin:0;font-weight:700;line-height:1.05}h2{font-size:var(--text-lg);letter-spacing:-.015em;line-height:1.2}h3{font-size:var(--text-md);letter-spacing:-.01em;line-height:1.25}p{text-wrap:pretty;margin:0}svg{flex-shrink:0;display:block}[hidden]{display:none!important}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}button{cursor:pointer}.num{font-variant-numeric:tabular-nums}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}.skip-link{z-index:var(--z-toast);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-control);background:var(--color-ink);color:var(--color-paper);font-weight:600;text-decoration:none;position:absolute;top:8px;left:8px;transform:translateY(-160%)}.skip-link:focus-visible{transform:none}.topbar{z-index:var(--z-sticky);background:color-mix(in oklch, var(--color-paper) 88%, transparent);-webkit-backdrop-filter:saturate(1.2)blur(10px);border-bottom:var(--rule-hair) solid var(--color-ink);position:sticky;top:0}.topbar-inner{align-items:center;gap:var(--space-lg);min-height:64px;display:flex}.wordmark{align-items:center;gap:var(--space-xs);letter-spacing:-.02em;white-space:nowrap;border-radius:6px;min-height:44px;margin-right:auto;font-weight:700;text-decoration:none;display:inline-flex}.wordmark svg{color:var(--color-ink)}.tool-nav{gap:var(--space-2xs);display:flex}.tool-nav a{align-items:center;gap:var(--space-xs);min-height:40px;padding-inline:var(--space-sm);border-radius:var(--radius-control);color:var(--color-ink-2);font-size:var(--text-sm);transition:background-color var(--dur-quick) var(--ease-out), color var(--dur-quick) var(--ease-out);font-weight:600;text-decoration:none;display:inline-flex}.tool-nav a:hover{background:var(--color-paper-2);color:var(--color-ink)}.tool-nav a[aria-current=page]{background:var(--color-paper-3);color:var(--color-ink)}.tool-nav .full{display:inline}.tool-nav .short{display:none}.bar-actions{align-items:center;gap:var(--space-sm);display:flex}.icon-btn{border:var(--rule-hair) solid transparent;border-radius:var(--radius-control);width:40px;height:40px;color:var(--color-ink-2);transition:background-color var(--dur-quick) var(--ease-out), color var(--dur-quick) var(--ease-out), transform var(--dur-quick) var(--ease-out);background:0 0;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--color-paper-2);color:var(--color-ink)}.icon-btn:active{transform:scale(.96)}.kbd{border:var(--rule-hair) solid var(--color-rule);background:var(--color-paper);min-width:22px;height:22px;color:var(--color-ink-2);font-size:var(--text-xs);font-variant-numeric:tabular-nums;border-bottom-width:2px;border-radius:6px;place-items:center;padding-inline:6px;font-weight:600;line-height:1;display:inline-grid}@media (max-width:40rem){.topbar{background:color-mix(in oklch, var(--color-paper) 97%, transparent)}.topbar-inner{gap:var(--space-xs);min-height:56px}.wordmark .wordmark-text,.tool-nav .full{display:none}.tool-nav .short{display:inline}.tool-nav a{min-height:44px;padding-inline:var(--space-md)}.bar-actions .shortcuts-btn{display:none}.icon-btn{width:44px;height:44px}}.theme-switch{border-radius:var(--radius-pill);background:var(--switch-track);border:var(--rule-hair) solid var(--switch-edge);cursor:pointer;-webkit-user-select:none;user-select:none;width:44px;height:24px;transition:background-color .2s ease, transform var(--dur-quick) ease;outline:none;flex-shrink:0;align-items:center;padding:2.5px;display:inline-flex;position:relative}.theme-switch:before{content:"";position:absolute;inset:-10px -2px}.theme-switch:hover{background:var(--switch-track-hover)}.theme-switch:active{transform:scale(.95)}.theme-switch:focus-visible{box-shadow:0 0 0 2px var(--color-paper), 0 0 0 4px var(--color-focus)}.theme-switch-track-icons{pointer-events:none;color:var(--switch-faint);justify-content:space-between;align-items:center;padding-inline:5.5px;display:flex;position:absolute;inset:0}.theme-switch-track-icons svg{opacity:0;transition:opacity var(--dur-quick) ease}.theme-switch-thumb{z-index:1;border-radius:var(--radius-pill);background:var(--switch-thumb);border:var(--rule-hair) solid var(--switch-thumb-edge);width:18px;height:18px;box-shadow:var(--shadow-thumb);color:var(--switch-icon);transition:transform .5s linear(0, .059, .196, .366, .538, .692, .818, .915, .983, 1.026, 1.049, 1.058, 1.057, 1.05, 1.041, 1.031, 1.021, 1.013, 1.007, 1.002, .999, .998, .997, .997, .997, .997, .998, .999, .999, .999, 1), background-color var(--dur-quick) ease, color var(--dur-quick) ease;justify-content:center;align-items:center;display:flex;position:relative}.theme-switch-thumb>svg{animation:.22s ease-out both icon-spin-in}.theme-switch .is-moon{--from:-140deg}.theme-switch-thumb .is-moon{display:none}.theme-switch .is-sun{--from:140deg}.theme-switch-track-icons .is-moon{opacity:.35}@keyframes icon-spin-in{0%{opacity:0;transform:rotate(var(--from)) scale(.5)}to{opacity:1;transform:none}}:root[data-theme=dark] .theme-switch-thumb{transform:translate(20px)}:root[data-theme=dark] .theme-switch-thumb .is-sun{display:none}:root[data-theme=dark] .theme-switch-thumb .is-moon{display:block}:root[data-theme=dark] .theme-switch-track-icons .is-moon{opacity:0}:root[data-theme=dark] .theme-switch-track-icons .is-sun{opacity:.35}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-switch-thumb{transform:translate(20px)}:root:not([data-theme=light]) .theme-switch-thumb .is-sun{display:none}:root:not([data-theme=light]) .theme-switch-thumb .is-moon{display:block}:root:not([data-theme=light]) .theme-switch-track-icons .is-moon{opacity:0}:root:not([data-theme=light]) .theme-switch-track-icons .is-sun{opacity:.35}}main{flex:1}.page-head{padding-block:var(--space-2xl) var(--space-xl)}.page-head h1{font-size:var(--text-3xl);max-width:20ch}.page-head .lead{margin-top:var(--space-sm);max-width:56ch;color:var(--color-ink-2);font-size:var(--text-lg);line-height:1.5}.workspace{gap:var(--space-2xl);padding-bottom:var(--space-3xl);grid-template-columns:minmax(0,1fr) minmax(0,380px);align-items:start;display:grid}@media (max-width:64rem){.workspace{gap:var(--space-xl);grid-template-columns:minmax(0,1fr);padding-bottom:120px}.page-head{padding-block:var(--space-xl) var(--space-lg)}}@media (max-width:40rem){.page-head h1{font-size:var(--text-2xl)}.page-head .lead{font-size:var(--text-md)}}.controls{align-items:end;gap:var(--space-md) var(--space-lg);margin-bottom:var(--space-lg);flex-wrap:wrap;display:flex}.control{gap:var(--space-xs);min-width:0;display:grid}.control-label{font-size:var(--text-sm);color:var(--color-ink-2);font-weight:600}.controls .control-mode{flex:320px;max-width:420px}.controls .control-preset{flex:0 240px}@media (max-width:40rem){.controls .control-mode,.controls .control-preset{flex-basis:100%;max-width:none}}.seg{gap:var(--space-2xs);padding:var(--space-2xs);border:var(--rule-hair) solid var(--color-rule);background:var(--color-paper-2);border-radius:14px;display:flex}.seg button{min-width:0;min-height:40px;padding-inline:var(--space-xs);border-radius:var(--radius-control);color:var(--color-ink-2);font-size:var(--text-sm);white-space:nowrap;transition:flex-grow var(--dur-slow) var(--spring), border-radius var(--dur-slow) var(--spring), background-color var(--dur-quick) var(--ease-out), color var(--dur-quick) var(--ease-out);background:0 0;border:0;flex:1 1 0;font-weight:600}.seg button:hover{color:var(--color-ink);background:var(--color-paper-3)}.seg button[aria-checked=true]{background:var(--color-ink);color:var(--color-paper)}.seg button:active{border-radius:6px;flex-grow:1.35}.seg button:focus-visible{outline-offset:0}@media (max-width:40rem){.seg button{min-height:44px}}.select-wrap{position:relative}.select-wrap svg.chev{pointer-events:none;color:var(--color-muted);position:absolute;top:50%;right:12px;translate:0 -50%}.select{appearance:none;width:100%;min-height:48px;padding:0 var(--space-xl) 0 var(--space-sm);border:var(--rule-hair) solid var(--color-rule-strong);border-radius:var(--radius-control);background:var(--color-paper);color:var(--color-ink);cursor:pointer;transition:border-color var(--dur-quick) var(--ease-out), background-color var(--dur-quick) var(--ease-out);font-weight:600}.select:hover{border-color:var(--color-ink-2)}.select option{background:var(--color-paper);color:var(--color-ink)}.input{width:100%;min-width:0;height:44px;padding:0 var(--space-sm);border:var(--rule-hair) solid var(--color-rule-strong);border-radius:var(--radius-control);background:var(--color-paper);color:var(--color-ink);font-variant-numeric:tabular-nums;transition:border-color var(--dur-quick) var(--ease-out), background-color var(--dur-quick) var(--ease-out)}.input::placeholder{color:var(--color-muted);opacity:1}.input:hover{border-color:var(--color-ink-2)}.input:focus-visible{border-color:var(--color-focus);box-shadow:0 0 0 3px color-mix(in oklch, var(--color-focus) 28%, transparent);outline:none}.input[aria-invalid=true]{border-color:var(--color-error);background:var(--color-error-soft)}.input.is-num{text-align:right}@media (max-width:40rem){.input,.select{font-size:16px}}.sheet-head,.row{align-items:start;gap:var(--space-xs);display:grid}.grade-cols{grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr)) 44px}.gpa-cols{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1.2fr) 44px}.plan-cols{grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr) minmax(0,2.4fr) 44px}.sheet-head{padding-bottom:var(--space-xs);border-bottom:var(--rule-hair) solid var(--color-ink);font-size:var(--text-sm);color:var(--color-muted)}.sheet-head .is-num{text-align:right;padding-right:var(--space-sm)}.rows{margin:0;padding:0;list-style:none}.row{padding-block:var(--space-xs);border-bottom:var(--rule-hair) solid var(--color-rule);position:relative}.row-field{gap:var(--space-2xs);min-width:0;display:grid}.row-field .field-label{font-size:var(--text-xs);color:var(--color-muted);display:none}.row-errors{gap:var(--space-3xs);grid-column:1/-1;display:grid}.field-error{gap:var(--space-xs);color:var(--color-error);font-size:var(--text-sm);align-items:start;line-height:1.4;display:flex}.field-error svg{margin-top:var(--space-3xs)}.row-remove{align-self:start}.row-remove:hover{color:var(--color-error);background:var(--color-error-soft)}.row-tag{position:absolute;top:-9px;right:52px}@media (max-width:40rem){.sheet-head{display:none}.rows{border-top:var(--rule-hair) solid var(--color-ink)}.row{padding-block:var(--space-md);gap:var(--space-sm) var(--space-xs)}.row-field .field-label{display:block}.grade-cols{grid-template-columns:repeat(3,minmax(0,1fr)) 44px}.grade-cols .f-name{grid-column:1/4}.grade-cols .row-remove{grid-area:1/4;align-self:end}.gpa-cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px}.gpa-cols .f-name{grid-column:1/3}.gpa-cols .row-remove{grid-area:1/3;align-self:end}.plan-cols{grid-template-columns:minmax(0,1fr) minmax(0,.6fr) 44px}.plan-cols .f-allowed{grid-column:1/-1}.plan-cols .row-remove{grid-area:1/3;align-self:end}.row-tag{right:0;top:var(--space-sm);grid-column:1/-1;justify-self:start;position:static}}.chips{gap:var(--space-2xs);flex-wrap:wrap;display:flex}.chip{min-width:36px;height:36px;padding-inline:var(--space-xs);border:var(--rule-hair) solid var(--color-rule-strong);border-radius:var(--radius-control);background:var(--color-paper);color:var(--color-muted);font-size:var(--text-sm);transition:background-color var(--dur-quick) var(--ease-out), color var(--dur-quick) var(--ease-out), border-color var(--dur-quick) var(--ease-out), transform var(--dur-quick) var(--ease-out);font-weight:600}.chip:hover{border-color:var(--color-ink-2);color:var(--color-ink)}.chip:active{transform:scale(.94)}.chip[aria-pressed=true]{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-paper)}.chips[data-invalid=true] .chip{border-color:var(--color-error)}@media (max-width:40rem){.chips{grid-template-columns:repeat(6,minmax(0,1fr));display:grid}.chip{min-width:0;height:44px;padding:0}}.sheet-foot{justify-content:space-between;align-items:center;gap:var(--space-md);margin-top:var(--space-md);flex-wrap:wrap;display:flex}.sheet-foot .left,.sheet-foot .right{align-items:center;gap:var(--space-xs);flex-wrap:wrap;display:flex}.table-error{gap:var(--space-xs);margin-top:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-control);background:var(--color-error-soft);color:var(--color-error);font-size:var(--text-sm);align-items:start;font-weight:600;display:flex}.table-error svg{margin-top:var(--space-3xs)}.hint{color:var(--color-muted);font-size:var(--text-sm)}.btn{justify-content:center;align-items:center;gap:var(--space-xs);min-height:44px;padding:0 var(--space-md);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-control);background:var(--color-paper-2);color:var(--color-ink);font-size:var(--text-sm);white-space:nowrap;transition:background-color var(--dur-quick) var(--ease-out), border-color var(--dur-quick) var(--ease-out), color var(--dur-quick) var(--ease-out), transform var(--dur-quick) var(--ease-out);font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:var(--color-paper-3);border-color:var(--color-rule-strong)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn--primary{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-paper)}.btn--primary:hover{background:var(--color-ink-2);border-color:var(--color-ink-2)}.btn--quiet{color:var(--color-ink-2);background:0 0;border-color:#0000}.btn--quiet:hover{background:var(--color-paper-2);color:var(--color-ink);border-color:#0000}.btn .kbd{margin-left:var(--space-3xs)}@media (hover:none){.btn .kbd{display:none}}.meter{gap:var(--space-xs);min-width:180px;display:grid}.meter-text{font-size:var(--text-sm);color:var(--color-ink-2)}.meter-text strong{color:var(--color-ink)}.meter-track{background:var(--color-rule);border-radius:2px;height:4px;position:relative;overflow:hidden}.meter-fill{transform-origin:0;background:var(--color-ink);transition:transform var(--dur-slow) var(--ease-out), background-color var(--dur-quick) var(--ease-out);position:absolute;inset:0}.meter[data-state=full] .meter-fill{background:var(--color-accent)}.meter[data-state=over] .meter-fill{background:var(--color-error)}.plan-inputs{gap:var(--space-sm);margin-bottom:var(--space-lg);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.plan-inputs .control-label{color:var(--color-ink-2);font-weight:400;font-size:var(--text-sm)}@media (max-width:40rem){.plan-inputs{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-inputs .control:last-child{grid-column:1/-1}}.result{position:sticky;top:88px}@media (max-width:64rem){.result{position:static}}.result-card{padding:var(--space-lg);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-card);background:var(--color-paper-2)}.result-caption{font-size:var(--text-sm);color:var(--color-ink-2)}.result-figure-row{justify-content:space-between;align-items:center;gap:var(--space-md);margin-top:var(--space-2xs);display:flex}.result-figure{white-space:nowrap;font-size:var(--text-figure);letter-spacing:-.045em;font-variant-numeric:tabular-nums;color:var(--color-ink);flex-wrap:nowrap;align-items:baseline;min-width:0;font-weight:700;line-height:1;display:flex}.result-figure.is-empty{color:var(--color-muted)}.result-figure .unit{letter-spacing:-.02em;margin-left:.04em;font-size:.45em}.result-note{margin-top:var(--space-sm);color:var(--color-ink-2);font-size:var(--text-sm);line-height:1.5}.result-note strong{color:var(--color-ink)}.odo{white-space:nowrap;align-items:baseline;display:inline-flex}.odo-digit{vertical-align:bottom;height:1lh;display:inline-block;overflow:hidden}.odo-digit>span{text-align:center;width:.62em;translate:0 calc(var(--d) * -1lh);transition:translate .8s var(--spring);display:block}.odo-digit>span>span{height:1lh;display:block}.odo-static{display:inline-block}.ring{flex-shrink:0;place-items:center;width:96px;height:84px;display:inline-grid;position:relative}.ring-letter{font-size:var(--text-3xl);letter-spacing:-.04em;font-weight:700;line-height:1;position:relative}.ring svg{width:100%;height:100%;color:var(--color-accent);position:absolute;inset:0;overflow:visible}.ring path{fill:none;stroke:currentColor;stroke-width:2.5px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0}.ring.is-drawing path{animation:ring-draw .7s var(--ease-out) both}.ring.is-muted{color:var(--color-muted)}.ring.is-muted svg{color:var(--color-rule-strong)}@keyframes ring-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.ring.is-looping path{animation:ring-loop 3.6s var(--ease-in-out) infinite}@keyframes ring-loop{0%{stroke-dashoffset:1px}32%{stroke-dashoffset:0}72%{stroke-dashoffset:0}to{stroke-dashoffset:-1px}}@media (prefers-reduced-motion:reduce){.ring.is-looping path{stroke-dashoffset:0;animation:none}}.scale{margin-top:var(--space-lg)}.scale-title{font-size:var(--text-sm);color:var(--color-ink-2);margin-bottom:var(--space-xs);font-weight:600}.scale-list{border-top:var(--rule-hair) solid var(--color-ink);margin:0;padding:0;list-style:none}.scale-row{align-items:center;gap:var(--space-sm);min-height:44px;padding-inline:var(--space-xs);border-bottom:var(--rule-hair) solid var(--color-rule);font-size:var(--text-sm);font-variant-numeric:tabular-nums;grid-template-columns:40px minmax(0,1fr) auto;display:grid}.scale-row .g{font-weight:700;font-size:var(--text-md)}.scale-row .band{color:var(--color-muted)}.scale-row .val{text-align:right;color:var(--color-ink-2);white-space:nowrap}.scale-row.is-here{background:var(--color-paper)}button.scale-row{border:0;border-bottom:var(--rule-hair) solid var(--color-rule);text-align:left;width:100%;transition:background-color var(--dur-quick) var(--ease-out);background:0 0}button.scale-row:hover{background:var(--color-paper-3)}button.scale-row[aria-checked=true]{background:var(--color-paper)}button.scale-row[aria-checked=true] .g{padding-inline:var(--space-xs);border-radius:var(--radius-pill);background:var(--color-ink);color:var(--color-paper);justify-self:start}button.scale-row:focus-visible{outline-offset:-2px}.tag{align-items:center;gap:var(--space-2xs);padding:var(--space-3xs) var(--space-xs);border-radius:var(--radius-pill);font-size:var(--text-xs);white-space:nowrap;background:var(--color-paper-3);color:var(--color-ink-2);font-weight:600;line-height:1.6;display:inline-flex}.tag--in{background:var(--color-accent-soft);color:var(--color-accent-soft-ink)}.tag--out{box-shadow:inset 0 0 0 1px var(--color-rule-strong);color:var(--color-muted);background:0 0}.tag--on{background:var(--color-ink);color:var(--color-paper)}.needs-list,.plans{margin:var(--space-md) 0 0;border-top:var(--rule-hair) solid var(--color-rule);padding:0;list-style:none}.needs-list li{justify-content:space-between;gap:var(--space-sm);padding-block:var(--space-xs);border-bottom:var(--rule-hair) solid var(--color-rule-2);font-size:var(--text-sm);font-variant-numeric:tabular-nums;display:flex}.needs-list li span:first-child{color:var(--color-ink-2);overflow-wrap:anywhere;min-width:0}.plans{border-top-color:var(--color-ink)}.plan{padding-block:var(--space-sm);border-bottom:var(--rule-hair) solid var(--color-rule)}.plan-head{justify-content:space-between;align-items:baseline;gap:var(--space-sm);font-size:var(--text-sm);display:flex}.plan-head strong{font-size:var(--text-md)}.plan-head span{color:var(--color-muted);font-variant-numeric:tabular-nums}.plan-grades{gap:var(--space-xs);margin:var(--space-xs) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.plan-grades li{align-items:center;gap:var(--space-xs);min-height:28px;padding:var(--space-3xs) var(--space-2xs) var(--space-3xs) var(--space-sm);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-paper);font-size:var(--text-xs);color:var(--color-ink-2);display:inline-flex}.plan-grades li b{min-width:28px;height:22px;padding-inline:var(--space-xs);border-radius:var(--radius-pill);background:var(--color-ink);color:var(--color-paper);font-size:var(--text-xs);place-items:center;display:inline-grid}.status{gap:var(--space-xs);margin-top:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-control);font-size:var(--text-sm);align-items:start;line-height:1.5;display:flex}.status svg{margin-top:var(--space-3xs)}.status--in{background:var(--color-accent-soft);color:var(--color-accent-soft-ink)}.status--out{background:var(--color-paper);box-shadow:inset 0 0 0 1px var(--color-rule-strong);color:var(--color-ink-2)}.mobile-bar{z-index:var(--z-bar);padding:var(--space-xs) var(--gutter) calc(var(--space-xs) + env(safe-area-inset-bottom));background:color-mix(in oklch, var(--color-paper) 92%, transparent);-webkit-backdrop-filter:blur(12px);border-top:var(--rule-hair) solid var(--color-ink);transition:transform var(--dur-fast) var(--ease-out);display:none;position:fixed;inset:auto 0 0;transform:translateY(110%)}.mobile-bar[data-show=true]{transform:none}@media (max-width:64rem){.mobile-bar{display:block}html{scroll-padding-bottom:calc(96px + env(safe-area-inset-bottom))}body:has(.rows :focus,.plan-inputs :focus) .mobile-bar{transform:translateY(110%)}.toast .btn{min-height:44px}}.mobile-bar a{justify-content:space-between;align-items:center;gap:var(--space-md);min-height:48px;text-decoration:none;display:flex}.mobile-bar .mb-label{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:var(--text-sm);color:var(--color-ink-2);overflow:hidden}.mobile-bar .mb-value{align-items:baseline;gap:var(--space-sm);font-size:var(--text-xl);letter-spacing:-.03em;font-variant-numeric:tabular-nums;flex-shrink:0;font-weight:700;display:flex}.mobile-bar .mb-value small{font-size:var(--text-md);letter-spacing:0}.toast-region{left:50%;bottom:calc(24px + env(safe-area-inset-bottom));z-index:var(--z-toast);pointer-events:none;width:max-content;max-width:calc(100vw - 32px);position:fixed;translate:-50%}@media (max-width:64rem){.toast-region{bottom:calc(88px + env(safe-area-inset-bottom))}}.toast{align-items:center;gap:var(--space-md);padding:var(--space-xs) var(--space-xs) var(--space-xs) var(--space-md);background:var(--color-ink);color:var(--color-paper);box-shadow:var(--shadow-float);font-size:var(--text-sm);pointer-events:auto;border-radius:12px;display:flex}.toast .btn{border-color:color-mix(in oklch, var(--color-paper) 30%, transparent);min-height:36px;color:var(--color-paper);background:0 0}.toast .btn:hover{background:color-mix(in oklch, var(--color-paper) 12%, transparent)}.dialog{width:calc(100% - 2 * var(--space-md));border-radius:var(--radius-card);background:var(--color-paper);max-width:480px;color:var(--color-ink);box-shadow:var(--shadow-float);border:0;padding:0}.dialog::backdrop{background:var(--color-overlay)}.dialog[open]{animation:dialog-in var(--dur-fast) var(--ease-out)}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px)scale(.96)}}.dialog-head{padding:var(--space-md) var(--space-md) var(--space-sm) var(--space-lg);justify-content:space-between;align-items:center;display:flex}.dialog-body{padding:0 var(--space-lg) var(--space-lg)}.keys{border-top:var(--rule-hair) solid var(--color-ink);grid-template-columns:minmax(0,1fr) auto;margin:0;display:grid}.keys dt,.keys dd{padding-block:var(--space-sm);border-bottom:var(--rule-hair) solid var(--color-rule);font-size:var(--text-sm);margin:0}.keys dt{color:var(--color-ink-2)}.keys dd{gap:var(--space-2xs);justify-content:end;align-items:center;display:flex}.footer{border-top:var(--rule-hair) solid var(--color-rule);padding-block:var(--space-xl);color:var(--color-ink-2);font-size:var(--text-sm)}.footer-inner{justify-content:space-between;gap:var(--space-md) var(--space-xl);flex-wrap:wrap;display:flex}.footer p{max-width:60ch}.footer nav ul{gap:var(--space-2xs) var(--space-lg);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.footer a{color:var(--color-ink);padding-block:var(--space-sm);font-weight:600;display:inline-block}.footer a:hover{-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent)}@media (max-width:64rem){.footer{padding-bottom:120px}}.lost{padding-block:var(--space-3xl)}.lost-code{font-size:var(--text-figure);letter-spacing:-.045em;font-variant-numeric:tabular-nums;font-weight:700;line-height:1}.lost h1{margin-top:var(--space-md);font-size:var(--text-3xl)}.lost p{margin-top:var(--space-sm);max-width:48ch;color:var(--color-ink-2);font-size:var(--text-lg)}.lost-actions{gap:var(--space-xs);margin-top:var(--space-xl);flex-wrap:wrap;display:flex}.kubai-icon{color:var(--icon-color)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.figure-word{letter-spacing:-.02em;white-space:normal;font-size:.5em;line-height:1.2}.hero{align-items:center;gap:var(--space-2xl);min-height:calc(100svh - 65px);padding-block:var(--space-2xl);grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);display:grid}.hero h1{max-width:11ch;font-size:clamp(2.5rem,1.4rem + 3.8vw,4.5rem);line-height:1}.hero-lead{margin-top:var(--space-lg);max-width:34ch;color:var(--color-ink-2);font-size:var(--text-xl);line-height:1.45}.hero-actions{gap:var(--space-sm);margin-top:var(--space-xl);flex-wrap:wrap;display:flex}.btn--lg{min-height:52px;padding-inline:var(--space-lg);font-size:var(--text-md)}.sample{margin:0}.sample-sheet{padding:var(--space-lg);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-card);background:var(--color-paper-2)}.sample-rows{border-top:var(--rule-hair) solid var(--color-ink);margin:0;padding:0;list-style:none}.sample-rows li{gap:var(--space-md);border-bottom:var(--rule-hair) solid var(--color-rule);min-height:44px;font-size:var(--text-sm);color:var(--color-ink-2);grid-template-columns:minmax(0,1fr) auto 48px;align-items:center;display:grid}.sample-rows li span:first-child{color:var(--color-ink);font-weight:600}.sample-rows li span:not(:first-child){text-align:right}.sample-result{justify-content:space-between;align-items:center;gap:var(--space-md);margin-top:var(--space-lg);display:flex}.sample-figure{margin-top:var(--space-2xs);font-size:var(--text-figure);letter-spacing:-.045em;white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:700;line-height:1}.sample-figure .unit{letter-spacing:-.02em;margin-left:.04em;font-size:.45em}@media (max-width:64rem){.hero{gap:var(--space-xl);min-height:0;padding-block:var(--space-xl) var(--space-2xl);grid-template-columns:minmax(0,1fr)}.sample{max-width:480px}}@media (max-width:40rem){.hero-lead{font-size:var(--text-lg)}.hero-actions .btn{flex:100%}}.footer nav ul{align-items:center}.footer a.footer-icon{border-radius:var(--radius-control);width:44px;height:44px;color:var(--color-ink-2);transition:color var(--dur-quick) var(--ease-out), background-color var(--dur-quick) var(--ease-out);place-items:center;padding:0;display:inline-grid}.footer a.footer-icon:hover{color:var(--color-ink);background:var(--color-paper-2)}.prose{max-width:68ch;padding-block:var(--space-2xl) var(--space-3xl)}.prose h1{font-size:var(--text-3xl)}.prose h2{margin-top:var(--space-xl);font-size:var(--text-xl)}.prose p{margin-top:var(--space-md);color:var(--color-ink-2);font-size:var(--text-lg);line-height:1.6}.prose .lead{margin-top:var(--space-sm);text-wrap:wrap}.prose ul.ruled{margin:var(--space-md) 0 0;border-top:var(--rule-hair) solid var(--color-ink);padding:0;list-style:none}.prose ul.ruled li{justify-content:space-between;gap:var(--space-2xs) var(--space-md);padding-block:var(--space-sm);border-bottom:var(--rule-hair) solid var(--color-rule);color:var(--color-ink-2);flex-wrap:wrap;display:flex}.prose ul.ruled li a{color:var(--color-ink);font-weight:600}.prose .actions{gap:var(--space-xs);margin-top:var(--space-lg);flex-wrap:wrap;display:flex}
