:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font-body);--font-display:"Avenir Next", "Futura", "Pretendard", "Apple SD Gothic Neo", sans-serif;--font-body:"Avenir Next", "Pretendard", "Apple SD Gothic Neo", "Noto Sans KR", sans-serif;--text-caption:.75rem;--text-label:.875rem;--text-body:1rem;--text-lead:1.125rem;--text-title:1.5rem;--leading-tight:1.08;--leading-snug:1.35;--leading-body:1.6;--tracking-tight:-.04em;--weight-regular:520;--weight-medium:650;--weight-strong:760;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-control:2.75rem;--navy-950:#091a34;--navy-800:#1f344e;--navy-600:#4e5f74;--neutral-300:#c5cbd2;--neutral-200:#dadee5;--neutral-100:#f0f4f9;--surface:#f9fcff;--surface-raised:#f4f9ff;--blue-700:#0058bd;--blue-600:#0071e4;--blue-500:#258fee;--blue-200:#c3e2ff;--blue-100:#e7f4ff;--focus:#008af96b;--error-border:#d87a6b;--error-surface:#ffece7;--error-ink:#7f2117;--line:#d8dfe7;--shadow-sm:0 8px 28px #16253714;--shadow-md:0 20px 64px #12253c1f;--radius-sm:.5rem;--radius-md:.75rem;--radius-lg:1rem;--radius-xl:1.5rem;--header-height:4.5rem;--inspector-width:20rem;--ease-out:cubic-bezier(.16, 1, .3, 1)}@supports (color:lab(0% 0 0)){:root{--navy-950:lab(9.12431% .942014 -19.223);--navy-800:lab(20.8397% -1.24125 -19.2971);--navy-600:lab(39.5603% -2.56167 -14.2084);--neutral-300:lab(81.4178% -1.02475 -4.37185);--neutral-200:lab(88.382% -.863284 -3.64836);--neutral-100:lab(95.9259% -.697315 -2.92243);--surface:lab(98.8325% -.595093 -2.17149);--surface-raised:lab(97.6639% -1.16849 -4.33089);--blue-700:lab(37.5379% 14.9794 -68.9216);--blue-600:lab(47.0564% 9.92486 -71.8103);--blue-500:lab(57.306% -3.10174 -57.3693);--blue-200:lab(88.3213% -7.42686 -23.8884);--blue-100:lab(95.3513% -3.03498 -8.69027);--focus:lab(55.7105% 1.46583 -67.5588/.42);--error-border:lab(61.8067% 36.3113 25.0254);--error-surface:lab(95.0667% 10.2866 6.84221);--error-ink:lab(29.1631% 40.236 30.9057);--line:lab(88.3737% -1.19022 -5.09766);--shadow-sm:0 8px 28px lab(13.9801% -1.38752 -14.0229/.08);--shadow-md:0 20px 64px lab(13.8991% -1.06086 -17.403/.12)}}*,:before,:after{box-sizing:border-box}html,body{background:var(--neutral-100);width:100%;min-width:20rem;min-height:100%;color:var(--navy-950);margin:0;overflow:hidden}body{font-family:var(--font-body);font-size:var(--text-body);line-height:var(--leading-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible{outline:.2rem solid var(--focus);outline-offset:.2rem}[hidden]{display:none!important}.skip-link{z-index:100;top:var(--space-2);left:var(--space-2);min-height:var(--space-control);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--navy-950);color:var(--surface);font-weight:var(--weight-strong);transition:transform .18s var(--ease-out);text-decoration:none;position:fixed;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.cad-app{grid-template-rows:var(--header-height) minmax(0, 1fr);width:100vw;height:100dvh;display:grid}.app-bar{z-index:20;align-items:center;gap:var(--space-4);padding-inline:var(--space-4);border-bottom:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm);grid-template-columns:minmax(12rem,1fr) minmax(12rem,1.2fr) minmax(12rem,1fr);display:grid}.brand{width:max-content;min-height:var(--space-control);align-items:center;gap:var(--space-3);color:var(--navy-950);font-family:var(--font-display);font-weight:var(--weight-strong);letter-spacing:var(--tracking-tight);text-decoration:none;display:inline-flex}.brand-mark{border-radius:var(--radius-md);background:var(--blue-600);width:2.5rem;height:2.5rem;color:var(--surface);place-items:center;display:grid}.brand-mark svg,.app-actions svg,.toolbar svg,.icon-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:1.25rem;height:1.25rem}.file-summary{min-width:0;line-height:var(--leading-snug);justify-items:center;display:grid}.file-summary strong,.file-summary span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.file-summary strong{font-size:var(--text-label);font-weight:var(--weight-strong)}.file-summary span{color:var(--navy-600);font-size:var(--text-caption)}.app-actions{justify-content:flex-end;gap:var(--space-2);display:flex}.button,.icon-button,.toolbar button,.loading-overlay button{min-height:var(--space-control);border:1px solid var(--neutral-300);border-radius:var(--radius-sm);background:var(--surface);color:var(--navy-950);font-size:var(--text-label);font-weight:var(--weight-strong);transition:background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s var(--ease-out)}.button:active,.icon-button:active,.toolbar button:active:not(:disabled),.loading-overlay button:active{transform:translateY(1px)}.button{align-items:center;gap:var(--space-2);padding-inline:var(--space-4);display:inline-flex}.button-primary{border-color:var(--blue-600);background:var(--blue-600);color:var(--surface)}.button-primary:hover{border-color:var(--blue-700);background:var(--blue-700)}.icon-button{width:var(--space-control);place-items:center;padding:0;display:grid}.icon-button:hover{background:var(--blue-100)}#sidebar-button{display:none}.workspace{grid-template-columns:minmax(0, 1fr) var(--inspector-width);min-height:0;display:grid}.cad-app:not([data-state=loaded]) #open-button,.cad-app[data-state=empty] .file-summary,.cad-app[data-state=empty] .toolbar,.cad-app[data-state=empty] .status-bar,.cad-app[data-state=empty] .inspector,.cad-app[data-state=empty] #sidebar-button{display:none}.cad-app[data-state=empty] .workspace{grid-template-columns:minmax(0,1fr)}.cad-app[data-state=empty] .viewer-shell{grid-template-rows:minmax(0,1fr)}.viewer-shell{background:var(--surface-raised);grid-template-rows:auto minmax(0,1fr) auto;min-width:0;min-height:0;display:grid;position:relative}.toolbar{z-index:10;align-items:center;gap:var(--space-1);min-height:3.75rem;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--line);background:var(--surface);display:flex;overflow-x:auto}.toolbar button{align-items:center;gap:var(--space-2);min-width:max-content;padding-inline:var(--space-3);background:0 0;border-color:#0000;display:inline-flex}.toolbar button:hover:not(:disabled){background:var(--blue-100)}.toolbar button[aria-pressed=true]{background:var(--blue-200);color:var(--blue-700)}.toolbar button:disabled{cursor:not-allowed;opacity:.42}.viewport{background:var(--neutral-100);min-height:0;position:relative;overflow:hidden}.renderer-host,.renderer-host canvas{width:100%;height:100%}.renderer-host canvas{display:block}.renderer-host canvas.is-measuring{cursor:crosshair}.empty-state{align-content:center;justify-items:center;gap:var(--space-3);width:100%;height:100%;padding:var(--space-8);background:var(--neutral-100);color:var(--navy-950);text-align:center;border:0;display:grid;position:absolute;inset:0}.empty-state:before{inset:clamp(var(--space-4), 4vw, var(--space-12));border:1px solid var(--blue-200);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-md);content:"";transition:border-color .16s,background-color .16s,box-shadow .16s;position:absolute}.empty-state>*{position:relative}.empty-state:hover:before,.empty-state:focus-visible:before,.is-dragging .empty-state:before{border-color:var(--blue-500);background:color-mix(in oklch, var(--surface), var(--blue-100) 38%);box-shadow:0 20px 64px #12253c29;box-shadow:0 20px 64px lab(13.8991% -1.06086 -17.403/.16)}.empty-visual{width:7rem;height:7rem;color:var(--navy-600)}.empty-visual svg{width:100%;height:100%;fill:var(--blue-100);stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.4px}.empty-visual .accent{fill:none;stroke:var(--blue-600)}.empty-state strong{font-family:var(--font-display);font-size:var(--text-title);font-weight:var(--weight-strong);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight)}.empty-state>span:not(.empty-visual,.format-list,.drop-cta){max-width:34rem;color:var(--navy-600);font-size:var(--text-body);line-height:var(--leading-body)}.format-list{max-width:42rem;color:var(--navy-600);font-size:var(--text-caption);font-weight:var(--weight-medium);letter-spacing:.02em;line-height:var(--leading-body)}.drop-cta{min-height:var(--space-control);margin-top:var(--space-1);padding-inline:var(--space-6);border-radius:var(--radius-md);background:var(--blue-600);color:var(--surface);font-size:var(--text-label);font-weight:var(--weight-strong);align-items:center;display:inline-flex}.loading-overlay{z-index:8;align-content:center;justify-items:center;gap:var(--space-3);padding:var(--space-8);background:color-mix(in oklch, var(--neutral-100), transparent 6%);text-align:center;display:grid;position:absolute;inset:0}.loading-cube{border:.375rem solid var(--blue-200);border-top-color:var(--blue-600);border-radius:var(--radius-md);width:3rem;height:3rem;animation:.9s linear infinite spin}.loading-overlay strong{font-size:var(--text-lead)}.loading-overlay>span:not(.loading-cube){color:var(--navy-600);font-size:var(--text-body)}.loading-overlay progress{width:min(20rem,70vw);height:var(--space-2);accent-color:var(--blue-600);border:0;border-radius:999px;overflow:hidden}.loading-overlay button{margin-top:var(--space-1);padding-inline:var(--space-4)}.measurement-card{z-index:7;top:var(--space-4);min-height:var(--space-control);align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--blue-200);border-radius:var(--radius-md);background:color-mix(in oklch, var(--surface), transparent 4%);box-shadow:var(--shadow-sm);display:flex;position:absolute;left:50%;transform:translate(-50%)}.measurement-card span{color:var(--navy-600);font-size:var(--text-caption)}.measurement-card strong{font-size:var(--text-label);font-variant-numeric:tabular-nums}.message{z-index:9;right:var(--space-4);bottom:var(--space-4);max-width:min(26rem, calc(100% - var(--space-8)));padding:var(--space-3) var(--space-4);border:1px solid var(--error-border);border-radius:var(--radius-md);background:var(--error-surface);color:var(--error-ink);box-shadow:var(--shadow-sm);font-size:var(--text-body);font-weight:var(--weight-medium);position:absolute}.status-bar{min-height:var(--space-control);justify-content:space-between;align-items:center;gap:var(--space-4);padding-inline:var(--space-3);border-top:1px solid var(--line);background:var(--surface);color:var(--navy-600);font-size:var(--text-caption);display:flex}.inspector{z-index:15;border-left:1px solid var(--line);background:var(--surface);grid-template-rows:auto minmax(5rem,1fr) auto;min-width:0;min-height:0;display:grid}.inspector-head{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:5rem;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line);display:flex}.inspector-head span{color:var(--blue-700);font-size:var(--text-caption);font-weight:var(--weight-strong);letter-spacing:.06em}.inspector h2,.inspector h3{margin:0}.inspector h2{margin-top:var(--space-1);font-family:var(--font-display);font-size:var(--text-title);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight)}#inspector-close{display:none}.inspector-empty{margin:var(--space-4);color:var(--navy-600);font-size:var(--text-body);line-height:var(--leading-body);align-self:start}.structure-list{min-height:0;padding-block:var(--space-2);overflow:auto}.structure-item{min-height:var(--space-control);align-items:center;gap:var(--space-2);padding-right:var(--space-3);padding-left:var(--space-3);cursor:pointer;font-size:var(--text-label);grid-template-columns:auto auto minmax(0,1fr);display:grid}.structure-item:hover{background:var(--blue-100)}.structure-item.depth-1{padding-left:var(--space-6)}.structure-item.depth-2{padding-left:var(--space-8)}.structure-item.depth-3{padding-left:var(--space-12)}.structure-item.depth-4{padding-left:4rem}.structure-item input{width:1.25rem;height:1.25rem;accent-color:var(--blue-600)}.structure-item>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.structure-marker{width:var(--space-3);height:var(--space-3);border:1.5px solid var(--navy-600)}.structure-marker.kind-part{background:var(--blue-100);border-radius:50%}.structure-marker.kind-group{transform:rotate(45deg)}.structure-marker.kind-layer{border-radius:var(--space-1);background:var(--blue-200)}.details{padding:var(--space-4);border-top:1px solid var(--line)}.details h3{margin-bottom:var(--space-3);font-size:var(--text-label)}.details dl{gap:var(--space-2);margin:0;display:grid}.details dl>div{min-height:var(--space-control);justify-content:space-between;align-items:center;gap:var(--space-4);font-size:var(--text-label);display:flex}.details dt{color:var(--navy-600)}.details dd{max-width:10rem;font-weight:var(--weight-strong);text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;margin:0;overflow:hidden}.is-dragging:after{z-index:90;inset:var(--space-3);border:3px solid var(--blue-600);border-radius:var(--radius-lg);content:"";pointer-events:none;background:#0071e40f;background:lab(47.0564% 9.92486 -71.8103/.06);position:fixed}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:52rem){.app-bar{gap:var(--space-2);padding-inline:var(--space-2);grid-template-columns:auto minmax(0,1fr) auto}.brand>span:last-child{display:none}.file-summary{justify-items:start}.button-primary{width:var(--space-control);justify-content:center;padding:0}.button-primary span{display:none}#sidebar-button{display:grid}.workspace{grid-template-columns:minmax(0,1fr)}.inspector{top:var(--header-height);width:min(var(--inspector-width), 88vw);border-left:1px solid var(--neutral-300);box-shadow:var(--shadow-md);transition:transform .22s var(--ease-out);position:fixed;bottom:0;right:0;transform:translate(105%)}.is-inspector-open .inspector{transform:translate(0)}#inspector-close{display:grid}.toolbar{padding-inline:var(--space-2)}.status-bar{min-height:var(--space-control)}#interaction-hint{display:none}.empty-state{padding:var(--space-4)}.empty-state:before{inset:var(--space-3)}.empty-visual{width:5rem;height:5rem}.cad-app[data-state=empty] .workspace{padding:var(--space-2)}.cad-app[data-state=empty] .viewer-shell{min-height:calc(100dvh - var(--header-height) - var(--space-4))}.cad-app[data-state=empty] .empty-state:before{inset:var(--space-2);border-radius:var(--radius-lg)}}@media (max-width:30rem){:root{--header-height:4rem}.file-summary span{max-width:11rem}.toolbar button span{display:none}.toolbar button{width:var(--space-control);min-width:var(--space-control);justify-content:center;padding:0}.format-list{max-width:19rem}.measurement-card{top:var(--space-2);width:max-content;max-width:calc(100% - var(--space-4))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
