/* MAYGPM motion: independent media, entrance and interaction layers. */
:root{--motion-ease:cubic-bezier(.18,.7,.2,1)}
.hero .hero-media{position:absolute;inset:-3%;z-index:-2;overflow:hidden;pointer-events:none;transform:translate3d(var(--hero-x,0px),var(--hero-y,0px),0)}
.hero .hero-media .hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:auto;transform:scale(1.025);transform-origin:35% 55%}
.motion-ready .hero .hero-media .hero-image{animation:may-hero-drift 21s ease-in-out infinite alternate;animation-play-state:paused}
.hero-route{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;overflow:visible;opacity:.62}
.hero-route .route-line{fill:none;stroke:var(--gold-light,#e5ce94);stroke-width:1.1;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-dasharray:150 1050;stroke-dashoffset:1200;opacity:.64}
.motion-ready .hero-route .route-line{animation:may-route-flow 14s linear infinite;animation-play-state:paused}
.hero-route .route-line:nth-child(2){animation-delay:-7s;opacity:.25}
.hero-route .route-node{fill:var(--gold-light,#e5ce94);transform-box:fill-box;transform-origin:center;opacity:.65}
.motion-ready .hero-route .route-node{animation:may-node-breathe 3.8s ease-in-out infinite alternate;animation-play-state:paused}
.hero-route .route-node:nth-last-child(2){animation-delay:-1.6s}
.hero-route .route-node:last-child{animation-delay:-2.8s}
.hero-content,.hero-bottom{z-index:1}
.motion-ready:not(.motion-off):not(.motion-hidden) .hero.motion-in-view .hero-media .hero-image,
.motion-ready:not(.motion-off):not(.motion-hidden) .hero.motion-in-view .hero-route .route-line,
.motion-ready:not(.motion-off):not(.motion-hidden) .hero.motion-in-view .hero-route .route-node{animation-play-state:running}
.motion-ready .hero .scroll-line:after{animation-play-state:paused}
.motion-ready:not(.motion-off):not(.motion-hidden) .hero.motion-in-view .scroll-line:after{animation-play-state:running}
.reading-progress{position:fixed;top:0;inset-inline:0;height:2px;z-index:120;pointer-events:none;background:linear-gradient(90deg,#e5ce94,#c9a65a);transform:scaleX(0);transform-origin:right center}
.motion-ready .sector-visual{transform:perspective(1100px) rotateX(var(--sector-rx,0deg)) rotateY(var(--sector-ry,0deg));transform-origin:center;backface-visibility:hidden}
.motion-ready .sector-visual:after{content:'';position:absolute;inset:0;pointer-events:none;opacity:var(--sector-glow,0);background:radial-gradient(ellipse at var(--sector-px,50%) var(--sector-py,50%),#e5ce9424,transparent 58%);transition:opacity .4s var(--motion-ease)}
.motion-ready .button{position:relative;isolation:isolate;overflow:hidden}
.motion-ready .button:after{content:'';position:absolute;inset:-80% -60%;z-index:-1;pointer-events:none;opacity:0;background:linear-gradient(115deg,transparent 37%,#ffffff36 49%,transparent 61%);transform:translateX(65%)}
@media(hover:hover) and (pointer:fine){
  .motion-ready:not(.motion-off) .button:not(:disabled):hover:after{opacity:1;transform:translateX(-65%);transition:transform .8s var(--motion-ease),opacity .25s}
  .motion-ready:not(.motion-off) .button:not(:disabled):hover{box-shadow:0 0 0 1px #e5ce9459}
}
.motion-ready:not(.motion-off) .button:focus-visible:after{opacity:.65;transform:translateX(0);transition:transform .5s var(--motion-ease),opacity .25s}
#motion-toggle{position:fixed;left:22px;bottom:22px;z-index:45;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:11px 15px;border:1px solid #c9a65a8a;border-radius:3px;background:#061d2bf2;color:#f7f4eb;font:400 11px/1.2 var(--sans,Arial,sans-serif);box-shadow:0 4px 22px #061d2b20;cursor:pointer;direction:rtl;transition:background .2s,border-color .2s}
#motion-toggle>svg{width:14px;height:14px;flex-shrink:0;color:#e5ce94}
#motion-toggle[hidden]{display:none}
.motion-ready .site-footer{padding-bottom:74px}
#motion-toggle:hover{background:#123548;border-color:#e5ce94}
#motion-toggle:focus-visible{outline:2px solid #c9a65a;outline-offset:4px}
#motion-toggle[aria-disabled=true]{cursor:default}
#motion-toggle[aria-pressed=true]>svg{opacity:.65}
.dialog-open #motion-toggle{visibility:hidden}
.motion-off{scroll-behavior:auto}
.motion-off .hero .hero-media{transform:none!important}
.motion-off .hero .hero-media .hero-image{animation:none!important;transform:scale(1.025)!important}
.motion-off .hero-route .route-line{animation:none!important;stroke-dasharray:none;stroke-dashoffset:0;opacity:.2}
.motion-off .hero-route .route-node{animation:none!important;transform:none!important;opacity:.5}
.motion-off .scroll-line:after{animation:none!important}
.motion-off .sector-visual{transform:none!important}
.motion-off .sector-visual:after{opacity:0!important;transition:none!important}
.motion-off .button,.motion-off .button:after,.motion-off .button svg,.motion-off .project-image img,.motion-off .image-open,.motion-off .circle-link,.motion-off .sector-visual>img{transition:none!important;animation:none!important}
.motion-off .button:after{opacity:0!important}
.motion-off .button:hover svg{transform:none}
.motion-off .text-link svg{transition:none!important;transform:none!important}
.motion-off .project-card:hover .project-image img,.motion-off .circle-link:hover{transform:none}
@keyframes may-hero-drift{from{transform:scale(1.025) translate3d(0,0,0)}to{transform:scale(1.095) translate3d(-.65%,.35%,0)}}
@keyframes may-route-flow{from{stroke-dashoffset:1200}to{stroke-dashoffset:0}}
@keyframes may-node-breathe{from{opacity:.3;transform:scale(.75)}to{opacity:.95;transform:scale(1.35)}}
@media(max-width:899px),(hover:none),(pointer:coarse){
  .hero .hero-media{transform:none!important}
  .motion-ready .sector-visual{transform:none!important}
  .motion-ready .sector-visual:after{display:none}
  .hero-route{opacity:.3}
}
@media(max-width:600px){
  #motion-toggle{left:12px;bottom:12px;padding:10px 12px;font-size:10px;min-height:44px;gap:7px}
  .hero .hero-media .hero-image{object-position:33% center}
}
@media(prefers-reduced-motion:reduce){
  .hero .hero-media,.motion-ready .sector-visual{transform:none!important}
  .hero .hero-media .hero-image{animation:none!important;transform:scale(1.025)!important}
  .hero-route .route-line{animation:none!important;stroke-dasharray:none;stroke-dashoffset:0;opacity:.2}
  .hero-route .route-node{animation:none!important;transform:none!important;opacity:.5}
  .motion-ready .sector-visual:after,.motion-ready .button:after{display:none}
  #motion-toggle,.reading-progress{transition:none!important}
}
