@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#191222;--panel:#21172e;--line:#3c2c4e;--muted:#aa9cb9;--text:#f4edf8;--accent:#e5b8ff;--accent-dark:#402a52}*{box-sizing:border-box}body{margin:0;font-family:'DM Sans',sans-serif;color:var(--text);background:var(--bg);font-size:13px}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit;border:0}button:disabled{cursor:not-allowed;opacity:.4}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button:hover:not(:disabled){filter:brightness(1.12)}a{color:inherit;text-decoration:none}.topbar{height:78px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;gap:24px;background:#f3ecf8}.brand{display:flex;align-items:center;gap:12px;font-family:'Space Grotesk',sans-serif;font-size:21px;font-weight:700;letter-spacing:-.8px}.logo{width:39px;height:42px;background:var(--accent);border-radius:10px;display:grid;place-items:center}.logo svg{width:28px;fill:none;stroke:#182620;stroke-width:3;stroke-linejoin:round}.brand-sub{font:9px 'DM Sans',sans-serif;letter-spacing:2.4px;color:var(--muted);display:block;margin-top:1px}.beta{border:1px solid #48544a;color:var(--accent);font:8px 'DM Sans',sans-serif;letter-spacing:1px;padding:3px 5px;border-radius:4px;margin-left:2px}.top-center{font-size:12px;color:var(--muted);display:flex;gap:9px;align-items:center}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0}.top-actions{display:flex;align-items:center;gap:22px}.quiet{background:none;font-size:12px;color:#aab6bf;padding:6px 0}.quiet span{margin-left:9px}.button{border-radius:7px;background:#2a353e;padding:12px 17px;display:inline-flex;align-items:center;gap:25px;font-weight:600}.button.small{font-size:12px;padding:11px 14px;gap:22px;border:1px solid #3a464f}.button.primary{background:var(--accent);color:#2c123d;min-width:170px;justify-content:space-between}.workspace{display:grid;grid-template-columns:236px 320px minmax(360px,1fr);height:calc(100dvh - 78px);min-height:650px}.library{padding:27px 18px 15px;border-right:1px solid var(--line);display:flex;flex-direction:column;overflow:auto;background:#1c1427}.library-heading{display:flex;align-items:center;justify-content:space-between}.eyebrow{font-size:9px;letter-spacing:1.8px;font-weight:650;color:#98a8b1}.tool-count{color:#aa9cb9;font-size:10px;border:1px solid var(--line);border-radius:4px;padding:2px 6px}h1{font-family:'Space Grotesk',sans-serif;font-size:25px;line-height:1.23;letter-spacing:-.8px;font-weight:500;margin:15px 0 21px}.search{height:36px;border:1px solid #303c45;border-radius:6px;display:flex;align-items:center;padding:0 9px;gap:7px}.search svg{width:15px;stroke:#7f909c;fill:none;stroke-width:1.6}.search input{width:100%;background:none;border:0;outline:none;color:var(--text);font-size:11px;min-width:0}.search kbd{font-size:9px;border:1px solid #36424b;border-radius:3px;padding:0 4px;color:#88949c}.categories{display:flex;flex-wrap:wrap;gap:5px;margin:18px 0 20px}.categories button{background:none;border:1px solid transparent;border-radius:4px;color:#93a3af;font-size:10px;padding:5px 7px}.categories button.active{background:#402a51;color:var(--accent);border-color:#815498}.tools{display:flex;flex-direction:column;gap:5px}.tool{display:flex;align-items:center;gap:10px;text-align:left;width:100%;background:none;padding:10px 9px;border:1px solid transparent;border-radius:7px;font-size:11px;color:#a9b5bd;position:relative;min-height:47px}.tool .tool-icon{display:grid;place-items:center;border:1px solid #35414a;width:30px;height:30px;border-radius:6px;color:#a0acb8;font-size:17px;font-family:'Space Grotesk',sans-serif;flex-shrink:0}.tool.active{background:#402a51;border-color:#815498;color:#f3e1ff}.tool.active .tool-icon{background:var(--accent);color:#2c123d;border-color:transparent}.tool.active:after{content:'↗';margin-left:auto;color:var(--accent)}.tool .tag{font-size:6px;letter-spacing:.7px;position:absolute;right:9px;top:3px;color:#a9bd91}.library-footer{margin-top:auto;padding:30px 5px 0;color:#95a1aa;font-size:10px;line-height:1.8}.library-footer .status-dot{width:4px;height:4px;margin-right:6px}.library-footer small{font-size:9px;color:#61727f;padding-left:12px}.editor{border-right:1px solid var(--line);background:#251b34;display:flex;flex-direction:column;overflow:hidden}.editor-head{display:flex;justify-content:space-between;align-items:center;padding:27px 23px 0}.editor-head .eyebrow{color:var(--accent);font-size:8px}h2{font-family:'Space Grotesk',sans-serif;font-size:21px;font-weight:500;letter-spacing:-.6px;margin:8px 0}.icon-button{width:29px;height:29px;border:1px solid #36414b;border-radius:6px;background:none;color:#a0afb8;font-size:20px}.description{font-size:11px;line-height:1.8;color:#8d9eaa;padding:0 23px;margin:9px 0 24px}.tabs{display:flex;gap:21px;padding:0 23px;border-bottom:1px solid #303c45}.tabs button{background:none;color:#81939f;font-size:11px;padding:0 0 13px;position:relative}.tabs button.active{color:#e0ebdf}.tabs button.active:after{content:'';position:absolute;bottom:-1px;height:2px;background:var(--accent);left:0;right:0}.tabs span{font-size:8px;background:#2b3742;border-radius:4px;padding:1px 4px;margin-left:3px}.editor-content{overflow:auto;flex:1;padding:22px 23px}.section-label{font-size:9px;text-transform:uppercase;letter-spacing:1.4px;color:#94a5b0;margin:0 0 14px;font-weight:600}.preset-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:25px}.chip{padding:7px 10px;font-size:10px;background:#222f39;border:1px solid #3a4852;border-radius:5px;color:#b4c0c8}.chip.active{color:var(--accent);border-color:#a275b7;background:#402a51}.param-group{border-top:1px solid #2c3943;padding-top:19px;margin-top:20px}.field{display:block;margin:0 0 17px}.field-label{display:flex;justify-content:space-between;align-items:center;color:#b0bfc8;font-size:11px;margin-bottom:8px}.field input[type=text],.field select,.field input[type=file],.cost-field input{width:100%;border:1px solid #3a4853;border-radius:5px;background:#1b1227;color:#e5ecec;min-height:37px;padding:9px 11px;font-size:12px}.field input[type=file]{font-size:10px;padding:9px}.number-input{display:flex;align-items:center;background:#1b1227;border:1px solid #35444f;border-radius:4px;padding:4px 7px;gap:4px}.number-input input{width:48px;background:none;border:0;color:#e4e9e8;outline:none;text-align:right;font-size:11px;appearance:textfield}.number-input input::-webkit-inner-spin-button{appearance:none}.number-input small{font-size:9px;color:#6c8090}input[type=range]{width:100%;height:3px;accent-color:var(--accent);cursor:pointer;margin:8px 0 0}input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px}.check{display:flex;align-items:center;justify-content:space-between}.editor-foot{height:37px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 20px;font-size:9px;color:#8296a4;flex-shrink:0}.editor-foot>div{display:flex;align-items:center;gap:6px}.editor-foot .status-dot{width:4px;height:4px}.stage{min-width:0;display:flex;flex-direction:column;background:#180f23}.stage-top{height:64px;display:flex;justify-content:space-between;align-items:center;padding:0 27px;flex-shrink:0}.breadcrumb{font-size:11px;color:#728490}.breadcrumb span{margin:0 10px;color:#445763}.breadcrumb strong{font-weight:400;color:#bcc7ce}.history{display:flex;gap:7px;align-items:center}.history .icon-button{font-size:16px;border:0}.history>span{width:1px;height:14px;background:#36434d;margin:0 8px}.history .quiet{font-size:10px}.viewport{position:relative;flex:1;min-height:330px;overflow:hidden;background:radial-gradient(ellipse at 48% 52%,#3a294b 0%,#251b35 52%,#1a1228 100%)}.viewport canvas{display:block;width:100%;height:100%;touch-action:none}.view-label{position:absolute;top:22px;left:27px;display:flex;align-items:center;gap:7px;font-size:8px;letter-spacing:1.6px;color:#718897;z-index:2;pointer-events:none}.view-label .status-dot{width:4px;height:4px;background:#91b37c}.view-tools{position:absolute;right:23px;top:24px;display:flex;flex-direction:column;border:1px solid #3a4852;border-radius:8px;background:#18232bd9;overflow:hidden;z-index:2}.view-tools button{background:none;color:#96a7b3;width:33px;height:34px;font-size:19px}.view-tools button+button{border-top:1px solid #303d47}.view-tools button.on{color:var(--accent);background:#4b315d}.view-bottom{position:absolute;bottom:24px;left:26px;right:26px;display:flex;justify-content:space-between;align-items:center;z-index:2;gap:10px}.view-mode{border:1px solid #35434d;background:#261a35;border-radius:6px;padding:3px;display:flex}.view-mode button{font-size:9px;color:#899da9;background:none;padding:7px 10px;border-radius:4px}.view-mode button.active{background:#513362;color:#efd6ff}.view-hint{font-size:9px;color:#5f7889}.view-hint span{padding:0 7px}.axis{position:absolute;right:29px;bottom:85px;width:42px;height:44px;color:#7592a4;font-size:8px;pointer-events:none}.axis i{position:absolute;left:18px;top:16px;width:20px;height:1px;background:#986b67;transform:rotate(25deg);transform-origin:left}.axis i:before{content:'';position:absolute;width:20px;height:1px;background:#7f9c72;transform:rotate(-110deg);transform-origin:left}.axis i:after{content:'';position:absolute;width:20px;height:1px;background:#648bb1;transform:rotate(-90deg);transform-origin:left}.axis-z{position:absolute;top:-12px;left:15px;color:#8eb3d8}.axis-y{position:absolute;left:-4px;top:22px;color:#a2b98f}.axis-x{position:absolute;right:-3px;top:24px;color:#c78b80}.info-strip{display:flex;align-items:center;gap:37px;border-top:1px solid #2a3842;border-bottom:1px solid #2a3842;background:#241a32;padding:17px 27px;min-height:70px}.metric-label{font-size:7px;letter-spacing:1.2px;color:#758995;display:block;margin-bottom:7px}.info-strip strong{font-family:'Space Grotesk',sans-serif;font-size:12px;font-weight:400;white-space:nowrap}.validation{margin-left:auto;color:#abca91;font-size:10px;display:flex;gap:7px;align-items:center}.validation.warn{color:#d6ba82}.export-bar{padding:23px 26px;display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:99px}.export-bar>div:first-child{display:flex;align-items:center;gap:13px}.export-icon{display:grid;place-items:center;width:33px;height:36px;background:#3f2850;color:var(--accent);font-size:21px;border-radius:7px}.export-bar strong{font-size:11px;font-weight:500}.export-bar p{font-size:9px;color:#738995;margin:5px 0 0}.export-actions{display:flex;align-items:center;gap:10px}.export-actions select{border:1px solid #34434e;background:#251a35;border-radius:6px;color:#aebdc7;padding:11px 9px;font-size:10px}.export-actions .button{font-size:11px}.loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:3;background:#17222aa0;pointer-events:none}.loading span{width:27px;height:27px;border:2px solid #4d5f50;border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.loading p{font-size:11px;color:#abbca8}.loading[hidden]{display:none}@keyframes spin{to{transform:rotate(360deg)}}.error{position:absolute;top:60px;left:24px;right:65px;border:1px solid #86583e;border-radius:7px;padding:14px;background:#382b23;color:#ebcca9;z-index:4;font-size:12px}.part-row{border:1px solid #34434e;border-radius:6px;padding:11px;margin-bottom:8px;display:flex;align-items:center;gap:9px}.part-row input[type=color]{width:25px;height:25px;padding:0;border:0;background:none;cursor:pointer}.part-row span{font-size:11px;flex:1}.part-row button{font-size:11px;background:#293946;border-radius:4px;padding:5px 8px}.note{font-size:11px;line-height:1.8;color:#8fa2af}.warning{font-size:10px;line-height:1.7;background:#362f23;border:1px solid #574a31;padding:11px;border-radius:6px;margin:9px 0;color:#d1bc91}.print-select{width:100%;padding:10px;background:#1d142a;border:1px solid #3b4c58;border-radius:5px;color:#d6e1e5;font-size:11px}.cost-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cost-field{font-size:10px;color:#9baeb9}.cost-field input{margin-top:7px;font-size:11px}.cost-result{background:#3c254c;padding:15px;border-radius:7px;margin:16px 0;color:#efdbfc;line-height:1.8;font-size:11px}.cost-result strong{font-size:22px;font-family:'Space Grotesk',sans-serif;display:block}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%) translateY(80px);background:#ebcefc;color:#2c123d;padding:12px 20px;z-index:50;border-radius:8px;font-size:12px;box-shadow:0 8px 35px #0006;transition:transform .2s}.toast.show{transform:translateX(-50%) translateY(0)}dialog{width:min(560px,calc(100% - 32px));border:1px solid #45544e;border-radius:13px;background:#251a35;color:#dce5e8;padding:25px;box-shadow:0 20px 90px #0008}dialog::backdrop{background:#080e13bb;backdrop-filter:blur(5px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.dialog-head h2{font-size:23px}.guide-step{display:flex;gap:15px;margin:20px 0}.guide-step>b{background:#4b315d;color:#e5b8ff;width:27px;height:27px;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.guide-step strong{font-size:13px;font-weight:500}.guide-step p{font-size:12px;line-height:1.7;color:#9bafb9;margin:5px 0}.saved-row{display:flex;align-items:center;gap:10px;padding:15px 0;border-bottom:1px solid #34434d}.saved-row div{flex:1}.saved-row small{display:block;color:#8499a6;margin-top:5px}.saved-row button{background:#4b315d;color:#ecd4fa;border-radius:4px;padding:8px}.empty{font-size:12px;color:#8ba0ae;line-height:1.8}.help-link{background:none;border:0;color:var(--accent);font-size:11px;padding:0}.bed-size{display:flex;justify-content:space-between;font-size:10px;color:#8b9eab;margin-top:10px}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-thumb{background:#3a4a55;border-radius:5px}@media(min-width:1600px){.workspace{grid-template-columns:260px 350px minmax(360px,1fr)}.library{padding-left:24px;padding-right:24px}.editor-head,.description,.tabs,.editor-content{padding-left:28px;padding-right:28px}.tool{font-size:12px;min-height:50px}.stage-top{height:72px}.export-bar{min-height:108px}}@media(max-width:1200px){.workspace{grid-template-columns:205px 285px minmax(330px,1fr)}.top-center{display:none}.topbar{padding:0 20px}.export-bar>div:first-child{display:none}.export-actions{width:100%;justify-content:space-between}.info-strip{gap:22px;padding:15px 20px}.validation{font-size:9px}.stage-top{padding:0 20px}.view-hint{display:none}.library{padding-left:12px;padding-right:12px}.editor-content,.editor-head,.tabs,.description{padding-left:19px;padding-right:19px}}@media(max-width:900px){.workspace{grid-template-columns:195px minmax(300px,1fr);height:auto;min-height:calc(100dvh - 78px)}.library{grid-column:1/-1;flex-direction:row;gap:10px;align-items:center;padding:12px;border-right:0;border-bottom:1px solid var(--line);overflow-x:auto}.library-heading,.library h1,.library .search,.library-footer,.categories{display:none}.tools{flex-direction:row;gap:7px}.tool{width:auto;white-space:nowrap;padding:6px 10px;min-height:38px}.tool .tool-icon{width:23px;height:23px;font-size:13px}.tool .tag,.tool.active:after{display:none}.editor{min-height:690px}.stage{min-height:690px}.description{font-size:10px}.editor-head{padding-top:20px}.editor-head h2{font-size:18px}.editor-content{padding:18px 14px}.editor-head,.tabs,.description{padding-left:14px;padding-right:14px}.top-actions{gap:14px}.top-actions #help{display:none}.brand{font-size:18px}.beta{display:none}.topbar{height:68px}.info-strip{gap:18px;flex-wrap:wrap}.validation{display:none}.stage-top{padding:0 14px}.history .quiet{display:none}.view-bottom{left:14px;right:14px}.export-bar{padding:17px 14px}.export-actions{flex-wrap:wrap}.export-actions .button{flex:1}.export-actions select{flex:1}}@media(max-width:560px){.workspace{grid-template-columns:1fr;display:flex;flex-direction:column}.library{order:0;flex-shrink:0;max-width:100vw}.stage{order:1;min-height:500px;height:65dvh}.editor{order:2;min-height:400px;max-height:none}.editor-content{max-height:none;overflow:visible}.editor-head{padding-top:22px}.description{margin-bottom:18px}.top-actions #saved-open{display:none}.top-actions .button{font-size:10px;padding:9px}.topbar{padding:0 14px}.logo{width:32px;height:35px}.brand{font-size:17px}.brand-sub{font-size:7px;letter-spacing:2px}.top-actions .button span{display:none}.info-strip{min-height:60px;padding:10px 15px;gap:25px}.export-bar{min-height:75px}.view-label{left:15px;top:15px}.view-tools{right:15px;top:15px}.stage-top{height:44px}.viewport{min-height:280px}.editor-content{padding:20px}.param-group{display:block}.editor-foot{height:38px}}
/* Keychain typography and vector icon controls */
.field-label small{font-size:9px;color:#79909f}.font-current{width:100%;padding:13px 12px 10px;border-radius:7px;border:1px solid #455744;background:linear-gradient(135deg,#432b57,#2d1c3d);text-align:left}.font-current .font-sample{display:block;font-size:27px;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#f0e3f8}.font-meta{display:flex;align-items:center;justify-content:space-between;font-size:9px;color:#bc9ace;margin-top:7px}.font-meta>span{color:#e8cdf7;font-size:8px}.icon-picker{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.icon-choice{height:35px;padding:7px;background:#1c1329;border:1px solid #344753;border-radius:5px;color:#b5c4ca;display:grid;place-items:center}.icon-choice svg{width:21px;height:21px}.icon-choice.selected{border-color:#c99ce0;background:#513362;color:#f0d8fc;box-shadow:0 0 0 1px #c99ce055}.icon-caption{font-size:9px;color:#c6a2d6;margin-top:8px}.font-search input{width:100%;padding:11px 13px;border:1px solid #41535e;border-radius:7px;background:#111e27;color:#e6efed;outline:none}.font-filters{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}.font-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;max-height:440px;overflow:auto;padding:2px}.font-card{padding:13px 12px;border:1px solid #3a4a55;border-radius:7px;background:#1a2a34;text-align:left;min-width:0}.font-card.selected{border-color:#aacd8d;background:#432d55}.font-card>span{display:block;color:#f1e6fa;font-size:26px;line-height:1.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.font-card>small{display:flex;align-items:center;justify-content:space-between;font-size:9px;color:#b4a0c4;margin-top:5px;gap:5px}.font-card em{font-style:normal;font-size:8px;color:#8fa87d}.font-current:focus-visible,.icon-choice:focus-visible,.font-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:560px){.icon-picker{grid-template-columns:repeat(9,1fr)}.font-card>span{font-size:23px}.font-grid{max-height:55dvh}}@media(max-width:360px){.icon-picker{grid-template-columns:repeat(6,1fr)}}

/* MakeLume3D identity: original layered logo, violet and pink palette. */
.topbar{color:#2a173d;border-bottom:1px solid #d7c4e7;background:linear-gradient(110deg,#f8f2fc,#eee3f5)}.brand{gap:10px;letter-spacing:-.9px}.logo{width:50px;height:48px;position:relative;overflow:hidden;border-radius:0;background:none;flex-shrink:0}.logo img{position:absolute;width:160px;height:120px;max-width:none;left:-52.6px;top:-28.6px}.wordmark{font-size:22px;color:#221633}.wordmark .lume{color:#b448ba}.wordmark .three-d{color:#5b2b83;font-size:16px;margin-left:3px}.brand-sub{color:#72558b;font-size:8px;letter-spacing:2.6px;margin-top:4px}.topbar .beta{border-color:#c7aad9;color:#714486}.topbar .top-center{color:#80688f}.topbar .status-dot{background:#ac5ccc}.topbar .quiet{color:#705680}.topbar .button.small{background:#e6d6ee;color:#60317b;border-color:#cdb5db}.button.primary{background:linear-gradient(110deg,#d6a8f1,#f397d7);color:#32153f;border:1px solid #dfb3f0;box-shadow:0 3px 16px #b657cc1c}.tool.active .tool-icon{background:linear-gradient(135deg,#ddb4f3,#f295d9);color:#40204f}.tabs button.active:after{background:linear-gradient(90deg,#bc7ee4,#f57bcc)}.editor-head .eyebrow{color:#d2a2ed}.font-current{border-color:#6d4783}.icon-choice.selected{border-color:#c99ce0;box-shadow:0 0 0 1px #b88bd044}.font-card.selected{border-color:#c99ce0}.view-mode button.active{color:#efd6ff}.view-tools button.on{color:#efd6ff}.view-tools{background:#23192fd9;border-color:#51405f}.view-label .status-dot{background:#c78ee1}.font-card em{color:#c192da}.view-label{color:#a38ab5}.library-footer small{color:#927ea1}.brand-full{width:160px;aspect-ratio:870/675;position:relative;overflow:hidden;margin:0 auto 10px}.brand-full img{position:absolute;width:183.91%;max-width:none;height:auto;left:-38.74%;top:-42.37%}.guide-brand{background:#f4eafa;border-radius:10px;padding:16px 0 10px;margin-bottom:20px}.guide-brand p{color:#805093;text-align:center;font-size:11px;margin:0}.export-icon{background:#422b53;color:#e7bafa}.font-meta{color:#c3a1d2}.font-meta>span{color:#ebccfa}@media(max-width:560px){.logo{width:42px;height:42px}.logo img{width:139px;height:104.25px;left:-45.7px;top:-24.85px}.wordmark{font-size:19px}.wordmark .three-d{font-size:13px}.topbar{gap:10px}.brand{gap:5px}.brand-sub{font-size:7px;letter-spacing:2px}.top-actions{gap:6px}.brand-full{width:135px}}
