#root{min-height:100vh}.app-shell{box-sizing:border-box;flex-direction:column;width:min(1120px,100%);min-height:100vh;margin:0 auto;padding:0 56px;display:flex}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:88px;display:flex}.brand{color:var(--ink);letter-spacing:-.8px;align-items:center;gap:10px;font-size:19px;font-weight:750;text-decoration:none;display:inline-flex}.brand>span:last-child>span{color:var(--muted);font-weight:500}.brand-mark{color:var(--lime);font-size:28px;line-height:1}.account-area{align-items:center;gap:20px;display:flex}.account-email{color:var(--muted);font-size:12px}.text-button{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;padding:8px 0;font-size:12px;transition:color .16s}.text-button:hover{color:var(--lime)}.workspace{flex:1;grid-template-columns:minmax(0,.92fr) minmax(400px,1.08fr);align-items:center;gap:clamp(48px,8vw,104px);padding:64px 0 76px;display:grid}.terrain-form{gap:14px;display:grid}.terrain-label{color:#98ad9c;letter-spacing:1.3px;font-size:8px;font-weight:750}.scene-controls-heading h3{color:var(--ink);margin:10px 0 6px;font-size:15px;font-weight:600}.scene-controls-heading p{color:var(--muted);margin:0;font-size:11px;line-height:1.6}.terrain-form label{color:#dce4e8;gap:8px;font-size:11px;display:grid}.terrain-form input{width:100%;min-height:38px;color:var(--ink);background:#101a22;border:1px solid #30404c;border-radius:7px;outline:none;padding:0 11px;font-size:11px}.terrain-form input:focus-visible{border-color:var(--lime);box-shadow:0 0 0 3px #c6f56f14}.terrain-submit{color:#101713;background:var(--lime);cursor:pointer;white-space:nowrap;border:0;border-radius:7px;min-height:38px;padding:0 12px;font-size:11px;font-weight:700}.terrain-clear{min-height:36px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #35444d;border-radius:7px;padding:0 10px;font-size:11px}.terrain-submit:disabled{cursor:wait;opacity:.75}.terrain-error{color:#ffb8ad;margin:8px 0 0;font-size:12px}.terrain-attribution{color:#74818a;text-align:left;margin:8px 0 0;font-size:9px}.terrain-attribution a{color:inherit}.intro{padding:12px 0}.eyebrow,.step-label{color:var(--muted);letter-spacing:1.5px;align-items:center;gap:9px;font-size:10px;font-weight:700;display:inline-flex}.eyebrow-dot{background:var(--lime);border-radius:50%;width:7px;height:7px;box-shadow:0 0 12px #c6f56f99}.intro h1,.login-card h1{color:var(--ink);letter-spacing:-3.6px;margin:23px 0 18px;font-size:clamp(40px,5vw,59px);font-weight:570;line-height:1.06}.intro h1 span{color:var(--lime)}.intro>p,.login-card>p{max-width:365px;color:var(--muted);margin:0;font-size:14px;line-height:1.8}.forecast-note{color:var(--muted);align-items:center;gap:14px;margin-top:45px;font-size:11px;line-height:1.8;display:flex}.forecast-note strong{color:#d9e1e7;font-size:12px;font-weight:600}.sun-mark{width:42px;height:42px;color:var(--lime);background:#c6f56f0d;border:1px solid #c6f56f33;border-radius:50%;place-items:center;font-size:23px;display:grid}.upload-form{border:1px solid var(--line);background:linear-gradient(145deg,#141f29f5,#0e1720f5);border-radius:18px;padding:34px;box-shadow:0 24px 80px #0003}.form-heading{margin-bottom:29px}.step-label{color:var(--lime);letter-spacing:1.4px;font-size:9px}.step-label span{color:#64717b}.form-heading h2{color:var(--ink);letter-spacing:-.7px;margin:13px 0 6px;font-size:23px;font-weight:570}.form-heading p{color:var(--muted);margin:0;font-size:12px}.input-mode{background:#080f166b;border:1px solid #293943;border-radius:9px;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:4px;display:grid}.mode-button{color:#87949d;cursor:pointer;min-height:37px;font:inherit;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:8px;font-size:10px;transition:color .16s,background .16s,border-color .16s;display:flex}.mode-button:hover{color:#e3e9ec}.mode-button.active{color:var(--lime);background:#c6f56f14;border-color:#c6f56f29}.mode-button:focus-visible{outline:2px solid var(--lime);outline-offset:2px}.field-group{margin-top:22px}.category-field{margin:0 0 20px}.category-select{color:#e3e9ec;background:#101a22;border:1px solid #30404c;border-radius:7px;outline:none;width:100%;min-height:42px;padding:0 12px;font-size:11px;display:block}.category-select:focus-visible{border-color:var(--lime);box-shadow:0 0 0 3px #c6f56f14}.category-select option{color:#e3e9ec;background:#101a22}.field-label{color:#dce4e8;justify-content:space-between;gap:8px;margin-bottom:9px;font-size:11px;font-weight:600;display:flex}.field-label span{color:#72808a;letter-spacing:.35px;font-size:9px;font-weight:500}.upload-zone{box-sizing:border-box;cursor:pointer;background:#080f1666;border:1px dashed #3a4b57;border-radius:10px;align-items:center;gap:15px;min-height:122px;padding:15px;transition:border-color .16s,background .16s;display:flex}.upload-zone:hover,.upload-zone:focus-within{border-color:var(--lime);background:#c6f56f09}.multiview-inputs{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.view-upload{cursor:pointer;background:#080f1666;border:1px dashed #3a4b57;border-radius:8px;align-content:center;gap:7px;min-width:0;min-height:112px;padding:12px 10px;transition:border-color .16s,background .16s;display:grid}.view-upload:hover,.view-upload:focus-within,.view-upload.has-file{background:#c6f56f0b;border-color:#c6f56f8c}.view-name{color:var(--lime);text-transform:capitalize;font-size:9px;font-weight:750}.view-upload strong{color:#e3e9ec;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:600;overflow:hidden}.view-size{color:#77858d;font-size:9px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.upload-icon{background:#17232d;border:1px solid #30404c;border-radius:10px;flex:none;place-items:center;width:42px;height:42px;display:grid}.upload-icon svg{width:21px;height:21px;stroke:var(--lime);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}.image-preview{object-fit:cover;border-radius:8px;flex:none;width:58px;height:58px}.upload-copy{flex:1;gap:5px;min-width:0;display:grid}.upload-copy strong{color:#e3e9ec;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;overflow:hidden}.upload-copy>span{color:#84919a;font-size:10px}.browse-button{color:#dce4e8;white-space:nowrap;border:1px solid #354550;border-radius:6px;padding:8px 10px;font-size:10px}.prompt-input{box-sizing:border-box;resize:vertical;width:100%;min-height:88px;color:var(--ink);font:inherit;background:#080f166b;border:1px solid #30404c;border-radius:8px;outline:none;padding:12px 13px;font-size:11px;line-height:1.6;transition:border-color .16s,box-shadow .16s;display:block}.prompt-input::placeholder{color:#65737d}.prompt-input:focus{border-color:var(--lime);box-shadow:0 0 0 3px #c6f56f14}.submit-button{color:#101713;background:var(--lime);cursor:pointer;width:100%;min-height:47px;font:inherit;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin-top:25px;padding:0 16px;font-size:12px;font-weight:700;transition:transform .16s,background .16s,opacity .16s;display:flex}.submit-button:hover:not(:disabled){background:#d2ff82;transform:translateY(-1px)}.submit-button:focus-visible,.text-button:focus-visible,.brand:focus-visible{outline:2px solid var(--lime);outline-offset:4px}.submit-button:disabled{cursor:wait;opacity:.75}.submit-button>span:last-child:not(.button-spinner){font-size:17px}.button-spinner,.loading-indicator{border:2px solid #10171347;border-top-color:#101713;border-radius:50%;width:15px;height:15px;animation:.7s linear infinite spin}.form-message{border:1px solid #0000;border-radius:7px;margin:14px 0 0;padding:11px 12px;font-size:11px;line-height:1.55}.form-message.loading{color:#d8e0e5;background:#ffffff06;border-color:#34434d}.form-message.success{color:#d9f7b5;overflow-wrap:anywhere;background:#c6f56f0f;border-color:#c6f56f33}.form-message.error{color:#ffb8ad;overflow-wrap:anywhere;background:#ff80700f;border-color:#ff807038}.form-footnote{color:#74818a;text-align:center;margin:16px 0 0;font-size:9px}.page-footer{border-top:1px solid var(--line);color:#66747d;letter-spacing:.5px;justify-content:space-between;align-items:center;gap:12px;min-height:58px;font-size:9px;display:flex}.page-footer>span:first-child{letter-spacing:1.2px}.requests-section{border-top:1px solid var(--line);padding:10px 0 54px}.requests-heading,.request-row,.request-actions{justify-content:space-between;align-items:center;gap:20px;display:flex}.requests-heading h2{color:var(--ink);margin:10px 0 0;font-size:24px;font-weight:570}.request-count,.requests-state{color:var(--muted);font-size:12px}.requests-state{border-top:1px solid var(--line);padding:24px 0}.requests-error,.viewer-error{color:#ffb8ad}.request-list{border-top:1px solid var(--line)}.request-row{border-bottom:1px solid var(--line);min-height:82px;padding:16px 0}.request-main{gap:5px;min-width:0;display:grid}.request-id{color:#75848d;letter-spacing:.15px;font-size:9px;font-weight:500}.request-description,.request-date{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.request-description{color:#e4eaec;font-size:13px;font-weight:700}.request-date{color:#72808a;font-size:10px}.request-actions{flex:none}.status-pill{color:#cbd8cf;text-transform:capitalize;background:#1a2723;border:1px solid #43534b;border-radius:999px;padding:6px 9px;font-size:10px}.status-generated,.status-complete,.status-completed{color:#d9f7b5;background:#c6f56f14;border-color:#c6f56f40}.status-failed,.status-error{color:#ffb8ad;background:#ff807012;border-color:#ff807040}.status-processing,.status-running{color:#b8e1e8;background:#74becb14;border-color:#74becb40}.view-model-button{color:#111a15;background:var(--lime);cursor:pointer;border:0;border-radius:6px;align-items:center;gap:8px;padding:8px 10px;font-size:10px;font-weight:700;display:inline-flex}.view-model-button:disabled{cursor:wait;opacity:.68}.requests-heading{min-height:98px}.refresh-requests{color:#c9d2d6;cursor:pointer;background:#111a20;border:1px solid #35444d;border-radius:6px;align-items:center;gap:8px;padding:8px 10px;font-size:10px;display:inline-flex}.refresh-requests span{color:var(--lime);font-size:15px;line-height:.8}.history-toolbar{justify-content:space-between;align-items:center;gap:16px;min-height:52px;margin-bottom:8px;display:flex}.history-filters{flex-wrap:wrap;gap:5px;display:flex}.history-filter{color:#89969d;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:7px;min-height:32px;padding:0 10px;font-size:10px;display:inline-flex}.history-filter span{color:#71808a;font-size:9px}.history-filter.active{color:#e3e9ec;background:#ffffff09;border-color:#34434b}.history-filter.active span{color:var(--lime)}.history-filter:focus-visible,.refresh-requests:focus-visible,.pipeline-toggle:focus-visible,.view-model-button:focus-visible{outline:2px solid var(--lime);outline-offset:3px}.pipeline-panel{z-index:5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0f181df7;border:1px solid #3b5049;border-radius:8px;width:min(340px,100vw - 40px);max-height:calc(100vh - 124px);animation:.24s ease-out both pipeline-arrive;position:fixed;top:104px;right:20px;overflow-y:auto;box-shadow:0 18px 56px #0000006b}.pipeline-heading,.pipeline-title-wrap,.pipeline-item-top{align-items:center;display:flex}.pipeline-heading{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;min-height:72px;padding:12px 14px}.pipeline-title-wrap{gap:11px;min-width:0}.pipeline-title-wrap>div{gap:5px;min-width:0;display:grid}.pipeline-kicker{color:#98ad9c;letter-spacing:1.3px;font-size:8px;font-weight:750}.pipeline-title-wrap strong{color:#e3e9ec;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:650;overflow:hidden}.pipeline-pulse{background:var(--lime);border-radius:50%;flex:none;width:9px;height:9px;animation:1.8s ease-in-out infinite pulse;box-shadow:0 0 0 4px #c6f56f1a,0 0 16px #c6f56f8c}.pipeline-toggle{color:#dce4e8;cursor:pointer;background:0 0;border:1px solid #35444d;border-radius:6px;flex:none;place-items:center;width:30px;height:30px;font-size:18px;display:grid}.pipeline-list{padding:0 14px}.pipeline-item{border-bottom:1px solid var(--line);padding:14px 0 13px}.pipeline-item:last-child{border-bottom:0}.pipeline-item-top{justify-content:space-between;gap:10px}.pipeline-item-top strong{color:#e4eaec;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:700;overflow:hidden}.pipeline-status{color:#9ab5b6;flex:none;font-size:9px}.pipeline-id{color:#6f7e85;text-overflow:ellipsis;white-space:nowrap;margin-top:6px;font-size:9px;display:block;overflow:hidden}.pipeline-track{grid-template-columns:repeat(3,1fr);gap:4px;margin-top:11px;display:grid}.pipeline-track span{background:#344149;border-radius:4px;height:3px}.pipeline-track.stage-uploading span:first-child,.pipeline-track.stage-queued span:first-child,.pipeline-track.stage-processing span:nth-child(-n+2),.pipeline-track.stage-running span:nth-child(-n+2){background:#a2c779}.pipeline-more{color:#8c9a9f;padding:11px 0 13px;font-size:10px;display:block}.is-collapsed .pipeline-heading{border-bottom:0}@keyframes pipeline-arrive{0%{opacity:0;transform:translate(12px,-4px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{50%{box-shadow:0 0 0 7px #c6f56f0a,0 0 20px #c6f56f61}}.viewer-error{margin:0 0 24px;font-size:12px}.studio-page{background:radial-gradient(at 17% 38%,#21454f2e,#0000 34%),#0b1219;min-height:100vh;padding:0 clamp(12px,3vw,36px)}.model-viewer{border-right:1px solid var(--line);border-left:1px solid var(--line);background:#111a20;flex-direction:column;width:min(1600px,100%);min-height:100vh;margin:0 auto;display:flex;overflow:hidden}.viewer-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;min-height:112px;padding:18px 24px;display:flex}.studio-back{color:#dce4e8;cursor:pointer;min-height:38px;font:inherit;background:0 0;border:1px solid #35444d;border-radius:7px;flex:none;align-items:center;gap:9px;padding:0 12px;font-size:11px;display:inline-flex}.studio-back:hover{color:var(--lime);border-color:#c6f56f59}.studio-back:focus-visible{outline:2px solid var(--lime);outline-offset:3px}.studio-wordmark{color:#74818a;letter-spacing:1.3px;flex:none;font-size:9px;font-weight:700}.studio-status{place-content:center;justify-items:center;gap:14px;min-height:60vh;display:grid}.studio-status .requests-state{border:0}.studio-load-error{color:#ffb8ad;text-align:center;max-width:min(500px,100vw - 40px);font-size:13px}.viewer-header h2{max-width:min(60vw,900px);color:var(--ink);text-overflow:ellipsis;white-space:nowrap;margin:5px 0 0;font-size:14px;overflow:hidden}.viewer-id{color:#77858d;text-overflow:ellipsis;white-space:nowrap;max-width:min(70vw,640px);margin-top:4px;font-size:9px;display:block;overflow:hidden}.viewer-canvas{background:#101920;height:min(76vh,960px);min-height:420px}.viewer-workspace{flex:1;grid-template-columns:minmax(0,1fr) 280px;align-items:stretch;display:grid}.viewer-stage{min-width:0}.scene-controls{border-left:1px solid var(--line);background:#080f1659;padding:22px 18px}.scene-controls-heading{margin-bottom:24px}.viewer-canvas canvas{display:block}.viewer-loading{color:#d9e1e7;white-space:nowrap;font-size:12px}.viewer-failure{color:#ffb8ad;text-align:center;padding:20px;font-size:12px}.viewer-hint{color:var(--muted);border-top:1px solid var(--line);margin:0;padding:12px 20px;font-size:10px}.auth-screen{box-sizing:border-box;place-content:center;justify-items:center;gap:12px;min-height:100vh;padding:24px;display:grid}.auth-screen>p{color:var(--muted);margin:0;font-size:13px}.auth-screen .auth-error{color:#ffb8ad;text-align:center;max-width:440px}.login-card{border:1px solid var(--line);background:linear-gradient(145deg,#141f29f5,#0e1720f5);border-radius:18px;width:min(440px,100%);padding:42px}.login-card .brand{margin-bottom:45px}.login-card h1{letter-spacing:-2.5px;font-size:45px}.login-card .submit-button{margin-top:28px}.loading-indicator{border-color:#34434d;border-top-color:var(--lime);width:24px;height:24px}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=820px){.app-shell{padding:0 28px}.workspace{grid-template-columns:1fr;gap:32px;max-width:560px;margin:0 auto;padding:52px 0}.intro h1{font-size:clamp(42px,9vw,56px)}.forecast-note{margin-top:24px}}@media (width<=520px){.app-shell{padding:0 18px}.topbar{height:72px}.account-area{gap:11px}.account-email{text-overflow:ellipsis;white-space:nowrap;max-width:125px;overflow:hidden}.workspace{padding:38px 0}.upload-form{padding:23px 18px}.upload-zone{gap:10px;padding:12px}.multiview-inputs{gap:5px}.view-upload{min-height:100px;padding:10px 7px}.upload-icon{width:36px;height:36px}.browse-button{padding:7px}.login-card{padding:30px 24px}.login-card h1{font-size:39px}.page-footer{font-size:8px}.requests-heading{min-height:88px}.requests-heading h2{font-size:21px}.request-row{align-items:flex-start;gap:10px}.request-actions{flex-direction:column;align-items:flex-end;gap:8px}.request-description{max-width:220px}.history-toolbar{flex-direction:column;align-items:flex-start;gap:3px;padding:8px 0}.history-filters{gap:2px;width:100%}.history-filter{gap:5px;padding:0 8px}.pipeline-panel{width:auto;max-height:42vh;inset:auto 12px 12px;transform:none}.pipeline-item{padding:11px 0}@keyframes pipeline-arrive{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.studio-page{padding:0 12px}.viewer-header{gap:12px;min-height:96px;padding:14px}.studio-wordmark{display:none}.viewer-workspace{grid-template-columns:minmax(0,1fr) 240px}.scene-controls{padding:18px 14px}.viewer-canvas{height:min(76vh,760px);min-height:280px}}@media (width<=680px){.viewer-workspace{grid-template-columns:minmax(0,1fr)}.scene-controls{border-top:1px solid var(--line);border-left:0}.viewer-canvas{height:min(68vh,760px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{color:#edf2f4;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--ink:#edf2f4;--muted:#96a3ac;--lime:#c6f56f;--line:#adc3cf1f;font-optical-sizing:auto;background:#0b1219;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(at 17% 38%,#21454f2e,#0000 34%),radial-gradient(at 87% 9%,#314c3d21,#0000 31%),#0b1219;min-width:320px;min-height:100vh;margin:0}button,input,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}::selection{color:#101713;background:#c6f56f}
