/* One persistent, page-responsive scene. Transforms and opacity do the moving;
   text, controls and real photographs stay stable. */
.living-background{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:-1;background:#f7f3ee;contain:strict}
body{isolation:isolate}
.living-canvas{width:100%;height:100%;display:block}
.ambient-position{transform-box:view-box;transform-origin:50% 50%;transition:transform 1800ms cubic-bezier(.22,.7,.2,1),opacity 1400ms ease}
.ambient-position-a{transform:translate(var(--scene-x,0px),var(--scene-y,0px)) rotate(var(--scene-r,0deg));opacity:var(--scene-alpha,.78)}
.ambient-position-b{transform:translate(var(--scene-bx,0px),var(--scene-by,0px)) rotate(var(--scene-br,0deg));opacity:var(--scene-beta,.85)}
.ambient-position-c{transform:translate(var(--scene-cx,0px),var(--scene-cy,0px)) rotate(var(--scene-cr,0deg));opacity:var(--scene-mark,.032)}
.ambient-breathe{transform-origin:78% 30%;animation:ambient-breathe 24s ease-in-out infinite alternate}
.ambient-flow{transform-origin:10% 90%;animation:ambient-flow 29s ease-in-out infinite alternate}
.ambient-profiles{fill:#863c46}
.ambient-grain{position:absolute;inset:0;opacity:.16;background-image:url('/art/linen-grain.svg');background-size:180px 180px}
.background-control{position:fixed;right:16px;bottom:14px;z-index:25;border:1px solid #c9b8a8;border-radius:2px;background:rgba(250,246,240,.94);color:#5f1a22;min-height:44px;padding:9px 13px;font:500 .66rem/1.4 DM,Arial,sans-serif;cursor:pointer;backdrop-filter:blur(10px)}
.background-control:hover{background:#eeddd3}
.background-control[aria-pressed="true"]{background:#5f1a22;color:#fff}
.menu-open .background-control{visibility:hidden}
/* Keep the motion control clear of contact fields and their error messages. */
body[data-scene="contact"] .background-control{position:static;display:block;margin:0 24px 24px auto}
body[data-scene="home"]{--scene-x:30px;--scene-y:-30px;--scene-r:-8deg;--scene-bx:0px;--scene-by:0px;--scene-mark:.035}
body[data-scene="about"]{--scene-x:-740px;--scene-y:50px;--scene-r:24deg;--scene-bx:700px;--scene-by:-100px;--scene-br:-20deg;--scene-cx:-1000px;--scene-cy:-70px;--scene-cr:10deg;--scene-mark:.045}
body[data-scene="services"]{--scene-x:-100px;--scene-y:250px;--scene-r:75deg;--scene-bx:250px;--scene-by:-220px;--scene-br:30deg;--scene-cx:-450px;--scene-cy:-440px;--scene-cr:20deg;--scene-mark:.025}
body[data-scene="rates"]{--scene-x:-500px;--scene-y:-80px;--scene-r:-45deg;--scene-bx:600px;--scene-by:-50px;--scene-br:-50deg;--scene-cx:-350px;--scene-cy:-100px;--scene-mark:.025}
body[data-scene="contact"]{--scene-x:200px;--scene-y:100px;--scene-r:15deg;--scene-bx:-110px;--scene-by:-270px;--scene-br:10deg;--scene-cx:-1020px;--scene-cy:-390px;--scene-cr:-12deg;--scene-mark:.055}
body[data-scene="privacy"]{--scene-x:-650px;--scene-y:170px;--scene-r:45deg;--scene-bx:900px;--scene-by:-200px;--scene-br:12deg;--scene-alpha:.45;--scene-beta:.55}
body[data-scene="accessibility"]{--scene-x:150px;--scene-y:-250px;--scene-r:-70deg;--scene-bx:400px;--scene-by:-200px;--scene-br:15deg;--scene-alpha:.55;--scene-beta:.6}
body[data-scene="policies"]{--scene-x:-400px;--scene-y:150px;--scene-r:120deg;--scene-bx:300px;--scene-by:70px;--scene-br:20deg}
body[data-scene="not-found"]{--scene-x:-850px;--scene-y:-150px;--scene-r:160deg;--scene-bx:750px;--scene-by:30px;--scene-br:-30deg}
@keyframes ambient-breathe{from{transform:translate3d(0,-12px,0) rotate(-2deg) scale(1)}to{transform:translate3d(-38px,32px,0) rotate(3deg) scale(1.07)}}
@keyframes ambient-flow{from{transform:translate3d(-20px,18px,0) scale(.97)}to{transform:translate3d(32px,-30px,0) scale(1.06)}}
.site-header{background:rgba(247,243,238,.93);backdrop-filter:blur(16px)}
.statement,.formats{background:rgba(235,226,217,.72)}
.hero-art figcaption{background:#5f1a22;color:#fff8f1}
.hero-art figcaption .monogram{color:#eccfc7}
.hero-art figcaption>span:not(.hero-art-icon){color:#f2e5dc}
.services-preview{background:rgba(95,26,34,.97);position:relative;overflow:hidden}
.services-preview:before{content:"";position:absolute;inset:0;background:url('/art/connection-field.svg') 50% 50% /cover;opacity:.12;pointer-events:none}
.services-preview>.wrap{position:relative}
.meet,.journey{background:transparent}
.endcap{background:rgba(236,207,199,.89)}
.service-illustration,.experience-list>div{background:rgba(235,226,217,.8)}
.form-panel{background:rgba(255,252,248,.96)}
.contact-layout>aside{background:rgba(235,226,217,.84)}
.signature-loading{background:#f7f3ee}
@media(max-width:700px){.ambient-position-a{opacity:.65}.ambient-position-b{opacity:.8}.ambient-position-c{opacity:.025}.living-canvas{width:160%;max-width:none;margin-left:-30%}.site-header{backdrop-filter:blur(10px)}}
@media(prefers-reduced-motion:reduce){html:not([data-motion="full"]) .ambient-breathe,html:not([data-motion="full"]) .ambient-flow {animation:none}html:not([data-motion="full"]) .ambient-position {transition:none}html:not([data-motion="full"]) .background-control {display:none}}
html[data-motion="reduce"] .background-control{display:none}
html[data-motion="reduce"] .ambient-breathe,html[data-motion="reduce"] .ambient-flow{animation:none}
html[data-motion="reduce"] .ambient-position{transition:none}
html[data-background-paused="true"] .ambient-breathe,html[data-background-paused="true"] .ambient-flow{animation-play-state:paused}

.living-canvas{position:relative;overflow:visible}
.ambient-position{position:absolute;inset:0;transform-box:border-box;will-change:transform}
.ambient-breathe,.ambient-flow{position:absolute;inset:0;will-change:transform;backface-visibility:hidden}
.living-layer-art{width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;user-select:none}
@media(max-width:700px){.site-header{backdrop-filter:none;background:rgba(247,243,238,.97)}}
