:root{--motion-fast:180ms;--motion-base:420ms;--motion-scene:850ms;--motion-ease:cubic-bezier(.22,1,.36,1)}
@view-transition{navigation:auto}
::view-transition-old(root){animation:scene-out 260ms ease both}::view-transition-new(root){animation:scene-in 650ms var(--motion-ease) both}::view-transition-group(project-preview){animation-duration:720ms;animation-timing-function:var(--motion-ease)}::view-transition-old(project-preview),::view-transition-new(project-preview){height:100%;object-fit:cover;overflow:clip;border-radius:8px}
@keyframes scene-out{to{opacity:0;transform:scale(.985)}}@keyframes scene-in{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.motion-control{position:fixed;bottom:20px;right:22px;z-index:45;display:flex;align-items:center;gap:9px;min-height:40px;padding:9px 13px;border:1px solid #c4ceb780;border-radius:30px;background:#20291fed;color:#eaf0df;font:500 10px/1.3 Manrope,Arial,sans-serif;cursor:pointer;box-shadow:0 4px 20px #1420181a;backdrop-filter:blur(12px)}.motion-control:focus-visible{outline:3px solid #e36538;outline-offset:4px}.motion-control:disabled{cursor:default}.motion-bars{height:14px;display:flex;gap:2px;align-items:center}.motion-bars i{width:2px;height:9px;background:#b8d093;border-radius:2px}.motion-bars i:nth-child(2){height:14px}.motion-bars i:last-child{height:6px}.motion-control[aria-pressed=true] .motion-bars i{height:3px!important}.motion-control[aria-pressed=true]{color:#ccd5c0}.motion-control[aria-pressed=true] .motion-bars{opacity:.7}
.motion-off *, .motion-off *::before, .motion-off *::after{animation:none!important}
.motion-enabled .stage-halo{animation:halo-breathe 10s ease-in-out infinite alternate}.motion-enabled .stage-orbit{animation:orbit-breathe 15s ease-in-out infinite alternate}.motion-enabled .motion-bars i{animation:equalizer 1600ms ease-in-out infinite alternate}.motion-enabled .motion-bars i:nth-child(2){animation-delay:-700ms}.motion-enabled .motion-bars i:last-child{animation-delay:-1100ms}.motion-enabled .scroll-cue-icon svg{animation:scroll-hint 2.4s ease-in-out 3}.motion-enabled .contact-spark{animation:gentle-turn 24s linear infinite}.motion-enabled .process-flower{animation:gentle-turn 38s linear infinite}.page-hidden *, .hero-offscreen .hero *, .motion-off *{animation-play-state:paused!important}.motion-off .motion-bars i{animation:none}.motion-off{scroll-behavior:auto}.motion-off *, .motion-off *::before,.motion-off *::after{transition-duration:0s!important}.motion-off::view-transition-old(root),.motion-off::view-transition-new(root){animation:none!important}
@keyframes halo-breathe{from{transform:scale(.92) translate(-2%,-1%);opacity:.7}to{transform:scale(1.08) translate(2%,1%);opacity:1}}@keyframes orbit-breathe{from{transform:rotate(-26deg)}to{transform:rotate(10deg)}}@keyframes equalizer{from{transform:scaleY(.4)}to{transform:scaleY(1)}}@keyframes scroll-hint{0%,100%{transform:translateY(-3px)}50%{transform:translateY(4px)}}@keyframes gentle-turn{to{transform:rotate(360deg)}}
dialog[open]{animation:dialog-arrive 380ms var(--motion-ease)}dialog[open]::backdrop{animation:backdrop-arrive 260ms ease}@keyframes dialog-arrive{from{opacity:0;transform:translateY(25px) scale(.97)}to{opacity:1;transform:none}}@keyframes backdrop-arrive{from{opacity:0}to{opacity:1}}.filter-row button,.demo-btn,.demo-header a,.image-project img,.listing-photo img,.room-grid img{transition:transform 650ms var(--motion-ease),background 220ms,color 220ms,box-shadow 300ms}.image-project:hover img{transform:scale(.985)}.listing-photo,.room-grid article{overflow:hidden}.listing:hover .listing-photo img{transform:scale(1.035)}.demo-btn:active{transform:scale(.98)}.form-result:not(:empty){animation:result-arrive 350ms var(--motion-ease)}@keyframes result-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:540px){.motion-control{bottom:max(12px,env(safe-area-inset-bottom));right:12px;min-height:40px;padding:9px 12px;font-size:9px}.motion-enabled .process-flower,.motion-enabled .contact-spark{animation:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important}::view-transition-old(root),::view-transition-new(root),::view-transition-group(*){animation:none!important}}
