/* Shared material and motion layer. Geometry and business content stay in their
   original components; pointer physics are driven on demand by motion.js. */
:root{
  --material-edge:color-mix(in srgb,var(--blue) 24%,var(--line));
  --material-glint:#ffffffa3;
  --material-shadow:#1630491c;
  --material-deep:#142e4510;
  --material-glass:color-mix(in srgb,var(--white) 87%,transparent);
  --material-spring:cubic-bezier(.18,.86,.26,1.18);
  --material-settle:cubic-bezier(.2,.72,.24,1);
}
:root[data-tone="dark"]{
  --material-edge:color-mix(in srgb,var(--blue) 30%,var(--line));
  --material-glint:#ffffff36;
  --material-shadow:#00000040;
  --material-deep:#00000026;
  --material-glass:color-mix(in srgb,var(--page-bg) 87%,transparent);
}

/* Brushed metal, a tight bevel, contact shadow and a broad soft reflection. */
:root[data-theme] body :is(.primary-btn,.quote-btn,.theme-done){
  position:relative;isolation:isolate;overflow:hidden;
  background:linear-gradient(165deg,color-mix(in srgb,var(--blue) 84%,white),var(--blue) 42%,color-mix(in srgb,var(--blue) 91%,black));
  color:var(--on-primary);border-color:color-mix(in srgb,var(--blue) 76%,white);
  box-shadow:inset 0 1px 0 #ffffff70,inset 0 -2px 0 #00000020,0 2px 3px var(--material-shadow),0 9px 22px var(--material-deep);
  text-shadow:0 1px 0 #00000010;
}
:root[data-theme] body :is(.primary-btn,.quote-btn,.theme-done):is(:hover,:focus-visible){
  background:linear-gradient(165deg,color-mix(in srgb,var(--hover) 83%,white),var(--hover) 45%,color-mix(in srgb,var(--hover) 92%,black));
  color:var(--on-hover,var(--on-primary));border-color:color-mix(in srgb,var(--blue) 70%,white);
  box-shadow:inset 0 1px 0 #ffffff8a,inset 0 -2px 0 #00000020,0 3px 5px var(--material-shadow),0 13px 28px color-mix(in srgb,var(--blue) 19%,transparent);
}
:root[data-theme] body :is(.secondary-btn,.outline-light,.theme-reset,.theme-trigger,.menu-toggle,.utility-rail-toggle){
  position:relative;isolation:isolate;overflow:hidden;
  background:linear-gradient(155deg,color-mix(in srgb,var(--white) 91%,white),color-mix(in srgb,var(--white) 94%,var(--blue)));
  border:1px solid var(--material-edge);
  box-shadow:inset 0 1px 0 var(--material-glint),inset 0 -1px 0 var(--material-deep),0 4px 12px var(--material-deep);
}
:root[data-theme] body :is(.secondary-btn,.outline-light,.theme-reset,.theme-trigger,.menu-toggle):is(:hover,:focus-visible){
  background:linear-gradient(145deg,color-mix(in srgb,var(--primary-soft) 85%,var(--blue)),var(--primary-soft));
  color:var(--blue);border-color:color-mix(in srgb,var(--blue) 70%,var(--line));
  box-shadow:inset 0 1px 0 var(--material-glint),0 7px 20px var(--material-deep);
}
:root[data-theme] body :is(.primary-btn,.quote-btn,.secondary-btn,.outline-light,.theme-done,.theme-reset)::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit;
  background:linear-gradient(115deg,transparent 15%,#ffffff0c 28%,#ffffff3b 39%,#ffffff08 50%,transparent 66%);
  background-size:220% 100%;background-position:100% 0;
  transition:background-position .85s var(--material-settle);
}
:root[data-theme] body :is(.primary-btn,.quote-btn,.secondary-btn,.outline-light,.theme-done,.theme-reset):is(:hover,:focus-visible)::before{background-position:0 0}
:root[data-theme] body :is(.primary-btn,.quote-btn,.secondary-btn,.outline-light):active{
  box-shadow:inset 0 2px 6px #0000002b,inset 0 -1px 0 var(--material-glint),0 1px 3px var(--material-shadow);
}

