@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-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%;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]){appearance:button}::file-selector-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,utilities;:root{color:#19343a;font-synthesis:none;text-rendering:optimizelegibility;background:#e8eee8;font-family:Georgia,Times New Roman,serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input{font:inherit}.app-shell{background:radial-gradient(circle at 88% 8%,#f4c98b 0,#0000 25%),#e8eee8;min-height:100vh;padding:2rem 6vw 6vw}.app-header{max-width:760px;margin-bottom:3rem}.app-shell .eyebrow,.app-shell .section-kicker,.app-shell .unit-badge,.app-shell .live-indicator,.app-shell .sketch-label{letter-spacing:.12em;text-transform:uppercase;font-family:Trebuchet MS,sans-serif}.app-shell .eyebrow,.app-shell .section-kicker{color:#c15d39;font-size:.72rem;font-weight:700}.app-shell h1,.app-shell h2,.app-shell p{margin-top:0}.app-shell h1{letter-spacing:-.04em;max-width:700px;margin-bottom:1rem;font-size:clamp(2.8rem,7vw,6.4rem);font-weight:400;line-height:.92}.app-shell .intro{color:#55706f;max-width:460px;font-family:Trebuchet MS,sans-serif;font-size:1rem;line-height:1.6}.app-shell .workspace{grid-template-columns:minmax(280px,.9fr) minmax(360px,1.35fr);gap:1rem;max-width:1220px;display:grid}.app-shell .panel{background:#faf9f1d1;border:1px solid #19343a2e;padding:clamp(1.25rem,3vw,2.2rem);box-shadow:8px 8px #19343a14}.app-shell .controls-panel{grid-column:1;max-height:calc(100vh - 3rem);overflow:auto}.app-shell .chart-column{grid-column:2;align-self:start;gap:1rem;display:grid;position:sticky;top:1.5rem}.app-shell .panel-heading{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.8rem;display:flex}.app-shell .panel-heading h2{margin-bottom:0;font-size:1.7rem;font-weight:400}.app-shell .section-kicker{margin-bottom:.5rem}.app-shell .unit-badge,.app-shell .live-indicator{color:#c15d39;white-space:nowrap;border:1px solid #c15d39;padding:.35rem .5rem;font-size:.62rem}.app-shell .live-indicator{color:#537b50;border-color:#6d9568}.app-shell .controls-grid{gap:1.15rem;display:grid}.app-shell .input-group{border:0;border-bottom:1px solid #19343a29;min-width:0;margin:0;padding:0 0 1rem}.app-shell .input-group:last-child{border-bottom:0;padding-bottom:0}.app-shell .input-group legend{color:#537b50;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.85rem;padding:0;font-family:Trebuchet MS,sans-serif;font-size:.68rem;font-weight:700}.app-shell .input-group .dimension-control+.dimension-control{margin-top:1rem}.app-shell .bcad-import{border:1px dashed #19343a4d;margin-bottom:1.25rem;padding:.75rem;font-family:Trebuchet MS,sans-serif;font-size:.75rem}.app-shell .bcad-import label{color:#537b50;margin-bottom:.5rem;font-weight:700;display:block}.app-shell .bcad-import input[type=file]{width:100%;font-size:.75rem}.app-shell .bcad-url-loader{margin-top:.85rem}.app-shell .bcad-url-loader label{font-weight:400}.app-shell .bcad-url-row{grid-template-columns:1fr auto;gap:.5rem;display:grid}.app-shell .bcad-url-row input{background:#fffdf4;border:1px solid #19343a4d;min-width:0;padding:.45rem}.app-shell .bcad-url-row button{color:#fffdf4;cursor:pointer;background:#19343a;border:0;padding:.45rem .7rem}.app-shell .import-message{color:#55706f;margin:.6rem 0 0;line-height:1.4}.app-shell .import-details{color:#a0442b;margin-top:.6rem;line-height:1.4}.app-shell .import-details strong{font-weight:700}.app-shell .import-details ul{margin:.25rem 0 0 1.1rem;padding:0}.app-shell .import-warnings{color:#55706f;margin-top:.6rem;line-height:1.4}.app-shell .import-warnings summary{cursor:pointer;color:#537b50;font-weight:700}.app-shell .import-warnings ul{margin:.25rem 0 0 1.1rem;padding:0}.app-shell .control-heading{justify-content:space-between;gap:.75rem;margin-bottom:.45rem;font-family:Trebuchet MS,sans-serif;font-size:.8rem;display:flex}.app-shell .control-heading output{color:#55706f;white-space:nowrap}.app-shell .control-inputs{grid-template-columns:1fr 74px;align-items:center;gap:.75rem;display:grid}.app-shell input[type=range]{accent-color:#c15d39;width:100%}.app-shell input[type=number]{color:#19343a;background:#fffdf4;border:1px solid #19343a4d;width:100%;padding:.35rem .4rem}.app-shell .wheel-size-control select{color:#19343a;background:#fffdf4;border:1px solid #19343a4d;width:100%;padding:.55rem .6rem}.app-shell .validation-message{color:#a0442b;border-left:3px solid #c15d39;margin:1.5rem 0 0;padding:.75rem;font-family:Trebuchet MS,sans-serif;font-size:.8rem}.app-shell .frame-sketch{width:100%;min-height:310px;display:block;overflow:visible}.app-shell .chart-shell{min-width:0}.app-shell .chart-wheel{fill:#fffdf473;stroke:#19343a;stroke-width:4px}.app-shell .chart-ground{stroke:#a7b9af;stroke-width:3px;stroke-dasharray:10 12}.app-shell .chart-frame-tubes{fill:none;stroke:#19343a;stroke-linecap:round;stroke-linejoin:round;stroke-width:13px}.app-shell .chart-fork{fill:none;stroke:#537b50;stroke-linecap:round;stroke-width:10px}.app-shell .chart-reference{stroke:#6d9568;stroke-width:5px;stroke-linecap:round}.app-shell .chart-node{fill:#f4c98b;stroke:#19343a;stroke-width:4px}.app-shell .chart-fork-crown{fill:#f4c98b;stroke:#537b50;stroke-width:4px}.app-shell .chart-point-label{fill:#55706f;letter-spacing:.08em;font-family:Trebuchet MS,sans-serif;font-size:18px;font-weight:700}.app-shell .chart-annotation{fill:#c15d39}.app-shell .chart-extension{stroke:#c15d398c;stroke-width:2px;stroke-dasharray:7 7}.app-shell .chart-dimension-line,.app-shell .chart-angle-arc{fill:none;stroke:#c15d39;stroke-width:3px}.app-shell .chart-arrow{fill:#c15d39;stroke:#c15d39}.app-shell .chart-annotation-label{fill:#a0442b;letter-spacing:.08em;text-anchor:middle;font-family:Trebuchet MS,sans-serif;font-size:18px;font-weight:700}.app-shell .chart-legend{color:#55706f;text-transform:uppercase;letter-spacing:.05em;flex-wrap:wrap;gap:.85rem 1.25rem;margin-top:.25rem;font-family:Trebuchet MS,sans-serif;font-size:.7rem;display:flex}.app-shell .chart-legend span{align-items:center;gap:.4rem;display:inline-flex}.app-shell .legend-swatch{background:#19343a;width:18px;height:4px;display:inline-block}.app-shell .dimension-swatch{background:#c15d39}.app-shell .construction-swatch{background:#6d9568}.app-shell .ground-line{stroke:#a7b9af;stroke-width:1px;stroke-dasharray:5 7}.app-shell .wheel{fill:none;stroke:#19343a;stroke-width:2px}.app-shell .frame-line{fill:none;stroke:#c15d39;stroke-linecap:round;stroke-linejoin:round;stroke-width:4px}.app-shell .frame-line.accent{stroke:#537b50;stroke-width:3px}.app-shell .node{fill:#f4c98b;stroke:#19343a;stroke-width:2px}.app-shell .sketch-label{fill:#c15d39;font-size:10px;font-weight:700}.app-shell .sketch-caption{fill:#55706f;font-family:Trebuchet MS,sans-serif;font-size:11px}.app-shell .results-grid{grid-template-columns:repeat(4,1fr);gap:.75rem;display:grid}.app-shell .result-card{color:#f7f4e9;background:#19343a;min-height:86px;padding:.8rem}.app-shell .result-card span{color:#a7c0b1;text-transform:uppercase;margin-bottom:.7rem;font-family:Trebuchet MS,sans-serif;font-size:.68rem;display:block}.app-shell .result-card strong{font-size:1.25rem;font-weight:400}@media(max-width:820px){.app-shell{padding:2rem 1rem 3rem}.app-shell .workspace{grid-template-columns:1fr}.app-shell .controls-panel{grid-column:auto;max-height:none;overflow:visible}.app-shell .chart-column{grid-column:auto;position:static}.app-shell .results-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.app-shell h1{font-size:3.2rem}.app-shell .frame-sketch{min-height:245px}.app-shell .chart-point-label,.app-shell .chart-annotation-label{font-size:14px}.app-shell .control-inputs{grid-template-columns:1fr 68px}}
