/* Ethera route art direction. Only hidden visual planes move; authored Divi
   content, spacing, anchors, controls, forms and navigation stay in place. */
body.ethera-front-page .ethera-atmosphere-root,
body.ethera-front-page .ethera-atmosphere-scene,
body.woocommerce #main-content.ethera-atmosphere-root,
body.woocommerce .ethera-atmosphere-scene { position: relative; isolation: isolate; }
body :is(.ethera-atmosphere-root, .ethera-atmosphere-scene) > .ethera-atmosphere-frame {
  position: absolute !important;
  inset: 0;
  z-index: -1;
  display: block;
  overflow: hidden;
  border-radius: inherit;
  pointer-events: none !important;
  user-select: none;
  contain: paint;
  --ethera-scene-tint: #163b4c;
}
body .ethera-atmosphere-root > .ethera-route-backdrop {
  position: fixed !important;
  inset: 0;
  width: 100%;
  height: 100vh;
  border-radius: 0;
  /* Closed on first paint; the engine clips the field to the main landmark. */
  -webkit-clip-path: inset(var(--ethera-depth-clip-top, 100vh) 0 var(--ethera-depth-clip-bottom, 0px) 0);
  clip-path: inset(var(--ethera-depth-clip-top, 100vh) 0 var(--ethera-depth-clip-bottom, 0px) 0);
}
.ethera-atmosphere-frame > span { position: absolute; display: block; pointer-events: none; }
.ethera-atmosphere-plane--far {
  inset: -280px -240px;
  background: linear-gradient(135deg, #0b182a, #102638 55%, #0b182a);
  opacity: .92;
  transform: translate3d(var(--ethera-far-x, 0px), var(--ethera-far-y, 0px), 0);
}
.ethera-atmosphere-plane--geometry {
  inset: -260px -240px;
  background: var(--ethera-scene-art, none) center / 1600px 1000px no-repeat;
  opacity: .72;
  transform: translate3d(var(--ethera-geometry-x, 0px), var(--ethera-geometry-y, 0px), 0) rotate(var(--ethera-depth-angle, 0deg)) scale(var(--ethera-depth-scale, 1));
}
.ethera-atmosphere-plane--detail {
  inset: -220px -220px;
  background: var(--ethera-scene-art, none) 20% 80% / 2100px auto no-repeat;
  opacity: .3;
  transform: translate3d(var(--ethera-detail-x, 0px), var(--ethera-detail-y, 0px), 0) rotate(calc(var(--ethera-depth-angle, 0deg) * -.5));
}
.ethera-atmosphere-plane--grid {
  inset: -230px -230px;
  background-image: linear-gradient(#75d8e429 1px, transparent 1px), linear-gradient(90deg, #ddbd7526 1px, transparent 1px);
  background-size: 72px 72px;
  opacity: .25;
  transform: translate3d(var(--ethera-detail-x, 0px), var(--ethera-detail-y, 0px), 0) rotate(-18deg);
  -webkit-mask-image: linear-gradient(90deg, #000, transparent 35%, transparent 65%, #000);
  mask-image: linear-gradient(90deg, #000, transparent 35%, transparent 65%, #000);
}
.ethera-atmosphere-plane--signal {
  inset: -180px -180px;
  background: repeating-linear-gradient(0deg, transparent 0 124px, #75d8e42e 125px 126px, transparent 127px 186px), repeating-linear-gradient(90deg, transparent 0 270px, #ddbd7526 271px 272px, transparent 273px 360px);
  opacity: .4;
  transform: translate3d(var(--ethera-detail-x, 0px), var(--ethera-detail-y, 0px), 0);
  -webkit-mask-image: linear-gradient(90deg, #000, transparent 27%, transparent 76%, #000);
  mask-image: linear-gradient(90deg, #000, transparent 27%, transparent 76%, #000);
}
.ethera-atmosphere-plane--path {
  left: -24%;
  right: -24%;
  top: 56%;
  height: 2px;
  background: linear-gradient(90deg, transparent, #c89d5070 20%, #75d8e47a 75%, transparent);
  box-shadow: 0 38px #ddbd7514, 0 -38px #75d8e414;
  transform: translate3d(var(--ethera-detail-x, 0px), var(--ethera-detail-y, 0px), 0) rotate(-16deg);
  clip-path: inset(0 calc((1 - var(--ethera-depth-reveal, .65)) * 100%) 0 0);
}
.ethera-atmosphere-plane--waypoints {
  inset: -150px -150px;
  background: radial-gradient(circle, #ddbd75b3 0 3px, transparent 4px) 7% 25% / 180px 220px repeat-y, linear-gradient(90deg, transparent 6.8%, #ddbd7533 6.9% 7%, transparent 7.1%);
  opacity: .45;
  transform: translate3d(var(--ethera-detail-x, 0px), var(--ethera-detail-y, 0px), 0);
}
.ethera-atmosphere-plane--sheen {
  inset: -240px -240px;
  background: linear-gradient(115deg, transparent 0 26%, #ddbd7503 34%, #ddbd7533 40%, #f0e7d208 44%, transparent 51% 100%);
  opacity: .64;
  transform: translate3d(var(--ethera-detail-x, 0px), var(--ethera-detail-y, 0px), 0);
}
.ethera-atmosphere-veil {
  inset: 0;
  background: linear-gradient(90deg, #0b182ac9, #0b182aa6 40%, #0b182a22 85%), linear-gradient(0deg, #0b182ac9, #0b182a0d 26%, #0b182a0d 76%, #0b182a4d);
}
.ethera-route-backdrop > .ethera-atmosphere-veil { background: linear-gradient(90deg, #0b182a5c, #0b182ab3 23%, #0b182ad4 50%, #0b182aa6 78%, #0b182a5c); }
.ethera-route-backdrop > .ethera-atmosphere-plane--geometry { background-repeat: repeat; opacity: .42; }
.ethera-route-backdrop > .ethera-atmosphere-plane--detail { opacity: .15; }
/* Welcome: the celestial world is special to the home page. */
[data-ethera-profile='home'] > .ethera-atmosphere-plane--far { background: url('ethera-nebula-desktop.webp') center / cover no-repeat; }
.ethera-atmosphere-plane--stars {
  inset: -160px -80px;
  background: url('ethera-depth-stars.svg') center / 1600px 1000px repeat;
  opacity: .6;
  transform: translate3d(var(--ethera-geometry-x, 0px), var(--ethera-geometry-y, 0px), 0);
}
.ethera-route-backdrop > .ethera-atmosphere-plane--stars { inset: -1100px -80px; opacity: .48; transform: translate3d(var(--ethera-geometry-x, 0px), var(--ethera-star-phase, 0px), 0); }
.ethera-atmosphere-plane--chain,
.ethera-atmosphere-plane--compass {
  top: 50%;
  right: -10%;
  width: clamp(420px, 54vw, 780px);
  aspect-ratio: 700 / 580;
  background: url('ethera-depth-chain.svg') center / contain no-repeat;
  transform: translate3d(var(--ethera-geometry-x, 0px), calc(-50% + var(--ethera-geometry-y, 0px)), 0) rotate(var(--ethera-depth-angle, 0deg));
  opacity: .3;
}
.ethera-atmosphere-plane--compass { background-image: url('ethera-depth-compass.svg'); opacity: .16; transform: translate3d(var(--ethera-detail-x, 0px), calc(-50% + var(--ethera-detail-y, 0px)), 0); }
.ethera-depth-foreground { translate: 0 var(--ethera-foreground-offset, 0px); }
/* A shared celestial identity, ten independently composed night skies. */
[data-ethera-profile='games'] { --ethera-scene-art: url('ethera-sky-games.svg'); --ethera-sky-position: 18% 40%; --ethera-sky-size: 138% auto; --ethera-sky-tint: #12384f; --ethera-sky-light: 0.98; }
[data-ethera-profile='hosting'] { --ethera-scene-art: url('ethera-sky-hosting.svg'); --ethera-sky-position: 82% 58%; --ethera-sky-size: 150% auto; --ethera-sky-tint: #122e45; --ethera-sky-light: 0.86; }
[data-ethera-profile='applications'] { --ethera-scene-art: url('ethera-sky-applications.svg'); --ethera-sky-position: 34% 72%; --ethera-sky-size: 160% auto; --ethera-sky-tint: #142c4e; --ethera-sky-light: 0.98; }
[data-ethera-profile='solutions'] { --ethera-scene-art: url('ethera-sky-solutions.svg'); --ethera-sky-position: 74% 24%; --ethera-sky-size: 145% auto; --ethera-sky-tint: #173a43; --ethera-sky-light: 0.92; }
[data-ethera-profile='infrastructure'] { --ethera-scene-art: url('ethera-sky-infrastructure.svg'); --ethera-sky-position: 95% 48%; --ethera-sky-size: 136% auto; --ethera-sky-tint: #10283e; --ethera-sky-light: 0.94; }
[data-ethera-profile='agency'] { --ethera-scene-art: url('ethera-sky-agency.svg'); --ethera-sky-position: 6% 65%; --ethera-sky-size: 150% auto; --ethera-sky-tint: #273044; --ethera-sky-light: 1.12; }
[data-ethera-profile='guides'] { --ethera-scene-art: url('ethera-sky-guides.svg'); --ethera-sky-position: 54% 6%; --ethera-sky-size: 142% auto; --ethera-sky-tint: #19353d; --ethera-sky-light: 1.02; }
[data-ethera-profile='community'] { --ethera-scene-art: url('ethera-sky-community.svg'); --ethera-sky-position: 50% 88%; --ethera-sky-size: 150% auto; --ethera-sky-tint: #123543; --ethera-sky-light: 1.08; }
[data-ethera-profile='shop'] { --ethera-scene-art: url('ethera-sky-shop.svg'); --ethera-sky-position: 93% 76%; --ethera-sky-size: 155% auto; --ethera-sky-tint: #413624; --ethera-sky-light: 0.9; }
[data-ethera-profile='support'] { --ethera-scene-art: url('ethera-sky-support.svg'); --ethera-sky-position: 4% 18%; --ethera-sky-size: 145% auto; --ethera-sky-tint: #12384c; --ethera-sky-light: 1.08; }

.ethera-atmosphere-frame[data-ethera-profile]:not([data-ethera-profile='home']) > .ethera-atmosphere-plane--far {
  background: linear-gradient(120deg, transparent 18%, var(--ethera-sky-tint) 100%), url('ethera-nebula-desktop.webp') var(--ethera-sky-position) / var(--ethera-sky-size) no-repeat;
  background-blend-mode: soft-light, normal;
  filter: brightness(var(--ethera-sky-light, 1));
}
.ethera-atmosphere-frame[data-ethera-profile]:not([data-ethera-profile='home']) > .ethera-atmosphere-plane--geometry {
  background: var(--ethera-scene-art) center / calc(100vw + 24px) auto no-repeat;
  opacity: .92;
  -webkit-mask-image: none;
  mask-image: none;
}
.ethera-atmosphere-frame[data-ethera-profile]:not([data-ethera-profile='home']) > .ethera-atmosphere-plane--detail {
  background: url('ethera-depth-stars.svg') 78% 24% / 2200px auto repeat;
  opacity: .3;
}
/* Compass artwork stays in the original hero and intentional brand sections. */
body.ethera-front-page:not([data-ethera-route='home']):not([data-ethera-route='about']):not([data-ethera-route='locations']) .ethera-compass-accent { visibility: hidden; }

/* Scene compositions vary inside the same route instead of repeating a full
   illustration in every content block. No authored dimensions are changed. */
body.ethera-front-page .page-head > .ethera-section-backdrop { inset-inline: -28px; border-radius: 18px; -webkit-mask-image: linear-gradient(0deg, transparent, #000 14%, #000 90%, transparent); mask-image: linear-gradient(0deg, transparent, #000 14%, #000 90%, transparent); }
[data-ethera-layout='band'] { -webkit-mask-image: linear-gradient(0deg, transparent, #000 24%, #000 76%, transparent); mask-image: linear-gradient(0deg, transparent, #000 24%, #000 76%, transparent); }
[data-ethera-layout='band'] > .ethera-atmosphere-plane--geometry { background-size: 1300px auto; background-position: 55% 68%; }
[data-ethera-layout='edge-left'] > .ethera-atmosphere-plane--geometry { background-position: 8% 50%; }
[data-ethera-layout='edge-left'] > .ethera-atmosphere-veil { background: linear-gradient(90deg, #0b182a44, #0b182ac4 38%, #0b182aeb 78%); }
[data-ethera-layout='edge-right'] > .ethera-atmosphere-plane--geometry { background-position: 88% 50%; }
[data-ethera-atmosphere-role='feature'] > .ethera-atmosphere-plane--far { opacity: .65; }
[data-ethera-atmosphere-role='feature'] > .ethera-atmosphere-plane--geometry { opacity: .52; }
[data-ethera-atmosphere-role='feature'] > .ethera-atmosphere-veil { background: linear-gradient(90deg, #0b182ae0, #0b182ac4 54%, #0b182a66); }
[data-ethera-atmosphere-role='feature'][data-ethera-layout='edge-left'] > .ethera-atmosphere-veil { background: linear-gradient(90deg, #0b182a73, #0b182ad4 38%, #0b182aeb); }
[data-ethera-atmosphere-role='commerce'] > .ethera-atmosphere-veil { background: linear-gradient(90deg, #0b182ad9, #0b182ab3); }
/* Blend the shared Montréal scene into the route-wide sky. Only the
   decorative frame fades; the map, headings and controls remain solid. */
body.ethera-front-page .location-section > .ethera-section-backdrop {
  opacity: .42;
  -webkit-mask-image: radial-gradient(ellipse closest-side at center, #000 28%, transparent 100%);
  mask-image: radial-gradient(ellipse closest-side at center, #000 28%, transparent 100%);
}
.ethera-depth-moving > .ethera-atmosphere-frame > .ethera-atmosphere-plane { will-change: transform; }
html.ethera-depth-static .ethera-atmosphere-plane,
html.ethera-motion-paused .ethera-atmosphere-plane { transform: none !important; will-change: auto; }
html.ethera-depth-static :is(.ethera-atmosphere-plane--chain, .ethera-atmosphere-plane--compass),
html.ethera-motion-paused :is(.ethera-atmosphere-plane--chain, .ethera-atmosphere-plane--compass) { transform: translateY(-50%) !important; }
html.ethera-depth-static :is(.ethera-atmosphere-plane--path, .ethera-atmosphere-plane--signal),
html.ethera-motion-paused :is(.ethera-atmosphere-plane--path, .ethera-atmosphere-plane--signal) { clip-path: none !important; }
html.ethera-depth-static .ethera-depth-foreground,
html.ethera-motion-paused .ethera-depth-foreground { translate: none !important; }
@media (max-width: 700px) {
  .ethera-atmosphere-plane--far { inset: -110px -110px; }
  [data-ethera-profile='home'] > .ethera-atmosphere-plane--far { background-image: url('ethera-nebula-mobile.webp'); }
  .ethera-atmosphere-plane--geometry { inset: -120px -110px; background-size: 1000px 625px; opacity: .65; }
  .ethera-atmosphere-plane--detail { inset: -110px -110px; background-size: 1300px auto; opacity: .3; }
  /* Bring each motif's edge geometry into a phone viewport; the source has a
     deliberately quiet center, so desktop sizes would crop the art away. */
  .ethera-atmosphere-frame[data-ethera-profile]:not([data-ethera-profile='home']) > .ethera-atmosphere-plane--geometry { background-size: calc(100vw + 24px) auto; background-position-x: 50%; }
  .ethera-atmosphere-plane--stars { opacity: .42; }
  .ethera-atmosphere-plane--grid { inset: -110px; background-size: 54px 54px; }
  .ethera-atmosphere-plane--chain, .ethera-atmosphere-plane--compass { width: 440px; right: -210px; }
  .ethera-atmosphere-plane--chain { opacity: .3; }
  .ethera-atmosphere-plane--compass { opacity: .16; }
  .ethera-atmosphere-veil { background: linear-gradient(90deg, #0b182ad4, #0b182a88), linear-gradient(0deg, #0b182aba, #0b182a11 45%, #0b182a4d); }
  body.ethera-front-page .page-head > .ethera-section-backdrop { inset-inline: -12px; }
  .ethera-atmosphere-frame[data-ethera-profile]:not([data-ethera-profile='home']) > .ethera-atmosphere-plane--far { background-image: linear-gradient(120deg, transparent, var(--ethera-sky-tint)), url('ethera-nebula-mobile.webp'); background-size: cover; }
  [data-ethera-layout='band'] > .ethera-atmosphere-plane--geometry { background-size: 1000px auto; }
}
@media (prefers-reduced-motion: reduce) {
  .ethera-atmosphere-plane { transform: none !important; will-change: auto; }
  .ethera-atmosphere-plane--chain, .ethera-atmosphere-plane--compass { transform: translateY(-50%) !important; }
  .ethera-atmosphere-plane--path, .ethera-atmosphere-plane--signal { clip-path: none !important; }
  .ethera-depth-foreground { translate: none !important; }
}
@media print { .ethera-atmosphere-frame { display: none !important; } .ethera-depth-foreground { translate: none !important; } }
