*{box-sizing:border-box}html,body{color:#eef2f8;-webkit-tap-highlight-color:transparent;text-align:start;background:#0a0c10;width:100%;height:100%;margin:0;font-family:system-ui,-apple-system,Segoe UI,Arial,Heebo,sans-serif;overflow:hidden}#canvas{width:100%;height:100%;display:block}#hud{top:max(.75rem, env(safe-area-inset-top));inset-inline:max(.75rem, env(safe-area-inset-left)) max(.75rem, env(safe-area-inset-right));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:auto;background:#080a0ec7;border-radius:.65rem;max-width:22rem;padding:.75rem .9rem;position:fixed}#hud h1{margin:0 0 .35rem;font-size:.92rem;font-weight:650}#hud.hud--calibrate,#hud.hud--measure{inset-inline:max(.75rem, env(safe-area-inset-left)) max(.75rem, env(safe-area-inset-right));text-align:center;width:auto;max-width:none;padding:.65rem .85rem .7rem;left:auto;right:auto;transform:none}#hud.hud--calibrate h1,#hud.hud--measure h1{margin-bottom:.4rem;font-size:1.25rem;font-weight:700}#hud.hud--calibrate>p,#hud.hud--measure>p{text-wrap:balance;font-size:.78rem;line-height:1.45}.hud-inline-link{color:#8ea4c8;font:inherit;line-height:inherit;cursor:pointer;background:0 0;border:none;margin:0;padding:0;text-decoration:underline;display:inline}.hud-inline-link:active{color:#b8cce8}.hud-emphasis-link{color:#f5f7fb;font:inherit;font-weight:800;line-height:inherit;letter-spacing:.01em;text-underline-offset:.14em;cursor:pointer;background:0 0;border:none;margin:0;padding:0;-webkit-text-decoration:underline #d4af37;text-decoration:underline #d4af37;text-decoration-thickness:.12em;display:inline}.hud-emphasis-link:active{color:#d4af37}#hud>p{color:#b4bcc8;margin:0;font-size:.8rem;line-height:1.4}.calibration-saved-toast{inset-inline:max(.75rem, env(safe-area-inset-left)) max(.75rem, env(safe-area-inset-right));top:max(.75rem, env(safe-area-inset-top));z-index:15;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#d8e4f4;text-wrap:balance;background:#0c121cf5;border:1px solid #8ea4c859;border-radius:.75rem;padding:.75rem .85rem;font-size:.78rem;line-height:1.45;position:fixed;box-shadow:0 8px 28px #00000059}.calibration-saved-toast.hidden{display:none}.confirm-dialog{z-index:25;padding:max(.75rem, env(safe-area-inset-top)) max(.75rem, env(safe-area-inset-right)) max(.75rem, env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left));justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-dialog.hidden{display:none}.confirm-panel{background:#12151c;border:1px solid #ffffff1a;border-radius:.9rem;width:min(100%,22rem);padding:1rem 1rem .95rem;position:relative;box-shadow:0 12px 40px #00000073}.confirm-panel h2{text-align:center;margin:0 0 .55rem;font-size:1rem;font-weight:700}.confirm-panel p{color:#b4bcc8;text-wrap:balance;margin:0;font-size:.82rem;line-height:1.5}.confirm-actions{flex-direction:column;gap:.45rem;margin-top:.85rem;display:flex}.confirm-secondary-button{color:#c8d0dc;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff24;border-radius:.6rem;width:100%;padding:.65rem .85rem;font-size:.84rem;font-weight:600}.confirm-secondary-button:active{background:#ffffff1a}.confirm-primary-button{margin-top:0}.stage-panel{inset-inline:max(.75rem, env(safe-area-inset-left)) max(.75rem, env(safe-area-inset-right));bottom:max(.75rem, env(safe-area-inset-bottom));z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#080a0eeb;border-radius:.85rem;max-height:min(52vh,22rem);padding:.8rem .9rem .9rem;position:fixed;overflow-y:auto}.stage-panel.hidden{display:none}.stage-label{letter-spacing:.04em;text-transform:uppercase;color:#8b93a1;margin:0 0 .55rem;font-size:.7rem;font-weight:600}.device-chip{color:#c8d0dc;text-align:start;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:#ffffff0d;border:1px solid #ffffff1f;border-radius:.55rem;width:100%;margin-top:.55rem;margin-bottom:0;padding:.55rem .7rem;font-size:.8rem;overflow:hidden}.device-chip:active{background:#ffffff1a}.field-label{color:#b4bcc8;font-size:.78rem}.eu-input-field{flex-direction:column;gap:.35rem;display:flex}.field-label-link{color:#d4af37;font:inherit;text-underline-offset:.15em;cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0;font-size:.78rem;text-decoration:underline}.field-label-link:active{opacity:.8}.eu-input-field input[type=number]{color:#eef2f8;text-align:end;direction:ltr;background:#ffffff0f;border:1px solid #ffffff24;border-radius:.55rem;width:100%;padding:.55rem .7rem;font-size:1rem;font-weight:600}.fit-slider-field,.size-slider-field{flex-direction:column;gap:.35rem;margin-top:.55rem;display:flex}.fit-slider-field input[type=range],.size-slider-field input[type=range]{width:100%}.mandrel-overlay{z-index:30;padding:max(.75rem, env(safe-area-inset-top)) max(.75rem, env(safe-area-inset-right)) max(.75rem, env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left));justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.mandrel-overlay.hidden{display:none}.mandrel-panel{background:#12151c;border-radius:.9rem;width:min(100%,26rem);max-height:min(88vh,36rem);padding:1rem;position:relative;overflow:auto;box-shadow:0 12px 40px #00000073}.mandrel-panel .sheet-header{justify-content:center;margin-bottom:.5rem;position:relative}.mandrel-panel .sheet-header h2{text-align:center;width:100%}.mandrel-panel .sheet-close{inset-inline-end:0;position:absolute;top:0}.mandrel-copy{text-align:center;color:#b4bcc8;flex-direction:column;gap:.35rem;margin:0 0 .65rem;font-size:.8rem;line-height:1.4;display:flex}.mandrel-copy span{display:block}#eu-scale-canvas{touch-action:none;background:#0a0c10;border-radius:.65rem;width:100%;height:100%;display:block}.eu-scale-viewport{aspect-ratio:3/2;border-radius:.65rem;width:100%;max-height:min(62vw,18rem);margin-top:.35rem;position:relative;overflow:hidden}.eu-scale-marker-label{color:#ff6b6b;white-space:nowrap;pointer-events:none;background:#12151cd1;border-radius:.35rem;padding:.12rem .45rem;font-size:.72rem;font-weight:600}#mandrel-canvas{touch-action:none;cursor:grab;background:#0a0c10;border-radius:.65rem;width:100%;height:min(62vw,22rem);display:block}#mandrel-canvas:active{cursor:grabbing}.mandrel-reveal-caption{text-align:center;min-height:2.6rem;margin:.55rem 0 0;font-size:.82rem;font-weight:600;line-height:1.45;transition:opacity .2s}.mandrel-reveal-caption.hidden{visibility:hidden;opacity:0}.mandrel-reveal-caption--wrong{color:#e6c96a;font-weight:550}.mandrel-reveal-caption--correct{color:#ff7a7a;font-weight:750}.mandrel-reveal-caption--both{flex-direction:column;gap:.35rem;display:flex}.mandrel-caption-line{display:block}.mandrel-caption-line--convention{color:#ff7a7a;font-size:.9rem;font-weight:750}.mandrel-caption-line--not-convention{color:#e6c96a;opacity:.92;font-size:.76rem;font-weight:500}.mandrel-caption-line--not-convention strong,.mandrel-color-label{font-weight:800}.mandrel-color-label--red{color:#ff6b6b}.mandrel-color-label--yellow{color:#ffe566}.measure-readout{text-align:center;margin-bottom:.5rem}.measure-panel-top{justify-content:flex-start;margin-bottom:.45rem;display:flex}.calibration-status{letter-spacing:.02em;border-radius:999px;align-items:center;padding:.2rem .55rem;font-size:.72rem;font-weight:700;display:inline-flex}.calibration-status--calibrated{color:#8ee4ad;background:#30784e47;border:1px solid #58c48273}.calibration-status--not-calibrated{color:#ff9a9a;background:#8c282847;border:1px solid #ff787873}#eu-label{font-size:1.25rem;font-weight:700;display:block}#diameter-label{color:#9aa3b2;margin-top:.1rem;font-size:.8rem;display:block}.ghost-toggle{color:#b4bcc8;align-items:center;gap:.5rem;margin-top:.55rem;font-size:.78rem;display:flex}.primary-button{color:#141820;cursor:pointer;background:#d4af37;border:none;border-radius:.6rem;width:100%;margin-top:.65rem;padding:.75rem 1rem;font-size:.88rem;font-weight:650}.primary-button:active{filter:brightness(.95)}.primary-button:disabled{opacity:.45;cursor:default}.text-button{color:#9aa3b2;cursor:pointer;background:0 0;border:none;width:100%;margin-top:.55rem;padding:.45rem;font-size:.78rem;text-decoration:underline}.sheet{z-index:20;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet.hidden{display:none}.sheet-backdrop{cursor:pointer;background:#0000008c;border:none;position:absolute;inset:0}.sheet-panel{width:100%;max-width:28rem;max-height:78vh;padding:1rem 1rem max(1rem, env(safe-area-inset-bottom));background:#12151c;border-radius:1rem 1rem 0 0;position:relative;overflow:auto}.sheet-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.sheet-header h2{margin:0;font-size:1rem}.sheet-header--close-only{justify-content:flex-end;margin-bottom:.35rem}.sheet-close{color:#fff;cursor:pointer;background:#ffffff14;border:none;border-radius:.5rem;width:2rem;height:2rem;font-size:1.25rem;line-height:1}.device-suggestion{text-align:start;color:#8ea4c8;cursor:pointer;background:0 0;border:none;margin:0 0 .75rem;padding:0;font-size:.78rem;line-height:1.4;text-decoration:underline}.device-suggestion.hidden{display:none}.device-picker{gap:.65rem;display:grid}.picker-row{color:#b4bcc8;gap:.3rem;font-size:.78rem;display:grid}.picker-row select{color:#eef2f8;text-align:start;background:#ffffff0f;border:1px solid #ffffff24;border-radius:.6rem;width:100%;padding:.65rem .75rem;font-size:.95rem}.picker-row select:disabled{opacity:.45}
