:root{font-family:Inter,'Noto Sans KR',system-ui,sans-serif;color:#e7edf5;background:#0c111b;color-scheme:dark;font-size:16px}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;border:1px solid #344053;border-radius:9px;color:inherit;background:#182132;min-height:42px;padding:9px 15px}button:hover{background:#26354c}button:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid #ff744f;outline-offset:4px}header{height:83px;border-bottom:1px solid #263142;padding:0 30px;display:flex;align-items:center;gap:25px}.brand{display:flex;gap:14px;align-items:center}.mark{background:#ec5838;color:#fff;font-size:22px;font-weight:800;padding:9px 10px;border-radius:5px}.brand strong{display:block;letter-spacing:.07em;font-size:19px}.brand div>span{display:block;font-size:12px;letter-spacing:.16em;color:#98a6ba;margin-top:4px}.topnote{color:#aebacc;font-size:14px;margin-left:auto}main{display:grid;grid-template-columns:290px 1fr;min-height:calc(100dvh - 83px)}aside{padding:30px 25px;display:flex;flex-direction:column;border-right:1px solid #263142}.eyebrow{font-size:12px;letter-spacing:.14em;color:#ff8b6e;font-weight:600}h1{font-size:28px;line-height:1.45;font-weight:600;letter-spacing:-.04em;margin:12px 0}.intro{font-size:14px;line-height:1.8;color:#99a9bf;margin:0 0 22px}nav{display:grid;gap:7px}nav button{display:flex;align-items:center;gap:15px;text-align:left;border-color:transparent;background:transparent;font-size:15px}nav button span{font-size:12px;color:#74879e;letter-spacing:.04em}nav button.active{background:#ee603c;color:white;box-shadow:0 6px 25px #ec583821}nav button.active span{color:#ffe0d7}.spec{display:flex;gap:28px;border-top:1px solid #2c3647;padding-top:24px;margin-top:28px}.spec b{font-size:23px;font-weight:500}.spec b span{font-size:14px;color:#a9b7c9}.spec small{display:block;font-size:12px;color:#94a5bb;margin-top:7px}.notice{font-size:12px;color:#8091a8;line-height:1.8;margin-top:auto;padding-top:24px}.workspace{position:relative;min-height:660px;height:calc(100dvh - 83px);overflow:hidden;background:radial-gradient(ellipse at 50% 38%,#26364b,#121b2a 65%,#101826)}canvas{width:100%;height:calc(100% - 230px);display:block;touch-action:none}.viewlabel{position:absolute;top:28px;left:30px;pointer-events:none}.viewlabel>span{font-size:12px;letter-spacing:.15em;color:#8398b3}.viewlabel h2{font-size:20px;font-weight:500;margin-top:8px}.actions{position:absolute;right:25px;top:28px;display:flex;gap:7px}.actions button{background:#101927b8}.hint{position:absolute;bottom:249px;left:30px;color:#879bb5;font-size:12px;line-height:1.7;pointer-events:none}.control{position:absolute;bottom:20px;left:28px;right:28px;border:1px solid #344155;background:#141e2ee8;border-radius:16px;padding:19px 25px;box-shadow:0 12px 30px #0002}.controlhead{display:flex;align-items:center;justify-content:space-between}.controlhead h3{font-size:19px;font-weight:500;margin:5px 0 14px}.playcontrols{display:flex;gap:20px;align-items:center}.playcontrols button{font-size:14px}.playcontrols output{color:#ff8968;font-size:25px;font-variant-numeric:tabular-nums;min-width:65px;text-align:right}input[type=range]{width:100%;accent-color:#fa724e;cursor:pointer;height:24px}.rangetext{display:flex;justify-content:space-between;font-size:12px;color:#90a4bd;margin-top:3px}.zoomrow{display:flex;align-items:center;gap:18px;margin-top:13px;font-size:14px}.zoomrow input{max-width:220px}.zoomrow output{font-variant-numeric:tabular-nums;color:#a9bbd0}#detailnote{font-size:12px;color:#92a5bc;margin:8px 0 0}.loading{position:absolute;inset:25% 15% auto;background:#111c2ef5;border:1px solid #465d7a;border-radius:15px;padding:28px;display:grid;gap:17px;text-align:center}.loading progress{width:100%;accent-color:#fa724e}.loading span{font-size:14px;color:#afc2da}.loading[hidden]{display:none}dialog{border:1px solid #42526a;border-radius:15px;background:#111b2b;color:white;width:min(1000px,94vw);padding:20px}dialog::backdrop{background:#050a12d9}dialog>div{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}video{width:100%;display:block;border-radius:8px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:1000px){main{grid-template-columns:230px 1fr}aside{padding:25px 18px}h1{font-size:25px}.control{left:16px;right:16px;padding:17px}.actions{top:85px;right:18px}.spec{gap:16px}.workspace{min-height:660px}}@media(max-width:720px){header{height:72px;padding:0 16px}.topnote{display:none}header>button{margin-left:auto;font-size:14px}main{display:flex;flex-direction:column}aside{padding:15px 16px 12px;border-right:0;border-bottom:1px solid #263142}.intro,h1,aside>.eyebrow,.spec,.notice{display:none}nav{display:flex;overflow-x:auto;gap:6px;padding:2px}nav button{white-space:nowrap;font-size:14px;padding:9px 12px}nav button span{display:none}.workspace{height:calc(100dvh - 148px);min-height:600px}.viewlabel{left:18px;top:19px}.viewlabel h2{font-size:17px}.actions{top:22px;right:15px}.actions button{padding:8px 10px;font-size:13px}.hint{left:18px;font-size:12px;bottom:243px}.control{bottom:12px;padding:15px}.playcontrols{gap:8px}.playcontrols output{font-size:22px}.playcontrols button{font-size:13px;padding:7px}.loading{inset:23% 6% auto}.controlhead h3{font-size:17px}.zoomrow input{max-width:180px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}

button:disabled,input:disabled{opacity:.45;cursor:wait}

[hidden]{display:none!important}
.mechanism-panel{border-top:1px solid #2c3647;margin-top:20px;padding-top:16px}.mechanism-panel h2{font-size:16px;margin:0 0 14px}.mechanism-panel>label{font-size:13px;color:#a6b6cb}.mechanism-panel select{width:100%;font:inherit;font-size:13px;color:#e7edf5;background:#182132;border:1px solid #40516b;border-radius:7px;padding:10px;margin:8px 0 12px}.mechanism-label{display:flex;justify-content:space-between;font-size:14px}.mechanism-label output{color:#ff9c80;font-variant-numeric:tabular-nums}.mechanism-panel p{font-size:12px;color:#9caec5;line-height:1.65;margin:7px 0 0}.selection-actions{flex-wrap:wrap}select:focus-visible{outline:2px solid #ff744f;outline-offset:3px}
@media(max-width:720px){.mechanism-panel{display:grid;grid-template-columns:1fr 1fr;column-gap:16px;margin-top:12px;padding-top:12px}.mechanism-panel h2,.mechanism-panel>label,.mechanism-panel select,.mechanism-panel p{grid-column:1/-1}.mechanism-panel .mechanism-label:nth-of-type(1){grid-column:1;grid-row:4}.mechanism-panel .mechanism-label:nth-of-type(2){grid-column:2;grid-row:4}#door-open{grid-column:1;grid-row:5}#bin-open{grid-column:2;grid-row:5}.mechanism-panel p br{display:none}}
.header-actions{display:flex;gap:8px;margin-left:auto}.header-actions button{font-size:14px}
aside{height:calc(100dvh - 83px);overflow-y:auto}
.selection-panel{margin-top:22px;padding-top:18px;border-top:1px solid #2c3647}
.selection-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}
.selection-heading h2{font-size:16px;margin:0;font-weight:600}
.selection-heading button{font-size:14px;padding:7px 10px}
#selection-empty,.download-note{font-size:14px;line-height:1.65;color:#9caec5}
#part-name{display:block;margin-top:16px;font-size:15px;line-height:1.5;overflow-wrap:anywhere;color:#ff9c80}
#part-meta{font-size:12px;line-height:1.6;color:#a6b6cb;overflow-wrap:anywhere}
.selection-actions{display:flex;gap:7px}.selection-actions button{font-size:13px;padding:7px 9px}
.isolate-option{display:flex;align-items:center;gap:9px;font-size:14px;margin:15px 0}
.isolate-option input{width:18px;height:18px;accent-color:#ee603c}
#download-part{width:100%;font-size:14px;border-color:#975241;background:#382722}
#export-status{font-size:13px;line-height:1.6;color:#ffb198;overflow-wrap:anywhere}
#export-status:empty{display:none}
#parts-browser,#download-dialog{width:min(690px,94vw);max-height:90dvh;padding:24px}
.dialog-head h2{font-size:21px;margin:0}.dialog-head{gap:12px}
.dialog-description{color:#a7b9cf;font-size:15px;line-height:1.7}
#part-search{display:block;width:100%;margin:10px 0;padding:13px 14px;background:#0c1421;border:1px solid #40516b;border-radius:8px;color:#e7edf5;font-size:16px}
#parts-browser>label{font-size:14px}
#part-result-count{font-size:14px;color:#a7b9cf}
dialog>.parts-results{display:grid;gap:6px;max-height:43dvh;overflow:auto;margin:0}
.parts-results>button{text-align:left;display:grid;gap:5px;padding:11px 13px;min-width:0}
.parts-results strong{font-size:14px;font-weight:500;overflow-wrap:anywhere}
.parts-results span{color:#98acc5;font-size:12px;overflow-wrap:anywhere}
dialog>.parts-pagination{justify-content:flex-end;gap:8px;margin:15px 0 0}
dialog>.download-options{display:grid;gap:12px;margin:20px 0}
.download-options a{display:grid;gap:10px;border:1px solid #3f526c;border-radius:12px;padding:20px;color:#e7edf5;text-decoration:none;background:#19273c}
.download-options a:hover{border-color:#ee7959;background:#25344b}
.download-options a:focus-visible{outline:2px solid #ff744f;outline-offset:4px}
.download-options a>strong{display:flex;justify-content:space-between;font-size:17px}
.download-options a>span{font-size:14px;line-height:1.6;color:#a7b9cf}
@media(max-width:420px){.brand .mark{display:none}.header-actions button{padding:7px;font-size:12px}}
@media(max-width:1000px){.selection-heading{align-items:flex-start;flex-direction:column}.selection-actions{flex-wrap:wrap}}
@media(max-width:720px){header{gap:10px}.header-actions{gap:5px}.header-actions button{font-size:12px;padding:7px 8px}.brand{gap:8px}.brand strong{font-size:16px}.brand div>span{font-size:10px}.mark{font-size:18px;padding:8px}.selection-panel{margin-top:10px;padding-top:10px}.selection-heading{flex-direction:row;align-items:center}.selection-heading button{min-height:36px}.selection-heading h2{font-size:14px}#selection-empty{margin:9px 0 0;font-size:13px}aside{height:auto;overflow:visible}#selection-details{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}#part-name,#part-meta{grid-column:1/-1;margin:4px 0}#selection-details .download-note{grid-column:1/-1;margin:0;font-size:12px}.isolate-option{margin:0}#download-part{grid-column:1/-1}.hint{right:12px;font-size:11px}.workspace{height:calc(100dvh - 225px)}#parts-browser,#download-dialog{padding:18px}.dialog-head h2{font-size:18px}}
