.project-3d{--three-ink:var(--ink,#252a29);--three-line:color-mix(in srgb,var(--three-ink) 20%,transparent);position:relative;display:grid;grid-template-rows:auto minmax(220px,1fr) auto auto;min-width:0;min-height:430px;color:var(--three-ink);isolation:isolate}
.project-3d *{box-sizing:border-box}.project-3d__header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:12px;border-top:1px solid var(--three-line);font:500 12px/1.4 var(--font-text,system-ui);letter-spacing:.04em}.project-3d__title{overflow-wrap:anywhere}.project-3d__state{flex:none;opacity:.65;font-size:11px;font-variant-numeric:tabular-nums}
.project-3d__stage{position:relative;width:100%;height:100%;min-height:220px;overflow:hidden;cursor:grab;touch-action:pan-y;outline:none}.project-3d__stage.is-dragging{cursor:grabbing}.project-3d__stage:focus-visible{outline:2px solid var(--model-accent,var(--accent,#4c9e81));outline-offset:-4px;border-radius:8px}
.project-3d__render{position:absolute!important;inset:0;width:100%;height:100%;opacity:0;transition:opacity .2s ease}.project-3d__fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:1;transition:opacity .2s ease}.project-3d[data-three-state=ready] .project-3d__render{opacity:1}.project-3d[data-three-state=ready] .project-3d__fallback{opacity:0}.project-3d__render>.print3d__hit{pointer-events:none!important}
.project-3d__controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 24px;padding-block:12px;border-top:1px solid var(--three-line);font:500 12px/1.3 var(--font-text,system-ui)}.project-3d__presets{display:flex;flex-wrap:wrap;gap:5px}.project-3d__button{appearance:none;padding:8px 11px;min-height:34px;border:1px solid transparent;border-radius:4px;color:inherit;background:transparent;font:inherit;cursor:pointer;transition:background .15s,transform .15s}.project-3d__button:hover{background:color-mix(in srgb,currentColor 8%,transparent)}.project-3d__button:active{transform:translateY(1px)}.project-3d__button[aria-pressed=true]{border-color:var(--three-line);background:color-mix(in srgb,currentColor 5%,transparent)}.project-3d__button:disabled{opacity:.45;cursor:default}.project-3d__button:focus-visible,.project-3d__slider:focus-visible{outline:2px solid var(--model-accent,var(--accent,#4c9e81));outline-offset:3px}
.project-3d__range{display:flex;align-items:center;gap:10px;min-width:180px;max-width:260px;flex:1}.project-3d__slider{width:100%;min-width:0;accent-color:var(--model-accent,var(--accent,#4c9e81));cursor:ew-resize}.project-3d__angle{min-width:40px;text-align:right;font-variant-numeric:tabular-nums}.project-3d__hint{margin:0!important;padding-block:2px 10px;font:400 11px/1.6 var(--font-text,system-ui)!important;opacity:.65;max-width:none!important}.project-3d__concept-note{display:inline}.project-3d[data-three-state=fallback] .project-3d__stage{cursor:default}
@media(max-width:639px){.project-3d{min-height:430px;grid-template-rows:auto minmax(240px,1fr) auto auto}.project-3d__header{gap:10px;font-size:11px}.project-3d__state{font-size:10px}.project-3d__controls{gap:8px;padding-block:8px}.project-3d__range{flex-basis:100%;max-width:none}.project-3d__button{padding:7px 10px;min-height:34px}.project-3d__hint{font-size:10px!important}.project-3d__concept-note{display:none}}
@media(prefers-reduced-motion:reduce){.project-3d *{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
.project-3d__range>span{white-space:nowrap;flex-shrink:0}
.project-3d__slider-label{white-space:nowrap;flex-shrink:0}
