/* Demo-only motion: an enhancement, never a prerequisite for reading. */
:root{--motion-fast:180ms;--motion-page:340ms;--motion-ease:cubic-bezier(.22,.7,.25,1)}
@view-transition{navigation:auto}
::view-transition-old(root){animation:world-out var(--motion-fast) ease-out both}
::view-transition-new(root){animation:world-in var(--motion-page) var(--motion-ease) both}
@keyframes world-out{to{opacity:0;transform:translateY(-6px)}}
@keyframes world-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.world-header{view-transition-name:world-header}
::view-transition-group(world-header){animation-duration:var(--motion-page)}
.spatial-section{display:grid;grid-template-columns:.78fr 1.22fr;gap:clamp(24px,5vw,90px);align-items:center;overflow:hidden}
.spatial-copy h2{font-size:clamp(40px,4.6vw,72px);line-height:1.03;letter-spacing:-.055em;margin:18px 0 25px}
.spatial-copy>p:not(.eyebrow){max-width:38ch;font-size:17px;line-height:1.65}
.spatial-work{min-width:0;align-self:stretch}
.spatial-viewport{height:clamp(340px,40vw,600px);position:relative;background:radial-gradient(ellipse at 45% 40%,#faf7f0,#e7e4dc);overflow:hidden;isolation:isolate}
.spatial-objects .spatial-viewport{background:radial-gradient(ellipse at 50% 25%,#f9f2e3,#e5d9c3)}
.spatial-viewport canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;touch-action:pan-y;cursor:grab;transition:opacity 300ms}
.spatial-viewport canvas:active{cursor:grabbing}
.spatial-fallback{width:100%;height:100%;object-fit:cover;display:block;transition:opacity 300ms}
.spatial-ready .spatial-fallback{opacity:0;visibility:hidden}
.spatial-ready canvas{opacity:1}
.spatial-number,.spatial-caption{position:absolute;pointer-events:none;z-index:1;font:11px var(--body);letter-spacing:.09em;text-transform:uppercase;color:#464940}
.spatial-number{left:22px;top:22px}
.spatial-caption{bottom:19px;left:22px}
.spatial-controls{padding:18px 0 0;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;font-size:12px}
.spatial-controls[hidden]{display:none}
.spatial-controls label{display:flex;align-items:center;gap:16px}
.spatial-controls input{width:130px;accent-color:var(--ink);cursor:ew-resize;padding:0;min-height:28px}
.spatial-controls>span{font-size:11px;opacity:.75}
.spatial-status{font-size:13px;min-height:1.5em;margin:8px 0 0;color:var(--ink)}
.spatial-price{display:flex;justify-content:space-between;gap:35px;border-top:1px solid #bfb7a6;padding-top:20px;margin-top:28px}
.spatial-copy .swatches{margin-top:28px;flex-wrap:wrap}
.spatial-copy .swatches button{border:1px solid #a69e8d;border-radius:0;padding:12px 16px;background:transparent;color:var(--ink);font:inherit;font-size:13px;cursor:pointer}
.spatial-copy .swatches button[aria-pressed=true]{color:var(--paper);background:var(--ink);border-color:var(--ink)}
.spatial-architecture{border-top:1px solid var(--line)}
.world-sport .kinetic-word{transform:translateX(var(--kinetic-x,0px));will-change:transform}
.world-sport .hero-photo{transform:rotate(calc(-4deg + var(--kinetic-tilt,0deg)))}
.catalog-items>.offering:not([hidden]){animation:catalog-enter 240ms var(--motion-ease) both}
@keyframes catalog-enter{from{opacity:.3;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:760px){.spatial-section{grid-template-columns:1fr;gap:26px}.spatial-copy h2{font-size:44px}.spatial-viewport{height:380px}.spatial-copy>p:not(.eyebrow){max-width:48ch}.spatial-controls>span{font-size:10px}.spatial-copy .swatches{gap:6px}.spatial-copy .swatches button{padding:12px}.spatial-work{margin-inline:-8px}.world-fiduciaire h1,.world-fiduciaire .section-heading h2{font-size:clamp(28px,8.4vw,40px);hyphens:auto}}
@media(prefers-reduced-motion:reduce){@view-transition{navigation:none}::view-transition-old(root),::view-transition-new(root),::view-transition-group(world-header){animation:none!important}.spatial-viewport canvas,.spatial-fallback{transition:none}.catalog-items>.offering:not([hidden]){animation:none}.world-sport .kinetic-word,.world-sport .hero-photo{transform:none;will-change:auto}}
