.experience-intro {display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:64px;padding-block:48px 40px}
.experience-intro p {max-width:360px;margin-bottom:8px}
.sofa-workspace {display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:56px;align-items:start;padding-bottom:72px}
.sofa-stage-panel {position:sticky;top:106px;min-width:0}

.sofa-stage {position:relative;aspect-ratio:1.3;background:#eeeae4;overflow:hidden}
.sofa-stage>img {width:100%;height:100%;object-fit:contain}
.sofa-stage canvas {display:block;width:100%;height:100%;touch-action:pan-y}
.sofa-start-overlay {position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-end;flex-direction:column;padding:24px;gap:8px;background:linear-gradient(transparent 60%,#eeeae4ee)}
.sofa-start-overlay>span {font-size:.875rem;color:var(--ink)}
.sofa-stage[aria-busy=true] #start-sofa {cursor:progress;animation:sofa-loading 1.4s ease-in-out infinite}
@keyframes sofa-loading {50% {opacity:.7}}
@media(prefers-reduced-motion:reduce){.sofa-stage[aria-busy=true] #start-sofa {animation:none}}
.sofa-status {font-size:.875rem;margin:14px 0;min-height:2em}
.sofa-status.is-error {color:var(--error)}
.sofa-camera-tools {display:flex;gap:8px;align-items:center}
.sofa-camera-tools span {margin-inline:auto;font-size:.875rem;color:var(--muted)}
.sofa-camera-tools button,.sofa-view-options button {min-height:44px;border:1px solid var(--control);background:transparent;color:var(--ink);padding:8px 12px;border-radius:2px;font-size:.875rem}
.sofa-camera-tools button {width:44px;font-size:1.2rem;display:inline-flex;align-items:center;justify-content:center;padding:0}
.sofa-camera-tools button:disabled,.sofa-view-options button:disabled {opacity:.5;cursor:not-allowed}
.sofa-camera-tools button:hover,.sofa-view-options button:hover {background:var(--soft)}
.sofa-disclaimer,.sofa-help {font-size:.875rem;line-height:1.65;margin:16px 0;color:var(--muted)}
.sofa-inspector fieldset {margin:0 0 26px;padding:20px 0 0;border:0;border-top:1px solid var(--line);min-width:0}
.sofa-inspector legend {font:1.7rem var(--serif);padding-right:16px}

.sofa-inspector fieldset:disabled {opacity:.65}
.sofa-fabrics {display:grid;gap:10px}
.sofa-fabrics label {display:flex;align-items:center;gap:12px;min-height:64px;padding:10px 14px;border:1px solid var(--control);cursor:pointer}
.sofa-fabrics label:has(:checked) {background:var(--soft);border-color:var(--olive)}
.sofa-inspector input[type=radio],.sofa-inspector input[type=checkbox] {accent-color:var(--olive);width:18px;height:18px;flex-shrink:0}
.sofa-fabrics b {display:block;font-size:.875rem;font-weight:500}
.sofa-fabrics small {display:block;color:var(--muted);font-size:.875rem}
.sofa-colors {display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:24px}
.sofa-colors label {position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;min-height:70px}
.sofa-colors input {position:absolute;opacity:0}
.sofa-colors label>span {width:38px;height:38px;background:var(--swatch);border:1px solid #7c8375;border-radius:50%}
.sofa-colors input:checked+span {outline:2px solid var(--olive);outline-offset:3px}
.sofa-colors input:focus-visible+span {outline:3px solid var(--ink);outline-offset:5px}
.sofa-colors b {font-size:.875rem;font-weight:500}
.sofa-view-options {display:flex;flex-wrap:wrap;gap:8px}
.sofa-selection {border-top:1px solid var(--ink);padding-top:24px}

#sofa-selection-name {font:2rem var(--serif);color:var(--ink);margin-bottom:24px}
#sofa-quote {width:100%;gap:14px}
#sofa-quote[aria-disabled=true] {opacity:.65;cursor:wait}
@media(max-width:1000px){.sofa-workspace {gap:28px;grid-template-columns:minmax(0,1.25fr) minmax(270px,1fr)}}
@media(max-width:700px){.experience-intro {grid-template-columns:1fr;gap:8px;padding-block:32px}.experience-intro h1 {font-size:3.2rem}.sofa-workspace {grid-template-columns:1fr;gap:28px}.sofa-stage-panel {position:static}.sofa-stage {aspect-ratio:1.1}.sofa-start-overlay {padding:16px}.sofa-camera-tools span {font-size:.875rem}.sofa-inspector {max-width:none}.sofa-inspector fieldset:disabled {opacity:.8}.sofa-fabrics {grid-template-columns:1fr 1fr;gap:8px}.sofa-fabrics label {min-height:56px;padding:8px 10px;gap:8px}.sofa-colors {gap:8px 4px}.sofa-view-options button {flex:1 1 auto}#sofa-selection-name {font-size:1.6rem;margin-bottom:16px}}