/* A single light source follows the pointer; the text is always above it. */
body .motion-control{
  --motion-scale:1;--motion-x:0px;--motion-y:0px;--motion-rx:0deg;--motion-ry:0deg;
  --light-x:50%;--light-y:30%;--light-opacity:0;
  position:relative;isolation:isolate;
  transform:perspective(650px) translate3d(var(--motion-x),var(--motion-y),0) rotateX(var(--motion-rx)) rotateY(var(--motion-ry)) scale(var(--motion-scale));
  transition:color .2s,border-color .2s,background-color .2s,box-shadow .25s;
}
body .motion-control:not(.nav-link):not(.drone-issue-link):not(summary):not([role="tab"])::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;
  background:radial-gradient(ellipse at var(--light-x) var(--light-y),#ffffff42,transparent 64%);
  opacity:var(--light-opacity);transition:opacity .18s;
}
body .motion-control:is(:disabled,[aria-disabled="true"]){transform:none;box-shadow:none}
body .motion-control:is(:disabled,[aria-disabled="true"])::after{opacity:0}
/* These controls already carry geometry owned by their component. */
body .network-label.motion-control{
  position:absolute;
  transform:translate(-50%,-50%) translate3d(var(--motion-x),var(--motion-y),0) scale(var(--motion-scale));
}
body .quote-dialog .close-dialog.motion-control{position:absolute}
body .motion-control:focus-visible{outline:2px solid var(--blue);outline-offset:4px}
.motion-control svg{transition:translate .4s var(--material-spring),filter .3s}
.motion-control:is(:hover,:focus-visible)>svg:last-child{translate:2px 0}
:is(.theme-trigger,.menu-toggle,.utility-rail-toggle,.close-dialog,.theme-close,.language-btn,.nav-drop-trigger).motion-control>svg{translate:none}

