model-viewer{display:block;width:100%;height:100%;background:transparent;--poster-color:transparent;touch-action:pan-y}
model-viewer::part(default-progress-bar){display:none}
.model-frame{position:relative;min-width:0;height:460px;overflow:hidden;background:#111113;border:1px solid var(--line);border-radius:16px}
.model-frame>model-viewer{height:calc(100% - 58px)}
.model-status{position:absolute;inset:45% 20px auto;pointer-events:none;text-align:center;color:var(--muted);font-size:14px}
.model-frame[data-model-state="ready"] .model-status{display:none}
.model-frame[data-model-state="error"] .model-status{color:#ffb8b3}
.model-poster{position:absolute;inset:0 0 58px;z-index:1;pointer-events:none;transition:opacity .18s ease-out}
.model-poster img{width:100%;height:100%;object-fit:cover}
.model-status{inset:auto 14px 80px;z-index:2;width:max-content;max-width:calc(100% - 28px);margin:auto;padding:5px 10px;background:#111113eb;border-radius:6px;font-size:12px;line-height:1.5}
.model-load-progress{position:absolute;bottom:69px;left:25%;width:50%;height:3px;z-index:2;border:0;border-radius:2px;appearance:none;background:var(--line);color:var(--accent-text)}
.model-load-progress::-webkit-progress-bar{background:var(--line);border-radius:2px}
.model-load-progress::-webkit-progress-value{background:var(--accent-text);border-radius:2px}
.model-load-progress::-moz-progress-bar{background:var(--accent-text);border-radius:2px}
.model-frame[data-model-state="ready"] .model-poster{opacity:0;visibility:hidden}
.model-frame[data-model-state="ready"] .model-load-progress,.model-frame[data-model-state="error"] .model-load-progress{display:none}
.model-retry{position:absolute;bottom:115px;left:50%;transform:translateX(-50%);z-index:3;min-height:44px;padding:8px 16px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--text)}
.model-retry[hidden]{display:none}
.model-controls button:disabled{opacity:.5;cursor:wait}
@media(prefers-reduced-motion:reduce){.model-poster{transition:none}}
.model-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;height:58px;padding:7px 12px;border-top:1px solid var(--line);background:#141416}
.model-controls>span{font-size:12px;color:var(--muted)}
.model-controls>div{display:flex;align-items:center;gap:5px}
.model-controls button{min-width:44px;min-height:44px;border-radius:6px;font-size:13px;padding:8px;display:inline-flex;align-items:center;justify-content:center}
.model-controls button:hover{background:#2a2a30;color:var(--accent-text)}
.model-controls button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
.model-caption{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:18px 3px}
.model-caption h3{font-size:20px}.model-caption p{font-size:12px}
.model-palette{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px}
.model-palette>span{font-size:12px;color:var(--muted);margin-right:8px}
.model-palette button{position:relative;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1px solid transparent;border-radius:50%}
.model-palette button[aria-pressed="true"]{border-color:var(--accent-text)}
.model-palette i{display:block;width:21px;height:21px;border-radius:50%;background:var(--swatch);border:1px solid #ffffff35}
.model-display-modes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;width:100%;margin-top:12px}
.model-display-modes button{min-width:0;min-height:44px;padding:6px 4px;border:1px solid #30415f;border-radius:6px;background:#141a25;color:var(--muted);font-size:12px;line-height:1.25;white-space:nowrap}
.model-display-modes button[aria-pressed="true"]{border-color:var(--accent-text);background:#18283d;color:var(--accent-text)}
.model-display-modes button:disabled{cursor:wait;opacity:.72}
.model-display-modes button:not(:disabled){cursor:pointer}
.model-display-modes button:not(:disabled):hover{border-color:var(--accent-text);color:var(--accent-text)}
.model-display-modes button:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}
.model-mode-note{min-height:18px;margin:7px 2px 0;color:var(--muted);font-size:12px;line-height:1.5;text-align:center}
.hero.hero-3d{display:grid;grid-template-columns:1fr 1.05fr;align-items:center;gap:30px;text-align:left;padding-block:45px 52px;min-height:660px}
.hero-3d h1{font-size:clamp(44px,4.9vw,66px);line-height:1.2}
.hero-3d .hero-copy{margin:26px 0;font-size:16px}
.hero-3d .hero-actions{justify-content:flex-start;flex-wrap:wrap}
.hero-3d-visual{min-width:0}.hero-3d .hero-model{height:500px;background:transparent;border-color:transparent}
.hero-3d .hero-model .model-controls{background:transparent;border-color:#25252a}
.hero-3d .hero-note{text-align:center;margin-top:8px}
.hero-3d .explore-link{margin-top:24px}
.design-study-grid .model-frame{height:440px}
.architecture-visual.model-frame{display:block;padding:0;height:540px}
.custom-stage.model-frame{height:380px;margin-top:23px}
.custom-stage.model-frame>model-viewer{height:calc(100% - 58px)}
@media(max-width:1000px){.hero.hero-3d{gap:22px;min-height:590px}.hero-3d h1{font-size:49px}.hero-3d .hero-model{height:430px}.hero-3d .hero-copy{font-size:14px}.model-controls>span{font-size:11px}.model-controls{gap:5px}}
@media(max-width:760px){.hero.hero-3d{grid-template-columns:1fr;text-align:center;gap:10px;padding-top:35px;min-height:0}.hero-3d h1{font-size:clamp(34px,9.6vw,52px)}.hero-3d .hero-copy{margin:20px auto}.hero-3d .hero-actions{justify-content:center}.hero-3d .hero-model{height:390px}.hero-3d .explore-link{margin-top:12px}.model-frame{height:380px}.design-study-grid .model-frame{height:390px}.model-caption{padding:16px 2px;flex-wrap:wrap;gap:7px}.model-caption h3{font-size:18px}.model-caption p{font-size:12px}.architecture-visual.model-frame{height:420px}.custom-stage.model-frame{height:370px}.custom-preview>.model-palette{margin-top:12px}}
@media(max-width:420px){.model-controls>span{display:none}.model-controls{justify-content:center}.hero-3d .hero-model{height:370px}.model-palette{gap:3px}.model-palette>span{margin-right:4px}.model-caption h3{font-size:18px}}
