
.design-stage:not([data-viewer-state]) .canvas-frame:has(canvas)::after{content:"3D 조립품을 준비하고 있습니다.";position:absolute;inset:0;display:grid;place-items:center;color:#8eabbc;background:#11191f;font-size:12px;z-index:2}
.viewer-status{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:12px;color:#8eabbc;background:#11191f;z-index:2;pointer-events:none}.viewer-failed canvas{visibility:hidden}.viewer-failed .viewer-status{flex-direction:column;gap:14px;padding:30px;pointer-events:auto}.viewer-failed .viewer-status a{color:#c6e8f7;text-decoration:underline;text-underline-offset:4px}.viewer-loading .stage-controls button,.viewer-failed .stage-controls button,.viewer-loading .motion-control input,.viewer-failed .motion-control input{opacity:.45;cursor:default}
.is-home .header{background:#10191f;border-color:#27333b;color:var(--soft)}.is-home .brand-dot{color:#69c9ee}.is-home .nav-actions .dark{background:#d8f1ff;color:#152832}.is-home nav a{color:#adbdc9}.is-home nav a:hover{color:white}.is-home .text-button{color:#b6c8d2}
.product-hero{background:#11191f;color:var(--soft);display:grid;grid-template-columns:minmax(360px,.85fr) minmax(0,1.3fr);gap:12px;padding:0 max(4.5vw,24px);min-height:690px;overflow:hidden}.design-stage{position:relative;display:flex;flex-direction:column;min-width:0;margin-top:28px;margin-bottom:28px;padding:0 0 30px}.stage-topline{display:flex;justify-content:space-between;align-items:center;padding:22px 0 0;position:relative;z-index:3}.stage-kicker{font-size:9px;letter-spacing:.16em;color:#7893a4}.stage-topline h2{font-size:16px;font-weight:500;letter-spacing:-.02em;margin-top:9px;color:#bdcbd4}.stage-topline button{font-size:11px;color:#8facbd;border:1px solid #344754;border-radius:4px;padding:9px 12px}.stage-topline button span{color:#537c95;margin-left:18px}.canvas-frame{position:relative;flex:1;min-height:440px;height:500px;margin:0 -38px}.canvas-frame canvas{width:100%;height:100%;display:block;outline-offset:-6px;touch-action:none;cursor:grab}.canvas-frame canvas:active{cursor:grabbing}.stage-description{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.025em;color:#6b8696;padding:0 0 16px;gap:20px}.stage-description>span:last-child{white-space:nowrap}.stage-controls{display:flex;gap:8px;align-items:center;padding:18px 0;border-top:1px solid #2b3a43}.stage-controls button{font-size:11px;color:#c0d1dd;background:var(--ui-ink);border:1px solid #324550;border-radius:4px;padding:10px 12px;white-space:nowrap}.stage-controls button[aria-pressed=true]{background:#2a5870;color:#e1f6ff}.motion-control{display:flex;align-items:center;gap:15px;flex:1;min-width:80px}.motion-control>span{font-size:10px;color:#718e9f;white-space:nowrap}.motion-control strong{display:block;margin-top:4px;color:#b8ccd8;font-family:Consolas,monospace;font-size:13px;font-weight:400}.motion-control input{width:100%;max-width:170px;min-width:45px;accent-color:#83c3e4;height:3px;cursor:pointer;margin:0 12px 0 0}.stage-note{font-size:9px;color:#4b6677;text-align:right;margin-top:2px}.stage-side{display:none;position:absolute;top:92px;right:0;width:245px;bottom:153px;z-index:4;background:#13232deF;border:1px solid #324752;border-radius:6px;overflow:hidden;backdrop-filter:blur(12px)}.show-bom .stage-side{display:flex;flex-direction:column}.bom-title{font-size:10px;padding:15px;color:#9eb9ca;border-bottom:1px solid #29404c;display:flex;justify-content:space-between}.stage-side>[data-bom]{overflow:auto}.bom-item{display:flex;width:100%;justify-content:space-between;text-align:left;align-items:center;gap:10px;color:#88a4b8;font-size:10px;line-height:1.5;padding:11px 14px;border-bottom:1px solid var(--ui-accent)}.bom-item small{font-family:monospace;font-size:10px}.bom-item:hover,.bom-item.selected{background:#244656;color:white}.render-fallback{height:100%;display:flex;justify-content:center;align-items:center;font-size:14px;line-height:1.9;color:#9fb2c0;text-align:center}.editorial-label{font-size:11px;letter-spacing:.11em;line-height:2;color:var(--text-secondary);font-weight:600;padding-top:10px}.editorial-label small{font-size:10px;color:#91a0a9;font-weight:400}.notes-list{border-top:1px solid var(--line)}.notes-list>a{display:flex;align-items:center;gap:32px;padding:32px 0;border-bottom:1px solid var(--line)}.note-index{font-family:monospace;font-size:13px;color:var(--text-secondary);align-self:start;margin-top:8px}.notes-list h3{font-size:23px;margin:12px 0 10px;font-weight:550}.notes-list p{font-size:14px;color:var(--text-secondary)}.notes-list>a>span:last-child{margin-left:auto;font-size:20px;color:#7f95a3}.notes-list .tag{background:transparent;padding:0;font-size:10px}.notes-list a:hover h3{color:var(--green)}
@media(min-width:1600px){.product-hero{padding-left:calc((100vw - 1450px)/2);padding-right:calc((100vw - 1450px)/2)}.canvas-frame{height:590px}}
@media(max-width:1050px){.product-hero{grid-template-columns:.8fr 1fr;padding:0 30px}.canvas-frame{min-height:410px;margin:0 -40px}.stage-controls{flex-wrap:wrap}.motion-control{flex-basis:100%;margin-bottom:12px}.stage-controls button{flex:1}.stage-topline h2{font-size:13px}.stage-description>span:last-child{display:none}}
@media(max-width:760px){.is-home nav{background:#13212a;border-color:#2a3c48}.product-hero{display:block;padding:0 24px}.design-stage{margin:30px 0 0;padding-bottom:25px}.stage-topline{padding-top:18px;border-top:1px solid #2c3d49}.stage-topline h2{font-size:13px}.stage-topline button{padding:7px 10px}.canvas-frame{min-height:320px;height:330px;margin:0 -20px}.stage-description{font-size:9px;padding-bottom:13px}.stage-controls{padding:16px 0 12px;gap:7px;flex-wrap:nowrap}.stage-controls button{font-size:10px;padding:9px 9px;flex:none}.motion-control{flex-basis:auto;display:block;margin:0;min-width:70px}.motion-control>span{display:flex;align-items:center;gap:7px;font-size:9px;margin-bottom:12px}.motion-control strong{font-size:10px}.motion-control input{display:block}.stage-note{text-align:left;font-size:8px;margin-top:8px}.stage-side{width:205px}.editorial-label{margin-bottom:25px}.notes-list>a{padding:26px 0;gap:15px}.notes-list h3{font-size:19px}.notes-list p{font-size:12px}.notes-list>a>span:last-child{font-size:17px}}
.copy-prompt-label{display:block;font-size:13px}.copy-prompt-text{display:block;width:100%;min-height:280px;resize:vertical;margin-top:12px;font:inherit;font-size:13px;line-height:1.8;padding:14px;box-sizing:border-box}

/* 부품 수정은 보고서 주소와 사용자 요청을 함께 복사하며 현재 CAD 성공을 표시하지 않는다. */
.design-part-edit{margin:22px 0;padding:20px 0;border-top:1px solid #ccd8de;border-bottom:1px solid #ccd8de}.design-part-edit>label,.design-part-edit>strong{display:block;font-size:17px;font-weight:550;color:#284b5d;margin-bottom:8px}.design-part-edit p{font-size:12px;line-height:1.7;color:var(--text-secondary);margin:8px 0}.design-edit-scope{overflow-wrap:anywhere}.design-part-edit textarea{display:block;width:100%;box-sizing:border-box;min-height:86px;resize:vertical;background:#fff;border:1px solid #a9bdc8;border-radius:3px;padding:12px;font:inherit;font-size:14px;line-height:1.6;color:#203d4c;margin:12px 0}.design-part-edit textarea:focus-visible{outline:2px solid #287c9d;outline-offset:2px}.design-edit-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px}.design-edit-actions .button,.design-edit-actions>a,.design-part-edit-example button{min-height:44px}.design-edit-actions>a{display:inline-flex;align-items:center;font-size:12px;color:#365d72}.design-edit-help{max-width:55ch}.design-part-edit-example{padding:16px 0}.design-part-edit-example>strong{font-size:15px}
@media(max-width:760px){.design-part-edit{margin:16px 0;padding:16px 0}.design-part-edit textarea{font-size:16px}.design-edit-actions{gap:6px 16px}.design-edit-actions .button{font-size:13px;padding:11px 14px}}

.design-analysis-stale{margin:12px 20px;padding:14px 16px;border-left:3px solid #ab7938;background:#f8f3e9;color:#674d2d}.design-analysis-stale strong{font-size:14px;font-weight:550}.design-analysis-stale p{margin:6px 0 0;font-size:12px;line-height:1.65}.design-analysis-next{border-top:1px solid #d5dfe4;margin-top:18px;padding-top:18px}.design-analysis-next>strong{font-size:14px;font-weight:550;color:#284b5d}.design-analysis-next .text-button{min-height:44px;text-align:left}
/* 무대에 보일 것(조립·분해·부품표)은 전환 스위치 하나로, 동작은 높이 레일에 붙은 재생으로,
   시점 초기화는 화면을 되돌리는 일이므로 3D 안에 둔다. */
.stage-views{position:relative;isolation:isolate;flex:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:216px;padding:3px;border:1px solid #344754;border-radius:100px}
.stage-views::before{content:"";position:absolute;z-index:-1;top:3px;bottom:3px;left:3px;width:calc((100% - 6px)/3);border-radius:100px;background:#24384a;transform:translateX(calc(var(--view-index,0)*100%));transition:transform .34s cubic-bezier(.2,.75,.2,1)}
.stage-views button{position:relative;min-height:40px;padding:0 6px;border:0;border-radius:100px;color:#8facbd;white-space:nowrap;transition:color .2s}
.stage-views button[aria-pressed=true]{color:#e4f2fb;font-weight:600}
.stage-views button:disabled{opacity:.45}
.stage-views button:focus-visible{outline-offset:-2px}
.stage-controls .stage-play{flex:none;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:#dcecf7;color:var(--ink);transition:background .18s}
.stage-play svg{width:15px;height:15px}
.stage-play .pause-glyph,.stage-play[aria-pressed=true] .play-glyph{display:none}
.stage-play[aria-pressed=true] .pause-glyph{display:inline}
.stage-recenter{position:absolute;z-index:3;right:0;bottom:12px;display:grid;place-items:center;width:44px;height:44px;border:1px solid #2f4350;border-radius:50%;background:#16242ee0;color:#a8c2d2;transition:background .18s}
.stage-recenter svg{width:16px;height:16px}
.design-stage:not(.viewer-ready) .stage-recenter{display:none}
.stage-side{top:12px;bottom:12px}
.motion-control input{flex:1;max-width:none;margin:0}
.motion-control strong{margin:0 0 0 auto}
@media(prefers-reduced-motion:reduce){.stage-views::before,.stage-views button,.stage-controls .stage-play,.stage-recenter{transition:none}}