/* Surfaces retain the approved open grids, gaining reflected light and depth. */
body .motion-surface{
  --motion-scale:1;--motion-x:0px;--motion-y:0px;--motion-rx:0deg;--motion-ry:0deg;
  --light-x:50%;--light-y:25%;--light-opacity:0;
  position:relative;isolation:isolate;
  transform:perspective(1100px) translate3d(var(--motion-x),var(--motion-y),0) rotateX(var(--motion-rx)) rotateY(var(--motion-ry)) scale(var(--motion-scale));
  transition:box-shadow .4s var(--material-settle),border-color .3s;
}
body .motion-surface::after{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit;
  background:radial-gradient(ellipse at var(--light-x) var(--light-y),color-mix(in srgb,var(--blue) 13%,transparent),transparent 72%);
  opacity:var(--light-opacity);transition:opacity .25s;
}
:root[data-theme] main :is(.service-card,.drone-service-card,.lane-card,.topic-grid article,.team-grid figure).motion-surface{
  border-radius:12px;
}
:root[data-theme] main :is(.service-card,.drone-service-card,.lane-card,.topic-grid article,.team-grid figure).motion-surface.is-hovered{
  box-shadow:0 3px 6px var(--material-deep),0 18px 36px var(--material-deep);
}
:root[data-theme] main :is(.service-card,.drone-service-card,.lane-card,.industry-grid article,.topic-grid article,.team-grid figure)>img{
  box-shadow:inset 0 1px 0 var(--material-glint),0 2px 4px var(--material-deep),0 10px 24px var(--material-deep);
  transition:filter .6s var(--material-settle),box-shadow .4s;
}
:root[data-theme] main .motion-surface.is-hovered>img{filter:saturate(1.09) contrast(1.025);box-shadow:0 3px 5px var(--material-shadow),0 16px 32px var(--material-deep)}
:root[data-theme] main :is(.issue-icon,.stat-icon,.drone-process-item>span,.process-item>span,.advantage-item>svg,.drone-why-grid article>svg){
  background-image:linear-gradient(145deg,#ffffff0f,transparent 56%,#0000000d);
  box-shadow:inset 0 1px 0 var(--material-glint),inset 0 -1px 0 var(--material-deep),0 4px 10px var(--material-deep);
  transition:box-shadow .35s,filter .35s;
}
:root[data-theme] main :is(.motion-surface.is-hovered,.process-item:hover,.drone-process-item:hover) :is(.issue-icon,.stat-icon){
  box-shadow:inset 0 1px 0 var(--material-glint),0 0 22px color-mix(in srgb,var(--blue) 16%,transparent),0 6px 14px var(--material-deep);
}
.title-rule{background:linear-gradient(90deg,var(--accent),var(--blue),color-mix(in srgb,var(--blue) 50%,white));box-shadow:0 1px 7px color-mix(in srgb,var(--blue) 24%,transparent)}

/* Optical layers on menus and panels: reflection at the edge, diffuse shadow. */
:root[data-theme] body .site-header{
  background:var(--material-glass);backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);
  border-bottom-color:color-mix(in srgb,var(--line) 75%,transparent);
  box-shadow:inset 0 -1px 0 #ffffff04,0 3px 14px var(--material-deep);
  transition:background-color .35s,box-shadow .35s;
}
:root[data-theme].is-scrolled body .site-header{box-shadow:inset 0 -1px 0 var(--material-glint),0 5px 22px var(--material-shadow)}
html.motion-ready .site-header::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;pointer-events:none;
  transform:scaleX(var(--scroll-progress,0));transform-origin:left;
  background:linear-gradient(90deg,var(--accent),var(--blue),color-mix(in srgb,var(--blue) 50%,white));
  box-shadow:0 0 9px color-mix(in srgb,var(--blue) 35%,transparent);
}
:root[data-theme] body :is(.nav-dropdown-menu,.language-menu){
  background:var(--material-glass);backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);
  border-color:var(--material-edge);box-shadow:inset 0 1px 0 var(--material-glint),0 4px 8px var(--material-deep),0 18px 46px var(--material-shadow);
}
.nav-dropdown.open .nav-dropdown-menu,.language-menu.open{animation:material-menu .34s var(--material-spring) both;transform-origin:top center}
.nav-link:after{background:linear-gradient(90deg,var(--accent),var(--blue));box-shadow:0 1px 7px color-mix(in srgb,var(--blue) 22%,transparent);transition:transform .4s var(--material-spring)}
:root[data-theme] body :is(.quote-dialog,.theme-palette,.account-auth-card,.account-quote){
  background-image:linear-gradient(140deg,#ffffff08,transparent 42%);
  border-color:var(--material-edge);
  box-shadow:inset 0 1px 0 var(--material-glint),0 4px 10px var(--material-deep),0 24px 70px var(--material-shadow);
}
body :is(.quote-dialog,.theme-palette)[open]{animation:material-dialog .48s var(--material-spring) both}
body :is(.quote-dialog,.theme-palette)::backdrop{backdrop-filter:blur(8px) saturate(.8);-webkit-backdrop-filter:blur(8px) saturate(.8);background:#10192299}
body :is(.quote-form,.contact-form,.account-form) :is(input,select,textarea){
  box-shadow:inset 0 2px 4px var(--material-deep),0 1px 0 var(--material-glint);
  transition:border-color .25s,box-shadow .25s,background-color .25s;
}
body :is(.quote-form,.contact-form,.account-form) :is(input,select,textarea):focus{
  border-color:var(--blue);box-shadow:inset 0 1px 3px var(--material-deep),0 0 0 3px color-mix(in srgb,var(--blue) 12%,transparent),0 4px 16px var(--material-deep);
}
.faq-grid details[open]>p{animation:material-detail .36s var(--material-settle) both}
.text-link:hover svg{translate:3px 0}
.site-footer .socials a{box-shadow:inset 0 1px 0 #ffffff1a,0 3px 8px #00000012}

/* Very shallow camera travel on desktop; photos still cover the whole hero. */
.motion-hero{overflow:clip}
.motion-hero .drone-hero-media,.page-hero.motion-hero::before{filter:saturate(1.07) contrast(1.025)}
@media(min-width:1100px) and (hover:hover) and (pointer:fine){
  .motion-hero .drone-hero-media,.page-hero.motion-hero::before{
    transform:translate3d(var(--hero-shift-x,0px),var(--hero-shift-y,0px),0) scale(1.045);
    transform-origin:center;
  }
}
@media(max-width:1099px){
  /* The current mobile contact rail lives in the header: keep its popover
     attached to the header action rather than introducing a fixed wrapper. */
  :root[data-theme] .nav-actions .utility-rail-actions{
    background:var(--material-glass);backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);
    border-color:var(--material-edge);box-shadow:inset 0 1px 0 var(--material-glint),0 4px 8px var(--material-deep),0 18px 46px var(--material-shadow);
  }
  .nav-panel.open{animation:material-menu .36s var(--material-spring) both;transform-origin:top}
  :root[data-theme] body .nav-panel{background:var(--material-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
}
@media(hover:none),(pointer:coarse){
  body .motion-surface{transform:none}
  body .motion-control::after{background:radial-gradient(ellipse at 50% 50%,#ffffff36,transparent 70%)}
}
@keyframes material-menu{from{opacity:0;transform:translateY(-7px) scale(.975)}to{opacity:1;transform:none}}
@keyframes material-dialog{0%{opacity:0;transform:translateY(22px) scale(.96)}75%{opacity:1;transform:translateY(-2px) scale(1.002)}100%{opacity:1;transform:none}}
@keyframes material-detail{from{opacity:.35;translate:0 -5px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:reduce){
  body .motion-control,body .motion-surface,.motion-hero .drone-hero-media,.page-hero.motion-hero::before{transform:none!important}
  body .network-label.motion-control{transform:translate(-50%,-50%)!important}
  body :is(.motion-control,.motion-surface,.motion-control::before,.motion-control::after,.motion-surface::after,.motion-control svg,.nav-link::after){transition:none!important}
  body :is(.quote-dialog,.theme-palette)[open],.nav-panel.open,.nav-dropdown.open .nav-dropdown-menu,.language-menu.open,.faq-grid details[open]>p{animation:none!important}
}
@media(forced-colors:active){
  body .motion-control::before,body .motion-control::after,body .motion-surface::after,html.motion-ready .site-header::after{display:none}
  body :is(.motion-control,.motion-surface){box-shadow:none}
}

