@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700&display=swap";:root{font-family:Manrope,sans-serif;color:#e8f0ed;background:#0d1714;font-synthesis:none;font-size:16px}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}main{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto}header{min-height:100px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 30px;border-bottom:1px solid #273a34}.mode-switch{display:flex;padding:3px;border:1px solid #30473e;border-radius:7px}.mode-switch button{padding:10px 14px;background:transparent;color:#91a79f;font-size:12px;white-space:nowrap}.mode-switch button.active{background:#27473d;color:#eef5f2}.mode-switch button:disabled{opacity:.35;cursor:not-allowed}h1{font-size:25px;margin:3px 0 0;letter-spacing:-.03em}.eyebrow{font:500 11px DM Mono,monospace;color:#8eaaa0;letter-spacing:.15em;margin:0}.import,button{background:#dda45d;color:#18201d;border:0;border-radius:7px;padding:12px 17px;font-weight:700;font-size:13px;cursor:pointer}.import input{display:none}.import-actions{display:flex;gap:9px}.import.secondary{background:transparent;color:#c7d4cf;border:1px solid #385047}.workspace{min-height:650px;height:calc(100vh - 137px);display:grid;grid-template-columns:clamp(310px,21vw,350px) minmax(440px,1fr) clamp(350px,24vw,410px)}aside{padding:28px 26px;border-right:1px solid #273a34;background:#101c18;overflow-y:auto}.results{border:0;border-left:1px solid #273a34}.step{display:flex;gap:14px;align-items:flex-start;margin-bottom:28px}.step>span{font:500 12px DM Mono;color:#dda45d;padding-top:4px}h2,h3,p{margin-top:0}h2{font-size:17px;margin-bottom:5px}h3{font-size:13px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px}.step p{color:#c3d0cb;font-size:13px;word-break:break-word;margin-bottom:4px}small,.hint{color:#829b92;font-size:12px;line-height:1.5}.panel{border-top:1px solid #273a34;padding:25px 0}.panel label{display:block;margin:18px 0}.panel label span{display:flex;justify-content:space-between;gap:12px;color:#afbeb9;font-size:13px}.panel b{color:#eef3f1;font:500 12px DM Mono;white-space:nowrap}.units-panel select,.block-controls select{width:100%;margin-top:10px;padding:11px 12px;color:#e6eeeb;background:#0c1713;border:1px solid #3c554b;border-radius:6px;font-size:13px}.crop-axis{display:grid;grid-template-columns:24px 1fr 1fr;gap:10px;align-items:center;border-top:1px solid #21342d}.crop-axis label{margin:12px 0}.axis-name{color:#dda45d;font:500 12px DM Mono}.crop-panel .hint{line-height:1.45}input[type=range]{width:100%;height:22px;accent-color:#dda45d;cursor:pointer}.ghost{width:100%;background:transparent;color:#b0c1bb;border:1px solid #3c554b;font-size:12px}.pick{width:100%;margin:5px 0 9px;background:#1a3028;color:#e4ece9;border:1px solid #4b6a5f;font-size:13px}.pick.active{color:#18201d;background:#dda45d;border-color:#dda45d}.landmark-guide{margin:10px 0 14px;padding:10px 12px 12px;border:1px solid #3c554b;border-radius:8px;background:#0c1713;text-align:center}.landmark-guide svg{display:block;width:100%;height:105px;margin-bottom:4px}.landmark-guide polygon,.landmark-guide polyline{fill:none;stroke:#536b62;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.landmark-guide .feature{stroke:#718b81}.landmark-guide .feature.active{stroke:#efb462;animation:landmark-pulse 1.6s ease-in-out infinite}.landmark-guide strong{display:block;color:#f1d1a8;font-size:13px}.landmark-guide span{display:block;margin-top:2px;color:#91a79f;font-size:11px}@keyframes landmark-pulse{0%,to{opacity:.78;filter:drop-shadow(0 0 2px #dda45d88)}50%{opacity:1;filter:drop-shadow(0 0 8px #efb462) drop-shadow(0 0 14px #dda45d66)}}@media(prefers-reduced-motion:reduce){.landmark-guide .feature.active{animation:none;filter:drop-shadow(0 0 6px #dda45daa)}}.apply-crop{width:100%;margin:14px 0 8px}.text-button{width:100%;background:transparent;color:#8ca39a;font-size:12px;padding:11px}.results.muted{opacity:.22;pointer-events:none}.blocking-sidebar>.step,.blocking-sidebar>.units-panel,.blocking-sidebar>.crop-panel,.blocking-sidebar>.panel:not(.block-controls){display:none}.blocking-results>:not(.block-readout){display:none}.block-controls{border-top:0;padding-top:0}.block-controls h2{margin:8px 0 18px;line-height:1.3}.target-circumference{display:flex;justify-content:space-between;gap:12px;padding:13px 14px;border-radius:7px;background:#172a23;color:#a9bbb5;font-size:12px}.target-circumference strong{color:#dda45d;font:500 14px DM Mono;white-space:nowrap}.layer-toggles{margin:24px 0 0;padding:13px 14px;border:1px solid #334b42;border-radius:8px}.layer-toggles legend{padding:0 6px;color:#8fa69e;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.layer-toggles label{display:flex;align-items:center;gap:9px;margin:9px 0}.layer-toggles input{accent-color:#dda45d}.layer-toggles label span{display:inline;color:#b7c6c1}.block-readout h2{margin:8px 0 22px;font-size:21px}.block-profile{margin:0 0 18px;padding:13px;border:1px solid #334b42;border-radius:10px;background:#0c1613}.block-profile-title{display:flex;justify-content:space-between;align-items:center;gap:10px;color:#a8bbb4;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.block-profile-title small{display:flex;align-items:center;gap:5px;font-size:9px;text-transform:none;letter-spacing:0}.block-profile-title i{display:inline-block;width:13px;height:0;border-top:2px solid}.block-profile-title .raw-key{border-color:#dda45d;opacity:.65}.block-profile-title .final-key{border-color:#72d5b4}.block-profile svg{display:block;width:100%;height:190px;margin-top:6px;overflow:visible}.block-profile path{fill:none;vector-effect:non-scaling-stroke}.block-profile .raw-profile{stroke:#dda45d;stroke-width:1.25;opacity:.65}.block-profile .final-profile{stroke:#72d5b4;stroke-width:2}.block-profile .front-axis{stroke:#70c7aa66;stroke-width:1;vector-effect:non-scaling-stroke}.block-profile .direction-label{fill:#9bd8c4;font-family:DM Mono,monospace;font-weight:500;text-anchor:middle;dominant-baseline:middle}.validation{margin:18px 0 4px;padding:14px;border:1px solid #75463f;border-radius:8px;background:#281b18;display:grid;gap:4px}.validation.valid{border-color:#3d6556;background:#14271f}.validation strong{font-size:13px}.validation span{color:#829b92;font-size:10px}.viewer{min-width:0;min-height:560px;overflow:hidden}.viewer canvas{display:block;width:100%;height:100%}.contour{height:250px;border:1px solid #334b42;border-radius:10px;margin:16px 0 24px;background:#0c1613}.contour svg{width:100%;height:100%}.contour path{fill:#dda45d12;stroke:#dda45d;stroke-width:2;vector-effect:non-scaling-stroke}.contour{position:relative}.contour path.inferred{fill:none;stroke:#ff806c;stroke-dasharray:5 4}.contour .fit-ellipse{fill:none;stroke:#70c7aa;stroke-width:1.5;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.contour .front-axis{stroke:#70c7aa88;stroke-width:1;vector-effect:non-scaling-stroke}.contour .direction-label{fill:#9bd8c4;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700;text-anchor:middle;dominant-baseline:middle}.closure-note{position:absolute;left:10px;bottom:8px;color:#ff9a89;font:10px DM Mono}.metric{min-width:0;padding:16px 0;border-top:1px solid #273a34;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;align-items:baseline}.metric span{color:#9db1aa;font-size:13px}.metric strong{font:500 25px DM Mono;white-space:nowrap}.metric small{grid-column:2;font-size:11px}.metric.primary{padding:19px 0}.metric.primary strong{color:#dda45d;font-size:42px}.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px}.hat-size{margin:0 0 16px;padding:15px 16px;border:1px solid #435d53;border-radius:8px;background:#13231e;display:grid;gap:5px}.hat-size span{color:#9db1aa;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.hat-size strong{color:#eef4f1;font:500 18px DM Mono;font-variant-numeric:tabular-nums}.hat-size small{font-size:10px}.results button{width:100%;margin-top:18px}.results button:disabled{opacity:.35;cursor:default}.error{color:#ff8a7d;font-size:12px}footer{padding:10px 30px;border-top:1px solid #273a34;color:#718a80;font:11px DM Mono}@media(max-width:1250px){.workspace{height:auto;grid-template-columns:300px minmax(440px,1fr)}.results{grid-column:1 / -1;border-top:1px solid #273a34}.contour{max-width:440px}}@media(max-width:760px){header{align-items:flex-start;flex-wrap:wrap;padding:18px}.mode-switch{order:3;width:100%}.mode-switch button{flex:1}.workspace{display:flex;flex-direction:column}.viewer{height:500px;order:-1}aside{border:0;border-top:1px solid #273a34}.results{padding-bottom:36px}}.transition-help{font-size:12px;line-height:1.5;color:#a5b5ae;margin:0 0 16px}.project-controls{border-bottom:1px solid #273a34;padding-bottom:18px;margin-bottom:22px}.project-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.project-actions button,.project-actions .import{padding:10px 8px;font-size:11px;text-align:center}.project-actions button:disabled,.project-actions .import:has(input:disabled){opacity:.5;cursor:wait}.step small a{color:inherit;text-decoration:underline;text-underline-offset:2px}
