:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#111;background:#f3f1eb;--paper:#f3f1eb;--paper-2:#faf9f5;--ink:#111111;--muted:#6c6a64;--line:#c9c5bb}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%}body{margin:0;background:var(--paper)}a{color:inherit;text-decoration:none}button{font:inherit}.eyebrow{font-size:10px;letter-spacing:.2em;color:var(--muted);text-transform:uppercase}.site-header,.topbar{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px 24px;border-bottom:1px solid var(--ink);background:var(--paper-2)}.brand{display:flex;flex-direction:column;gap:4px}.brand strong{font-size:18px;font-weight:620;letter-spacing:-.025em}.library-count{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}.library-page{padding:0 24px 48px}.library-hero{max-width:850px;padding:72px 0 52px}.library-hero h1{margin:10px 0 16px;font-size:clamp(36px,5vw,72px);line-height:.95;letter-spacing:-.055em;font-weight:560}.library-hero p{max-width:680px;margin:0;color:var(--muted);font-size:15px;line-height:1.6}.model-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:18px}.model-card{min-width:0;border:1px solid var(--ink);background:var(--paper-2)}.model-preview-link{display:block;border-bottom:1px solid var(--ink)}.model-preview{height:360px;overflow:hidden;background:#e9e5dc;cursor:pointer}.model-preview canvas{display:block;width:100%;height:100%}.model-card-copy{min-height:210px;padding:20px;display:flex;flex-direction:column;justify-content:space-between;gap:24px}.model-family{display:block;margin-bottom:7px;font-size:9px;color:var(--muted);letter-spacing:.14em;text-transform:uppercase}.model-card h2{margin:0;font-size:26px;font-weight:600;letter-spacing:-.035em}.model-card p{margin:9px 0 0;max-width:46ch;color:var(--muted);font-size:12px;line-height:1.55}.pill-button,button{width:max-content;border:1px solid var(--ink);background:transparent;color:var(--ink);border-radius:999px;padding:9px 15px;cursor:pointer;transition:background .15s ease,color .15s ease;font:inherit;font-size:12px}.pill-button:hover,button:hover{background:var(--ink);color:#fff}.topbar{height:82px}.viewer-title{display:flex;align-items:center;gap:24px}.viewer-title h1{margin:3px 0 0;font-size:24px;font-weight:600;letter-spacing:-.035em}.back-link{border-right:1px solid var(--line);padding-right:24px;font-size:11px;color:var(--muted)}.back-link:hover{color:var(--ink)}.actions{display:flex;gap:8px}.viewer-layout{height:calc(100vh - 82px);display:grid;grid-template-columns:minmax(0,1fr) 350px}#viewport{min-width:0;position:relative;background:#e8e5dd}#viewport canvas{display:block;width:100%;height:100%}.panel{overflow:auto;padding:24px 20px 20px;border-left:1px solid var(--ink);background:var(--paper-2)}.panel-copy h2{margin:0;font-size:18px;font-weight:650;letter-spacing:-.02em}.panel-copy p{font-size:12px;line-height:1.55;color:var(--muted);margin:8px 0 20px}code{font-size:.92em}.lil-gui.root{--background-color:transparent;--widget-color:#ece9e1;--hover-color:#dfdcd3;--focus-color:#d7d3ca;--text-color:#111111;--number-color:#111111;--string-color:#111111;--font-size:12px;--input-font-size:12px;--padding:7px;--spacing:5px;--widget-height:26px;width:100%}.lil-gui .title{background:#111!important;color:#fff!important;border-radius:999px;min-height:27px;line-height:27px;padding-left:12px!important;font-weight:650;letter-spacing:-.01em}.lil-gui .children{padding-top:5px}.lil-gui .controller{color:#111!important;min-height:31px;border-bottom:1px solid #dfdbd2}.lil-gui .controller .name{color:#111!important;opacity:1!important;font-weight:520;line-height:1.2;padding-right:10px}.lil-gui .widget{color:#111!important}.lil-gui input,.lil-gui select{color:#111!important;background:#f7f5ef!important;border:1px solid #aaa69d!important;border-radius:4px!important}.lil-gui .slider{background:#d9d5cc!important;border:1px solid #aaa69d;border-radius:4px}.lil-gui .slider .fill{background:#111!important}.lil-gui .controller.number .display,.lil-gui .controller.number input{color:#111!important}.lil-gui input[type=checkbox]{accent-color:#111}.stats{display:flex;justify-content:space-between;gap:12px;margin-top:18px;padding-top:14px;border-top:1px solid var(--ink);font-size:11px;color:var(--muted)}.not-found{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:18px;text-align:center;padding:32px}.not-found h1{margin:0;font-size:42px;letter-spacing:-.04em}@media(max-width:800px){.site-header,.topbar{align-items:flex-start}.library-page{padding:0 16px 32px}.library-hero{padding:48px 0 36px}.model-preview{height:300px}.viewer-title{align-items:flex-start;gap:12px}.back-link{padding-right:12px}.viewer-layout{height:auto;grid-template-columns:1fr}#viewport{height:60vh}.panel{border-left:0;border-top:1px solid var(--ink)}}.header-links{display:flex;align-items:center;gap:18px}.text-link{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.text-link:hover{color:var(--ink)}.primary-button{background:var(--ink);color:#fff}.primary-button:hover{background:#34322e;color:#fff}.primary-button:disabled{opacity:.5;cursor:wait}.modal-shell{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px}.modal-backdrop{position:absolute;inset:0;background:#1111118f;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.save-modal{position:relative;z-index:1;width:min(1040px,96vw);max-height:92vh;overflow:auto;display:grid;grid-template-columns:1fr 1fr;background:var(--paper-2);border:1px solid var(--ink);box-shadow:0 24px 80px #00000040}.modal-close{position:absolute;z-index:3;right:14px;top:14px;width:34px;height:34px;padding:0;display:grid;place-items:center;border-radius:50%;background:var(--paper-2);font-size:22px}.save-preview-column{padding:30px;border-right:1px solid var(--ink)}.save-preview-column h2{margin:7px 0 20px;font-size:32px;letter-spacing:-.04em}.saved-preview{aspect-ratio:1/1;overflow:hidden;border:1px solid var(--line);background:#e7e3db}.saved-preview img{width:100%;height:100%;object-fit:cover;display:block}.preview-caption{color:var(--muted);font-size:11px;line-height:1.5}.contact-form{padding:48px 34px 34px;display:flex;flex-direction:column;justify-content:center;gap:22px}.form-intro h3,.success-state h3{margin:7px 0 10px;font-size:30px;letter-spacing:-.04em}.form-intro p,.success-state p{margin:0;max-width:52ch;color:var(--muted);font-size:13px;line-height:1.6}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.contact-form label{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:600}.contact-form input:not([type=checkbox]){width:100%;height:42px;border:1px solid var(--line);background:#fff;color:var(--ink);padding:0 11px;font:inherit;border-radius:0}.contact-form input:focus{outline:1px solid var(--ink);border-color:var(--ink)}.consent-row{flex-direction:row!important;align-items:flex-start;font-weight:400!important;color:var(--muted);line-height:1.4}.consent-row input{margin-top:2px;accent-color:#111}.form-message{min-height:18px;color:#9b1c1c;font-size:11px}.submit-configuration{width:100%;justify-content:center;border-radius:0;min-height:45px}.success-state{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.success-icon{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--ink);border-radius:50%;font-size:20px}.reference-box{margin:10px 0;width:100%;padding:18px;display:flex;justify-content:space-between;border:1px solid var(--ink)}.reference-box span{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.1em}.reference-box strong{letter-spacing:.08em}.demo-badge{border:1px solid #b76b00;color:#8b5200;padding:5px 9px;font-size:9px;letter-spacing:.12em}.admin-page{padding:0 24px 60px}.admin-hero{padding:54px 0 34px;display:flex;justify-content:space-between;gap:24px;align-items:flex-end;border-bottom:1px solid var(--ink)}.admin-hero h1{margin:8px 0;font-size:44px;letter-spacing:-.05em}.admin-hero p{margin:0;color:var(--muted);font-size:12px}.request-list{padding-top:20px;display:grid;gap:12px}.request-card{display:grid;grid-template-columns:180px 1fr;min-height:180px;border:1px solid var(--ink);background:var(--paper-2)}.request-thumb{background:#e7e3db;overflow:hidden;border-right:1px solid var(--ink)}.request-thumb img{width:100%;height:100%;object-fit:cover;display:block}.request-summary{padding:18px;display:flex;flex-direction:column;align-items:flex-start;gap:7px}.request-summary h2{margin:4px 0 0;font-size:24px;letter-spacing:-.035em}.request-summary p{margin:0 0 6px;color:var(--muted);font-size:12px}.request-meta{width:100%;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.status{padding:4px 7px;border:1px solid var(--line);color:var(--ink)}.status-new{border-color:#111}.request-contact{display:flex;gap:16px;margin-bottom:9px;font-size:12px}.request-contact a{text-decoration:underline}.empty-state{padding:70px 20px;border:1px solid var(--ink);text-align:center;display:grid;justify-items:center;gap:14px}.empty-state h2{margin:0}.empty-state p{color:var(--muted)}.request-detail{height:calc(100vh - 82px);min-height:0;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) 440px;grid-template-rows:minmax(0,1fr)}.detail-preview{min-width:0;min-height:0;width:100%;height:100%;background:#e7e3db;position:relative;overflow:hidden}.detail-preview canvas{position:absolute;inset:0;width:100%!important;height:100%!important;display:block}.detail-preview img{width:100%;height:100%;object-fit:cover}.detail-copy{min-height:0;height:100%;padding:40px 30px;border-left:1px solid var(--ink);background:var(--paper-2);overflow-y:auto;overflow-x:hidden}.detail-copy h1{font-size:38px;margin:8px 0 12px;letter-spacing:-.045em}.detail-contact{display:flex;flex-direction:column;gap:5px;font-size:12px;margin-bottom:32px}.detail-contact a{text-decoration:underline}.detail-block{padding:20px 0;border-top:1px solid var(--line)}.detail-block h2{margin:7px 0 0}.detail-block p{color:var(--muted);font-size:12px}.detail-block select{margin-top:9px;width:100%;height:40px;background:#fff;border:1px solid var(--ink);padding:0 9px}.parameter-list{margin:10px 0 0}.parameter-list>div{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:8px 0;border-bottom:1px solid #e2ded5;font-size:11px}.parameter-list dt{color:var(--muted)}.parameter-list dd{margin:0;text-align:right;word-break:break-word}@media(max-width:800px){.save-modal{grid-template-columns:1fr}.save-preview-column{border-right:0;border-bottom:1px solid var(--ink);padding:22px}.contact-form{padding:28px 22px}.form-grid{grid-template-columns:1fr}.actions{flex-wrap:wrap;justify-content:flex-end}.request-card{grid-template-columns:110px 1fr}.request-detail{height:auto;min-height:calc(100vh - 82px);overflow:visible;grid-template-columns:1fr;grid-template-rows:50vh auto}.detail-preview{min-height:0;height:50vh}.detail-copy{height:auto;overflow:visible;border-left:0;border-top:1px solid var(--ink)}}.admin-login-page{min-height:100vh;display:grid;place-items:center;padding:32px;background:#e7e3db}.admin-login-card{width:min(520px,100%);background:#f6f2e9;border:1px solid rgba(24,20,16,.18);border-radius:24px;padding:clamp(28px,5vw,52px);box-shadow:0 24px 80px #1e19141a;display:grid;gap:28px}.admin-login-copy{display:grid;gap:10px}.admin-login-copy h1{margin:0;font-size:clamp(30px,5vw,48px);line-height:.98}.admin-login-copy p{margin:0;line-height:1.55}.admin-email-hint{font-weight:700;color:#17120d}.auth-error{padding:14px 16px;border-radius:12px;background:#fff0ee;border:1px solid #d8a39d;color:#762b24;line-height:1.4}.google-login-button{width:100%;justify-content:center;min-height:48px}.admin-session-email{font-size:12px;opacity:.66}.text-button{appearance:none;border:0;background:transparent;padding:0;text-decoration:underline;cursor:pointer;font:inherit;color:inherit}.request-thumb canvas{width:100%!important;height:100%!important;display:block}.admin-export-block h2{margin:7px 0 6px}.admin-export-block>p{margin:0 0 14px;line-height:1.45}.export-body-list{display:grid;gap:7px;margin:14px 0 16px}.export-body-option{display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid var(--line);background:#fff;font-size:12px;cursor:pointer}.export-body-option input{margin:0;accent-color:#111}.export-stl-button{width:100%;justify-content:center}.export-stl-button:disabled{opacity:.45;cursor:not-allowed}.export-feedback{min-height:16px;margin:8px 0 0!important;color:var(--muted);font-size:10px!important}
