:root{--sheet:#e9e4d6;--field:#f7f4ea;--ink:#1b1912;--ink-soft:#6b6355;--rule:#c9c2ae;--cut:#c43d33;--engrave:#2a66c4;--attention:#b07a12;--rule-hair:.5px;--rule-thin:1px;--rule-object:2px;--font-display:"Titan One", system-ui, sans-serif;--font-mono:ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--font-sans:system-ui, "Segoe UI", Roboto, sans-serif;font:13px/145% var(--font-sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--ink);background:var(--sheet);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--sheet:#0d1f2d;--field:#13293a;--ink:#f2f6fa;--ink-soft:#9fb8c9;--rule:#2d4a5e;--cut:#ff7062;--engrave:#6fb2ff;--attention:#f0b454}}#root{box-sizing:border-box;flex-direction:column;min-height:100svh;display:flex}body{margin:0}@font-face{font-family:Titan One;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/titan-one/TitanOne-Regular.woff2)format("woff2")}.sheet{box-sizing:border-box;border:var(--rule-thin) solid var(--rule);min-height:100vh;box-shadow:inset 0 0 0 4px var(--sheet), inset 0 0 0 5px var(--rule);background:var(--sheet);grid-template:"header header""control preview"1fr"title title"/320px 1fr;margin:12px;display:grid}.sheet-header{border-bottom:var(--rule-thin) solid var(--rule);grid-area:header;justify-content:space-between;align-items:baseline;gap:16px;padding:18px 24px 12px;display:flex}.wordmark{font-family:var(--font-display);letter-spacing:clamp(-.09em,-4vw,-.04em);color:#0000;-webkit-text-stroke:1.5px var(--ink);font-size:clamp(28px,4vw,44px);line-height:1}.sheet-meta{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap;font-size:11px}.control-pane,.preview-pane{box-sizing:border-box;min-width:0;min-height:0;padding:16px}.control-pane{border-right:var(--rule-thin) solid var(--rule);flex-direction:column;grid-area:control;gap:8px;display:flex;overflow-y:auto}.preview-pane{scrollbar-gutter:stable;text-align:left;grid-area:preview;padding-block-start:2.25rem;padding-inline-end:3.5rem;overflow:auto}.input-group{flex-direction:column;gap:8px;display:flex}.row-list{box-sizing:border-box;flex-direction:column;flex:none;gap:6px;width:100%;height:9.5rem;display:flex;overflow-y:auto}.row-list-item{flex:none;align-items:center;gap:6px;display:flex}.row-text-input{border:none;border-bottom:var(--rule-hair) solid var(--rule);min-width:0;font:inherit;color:var(--ink);background:0 0;outline:none;flex:auto;font-size:16px}.row-margin-fields{flex:none;gap:4px;display:flex}.margin-control{font-family:var(--font-mono);letter-spacing:.06em;color:var(--ink-soft);align-items:center;gap:2px;font-size:11px;display:flex}.margin-control-value,.strength-control-value,.output-width-control-value{color:var(--ink);border:var(--rule-thin) solid var(--ink);font:inherit;font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;background:0 0;border-radius:3px;padding:1px 4px}.margin-control-value{width:calc(3ch + 10px);font-size:11px}.row-insert-button,.row-remove-button,.row-add-button,.calculate-button,.export-button{font:inherit;color:var(--ink);border:var(--rule-thin) solid var(--ink);cursor:pointer;background:0 0;border-radius:3px}.row-insert-button:hover,.row-remove-button:hover,.row-add-button:hover,.calculate-button:hover:not(:disabled),.export-button:hover:not(:disabled){background:var(--ink);color:var(--sheet)}.row-insert-button,.row-remove-button{flex:none;width:20px;height:20px;padding:0;line-height:1}.row-add-button{flex:none;align-self:flex-start;margin-top:6px;padding:4px 10px;font-size:13px}.sanitize-notice{font-family:var(--font-sans);color:var(--attention);background:color-mix(in srgb, var(--attention) 12%, transparent);border:var(--rule-hair) solid var(--attention);border-radius:3px;flex:none;padding:8px 10px;font-size:13px}.preview-lines{color:var(--ink);position:relative}.preview-lines--boxed{box-sizing:content-box;border:var(--rule-object) solid var(--rule)}.preview-line{position:absolute;left:0}.preview-line--solid path{fill:currentColor;stroke:none}.preview-line--wireframe path{fill:none;stroke:currentColor;stroke-width:var(--rule-object)}.overlap-violation{stroke:var(--attention);stroke-width:var(--rule-object);stroke-dasharray:3 2}.preview-cut{display:block}.preview-cut .cut-line{fill:none;stroke:var(--cut);stroke-width:var(--rule-object);vector-effect:non-scaling-stroke}.preview-cut .engrave-line{fill:none;stroke:var(--engrave);stroke-width:var(--rule-object);vector-effect:non-scaling-stroke}.frame-preview-overlay{pointer-events:none;overflow:visible}.frame-preview-line{fill:none;stroke:var(--cut);stroke-width:var(--rule-object);vector-effect:non-scaling-stroke}.preview-error{font-family:var(--font-sans);color:var(--attention);font-size:13px}.dimension-annotation{color:var(--ink-soft);font-family:var(--font-mono);letter-spacing:.06em;font-variant-numeric:tabular-nums;pointer-events:none;font-size:11px;position:absolute}.dimension-annotation--width{flex-direction:column;align-items:center;gap:4px;padding-bottom:6px;display:flex;bottom:100%;left:0;right:0}.dimension-annotation--width .dimension-annotation-line{border-top:var(--rule-hair) solid var(--ink-soft);width:100%;display:block;position:relative}.dimension-annotation--width .dimension-annotation-line:before,.dimension-annotation--width .dimension-annotation-line:after{content:"";border-top:3px solid #0000;border-bottom:3px solid #0000;width:0;height:0;position:absolute;top:-3px}.dimension-annotation--width .dimension-annotation-line:before{border-right:5px solid var(--ink-soft);left:0}.dimension-annotation--width .dimension-annotation-line:after{border-left:5px solid var(--ink-soft);right:0}.dimension-annotation--height{align-items:center;gap:8px;padding-left:6px;display:flex;top:0;bottom:0;left:100%}.dimension-annotation--height .dimension-annotation-line{border-left:var(--rule-hair) solid var(--ink-soft);align-self:stretch;position:relative}.dimension-annotation--height .dimension-annotation-line:before,.dimension-annotation--height .dimension-annotation-line:after{content:"";border-left:3px solid #0000;border-right:3px solid #0000;width:0;height:0;position:absolute;left:-3px}.dimension-annotation--height .dimension-annotation-line:before{border-bottom:5px solid var(--ink-soft);top:0}.dimension-annotation--height .dimension-annotation-line:after{border-top:5px solid var(--ink-soft);bottom:0}.dimension-annotation-value{white-space:nowrap;transition:opacity .18s}.dimension-annotation-value--absent{opacity:.5}.mode-toggle{border:none;margin:0 0 16px;padding:0}.mode-toggle-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 6px;padding:0;font-size:11px}.mode-toggle-options{border:var(--rule-thin) solid var(--ink);border-radius:3px;display:inline-flex;overflow:hidden}.mode-toggle-option{cursor:pointer;color:var(--ink);padding:6px 12px;font-size:13px;position:relative}.mode-toggle-option:not(:last-child){border-right:var(--rule-thin) solid var(--ink)}.mode-toggle-option:has(input:checked){background:var(--ink);color:var(--sheet)}.mode-toggle-option:focus-within{outline:var(--rule-object) solid var(--ink);outline-offset:2px}.mode-toggle-option input{opacity:0;pointer-events:none;position:absolute}.mode-toggle-option--disabled{cursor:not-allowed;opacity:.45}.calculate-button{margin:0 0 16px;padding:6px 12px}.calculate-button[aria-busy=true]{cursor:progress}.calculate-button:disabled,.export-button:disabled{cursor:not-allowed;opacity:.45}.strength-control{border:none;margin:0 0 16px;padding:0}.strength-control-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);align-items:center;gap:6px;margin:0 0 6px;padding:0;font-size:11px;display:flex}.strength-control-value{letter-spacing:normal;text-transform:none;width:calc(3ch + 14px);font-size:11px}.strength-control-slider{width:100%;max-width:240px;accent-color:var(--ink);display:block}:is(.strength-control:has(input:disabled) .strength-control-label,.strength-control:has(input:disabled) .strength-control-value,.strength-control:has(input:disabled) .strength-control-slider){opacity:.45}.strength-control-value:disabled,.strength-control-slider:disabled{cursor:not-allowed}.frame-checkbox-row{color:var(--ink);cursor:pointer;align-items:center;gap:6px;margin:0 0 16px;font-size:13px;display:flex}.frame-checkbox-row input{accent-color:var(--ink)}.frame-checkbox-row:has(input:disabled){cursor:not-allowed;opacity:.45}.frame-checkbox-row input:disabled{cursor:not-allowed}.title-block{border-top:var(--rule-thin) solid var(--rule);grid-area:title;align-items:stretch;display:flex}.title-block-cell{box-sizing:border-box;border-right:var(--rule-thin) solid var(--rule);flex-direction:column;flex:auto;justify-content:center;gap:4px;min-width:0;padding:10px 16px;display:flex}.title-block-cell:last-child{border-right:none}.title-block-cell--action{flex:none;justify-content:center;align-items:flex-end}.title-block-caption{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);font-size:11px}.title-block-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:13px;transition:opacity .18s;overflow:hidden}.title-block-value--absent{opacity:.5}.output-width-control{border:none;margin:0;padding:0}.output-width-control-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);align-items:center;gap:6px;margin:0 0 4px;padding:0;font-size:11px;display:flex}.output-width-control-value{width:calc(5ch + 14px);font-size:13px}@media (prefers-reduced-motion:reduce){.dimension-annotation-value,.title-block-value{transition:none}}:focus-visible{outline:var(--rule-object) solid var(--ink);outline-offset:2px}@media (width<=48rem){.sheet{grid-template:"header""control""preview""title"/1fr}.control-pane{border-right:none;border-bottom:var(--rule-thin) solid var(--rule)}.wordmark{letter-spacing:-.06em}.title-block{flex-direction:column}.title-block-cell{border-right:none;border-bottom:var(--rule-thin) solid var(--rule)}.title-block-cell:last-child{border-bottom:none}.title-block-cell--action{align-items:stretch}}
