.ai-study-dialog{border:var(--border-width) solid var(--color-border);background:var(--color-bg);width:min(920px,100vw - 32px);max-height:min(90vh,900px);color:var(--color-text);padding:0}.ai-study-dialog::backdrop{background:#080806b8}@supports (transition-behavior:allow-discrete){.ai-study-dialog{opacity:0;transition:opacity var(--motion-medium) var(--ease-exit), transform var(--motion-medium) var(--ease-exit);transform:translateY(8px)}.ai-study-dialog[open]{opacity:1;transition-timing-function:var(--ease-standard);transform:translateY(0)}@starting-style{.ai-study-dialog[open]{opacity:0;transform:translateY(8px)}}.ai-study-dialog::backdrop{opacity:0;transition:opacity var(--motion-medium) var(--ease-standard)}.ai-study-dialog[open]::backdrop{opacity:1}@starting-style{.ai-study-dialog[open]::backdrop{opacity:0}}}.ai-study-inner{gap:var(--space-5);max-height:min(90vh,900px);padding:var(--space-5);flex-direction:column;display:flex;overflow:auto}.ai-study-dialog h2{font-family:var(--font-display);letter-spacing:-.015em;padding-inline-end:var(--space-7);font-size:28px;font-weight:400;line-height:1.1}.ai-study-intro{max-width:62ch;color:var(--color-text-muted)}.ai-study-section{gap:var(--space-3);flex-direction:column;display:flex}.ai-study-section h3{font-size:var(--size-section);font-weight:600}.ai-study-grid{gap:var(--space-4);grid-template-columns:1fr;display:grid}@media (width>=720px){.ai-study-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ai-study-grid[data-kind=single]{grid-template-columns:minmax(0,1fr)}}.ai-study-figure{gap:var(--space-2);flex-direction:column;margin:0;display:flex}.ai-study-figure img{background:var(--color-surface);border:var(--border-width) solid var(--color-hairline);width:100%;height:auto}.ai-study-figure figcaption{font-size:var(--size-caption);color:var(--color-text-muted);line-height:1.45}.ai-study-meta{gap:var(--space-2);font-size:var(--size-caption);color:var(--color-text-muted);display:grid}.ai-study-dismiss{z-index:1;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-raised);width:36px;height:36px;color:var(--color-text-muted);cursor:pointer;transition:color var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), background-color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);justify-content:center;align-items:center;padding:0;display:flex;position:absolute;inset-block-start:var(--space-3);inset-inline-end:var(--space-3)}.ai-study-dismiss:before{content:"";position:absolute;inset:-4px}@media (hover:hover){.ai-study-dismiss:hover{border-color:var(--color-accent);color:var(--color-text)}}.ai-study-dismiss:active{transform:translateY(1px)}.ai-study-close{min-height:44px;padding:var(--space-2) var(--space-4);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-raised);font-size:var(--size-control);cursor:pointer;transition:border-color var(--motion-fast) var(--ease-standard), background-color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);align-self:flex-start;font-weight:500}@media (hover:hover){.ai-study-close:hover{border-color:var(--color-accent)}}.ai-study-close:active{transform:translateY(1px)}.intro-curtain{z-index:40;padding:var(--space-6);background-color:var(--color-bg);transition:opacity .56s var(--ease-standard), visibility 0s linear .56s;grid-template-rows:1fr auto 1fr;justify-items:center;display:grid;position:fixed;inset:0}.intro-curtain[data-state=leaving]{opacity:0;visibility:hidden;pointer-events:none}.intro-inner{text-align:left;width:min(100%,34rem);transition:opacity .38s var(--ease-standard), transform .48s var(--ease-standard);grid-row:2}.intro-curtain[data-state=leaving] .intro-inner{opacity:0;transform:translateY(-10px)}.intro-kicker{font-size:var(--size-caption);letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);margin:0}.intro-title{margin:var(--space-3) 0 0;font-family:var(--font-display);letter-spacing:-.02em;color:var(--color-text);font-size:clamp(2.5rem,7vw,4.75rem);font-weight:400;line-height:1}.intro-meter{align-items:center;gap:var(--space-4);grid-template-columns:1fr auto;margin-top:clamp(24px,4vh,40px);display:grid}.intro-track{background-color:var(--color-hairline);height:1px;position:relative}.intro-fill{background-color:var(--color-accent);width:0%;transition:width .42s var(--ease-standard);position:absolute;inset:0 auto 0 0}.intro-percent{font-size:var(--size-caption);font-variant-numeric:tabular-nums;letter-spacing:.06em;color:var(--color-muted)}.intro-line{margin:var(--space-4) 0 0;max-width:38ch;font-size:var(--size-spec);color:var(--color-muted);line-height:1.5}.intro-slow{margin:var(--space-2) 0 0;font-size:var(--size-caption);color:var(--color-muted)}.intro-skip{appearance:none;padding:var(--space-2) var(--space-3);min-height:44px;color:var(--color-muted);font:inherit;font-size:var(--size-caption);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:color var(--motion-fast) var(--ease-standard);background:0 0;border:0;grid-row:3;align-self:end}.intro-skip:hover{color:var(--color-text)}@media (prefers-reduced-motion:reduce){.intro-curtain,.intro-inner,.intro-fill{transition-duration:1ms}.intro-curtain[data-state=leaving] .intro-inner{transform:none}}.configurator-stack{gap:var(--space-6);flex-direction:column;display:flex}.configurator-stack>*{--stagger-index:3;animation:room-spec-rise var(--motion-medium) var(--ease-standard) both;animation-delay:calc(var(--stagger-index) * var(--stagger-step))}.configurator-stack>:nth-child(2){--stagger-index:4}.configurator-stack>:nth-child(3){--stagger-index:5}.configurator-stack>:nth-child(4){--stagger-index:6}.configurator-stack>:nth-child(5){--stagger-index:7}.configurator-stack>:nth-child(6){--stagger-index:8}.configurator-stack>:nth-child(n+7){--stagger-index:9}.material-group{border:0;min-width:0;padding:0;container-type:inline-size}.material-group legend,.lighting-group legend,.spec-sheet h2{margin-bottom:var(--space-3);font-size:var(--size-section);font-weight:600;line-height:1.3}.option-grid{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@container (width>=280px){.option-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.material-option{cursor:pointer;min-width:0;min-height:44px;display:flex;position:relative}.material-option .control-input{appearance:none;clip:rect(0, 0, 0, 0);clip-path:inset(50%);border:0;width:1px;height:1px;margin:0;padding:0;position:absolute;inset-block-start:0;inset-inline-start:0;overflow:hidden}.option-face{gap:var(--space-2);width:100%;padding:var(--space-2);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);transition:border-color var(--motion-fast) var(--ease-standard), background-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);flex-direction:column;display:flex}@media (hover:hover){.material-option:hover .option-face{border-color:var(--color-accent)}}.material-option:active .option-face{transform:translateY(1px)}.material-option .control-input:checked+.option-face{border-color:var(--color-accent-strong);background:var(--color-surface-raised);box-shadow:inset 0 0 0 1px var(--color-accent-strong)}.material-option .control-input:checked+.option-face .option-name{font-weight:600}.material-option .control-input:focus-visible+.option-face{outline:2px solid var(--color-focus);outline-offset:2px}.option-swatch{border:var(--border-width) solid var(--color-hairline);border-radius:var(--radius-inner);background-clip:padding-box;height:40px;display:block;position:relative;overflow:hidden}.option-swatch img{object-fit:cover;width:100%;height:100%}.option-label{justify-content:space-between;align-items:flex-start;gap:var(--space-2);min-height:2.6em;font-size:var(--size-control);line-height:1.3;display:flex}.option-name{font-size:var(--size-control);font-weight:500;line-height:1.3}.option-tick{color:var(--color-accent-strong);opacity:0;transition:opacity var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);flex:none;margin-block-start:2px;transform:scale(.6)}.material-option .control-input:checked+.option-face .option-tick{opacity:1;transform:none}.lighting-group{border:0;padding:0}.segmented{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control);grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:hidden}.segmented label{cursor:pointer;min-height:44px;display:flex;position:relative}.segmented label+label{border-inline-start:var(--border-width) solid var(--color-border)}.segmented input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.segmented span{padding:var(--space-2);font-size:var(--size-control);color:var(--color-text-muted);background:var(--color-surface);transition:color var(--motion-fast) var(--ease-standard), background-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard);flex:1;justify-content:center;align-items:center;font-weight:500;display:flex}@media (hover:hover){.segmented label:hover span{color:var(--color-text);background:var(--color-surface-raised)}}.segmented label:active span{background:var(--color-surface-raised)}.segmented input:checked+span{color:var(--color-text);background:var(--color-surface-raised);box-shadow:inset 0 -2px 0 var(--color-accent-strong);font-weight:600}.segmented input:focus-visible+span{outline:2px solid var(--color-focus);outline-offset:-2px}.lighting-hint{margin-top:var(--space-2);font-size:var(--size-caption);color:var(--color-text-muted);line-height:1.45}.spec-sheet{gap:var(--space-3);padding-top:var(--space-3);border-top:var(--border-width) solid var(--color-hairline);flex-direction:column;display:flex}.spec-note{font-size:var(--size-caption);color:var(--color-text-muted);line-height:1.45}.spec-rows{gap:var(--space-3);display:grid}.spec-rows div{gap:2px;display:grid}.spec-rows dt{font-size:var(--size-control);color:var(--color-text-muted);font-weight:500}.spec-rows dd{font-size:var(--size-spec);font-weight:500;line-height:1.45}.spec-value{animation:spec-value-in var(--motion-fast) var(--ease-standard);display:inline-block}@keyframes spec-value-in{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.copy-actions{gap:var(--space-2);flex-direction:column;display:flex}.copy-actions button,.ai-study-open{width:100%;min-height:44px;padding:var(--space-3) var(--space-4);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control);font-size:var(--size-control);text-align:center;cursor:pointer;transition:color var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), background-color var(--motion-fast) var(--ease-standard), opacity var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);background:0 0;justify-content:center;align-items:center;font-weight:500;display:flex}.copy-actions .copy-primary{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-on-accent);font-weight:600}.copy-actions .copy-secondary{border-color:var(--color-border);color:var(--color-text);background:0 0}@media (hover:hover){.copy-actions .copy-primary:hover:not(:disabled){border-color:var(--color-accent-strong);background:var(--color-accent-strong)}.copy-actions .copy-secondary:hover:not(:disabled){border-color:var(--color-accent);background:var(--color-surface)}.ai-study-open:hover{border-color:var(--color-border);background:var(--color-surface);color:var(--color-text)}}.copy-actions button:active:not(:disabled),.ai-study-open:active{transform:translateY(1px)}.copy-actions .copy-primary:active:not(:disabled){background:var(--color-accent);border-color:var(--color-accent)}.copy-actions .copy-secondary:active:not(:disabled){background:var(--color-surface-raised)}.copy-actions button:disabled{opacity:.55;cursor:not-allowed}.copy-actions button[data-busy=true]{cursor:progress}.copy-status{min-height:1.45em;font-size:var(--size-caption);color:var(--color-success)}.copy-status[data-tone=error]{color:var(--color-danger)}.copy-status-text{animation:room-spec-fade var(--motion-medium) var(--ease-standard);display:inline-block}.manual-copy{width:100%;min-height:8rem;padding:var(--space-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text);font-size:var(--size-control);resize:vertical;animation:room-spec-fade var(--motion-medium) var(--ease-standard);line-height:1.5}.ai-study-open{border-color:var(--color-hairline);color:var(--color-text-muted)}.scene-root{background:#10100e;width:100%;height:100%;position:relative}.scene-root canvas{width:100%;height:100%}.scene-status,.webgl-fallback{justify-content:flex-end;gap:var(--space-2);padding:var(--space-4);pointer-events:none;background:#0f0f0db8;flex-direction:column;display:flex;position:absolute;inset:0}.webgl-fallback{background:var(--color-surface);pointer-events:auto;justify-content:center}.scene-status p,.webgl-fallback p{font-variant-numeric:tabular-nums;max-width:42ch;color:var(--color-text)}.webgl-fallback h2{font-size:var(--size-section);font-weight:600}.webgl-fallback button{min-height:44px;padding:var(--space-2) var(--space-4);border:var(--border-width) solid var(--color-accent);border-radius:var(--radius-control);background:var(--color-surface-raised);cursor:pointer;align-self:flex-start}.scene-root:focus-visible{outline:2px solid var(--color-focus);outline-offset:-4px}.scene-progress{background-color:var(--color-hairline);height:1px}.scene-progress-fill{background-color:var(--color-accent);height:100%;transition:width var(--motion-medium) var(--ease-standard);display:block}@media (prefers-reduced-motion:reduce){.scene-progress-fill{transition-duration:1ms}}.page{min-height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);grid-template-columns:minmax(0,1fr);grid-template-areas:"identity""preview""configurator";display:grid}.identity{padding:var(--space-5) var(--space-4) var(--space-4);background:var(--color-bg);grid-area:identity}.preview{background:var(--color-surface);border-block:var(--border-width) solid var(--color-hairline);grid-area:preview;height:53svh;min-height:360px;position:relative}.configurator{padding:var(--space-5) var(--space-4) var(--space-7);background:var(--color-bg);grid-area:configurator}.identity-kicker{margin:0 0 var(--space-2);font-size:var(--size-caption);letter-spacing:.04em;color:var(--color-text-muted);font-weight:500}.identity h1{font-family:var(--font-display);font-size:var(--size-name);letter-spacing:-.015em;font-weight:400;line-height:1.05}.identity-intro{margin-top:var(--space-3);max-width:36ch;color:var(--color-text-muted)}.identity-kicker,.identity h1,.identity-intro{animation:room-spec-rise var(--motion-medium) var(--ease-standard) both;animation-delay:calc(var(--stagger-index) * var(--stagger-step))}.identity-kicker{--stagger-index:0}.identity h1{--stagger-index:1}.identity-intro{--stagger-index:2}@media (width>=768px) and (width<=1023px) and (orientation:landscape){.page{grid-template:"preview identity""preview configurator"minmax(0,1fr)/minmax(0,1fr) minmax(320px,40%);height:100svh}.preview{border-block:0;border-inline-end:var(--border-width) solid var(--color-hairline);height:auto;min-height:0}.identity{padding:var(--space-5) var(--space-5) var(--space-3)}.configurator{min-height:0;padding:var(--space-3) var(--space-5) var(--space-6);overflow:auto}}@media (width>=1024px){.page{grid-template-columns:minmax(0, 1fr) minmax(var(--rail-min), var(--rail-max));grid-template-rows:auto minmax(0,1fr);grid-template-areas:"preview identity""preview configurator";height:100svh}.preview{border-block:0;border-inline-end:var(--border-width) solid var(--color-hairline);height:auto;min-height:0}.identity{padding:var(--space-6) var(--space-5) var(--space-3)}.configurator{min-height:0;padding:var(--space-3) var(--space-5) var(--space-6);overflow:auto}}:root{--color-bg:#0f0f0d;--color-surface:#171713;--color-surface-raised:#1e1d18;--color-text:#f4f0e7;--color-text-muted:#b7b0a2;--color-border:#6d695b;--color-hairline:#3a372f;--color-accent:#d2b277;--color-accent-strong:#f0d08d;--color-on-accent:#16150f;--color-focus:#ffd98a;--color-danger:#ffb4a8;--color-success:#b7d5b0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--radius-control:6px;--radius-inner:3px;--radius-panel:0px;--border-width:1px;--motion-fast:.14s;--motion-medium:.24s;--motion-scene:.6s;--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-exit:cubic-bezier(.4, 0, 1, 1);--stagger-step:60ms;--rise-distance:8px;--font-display:"Instrument Serif", Georgia, serif;--font-interface:"Inter", system-ui, sans-serif;--size-name:28px;--size-section:14px;--size-body:15px;--size-control:13px;--size-spec:14px;--size-caption:12px;--rail-min:360px;--rail-max:420px}@media (width>=1024px){:root{--size-name:32px}}@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif-latin.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/inter-latin.woff2)format("woff2")}*,:before,:after{box-sizing:border-box}html,body,#root{background:var(--color-bg);min-height:100%;color:var(--color-text);margin:0}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{font-family:var(--font-interface);font-size:var(--size-body);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-weight:400;line-height:1.55}img,svg,canvas{max-width:100%;display:block}button,input,textarea{font:inherit;color:inherit}h1,h2,h3,p,fieldset,legend,dl,dt,dd{margin:0}:focus{outline:none}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}textarea:focus-visible,input[type=text]:focus-visible,input[type=search]:focus-visible{outline-offset:0}.control-input:focus-visible{outline:none}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes room-spec-rise{0%{opacity:0;transform:translateY(var(--rise-distance))}}@keyframes room-spec-fade{0%{opacity:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}
