@font-face{font-family:Montserrat;font-style:normal;font-weight:400;font-display:swap;src:url(./fonts/montserrat-400.ttf) format('truetype')}@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(./fonts/montserrat-500.ttf) format('truetype')}@font-face{font-family:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(./fonts/montserrat-600.ttf) format('truetype')}@font-face{font-family:Montserrat;font-style:normal;font-weight:700;font-display:swap;src:url(./fonts/montserrat-700.ttf) format('truetype')}
#templates .template{display:grid;grid-template-rows:36px 32px;justify-items:center;align-items:center;gap:7px;min-height:96px;padding:10px 4px}#templates .template svg{width:36px;height:36px;flex:none}#templates .template span{white-space:normal;line-height:1.3;text-align:center;align-self:center}#renderStatus{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);padding:5px 9px;background:#10191eee;color:#eaf4f3;border:1px solid #42514f;border-radius:4px;max-width:90%;font-size:12px;pointer-events:none;z-index:2}
:root{color-scheme:dark;font-family:Montserrat,Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;background:#090e11;color:#edf4f4;--panel:#11171b;--line:#293236;--muted:#9aa7aa;--accent:#00d7c0;--blue:#3799ce}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;background:#1d262c;border:1px solid #354249;color:#e5eeee;border-radius:4px;padding:9px 12px;font-size:14px;transition:background .15s,border-color .15s}button:hover{background:#293740;border-color:#506168}button:disabled{opacity:.35;cursor:not-allowed}button:focus-visible,input:focus-visible,summary:focus-visible,.upload:focus-within{outline:2px solid var(--accent);outline-offset:3px}.primary{background:linear-gradient(100deg,var(--blue),#16ceb0,#51f094);border:0;color:#071b19;font-weight:750}.primary:hover{background:linear-gradient(100deg,#60b1dd,#41dfc6,#75f3ae)}
header{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 26px;border-bottom:2px solid transparent;border-image:linear-gradient(90deg,var(--blue),var(--accent),#51f094) 1;background:#101619;gap:16px}.brand{display:flex;align-items:center;gap:12px;font-size:19px;font-weight:700;letter-spacing:.4px;white-space:nowrap}.brand b{color:#d7e5e5;font-weight:400}.brand-copy{display:flex;flex-direction:column;gap:5px}.brand-copy>a{font-size:12px;font-weight:450;color:#a9bec1;text-decoration:none}.brand-copy>a:hover{color:var(--accent)}.mark{display:grid;place-items:center;background:linear-gradient(135deg,var(--blue),var(--accent),#51f094);color:#101619;width:38px;height:38px;font-size:30px}.badge{font-size:11px;letter-spacing:1.5px;color:var(--accent);border-left:1px solid #26514e;margin-left:4px;padding-left:15px}.header-actions{display:flex;gap:8px}#download{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;white-space:nowrap;padding:9px 12px;font-size:14px}#download[aria-disabled=true]{opacity:.4;cursor:not-allowed}
main{display:grid;grid-template-columns:292px minmax(390px,1fr) 286px;height:calc(100dvh - 82px);min-height:0}aside{background:var(--panel);padding:24px 20px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#42514f transparent}.left-panel{border-right:1px solid var(--line)}.right-panel{border-left:1px solid var(--line)}.section-title{font-size:12px;letter-spacing:1.3px;color:var(--muted);font-weight:650;display:flex;justify-content:space-between;margin:0 0 14px}.section-title span{color:#65747e;letter-spacing:0}.left-panel>.section-title:not(:first-child){margin-top:26px}.hint{font-size:12px;line-height:1.55;color:var(--muted)}aside section{padding:22px 0;margin-top:22px;border-top:1px solid var(--line)}.wide{width:100%}.accent-outline{border-color:#087d72;color:#6ef3df;background:#102825;margin-top:8px}.import-button{margin:25px 0 0}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px;margin:14px 0}.lens-toggle{margin-bottom:0}input[type=checkbox]{appearance:none;position:relative;width:34px;height:19px;border-radius:20px;background:#424c57;cursor:pointer;flex-shrink:0;margin:0}input[type=checkbox]:before{content:"";position:absolute;width:13px;height:13px;top:3px;left:3px;background:#eef7f4;border-radius:50%;transition:transform .15s}input[type=checkbox]:checked{background:#0caf99}input[type=checkbox]:checked:before{transform:translateX(15px)}
.templates{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.template{display:flex;align-items:center;flex-direction:column;gap:7px;padding:10px 4px;background:#171f24;font-size:12px;min-width:0}.template.active{border-color:var(--accent);background:#102d2b;color:#63efdc}.template svg{width:52px;height:38px}.template span{white-space:nowrap}.reference-presets,.select-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:12px}.reference-presets button,.select-actions button{font-size:12px;padding:8px 5px}.reference-presets .active{border-color:var(--accent);background:#102d2b}.upload{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:98px;border:1px dashed #48565d;border-radius:5px;cursor:pointer;margin-bottom:10px;text-align:center;padding:10px 8px}.upload:hover,.upload.dragover,.frame.dragover{border-color:var(--accent);background:#102925}.upload-icon{color:var(--accent);font-size:22px}.upload strong{font-size:13px;font-weight:500}.upload span:not(.upload-icon),.upload small{color:var(--muted);font-size:11px;line-height:1.45}.image-info{font-size:12px;color:var(--muted);overflow-wrap:anywhere;margin:0 0 12px}.image-info button{padding:3px 6px;margin-left:8px}.button-row{display:grid;grid-template-columns:1fr 1fr;gap:7px}.button-row button{font-size:11px;padding:8px 4px}.select-actions{grid-template-columns:1fr 1fr}.transform-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:14px 0}.transform-grid label,.coordinate-row label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.transform-grid input,.coordinate-row input{width:100%;min-width:0}.coordinate-row{display:flex;gap:10px}.coordinate-row label{flex:1}#pointInspector{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}#symmetryTools{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.workspace{min-width:0;min-height:0;display:flex;flex-direction:column}.toolbar{height:62px;display:flex;align-items:center;justify-content:space-between;padding:12px 22px;border-bottom:1px solid var(--line)}#modeLabel{color:#84a2a4;font-size:12px;letter-spacing:.5px}.segmented{display:flex;padding:3px;background:#171d23;border-radius:7px}.segmented button{border:0;background:transparent;color:var(--muted);padding:7px 12px}.segmented button.active{background:#27443f;color:#7ef6df}.stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:25px;background:radial-gradient(ellipse at center,#192629,#0b1115 80%);overflow:hidden}.frame{position:relative;width:min(100%,calc((100dvh - 240px) * 1.133333));aspect-ratio:17/15;min-width:280px;background:#000;box-shadow:0 0 0 1px #50606b,0 20px 60px #0008}.frame.stereo{width:min(100%,calc((100dvh - 240px) * 2.266666));aspect-ratio:34/15}#preview,#editor{position:absolute;width:100%;height:100%;inset:0}#editor{overflow:visible;touch-action:none}.eye-dock{min-height:76px;display:flex;align-items:center;justify-content:center;gap:14px;border-top:1px solid var(--line);background:#0d1317}.eye-dock>span{font-size:11px;letter-spacing:1.4px;color:#64747b}.eye-tabs button{font-size:15px;font-weight:600;padding:10px 18px}.eye-tabs button.active{background:#1b4a46;color:#8df7e4}.anchor{cursor:move}.handle{cursor:crosshair}.curve{pointer-events:stroke;cursor:pointer}.axis{pointer-events:none}
.field{display:flex;flex-direction:column;gap:8px;font-size:14px;margin-bottom:24px}input[type=text],input:not([type]),input[type=number],select{border:1px solid #36404b;border-radius:4px;background:#0e1318;color:#dbe4ea;padding:8px;width:100%;min-width:0}.range-title{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px;margin:20px 0 10px}.range-title output{font-variant-numeric:tabular-nums;color:var(--muted)}.range-title input{width:72px}input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer}.clearance-card{background:#112521;border:1px solid #1a4b40;border-radius:4px;padding:14px;margin:25px 0}.clearance-card .range-title{margin-top:0}.clearance-card .range-title strong{font-size:13px;font-weight:550}#clearanceBadge{font-size:10px;letter-spacing:.8px;color:#8ce5c0}#clearanceText{font-size:12px;color:#a8b6ae;line-height:1.55}.clearance-card.warning{background:#302319;border-color:#805e35}.warning #clearanceBadge{color:#fac685}.warning #clearanceText{color:#d9bea0}details{font-size:12px;line-height:1.6;color:var(--muted)}summary{cursor:pointer;color:#bdc9d3;font-size:13px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#263b34;border:1px solid #629b86;box-shadow:0 8px 35px #0007;border-radius:7px;max-width:90vw;padding:13px 20px;font-size:14px;display:none;z-index:10}
.toolbar{height:auto;min-height:62px;gap:10px;flex-wrap:wrap;padding:12px 16px}.toolbar .segmented button{font-size:12px;padding:8px 9px}.reference-switch{margin-left:auto}.upload-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line)}.upload-fields .upload{min-height:72px;margin:0}.upload-fields span{overflow-wrap:anywhere}[hidden]{display:none!important}.right-panel{display:flex;flex-direction:column}.right-panel>.field,.right-panel>.range-title,.right-panel>input,.right-panel>.hint,.right-panel>section,.right-panel>details{flex-shrink:0}.render-action{margin-top:auto;padding-top:26px}.render-action>span{display:block;text-align:right}.frame{aspect-ratio:1;width:min(100%,calc(100dvh - 270px))}.frame.stereo{aspect-ratio:2;width:min(100%,calc((100dvh - 270px)*2))}#removeHandles{margin-top:8px}.eye-dock{flex-shrink:0}.stage{min-height:180px}.left-panel .import-button{margin-bottom:4px}
.brand{gap:12px;line-height:1.2;min-width:0}.mark{width:44px;height:44px;flex:none;border-radius:3px}.mark svg{width:36px;height:34px;fill:none;stroke:#102a29;stroke-width:1.9}.brand-title{font-size:18px;letter-spacing:.2px}.brand-meta{display:flex;align-items:center;gap:12px;min-height:17px}.brand-meta>a{font-size:11px;font-weight:500;color:#a9bec1;text-decoration:none}.brand-meta>a:hover{color:var(--accent)}.brand-meta .badge{font-size:9px;letter-spacing:1.2px;padding-left:12px;margin:0;line-height:1}.brand-copy{gap:7px}.clearance-heading{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.clearance-heading strong{font-size:13px;font-weight:600;line-height:1.5}.safety-row{font-size:12px;gap:8px}.number-unit{display:inline-flex;align-items:center;flex:none;gap:6px;white-space:nowrap}.number-unit input{width:60px}.export-error{font-size:12px;color:#ffadab;line-height:1.5;padding:12px;border:1px solid #733e42;border-radius:4px}.point-types{margin-top:14px}.point-types button{flex:1;font-size:12px;padding:8px 5px}#removeHandles{margin-top:0}.transform-grid label,.coordinate-row label{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:0}.transform-panel{padding-top:8px}.editor-hint{margin-top:0}.selection-box{fill:#00d7c00d;stroke:#78e9d8;stroke-width:.003;stroke-dasharray:.012 .012;pointer-events:none}.selection-grip{fill:#b3f5e7;stroke:#0b3430;stroke-width:.003;cursor:nwse-resize}.marquee{fill:#00d7c022;stroke:#65e6d4;stroke-width:.003;pointer-events:none}.curve-hit{fill:none;stroke:transparent;stroke-width:.04;pointer-events:stroke;cursor:copy}.point-types .active{background:#27443f;color:#7ef6df}.toolbar .segmented{flex-shrink:0}.toolbar .reference-switch{max-width:100%;flex-wrap:wrap}.clearance-card{margin-bottom:12px}
.import-tile{border-style:dashed;border-color:#657c80;justify-content:center;gap:3px}.import-tile svg{height:30px}.import-tile small{font-size:11px;color:var(--muted);line-height:1.2}.import-tile.dragover{background:#103e35;border-color:var(--accent)}.template:has(+.import-tile){min-height:84px}.lens-actions{margin:0 0 12px;padding:14px 0;border-top:0}.lens-actions .section-title{margin-bottom:8px}.lens-actions button{font-size:13px;margin-top:0;padding:9px 5px}.upload-fields:has(.upload[hidden]){grid-template-columns:1fr}input[data-decimal]{font-variant-numeric:tabular-nums}.range-title input[data-decimal]{width:72px}.number-unit input[data-decimal]{width:60px}
.brand-copy{gap:3px}.brand-meta{gap:7px}.brand-meta>a{font-size:12px}.brand-meta .badge{font-size:10px;padding-left:7px;letter-spacing:1px}.template,.template:has(+.import-tile){height:88px;min-height:88px;justify-content:center;gap:6px}.template span{white-space:normal;line-height:1.15;min-height:28px;display:flex;align-items:center;justify-content:center}.template svg,.import-tile svg{height:32px;flex:none}.curve{cursor:copy}.about-panel{border-top:1px solid var(--line);padding-top:18px;margin-top:14px}.about-panel p{margin:12px 0}.feedback{flex-shrink:0;font-size:11px;line-height:1.65;color:var(--muted);margin:18px 0 0}.feedback a{color:#79ddce;text-decoration:none}.feedback a:hover{text-decoration:underline}
@media(max-width:1120px){main{grid-template-columns:250px minmax(320px,1fr) 250px}aside{padding:20px 14px}.templates{grid-template-columns:1fr 1fr}.stage{padding:20px 14px}.eye-tabs button{padding:9px 12px}}
.reference-upload{position:relative;display:flex}.reference-menu{position:absolute;right:0;top:calc(100% + 7px);z-index:10;min-width:210px;padding:5px;background:#172329;border:1px solid #3b5158;border-radius:6px;box-shadow:0 8px 24px #0008}.reference-menu button{display:block;width:100%;text-align:left}.reference-prompts{position:absolute;inset:0;display:flex;pointer-events:none}.reference-prompts>div{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center}.reference-prompts strong,.reference-prompts span{background:#10191ee8;padding:4px 10px;border-radius:4px}.reference-prompts strong{font-size:14px}.reference-prompts span{font-size:12px;color:var(--muted)}.reference-prompts button{pointer-events:auto;font-size:12px}.reference-prompts [data-empty-eye=right]{grid-column:2}.stereo .reference-prompts{display:grid;grid-template-columns:1fr 1fr}.reference-drop-highlight{display:none;position:absolute;inset:0;pointer-events:none;border:2px dashed var(--accent);background:#00d7c01a}.dragover .reference-drop-highlight{display:block}.stereo[data-drop-eye=left] .reference-drop-highlight{right:50%}.stereo[data-drop-eye=right] .reference-drop-highlight{left:50%}
@media(max-width:850px){header{height:auto;min-height:76px;padding:15px;flex-wrap:wrap}.badge{display:none}main{height:auto;display:grid;grid-template-columns:230px 1fr}.workspace{grid-column:2}.right-panel{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 24px}.right-panel>.section-title,.right-panel>details{grid-column:1/-1}.right-panel>.clearance-card{grid-column:2/4}.stage{min-height:390px}.frame,.frame.stereo{width:100%}}
@media(max-width:620px){header{gap:13px}.brand{width:100%;font-size:17px}.header-actions{width:100%}.header-actions .primary{margin-left:auto}main{display:flex;flex-direction:column}.workspace{order:0}.left-panel{order:1;border-right:0;border-top:1px solid var(--line)}.right-panel{order:2;display:block}.stage{min-height:260px;padding:18px 12px}.toolbar{height:auto}.frame,.frame.stereo{width:100%;min-width:0}.eye-dock{min-height:68px}.eye-tabs button{font-size:12px;padding:8px 9px}.templates{grid-template-columns:repeat(3,1fr)}.right-panel{padding:24px}#download{font-size:12px;padding:8px 10px}}
