@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/instrument-sans-latin.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:Instrument Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/instrument-sans-latin-ext.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif-latin.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:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif-latin-ext.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#e7e6e2;--paper-deep:#dedcd7;--sheet:#f6f5f2;--sheet-raised:#fdfcfa;--ink:#14161a;--ink-soft:#55595e;--ink-faint:#8b9096;--rule:#d2d0c9;--rule-strong:#b6b3aa;--alert:#8d3128;--alert-wash:#f3e6e4;--alert-icon:#d9a29c;--on-ink:#f6f5f2;--on-ink-soft:#a7a9ab;--on-alert:var(--sheet);--font-body:"Instrument Sans", "Helvetica Neue", ui-sans-serif, system-ui, sans-serif;--font-display:"Instrument Serif", "Times New Roman", Georgia, serif;--step-hair:1px;--radius:3px;--radius-lg:5px;--ease:cubic-bezier(.2, .7, .2, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--shell:1280px;--gutter:clamp(1.25rem, 4vw, 3rem);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#14161a;--paper-deep:#0f1114;--sheet:#1a1d21;--sheet-raised:#22262b;--ink:#e8e7e3;--ink-soft:#a2a6ab;--ink-faint:#71767d;--rule:#2b2f35;--rule-strong:#3e444c;--alert:#c2705f;--alert-wash:#241917;--alert-icon:#8a4a40;--on-ink:#14161a;--on-ink-soft:#4d5157}*{box-sizing:border-box}html{background:var(--paper);min-width:320px;height:100%;color:var(--ink);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;line-height:1.5;overflow:hidden}body{min-width:320px;height:100%;margin:0;overflow:hidden}button,input,select{font:inherit;color:inherit;letter-spacing:inherit}button{-webkit-tap-highlight-color:transparent;touch-action:manipulation;cursor:pointer;background:0 0;border:0;margin:0;padding:0}button:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}img,canvas,svg{max-width:100%;display:block}h1,h2,h3,p,figure,fieldset,legend{border:0;margin:0;padding:0}fieldset{min-width:0}ol,ul{margin:0;padding:0;list-style:none}#root{height:100%}.sr-only{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:80;border-radius:var(--radius);background:var(--ink);color:var(--on-ink);transition:transform .16s var(--ease);padding:10px 14px;font-size:1rem;font-weight:500;text-decoration:none;position:fixed;top:12px;left:12px;transform:translateY(-180%)}.skip-link:focus-visible{transform:translateY(0)}.numeric{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.app{background:var(--paper);flex-direction:column;block-size:100svh;display:flex;overflow:hidden}.masthead{padding:.85rem var(--gutter);border-block-end:var(--step-hair) solid var(--rule);flex:none;justify-content:center;align-items:center;gap:1rem;display:flex;position:relative}.theme-toggle{position:absolute;inset-inline-end:var(--gutter)}.brand{color:var(--ink);font-family:var(--font-display);letter-spacing:-.01em;align-items:center;gap:.6rem;font-size:1.375rem;text-decoration:none;display:inline-flex}.brand-mark{grid-template-columns:repeat(2,1fr);gap:2px;block-size:14px;inline-size:14px;display:grid}.brand-mark i{background:var(--ink)}.brand-mark i:last-child{box-shadow:inset 0 0 0 var(--step-hair) var(--rule-strong);background:0 0}.button{border:var(--step-hair) solid transparent;border-radius:var(--radius);letter-spacing:-.005em;white-space:nowrap;min-block-size:40px;transition:background-color .14s var(--ease), color .14s var(--ease), border-color .14s var(--ease), transform .14s var(--ease);justify-content:center;align-items:center;gap:.45rem;padding:.55rem 1rem;font-size:1rem;font-weight:500;display:inline-flex}.button:active:not(:disabled){transform:translateY(1px)}.button:disabled{opacity:.4}.button-wide{min-block-size:44px;inline-size:100%}.button-primary{background:var(--ink);color:var(--on-ink)}.button-primary:hover:not(:disabled){background:color-mix(in oklab, var(--ink) 86%, var(--paper))}.button-outline{border-color:var(--rule-strong);color:var(--ink)}.button-outline:hover:not(:disabled){border-color:var(--ink);background:var(--sheet-raised)}.icon-button{border-radius:var(--radius);block-size:32px;inline-size:32px;color:var(--ink-faint);transition:color .14s var(--ease), background-color .14s var(--ease);place-items:center;display:grid}.icon-button:hover:not(:disabled){background:var(--paper-deep);color:var(--ink)}.icon-button:disabled{opacity:.35}.drop-sheet{border:var(--step-hair) solid var(--rule-strong);border-radius:var(--radius-lg);background:var(--sheet);text-align:center;min-block-size:0;transition:border-color .18s var(--ease), background-color .18s var(--ease);place-items:center;padding:1.5rem;display:grid;position:relative;overflow:hidden}.drop-sheet.is-compact{border-color:var(--rule);text-align:start;background:0 0;min-block-size:0;padding:.6rem .75rem}.drop-sheet.is-dragging{border-color:var(--ink);background:var(--sheet-raised)}.halftone{opacity:.13;pointer-events:none;block-size:100%;inline-size:100%;transition:opacity .2s var(--ease);position:absolute;inset:0}.drop-sheet.is-dragging .halftone{opacity:.24}.drop-sheet.is-compact .halftone{opacity:.06}.drop-content{z-index:1;justify-items:center;gap:.7rem;padding:1.25rem 1.5rem;display:grid;position:relative}.drop-sheet.is-compact .drop-content{grid-auto-flow:column;place-items:center start;gap:.75rem;padding:0}.drop-state{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);font-size:clamp(1.75rem,3.4vw,2.25rem);line-height:1.08}.drop-sheet.is-compact .drop-state{font-family:var(--font-body);letter-spacing:0;font-size:1rem;font-weight:500}.drop-sub{color:var(--ink);letter-spacing:-.005em;font-size:1rem}.link-button{color:var(--ink);text-underline-offset:4px;font-weight:600;text-decoration:underline;text-decoration-thickness:1px}.link-button:hover{text-decoration-thickness:2px}.sheet-corner{border:var(--step-hair) solid var(--ink);opacity:0;block-size:10px;inline-size:10px;transition:opacity .16s var(--ease);position:absolute}.drop-sheet.is-dragging .sheet-corner{opacity:1}.sheet-corner-tl{border-block-end:0;border-inline-end:0;inset-block-start:7px;inset-inline-start:7px}.sheet-corner-tr{border-block-end:0;border-inline-start:0;inset-block-start:7px;inset-inline-end:7px}.sheet-corner-bl{border-block-start:0;border-inline-end:0;inset-block-end:7px;inset-inline-start:7px}.sheet-corner-br{border-block-start:0;border-inline-start:0;inset-block-end:7px;inset-inline-end:7px}.frame-plate img{object-fit:cover;block-size:100%;inline-size:100%}.landing{inline-size:min(var(--shell), 100% - var(--gutter) * 2);text-align:center;flex:1;grid-template-rows:auto minmax(0,1fr);align-content:center;justify-items:center;gap:clamp(1.75rem,4vw,3rem);min-block-size:0;margin-inline:auto;padding-block:clamp(1.5rem,3.5vw,2.75rem);display:grid}.landing h1{font-family:var(--font-display);letter-spacing:-.03em;font-size:clamp(2.25rem,6vw,4.5rem);font-weight:400;line-height:1}.landing h1 .line{display:block}.landing .drop-sheet{block-size:100%;max-block-size:27rem;inline-size:min(100%,40rem)}.workspace{gap:var(--gutter);inline-size:min(var(--shell), 100% - var(--gutter) * 2);flex:1;grid-template-columns:minmax(0,1fr) 19rem;min-block-size:0;margin-inline:auto;padding-block:clamp(1rem,2.4vw,1.75rem);display:grid}.contact-sheet{border:var(--step-hair) solid var(--rule);border-radius:var(--radius-lg);background:var(--sheet);flex-direction:column;min-block-size:0;display:flex;overflow:hidden}.sheet-header{border-block-end:var(--step-hair) solid var(--rule);flex:none;justify-content:space-between;align-items:center;gap:.5rem;block-size:45px;padding-inline:.75rem;display:flex}.sheet-count{color:var(--ink-faint);font-size:1rem}.sheet-tools,.sheet-header .confirm{margin-inline-start:auto}.sheet-header .confirm-button,.sheet-header .icon-button{min-block-size:32px;padding-inline:.5rem;font-size:1rem}.sheet-header .confirm-button{align-items:center;padding-block:0;display:inline-flex}.frames{overscroll-behavior:contain;flex:1;min-block-size:0;overflow-y:auto}.frame{border-block-end:var(--step-hair) solid var(--rule);grid-template-columns:3.75rem minmax(0,1fr) auto 4rem auto;align-items:center;gap:.85rem;padding:.55rem .75rem;display:grid}.frame:last-child{border-block-end:0}.frame-plate{border:var(--step-hair) solid var(--rule);background:var(--paper-deep);border-radius:2px;block-size:2.75rem;inline-size:3.75rem;position:relative;overflow:hidden}.plate-busy{border-radius:inherit;position:absolute;inset:0;overflow:hidden}.plate-busy:before{content:"";background:linear-gradient(100deg, transparent 20%, color-mix(in srgb, var(--ink) 30%, transparent) 50%, transparent 80%);will-change:transform;block-size:100%;inline-size:150%;animation:1.1s linear infinite sweep;position:absolute;inset-block:0;inset-inline-start:0}@keyframes sweep{0%{transform:translate(-100%)}to{transform:translate(100%)}}.frame-info{min-inline-size:0}.frame-name{letter-spacing:-.005em;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:500;overflow:hidden}.frame-meta{color:var(--ink-faint);font-size:1rem}.frame-error{color:var(--alert);margin-block-start:.2rem;font-size:1rem}.frame-figures{color:var(--ink-faint);align-items:center;gap:.35rem;font-size:1rem;display:flex}.figure-before{text-decoration:line-through;-webkit-text-decoration-color:var(--rule-strong);text-decoration-color:var(--rule-strong)}.figure-arrow{color:var(--rule-strong)}.figure-arrow.is-empty{opacity:.4}.figure-after{color:var(--ink);font-weight:600}.frame-state{place-items:center end;font-size:1rem;display:grid}.saving{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}.saving.is-negative,.readout-saving.is-negative{color:var(--alert)}.frame-working{place-items:center;display:grid}.pulse{background:var(--ink);block-size:6px;inline-size:6px;animation:blink 1s var(--ease) infinite;border-radius:50%}@keyframes blink{0%,to{opacity:.2}50%{opacity:1}}.frame-failed{color:var(--alert);display:grid}.frame-actions{justify-content:flex-end;align-items:center;gap:.1rem;display:flex}.frame.is-confirming .frame-plate,.frame.is-confirming .frame-info,.frame.is-confirming .frame-figures,.frame.is-confirming .frame-state{opacity:.4;transition:opacity .16s var(--ease)}.confirm{align-items:center;gap:.35rem;display:flex}.frame.is-confirming .frame-actions .icon-button{display:none}.confirm-button{border:var(--step-hair) solid var(--rule-strong);border-radius:var(--radius);min-block-size:28px;color:var(--ink-soft);white-space:nowrap;transition:background-color .14s var(--ease), color .14s var(--ease), border-color .14s var(--ease);padding:.2rem .55rem;font-size:1rem;font-weight:500}.confirm-button:hover{border-color:var(--ink);color:var(--ink)}.confirm-button.is-yes{border-color:var(--alert);background:var(--alert);color:var(--on-alert)}.confirm-button.is-yes:hover{border-color:var(--alert);background:color-mix(in oklab, var(--alert) 88%, var(--ink));color:var(--on-alert)}.frame.state-error{background:var(--alert-wash)}.sheet-tail{border-block-start:var(--step-hair) solid var(--rule);flex:none;padding:.6rem .75rem}.console{border:var(--step-hair) solid var(--rule);border-radius:var(--radius-lg);background:var(--sheet);flex-direction:column;gap:.75rem;min-block-size:0;padding:.9rem;display:flex}.segmented{border:var(--step-hair) solid var(--rule);border-radius:var(--radius);background:var(--paper-deep);isolation:isolate;flex:none;grid-auto-columns:1fr;grid-auto-flow:column;padding:2px;display:grid;position:relative}.segment-thumb{z-index:-1;background:var(--ink);border-radius:2px;position:absolute}.segment{min-block-size:34px;color:var(--ink-soft);transition:color .16s var(--ease);border-radius:2px;font-size:1rem;font-weight:500;position:relative}.segment:hover{color:var(--ink)}.segment[data-active=true],.segment[data-active=true]:hover{color:var(--on-ink)}.levels-group{flex:0 auto;min-block-size:0}.levels{border:var(--step-hair) solid var(--rule);border-radius:var(--radius);background:var(--paper-deep);isolation:isolate;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:1px;padding:2px;display:grid;position:relative;overflow:hidden}.level-thumb{z-index:-1;background:var(--ink);border-radius:2px;position:absolute}.level{text-align:center;text-overflow:ellipsis;white-space:nowrap;min-block-size:38px;inline-size:100%;min-inline-size:0;max-inline-size:100%;transition:color .16s var(--ease);border-radius:2px;place-items:center;padding:.55rem .4rem;font-size:1rem;font-weight:500;display:grid;position:relative;overflow:hidden}.level:hover{color:var(--ink)}.level[data-active=true],.level[data-active=true]:hover{color:var(--on-ink)}.level-caps{border:var(--step-hair) solid transparent;color:var(--ink-faint);text-align:center;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:1px;padding-inline:2px;font-size:1rem;display:grid}.level-caps span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.console-actions{flex:none;gap:.5rem;display:grid}.console-progress{background:var(--paper-deep);border-radius:1px;block-size:2px;overflow:hidden}.console-progress-fill{background:var(--ink);block-size:100%;transition:inline-size .26s var(--ease);display:block}.spinner{border:1.5px solid color-mix(in srgb, var(--on-ink) 40%, transparent);border-block-start-color:var(--on-ink);border-radius:50%;block-size:13px;inline-size:13px;animation:.62s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.readout{border-radius:var(--radius);background:var(--ink);color:var(--on-ink);flex:none;justify-content:space-between;align-items:baseline;gap:.75rem;margin-block-start:auto;padding:.75rem .85rem;display:flex}.readout-figure{font-family:var(--font-display);letter-spacing:-.02em;align-items:baseline;gap:.4rem;font-size:1.25rem;display:flex}.readout-before{color:var(--on-ink-soft);text-decoration:line-through;-webkit-text-decoration-color:var(--rule-strong);text-decoration-color:var(--rule-strong)}.readout-arrow{font-size:1rem}.readout-after{font-weight:400}.readout-saving{font-variant-numeric:tabular-nums;font-size:1rem;font-weight:600}.toast{z-index:50;border:var(--step-hair) solid var(--ink);border-radius:var(--radius);background:var(--ink);color:var(--on-ink);animation:toast-in .24s var(--ease-out) both;align-items:center;gap:.5rem;padding:.55rem .85rem;font-size:1rem;display:inline-flex;position:fixed;inset-block-end:1.25rem;inset-inline-start:50%;transform:translate(-50%)}.toast .icon{color:var(--on-ink-soft)}.toast.is-bad .icon{color:var(--alert-icon)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@media (width<=60rem){.workspace{grid-template-columns:minmax(0,1fr) 17rem}}@media (width<=52rem){.workspace{grid-template-rows:minmax(140px,1fr) auto;grid-template-columns:minmax(0,1fr)}.console{grid-template-columns:minmax(0,1fr);gap:.5rem;max-block-size:48svh;padding:.6rem;display:grid;overflow-y:auto}.level{padding:.5rem .25rem;font-size:1rem}.levels,.levels li{min-inline-size:0}.console-actions{grid-template-columns:minmax(0,1fr)}.readout{margin-block-start:0}.sheet-tail{padding-block:.45rem}.drop-sheet.is-compact{padding-block:.4rem}.drop-sheet.is-compact .drop-content{gap:.5rem}.drop-sheet.is-compact .drop-state{white-space:nowrap}.drop-sheet.is-compact .button{min-block-size:32px;padding-block:.25rem;padding-inline:.75rem}.frame{grid-template-columns:3.5rem minmax(0,1fr) auto;grid-template-areas:"plate info actions""plate figures state";row-gap:.3rem;padding-inline-end:.6rem}.frame-plate{grid-area:plate;block-size:2.5rem;inline-size:3.5rem}.frame-info{grid-area:info;align-self:center}.frame-figures{grid-area:figures;font-size:1rem}.frame-state{grid-area:state}.frame-actions{grid-area:actions}}@media (width<=52rem) and (height<=40rem){.console{max-block-size:44svh}}@media (width<=40rem){.landing h1{font-size:clamp(1.875rem,8vw,2.5rem)}}
