/* A2S Solution master-page redesign — locally testable, no production deploy. */
:root {
  --master-paper: #f4f8fc;
  --master-paper-light: #ffffff;
  --master-stone: #e7eef7;
  --master-ink: #123e7a;
  --master-muted: #4d6380;
  --master-dim: #7388a2;
  --master-gold: #ffb20d;
  --master-gold-light: #ff7f00;
  --master-blue: #0c418a;
  --master-blue-mid: #3267b8;
  --master-green: #219f4b;
  --master-orange: #ff7f00;
  --master-line: rgba(18, 62, 122, .17);
  --master-serif: Georgia, "Times New Roman", serif;
}
.home-page {
  --bg: var(--master-paper);
  --bg-soft: var(--master-paper-light);
  --panel: var(--master-stone);
  --panel-2: #dce7f4;
  --text: var(--master-ink);
  --muted: var(--master-muted);
  --muted-2: var(--master-dim);
  --line: var(--master-line);
  --mint: var(--master-gold);
  --lime: var(--master-gold-light);
  background: var(--master-paper);
  color: var(--master-ink);
  font-family: Inter, "Helvetica Neue", Arial, sans-serif;
  overflow-x: clip;
}
.home-page html { background: var(--master-paper); }
.home-page .site-shell {
  min-height: 100vh;
  overflow: clip;
  background: var(--master-paper);
  color: var(--master-ink);
}
.home-page .skip-link { background: var(--master-ink); color: var(--master-paper); z-index: 10020; }
.home-page a { color: inherit; }
.home-page ::selection { color: var(--master-paper); background: var(--master-gold); }
.home-page .eyebrow { color: var(--master-gold); font-size: 10px; font-weight: 650; letter-spacing: .19em; line-height: 1.6; margin: 0 0 20px; }
.home-page .eyebrow-line { width: 28px; background: var(--master-gold); box-shadow: none; }

/* Opening screen */
.master-intro {
  position: fixed;
  inset: 0;
  z-index: 10010;
  display: grid;
  place-items: center;
  overflow: hidden;
  color: var(--master-ink);
  background: var(--master-paper);
  isolation: isolate;
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  transition: transform .95s cubic-bezier(.77, 0, .18, 1), visibility .95s step-end;
}
.master-intro::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: radial-gradient(ellipse at 52% 47%, rgba(255, 178, 13, .15), transparent 34%), linear-gradient(130deg, rgba(255,255,255,.5), transparent 42%);
}
.master-intro::after {
  content: "";
  position: absolute;
  z-index: -1;
  right: -15vw;
  bottom: -47vw;
  width: min(88vw, 1100px);
  aspect-ratio: 1;
  border-radius: 50%;
  border: 1px solid rgba(255,178,13,.23);
  box-shadow: 0 0 0 42px rgba(255,178,13,.035), 0 0 0 90px rgba(255,178,13,.025), 0 0 0 140px rgba(255,178,13,.018);
  animation: masterIntroOrbit 22s linear infinite;
}
.master-intro.is-leaving { transform: translateY(-102%); visibility: hidden; }
.intro-grid {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .25;
  background-image: linear-gradient(rgba(18,62,122,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(18,62,122,.08) 1px, transparent 1px);
  background-size: 9.5vw 9.5vw;
  mask-image: linear-gradient(transparent, #000 22%, #000 77%, transparent);
}
.intro-topline, .intro-bottomline {
  position: absolute;
  left: clamp(20px, 4.1vw, 60px);
  right: clamp(20px, 4.1vw, 60px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  color: var(--master-muted);
  font-size: 9px;
  line-height: 1.5;
  font-weight: 650;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.intro-topline { top: clamp(18px, 3.5vh, 35px); }
.intro-topline i { color: var(--master-gold); font-style: normal; padding: 0 5px; }
.intro-skip {
  border: 1px solid var(--master-line);
  border-radius: 99px;
  padding: 11px 15px;
  color: var(--master-ink);
  background: rgba(250,248,242,.65);
  cursor: pointer;
  font-size: 10px;
  letter-spacing: .04em;
  text-transform: none;
  transition: border-color .25s ease, background .25s ease;
}
.intro-skip:hover, .intro-skip:focus-visible { border-color: var(--master-gold); background: var(--master-paper-light); outline: none; }
.intro-center {
  width: min(100% - 36px, 1100px);
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: center;
  min-height: 100%;
  padding: 75px 0 78px;
  text-align: center;
}
.intro-emblem { position: relative; display: grid; place-items: center; width: clamp(86px, 10vw, 118px); aspect-ratio: 1; margin-bottom: 28px; color: var(--master-gold); opacity: 0; transform: scale(.78) rotate(-12deg); animation: masterIntroMark .9s cubic-bezier(.16,1,.3,1) .16s forwards; }
.emblem-ring { position: absolute; inset: 0; border: 1px solid rgba(255,178,13,.6); border-radius: 50%; }
.ring-a { animation: masterRingDraw 1.4s cubic-bezier(.16,1,.3,1) .35s both; }
.ring-b { inset: 10%; border-style: dashed; opacity: .65; animation: masterRingDraw 1.8s cubic-bezier(.16,1,.3,1) .48s both; }
.emblem-line { position: absolute; width: 140%; height: 1px; background: linear-gradient(90deg, transparent, var(--master-gold), transparent); transform: rotate(-45deg) scaleX(0); animation: masterLineDraw 1s ease .7s forwards; }
.emblem-core { width: 9px; height: 9px; background: var(--master-gold); border-radius: 50%; box-shadow: 0 0 0 8px rgba(255,178,13,.1), 0 0 25px rgba(255,178,13,.3); }
.intro-pretitle { margin: 0 0 18px; color: var(--master-gold); font-weight: 700; font-size: 9px; letter-spacing: .22em; opacity: 0; animation: masterIntroRise .7s ease .42s forwards; }
.intro-pretitle span { padding: 0 8px; color: var(--master-dim); }
.intro-title { max-width: 900px; margin: 0; font-size: clamp(52px, 8.8vw, 120px); font-weight: 450; line-height: .91; letter-spacing: -.085em; opacity: 0; transform: translateY(28px); animation: masterIntroRise .85s cubic-bezier(.16,1,.3,1) .58s forwards; }
.intro-title em { color: var(--master-gold); font-family: var(--master-serif); font-weight: 400; letter-spacing: -.075em; }
.intro-subtitle { margin: 27px 0 30px; color: var(--master-muted); font-size: 9px; letter-spacing: .19em; opacity: 0; animation: masterIntroRise .7s ease .82s forwards; }
.intro-enter { display: inline-flex; align-items: center; gap: 38px; min-width: 178px; justify-content: space-between; border: 1px solid var(--master-ink); border-radius: 0; padding: 14px 16px 14px 18px; color: var(--master-paper); background: var(--master-ink); font-size: 11px; cursor: pointer; opacity: 0; transform: translateY(12px); animation: masterIntroRise .7s cubic-bezier(.16,1,.3,1) 1s forwards; transition: background .2s ease, color .2s ease; }
.intro-enter b { color: var(--master-gold-light); font-size: 16px; font-weight: 450; transition: transform .25s ease; }
.intro-enter:hover, .intro-enter:focus-visible { color: var(--master-ink); background: transparent; outline: none; }
.intro-enter:hover b { transform: translate(3px, 3px); }
.intro-bottomline { bottom: clamp(18px, 3.5vh, 35px); }
.intro-progress { display: block; width: clamp(65px, 11vw, 150px); height: 1px; background: rgba(18,62,122,.14); overflow: hidden; }
.intro-progress i { display: block; width: 0; height: 100%; background: var(--master-gold); animation: masterIntroProgress 4.35s linear forwards; }
@keyframes masterIntroMark { to { opacity: 1; transform: scale(1) rotate(0); } }
@keyframes masterRingDraw { from { clip-path: inset(0 100% 0 0); transform: rotate(-45deg) scale(.72); } to { clip-path: inset(0 0 0 0); transform: rotate(0) scale(1); } }
@keyframes masterLineDraw { to { transform: rotate(-45deg) scaleX(1); } }
@keyframes masterIntroRise { to { opacity: 1; transform: translateY(0); } }
@keyframes masterIntroOrbit { to { transform: rotate(360deg); } }
@keyframes masterIntroProgress { to { width: 100%; } }

/* Header and navigation */
.home-page .site-header.master-header {
  width: min(1480px, calc(100% - 88px));
  min-height: 94px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  border-bottom: 1px solid var(--master-line);
  position: relative;
  z-index: 8;
  background: var(--master-paper);
}
.home-page .brand { display: inline-flex; align-items: center; gap: 12px; flex-shrink: 0; }
.brand-symbol { position: relative; display: flex; align-items: baseline; justify-content: center; width: 43px; height: 43px; padding-top: 8px; border: 1px solid rgba(255,178,13,.78); border-radius: 50%; color: var(--master-ink); font-family: var(--master-serif); font-size: 20px; letter-spacing: -2px; }
.brand-symbol span { font-size: 11px; transform: translateY(-6px); margin: 0 1px; color: var(--master-gold); }
.brand-symbol i { position: absolute; top: 6px; right: 5px; width: 4px; height: 4px; border-radius: 50%; background: var(--master-gold); }
.home-page .brand-name { display: flex; flex-direction: column; gap: 2px; color: var(--master-ink); font-size: 12px; font-weight: 700; letter-spacing: .17em; }
.home-page .brand-name strong { font-size: 10px; font-weight: 500; letter-spacing: .28em; color: var(--master-ink); }
.home-page .brand-name small { margin-top: 3px; color: var(--master-dim); font-size: 7px; letter-spacing: .12em; }
.master-nav { display: flex; align-items: center; justify-content: center; gap: clamp(18px, 3.3vw, 44px); margin-left: auto; }
.master-nav a { position: relative; padding: 12px 0; color: var(--master-muted); font-size: 11px; transition: color .2s ease; }
.master-nav a::after { content: ""; position: absolute; right: 0; bottom: 6px; left: 0; height: 1px; background: var(--master-gold); transform: scaleX(0); transform-origin: right; transition: transform .3s cubic-bezier(.16,1,.3,1); }
.master-nav a:hover, .master-nav a:focus-visible { color: var(--master-ink); outline: none; }
.master-nav a:hover::after, .master-nav a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.home-page .header-contact { margin: 0; display: inline-flex; align-items: center; gap: 20px; padding: 13px 15px; border: 1px solid rgba(18,62,122,.45); border-radius: 0; color: var(--master-ink); font-size: 10px; transition: color .2s ease, background .2s ease, border-color .2s ease; }
.home-page .header-contact:hover, .home-page .header-contact:focus-visible { background: var(--master-ink); color: var(--master-paper); border-color: var(--master-ink); outline: none; }
.master-menu-toggle { display: none; }

/* Main hero: intentionally broad company positioning, not solar-first. */
.master-main { width: min(1480px, calc(100% - 88px)); margin: 0 auto; }
.master-hero { position: relative; display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(360px, .96fr); gap: clamp(35px, 6vw, 94px); align-items: center; min-height: min(790px, calc(100svh - 94px)); padding: clamp(65px, 8.8vh, 105px) 0 78px; }
.master-hero-copy { position: relative; z-index: 2; padding: 0 0 20px; }
.master-eyebrow { display: flex; align-items: center; gap: 12px; }
.master-hero h1 { max-width: 820px; margin: 0; font-size: clamp(55px, 7vw, 100px); font-weight: 450; letter-spacing: -.085em; line-height: .92; }
.master-hero h1 em { color: var(--master-gold); font-family: var(--master-serif); font-weight: 400; letter-spacing: -.078em; }
.master-hero-lead { max-width: 500px; margin: 31px 0 0; color: var(--master-muted); font-size: clamp(14px, 1.2vw, 17px); line-height: 1.85; }
.master-hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; margin-top: 30px; }
.master-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 34px; min-height: 49px; padding: 14px 17px; font-size: 10px; font-weight: 600; border: 1px solid var(--master-ink); transition: background .25s ease, color .25s ease, transform .25s ease; }
.master-button span { font-size: 16px; font-weight: 400; transition: transform .25s ease; }
.master-button:hover span, .master-button:focus-visible span { transform: translate(2px, 2px); }
.master-button:focus-visible, .master-text-link:focus-visible { outline: 2px solid var(--master-gold); outline-offset: 3px; }
.master-button-dark { color: var(--master-paper); background: var(--master-ink); }
.master-button-dark:hover, .master-button-dark:focus-visible { color: var(--master-ink); background: transparent; }
.master-text-link { display: inline-flex; align-items: center; gap: 13px; color: var(--master-muted); font-size: 11px; transition: color .2s ease; }
.master-text-link span { color: var(--master-gold); transition: transform .25s ease; }
.master-text-link:hover { color: var(--master-ink); }
.master-text-link:hover span { transform: translate(3px, -3px); }
.master-hero-meta { display: flex; flex-wrap: wrap; gap: clamp(24px, 4vw, 54px); margin-top: clamp(35px, 5vw, 62px); padding-top: 20px; border-top: 1px solid var(--master-line); }
.master-hero-meta > div { display: flex; flex-direction: column; gap: 8px; }
.meta-label { color: var(--master-dim); font-size: 8px; letter-spacing: .15em; }
.master-hero-meta strong { color: var(--master-ink); font-size: 10px; font-weight: 550; }
.master-hero-visual { position: relative; min-width: 0; padding: 0 13px 38px 0; opacity: 0; transform: translateY(28px); }
.master-hero-visual.is-visible { opacity: 1; transform: translateY(0); transition: opacity .9s ease .12s, transform 1s cubic-bezier(.16,1,.3,1) .12s; }
.hero-image-frame { position: relative; height: clamp(430px, 48vw, 610px); overflow: hidden; background: #d7e3ef; isolation: isolate; }
.hero-main-image { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 48% center; filter: saturate(.68) contrast(1.04); transform: scale(1.055); transition: transform 1.5s cubic-bezier(.16,1,.3,1), filter .8s ease; }
.master-hero-visual.is-visible .hero-main-image { transform: scale(1); }
.master-hero-visual:hover .hero-main-image { transform: scale(1.045); filter: saturate(.88) contrast(1.03); }
.hero-image-shade { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(28,29,26,.16), transparent 34%, transparent 50%, rgba(28,29,26,.55)); pointer-events: none; }
.hero-image-topline { position: absolute; z-index: 2; top: 19px; left: 20px; right: 20px; display: flex; justify-content: space-between; gap: 15px; color: rgba(255,255,255,.85); font-size: 8px; font-weight: 650; letter-spacing: .14em; }
.hero-image-caption { position: absolute; z-index: 2; bottom: 24px; left: 24px; right: 24px; display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; color: #fff; }
.caption-index { padding-bottom: 5px; color: var(--master-gold-light); font-size: 9px; letter-spacing: .14em; }
.hero-image-caption > span:last-child { font-family: var(--master-serif); font-size: clamp(26px, 3vw, 39px); line-height: .98; letter-spacing: -.04em; }
.hero-image-orbit { position: absolute; z-index: 2; top: 50%; left: 50%; width: 122px; aspect-ratio: 1; border: 1px solid rgba(255,255,255,.52); border-radius: 50%; transform: translate(-50%,-50%) scale(.65); opacity: 0; transition: transform .7s cubic-bezier(.16,1,.3,1), opacity .4s ease; }
.hero-image-orbit::before, .hero-image-orbit::after { content: ""; position: absolute; top: 50%; left: 50%; width: 150%; height: 1px; background: rgba(255,255,255,.4); transform: translate(-50%,-50%) rotate(45deg); }
.hero-image-orbit::after { transform: translate(-50%,-50%) rotate(-45deg); }
.hero-image-orbit span { position: absolute; left: 50%; top: 50%; width: 8px; height: 8px; border-radius: 50%; background: var(--master-gold-light); transform: translate(-50%,-50%); }
.master-hero-visual:hover .hero-image-orbit { opacity: 1; transform: translate(-50%,-50%) scale(1); }
.hero-side-note { position: absolute; top: 51%; right: -32px; display: flex; align-items: center; gap: 12px; transform: translate(100%,-50%) rotate(90deg); transform-origin: top left; color: var(--master-muted); white-space: nowrap; font-size: 8px; letter-spacing: .12em; line-height: 1.6; }
.side-note-line { display: block; width: 34px; height: 1px; background: var(--master-gold); }
.hero-bottomline { position: absolute; left: 0; right: 0; bottom: 22px; display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: center; padding-top: 16px; border-top: 1px solid var(--master-line); color: var(--master-dim); font-size: 8px; letter-spacing: .16em; }
.hero-bottomline a { justify-self: center; display: inline-flex; align-items: center; gap: 10px; color: var(--master-ink); transition: color .2s ease; }
.hero-bottomline a:hover { color: var(--master-gold); }
.hero-bottomline > span:last-child { justify-self: end; }

/* Quiet moving service ticker */
.capability-ticker { margin: 0 calc(50% - 50vw); overflow: hidden; border-top: 1px solid var(--master-line); border-bottom: 1px solid var(--master-line); background: var(--master-stone); }
.ticker-track { display: flex; align-items: center; width: max-content; gap: clamp(20px, 3vw, 43px); padding: 19px 0; animation: tickerMove 34s linear infinite; }
.ticker-track span { color: var(--master-muted); font-size: 9px; font-weight: 650; letter-spacing: .16em; white-space: nowrap; }
.ticker-track i { color: var(--master-gold); font-size: 14px; font-style: normal; }
@keyframes tickerMove { to { transform: translateX(-50%); } }

/* Six image-and-type service rows, with a fluid hover reveal. */
.master-capabilities { padding: clamp(75px, 10vw, 130px) 0 clamp(75px, 9vw, 110px); }
.capabilities-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: clamp(35px, 8vw, 120px); margin-bottom: 48px; }
.capabilities-heading h2, .approach-main h2, .master-cta-body h2 { margin: 0; color: var(--master-ink); font-size: clamp(40px, 5.6vw, 76px); font-weight: 450; letter-spacing: -.075em; line-height: .98; }
.capabilities-heading h2 em, .approach-main h2 em, .master-cta-body h2 em { color: var(--master-gold); font-family: var(--master-serif); font-weight: 400; letter-spacing: -.065em; }
.capabilities-intro { max-width: 365px; margin: 0 0 7px; color: var(--master-muted); font-size: 13px; line-height: 1.9; }
.master-service-list { border-top: 1px solid var(--master-line); }
.master-service-row { position: relative; display: grid; grid-template-columns: 58px minmax(0, 1fr) minmax(150px, .43fr) 37px; align-items: center; gap: clamp(16px, 2.5vw, 34px); min-height: 170px; padding: 21px 0; border-bottom: 1px solid var(--master-line); text-decoration: none; isolation: isolate; }
.master-service-row::before { content: ""; position: absolute; z-index: -1; inset: 0 calc(clamp(14px, 2vw, 28px) * -1); background: linear-gradient(90deg, rgba(255,178,13,.07), rgba(255,178,13,.02)); opacity: 0; transform: scaleY(.9); transform-origin: center; transition: opacity .35s ease, transform .45s cubic-bezier(.16,1,.3,1); }
.master-service-row:focus-visible { outline: 1px solid var(--master-gold); outline-offset: 2px; }
.master-service-row.is-active::before, .master-service-row:hover::before, .master-service-row:focus-visible::before { opacity: 1; transform: scaleY(1); }
.service-row-number { align-self: start; padding-top: 8px; color: var(--master-gold); font-size: 10px; letter-spacing: .08em; }
.service-row-copy { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; min-width: 0; }
.service-row-eyebrow { color: var(--master-dim); font-size: 8px; font-weight: 650; letter-spacing: .17em; transition: color .25s ease; }
.service-row-title { display: block; color: var(--master-ink); font-size: clamp(25px, 3.1vw, 43px); font-weight: 450; letter-spacing: -.06em; line-height: 1.04; transition: transform .45s cubic-bezier(.16,1,.3,1), color .25s ease; }
.service-row-description { display: block; max-width: 640px; color: var(--master-muted); font-size: 11px; line-height: 1.7; transition: color .25s ease; }
.service-row-image { position: relative; display: block; align-self: stretch; min-height: 122px; overflow: hidden; background: var(--master-stone); clip-path: inset(0 0 0 0); }
.service-row-image img { display: block; width: 100%; height: 100%; min-height: 122px; position: absolute; inset: 0; object-fit: cover; filter: saturate(.38) contrast(.98); opacity: .68; transform: scale(1.06); transition: transform .8s cubic-bezier(.16,1,.3,1), filter .45s ease, opacity .35s ease; }
.service-image-index { position: absolute; z-index: 1; right: 9px; bottom: 9px; padding: 5px 7px; color: #fff; background: rgba(18,62,122,.55); font-size: 7px; letter-spacing: .13em; }
.service-row-arrow { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid rgba(18,62,122,.33); border-radius: 50%; color: var(--master-ink); font-size: 17px; transition: color .3s ease, background .3s ease, border-color .3s ease, transform .3s ease; }
.master-service-row:hover .service-row-title, .master-service-row.is-active .service-row-title { transform: translateX(5px); }
.master-service-row:hover .service-row-eyebrow, .master-service-row.is-active .service-row-eyebrow { color: var(--master-gold); }
.master-service-row:hover .service-row-image img, .master-service-row.is-active .service-row-image img, .master-service-row:focus-visible .service-row-image img { transform: scale(1); filter: saturate(.92) contrast(1.02); opacity: 1; }
.master-service-row:hover .service-row-arrow, .master-service-row.is-active .service-row-arrow, .master-service-row:focus-visible .service-row-arrow { color: var(--master-paper); background: var(--master-ink); border-color: var(--master-ink); transform: rotate(45deg); }
.capabilities-footnote { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 20px; color: var(--master-dim); font-size: 8px; letter-spacing: .15em; }
.capabilities-footnote i { margin-left: 8px; color: var(--master-gold); font-size: 13px; font-style: normal; }

/* Approach / method */
.master-approach { display: grid; grid-template-columns: .55fr 1.45fr; column-gap: clamp(35px, 7vw, 100px); padding: clamp(65px, 8vw, 100px) 0; border-top: 1px solid var(--master-line); border-bottom: 1px solid var(--master-line); }
.approach-top { display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; min-height: 100%; }
.approach-index { display: block; padding-top: 18px; color: var(--master-dim); font-size: 8px; letter-spacing: .16em; }
.approach-main { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(24px, 4vw, 58px); align-items: end; }
.approach-main h2 { font-size: clamp(36px, 4.6vw, 64px); }
.approach-main > p { margin: 0 0 4px; color: var(--master-muted); font-size: 12px; line-height: 1.95; }
.approach-steps { display: grid; grid-column: 2; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(15px, 2.8vw, 40px); margin-top: 53px; }
.approach-steps article { padding-top: 14px; border-top: 1px solid rgba(255,178,13,.62); }
.approach-steps article > span { color: var(--master-gold); font-size: 9px; letter-spacing: .14em; }
.approach-steps h3 { margin: 23px 0 9px; color: var(--master-ink); font-size: 16px; font-weight: 550; letter-spacing: -.025em; }
.approach-steps p { max-width: 260px; margin: 0; color: var(--master-muted); font-size: 11px; line-height: 1.8; }

/* Closing contact area and footer */
.master-contact-cta { position: relative; overflow: hidden; margin: clamp(75px, 10vw, 130px) 0; padding: clamp(35px, 5vw, 68px); background: var(--master-stone); isolation: isolate; }
.master-contact-cta::after { content: ""; position: absolute; z-index: -1; top: -200px; right: -150px; width: 520px; aspect-ratio: 1; border: 1px solid rgba(255,178,13,.25); border-radius: 50%; box-shadow: 0 0 0 35px rgba(255,178,13,.035), 0 0 0 75px rgba(255,178,13,.03), 0 0 0 120px rgba(255,178,13,.025); }
.cta-watermark { position: absolute; z-index: -1; right: 24px; bottom: -70px; color: rgba(18,62,122,.035); font-family: var(--master-serif); font-size: clamp(150px, 24vw, 350px); letter-spacing: -.13em; line-height: 1; pointer-events: none; }
.master-cta-body { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(30px, 7vw, 100px); align-items: end; }
.master-cta-body h2 { font-size: clamp(43px, 6.2vw, 84px); }
.master-cta-body > div { max-width: 390px; padding-bottom: 5px; }
.master-cta-body p { margin: 0 0 24px; color: var(--master-muted); font-size: 13px; line-height: 1.9; }
.home-page .site-footer.master-footer { width: 100%; display: block; margin: 0; padding: 30px max(44px, calc((100vw - 1480px)/2)) 22px; border-top: 1px solid var(--master-line); background: var(--master-paper); color: var(--master-ink); }
.footer-top { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-bottom: 25px; border-bottom: 1px solid var(--master-line); }
.home-page .footer-brand { color: var(--master-ink); font-size: 20px; letter-spacing: -.06em; font-weight: 750; }
.home-page .footer-brand span { font-weight: 450; color: var(--master-gold); }
.home-page .site-footer p { flex: initial; margin: 0; color: var(--master-muted); font-size: 11px; }
.footer-backtop { color: var(--master-muted); font-size: 8px; letter-spacing: .14em; }
.footer-backtop:hover { color: var(--master-gold); }
.footer-mainline { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 0; color: var(--master-dim); font-size: 8px; letter-spacing: .15em; }
.footer-bottom { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; padding-top: 16px; border-top: 1px solid var(--master-line); }
.footer-contacts { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 25px; }
.footer-contacts a { color: var(--master-muted); font-size: 10px; transition: color .2s ease; }
.footer-contacts a:hover { color: var(--master-gold); }
.home-page .site-footer small { color: var(--master-dim); font-size: 8px; white-space: nowrap; }

/* Reveal elements */
[data-master-reveal] { opacity: 0; transform: translateY(24px); }
[data-master-reveal].is-visible { opacity: 1; transform: translateY(0); transition: opacity .75s ease, transform .9s cubic-bezier(.16,1,.3,1); transition-delay: calc(var(--row-index, 0) * 45ms); }
.master-service-row[data-master-reveal] { transform: translateY(18px); }
.master-service-row[data-master-reveal].is-visible { transform: translateY(0); }

/* Full-screen page route wipe. The destination page also has this shared script. */
.route-curtain { position: fixed; inset: 0; z-index: 10005; background: var(--master-ink); transform: translateX(102%); pointer-events: none; }
.route-curtain.is-covering { animation: routeCover .62s cubic-bezier(.78, 0, .18, 1) forwards; }
body.route-arrival .route-curtain { transform: translateX(0); animation: routeReveal .8s cubic-bezier(.77, 0, .18, 1) forwards; }
@keyframes routeCover { to { transform: translateX(0); } }
@keyframes routeReveal { to { transform: translateX(-102%); } }

/* responsive */
@media (max-width: 1120px) {
  .home-page .site-header.master-header, .master-main { width: calc(100% - 56px); }
  .master-hero { grid-template-columns: minmax(0, 1fr) minmax(330px, .88fr); gap: 34px; }
  .master-hero h1 { font-size: clamp(54px, 6.5vw, 78px); }
  .hero-side-note { display: none; }
  .master-service-row { grid-template-columns: 45px minmax(0, 1fr) minmax(125px, .4fr) 35px; gap: 20px; }
  .service-row-title { font-size: clamp(25px, 2.8vw, 34px); }
  .master-approach { grid-template-columns: .35fr 1.65fr; }
  .approach-main { grid-template-columns: 1fr; gap: 20px; }
  .approach-main > p { max-width: 620px; }
}
@media (max-width: 760px) {
  .home-page .site-header.master-header, .master-main { width: calc(100% - 36px); }
  .home-page .site-header.master-header { min-height: 78px; gap: 14px; }
  .brand-symbol { width: 37px; height: 37px; font-size: 18px; }
  .home-page .brand-name { font-size: 11px; }
  .home-page .brand-name strong { font-size: 9px; }
  .home-page .brand-name small { font-size: 6px; }
  .master-nav { display: none; position: absolute; top: calc(100% + 1px); left: -18px; right: -18px; padding: 14px 18px 18px; flex-direction: column; align-items: stretch; gap: 0; border-bottom: 1px solid var(--master-line); background: var(--master-paper); }
  .master-nav.is-open { display: flex; }
  .master-nav a { padding: 15px 0; border-bottom: 1px solid rgba(18,62,122,.1); }
  .master-nav a:last-child { border-bottom: 0; }
  .master-menu-toggle { display: inline-flex; align-items: center; gap: 9px; padding: 10px 0 10px 10px; border: 0; color: var(--master-ink); background: transparent; font-size: 10px; cursor: pointer; }
  .master-menu-toggle .menu-lines { display: grid; gap: 4px; width: 17px; }
  .master-menu-toggle .menu-lines i { display: block; height: 1px; background: var(--master-ink); }
  .home-page .header-contact { display: none; }
  .master-hero { grid-template-columns: 1fr; gap: 34px; padding: 58px 0 70px; min-height: unset; }
  .master-hero-copy { padding-bottom: 0; }
  .master-hero h1 { font-size: clamp(57px, 12vw, 86px); }
  .master-hero-lead { margin-top: 23px; font-size: 14px; }
  .master-hero-meta { margin-top: 37px; }
  .master-hero-visual { padding: 0 0 20px; }
  .hero-image-frame { height: min(112vw, 540px); min-height: 320px; }
  .hero-bottomline { grid-template-columns: auto 1fr auto; bottom: 17px; }
  .hero-bottomline a { justify-self: center; font-size: 7px; }
  .capability-ticker { margin-right: calc(50% - 50vw); margin-left: calc(50% - 50vw); }
  .ticker-track { padding: 16px 0; }
  .capabilities-heading { align-items: flex-start; flex-direction: column; gap: 22px; margin-bottom: 35px; }
  .capabilities-heading h2, .approach-main h2, .master-cta-body h2 { font-size: clamp(42px, 9vw, 62px); }
  .capabilities-intro { max-width: 560px; }
  .master-service-row { grid-template-columns: 31px minmax(0, 1fr) 28px; gap: 12px; padding: 23px 0 25px; }
  .service-row-number { padding-top: 6px; font-size: 9px; }
  .service-row-copy { grid-column: 2; gap: 8px; }
  .service-row-title { font-size: clamp(27px, 6.6vw, 39px); }
  .service-row-description { font-size: 11px; }
  .service-row-image { grid-column: 2 / 3; grid-row: 2; min-height: 150px; margin-top: 7px; }
  .service-row-image img { min-height: 150px; filter: saturate(.72); opacity: .92; transform: none; }
  .service-row-arrow { grid-column: 3; grid-row: 1; width: 28px; height: 28px; font-size: 15px; }
  .master-service-row::before { inset: 0 -9px; }
  .master-service-row:hover .service-row-title, .master-service-row.is-active .service-row-title { transform: none; }
  .capabilities-footnote { flex-direction: column; align-items: flex-start; line-height: 1.65; }
  .master-approach { grid-template-columns: 1fr; gap: 35px; padding: 64px 0; }
  .approach-top { flex-direction: row; align-items: flex-start; gap: 15px; }
  .approach-index { padding-top: 0; }
  .approach-main { grid-template-columns: 1fr; }
  .approach-steps { grid-column: 1; grid-template-columns: 1fr; gap: 27px; margin-top: 38px; }
  .approach-steps article { display: grid; grid-template-columns: 30px 1fr; column-gap: 12px; }
  .approach-steps article > span { grid-row: span 2; padding-top: 5px; }
  .approach-steps h3 { margin: 0 0 8px; }
  .master-contact-cta { margin: 65px 0; padding: 30px 23px; }
  .master-cta-body { grid-template-columns: 1fr; gap: 26px; }
  .master-cta-body > div { max-width: 500px; }
  .home-page .site-footer.master-footer { padding: 25px 18px 20px; }
  .footer-top { flex-wrap: wrap; justify-content: space-between; }
  .footer-top p { width: 100%; order: 3; }
  .footer-mainline { flex-direction: column; align-items: flex-start; gap: 10px; line-height: 1.7; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
  .footer-contacts { display: grid; gap: 12px; }
  .intro-title { font-size: clamp(48px, 12vw, 78px); }
  .intro-bottomline { font-size: 7px; letter-spacing: .1em; }
  .intro-progress { width: 38px; }
}
@media (max-width: 420px) {
  .home-page .site-header.master-header, .master-main { width: calc(100% - 28px); }
  .home-page .brand-name small { display: none; }
  .master-hero h1 { font-size: clamp(50px, 12vw, 63px); }
  .master-hero-actions { align-items: flex-start; flex-direction: column; gap: 17px; }
  .master-hero-meta { gap: 18px 24px; }
  .hero-image-topline { left: 12px; right: 12px; top: 13px; font-size: 6px; }
  .hero-image-caption { left: 16px; right: 16px; bottom: 17px; }
  .hero-image-caption > span:last-child { font-size: 28px; }
  .hero-bottomline { letter-spacing: .09em; font-size: 7px; }
  .master-capabilities { padding-top: 67px; }
  .intro-topline, .intro-bottomline { left: 15px; right: 15px; }
  .intro-topline { font-size: 7px; }
  .intro-bottomline > span:last-child { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .home-page *, .home-page *::before, .home-page *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .master-intro::after, .ticker-track, .intro-emblem, .intro-title, .intro-pretitle, .intro-subtitle, .intro-enter, .intro-progress i { animation: none !important; }
  [data-master-reveal], [data-master-reveal].is-visible, .master-hero-visual { opacity: 1 !important; transform: none !important; }
  .intro-emblem, .intro-title, .intro-pretitle, .intro-subtitle, .intro-enter { opacity: 1; transform: none; }
  .master-intro.is-leaving { transform: translateY(-102%); }
}

/* ──────────────────────────────────────────────────────────────────────────
   A2S Motion Layer v2 — richer transitions, depth and interactive feedback.
   Local prototype only; all motion is disabled/respectfully reduced on request.
   ────────────────────────────────────────────────────────────────────────── */
.master-intro {
  --intro-x: 50%;
  --intro-y: 48%;
  background:
    radial-gradient(ellipse at var(--intro-x) var(--intro-y), rgba(255,127,0,.16), transparent 32%),
    radial-gradient(ellipse at 50% 25%, #ffffff 0%, #f4f8fc 58%, #e7eef7 100%);
  transition: transform 1.08s cubic-bezier(.77,0,.18,1), opacity .72s ease, visibility 1.08s step-end;
}
.master-intro::before {
  background:
    radial-gradient(circle at var(--intro-x) var(--intro-y), rgba(255,178,13,.2), transparent 32%),
    linear-gradient(125deg, rgba(255,255,255,.66), transparent 40%, rgba(255,178,13,.055)),
    repeating-linear-gradient(128deg, transparent 0 94px, rgba(18,62,122,.018) 95px 96px);
  animation: masterIntroAtmosphere 12s ease-in-out infinite alternate;
}
.master-intro::after {
  right: auto;
  bottom: auto;
  top: 50%;
  left: 50%;
  width: min(78vw, 980px);
  border-color: rgba(255,178,13,.20);
  box-shadow: 0 0 0 32px rgba(255,178,13,.03), 0 0 0 78px rgba(255,178,13,.024), 0 0 0 132px rgba(255,178,13,.015);
  animation: masterIntroOrbitCentered 34s linear infinite;
  transform: translate(-50%,-50%);
}
.master-intro.is-leaving { transform: translateY(-105%) scale(.985); opacity: .98; }
.intro-grid {
  z-index: 0;
  opacity: .2;
  background-size: 8vw 8vw;
  animation: masterGridDrift 38s linear infinite;
}
.intro-particles {
  position: absolute;
  z-index: 1;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  opacity: .9;
}
.intro-scanline {
  position: absolute;
  z-index: 1;
  top: -35%;
  bottom: -35%;
  left: -34%;
  width: 22%;
  pointer-events: none;
  opacity: 0;
  transform: skewX(-18deg);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.54), rgba(255,178,13,.12), transparent);
  animation: masterIntroSweep 2.1s ease-in-out 1.05s both;
}
.intro-topline, .intro-bottomline { z-index: 3; }
.intro-center { position: relative; z-index: 2; }
.intro-emblem {
  filter: drop-shadow(0 8px 24px rgba(255,178,13,.12));
  animation: masterIntroMark .95s cubic-bezier(.16,1,.3,1) .12s forwards, masterMarkFloat 5s ease-in-out 1.3s infinite;
}
.emblem-ring.ring-a { border-width: 1px; box-shadow: inset 0 0 26px rgba(255,178,13,.035), 0 0 34px rgba(255,178,13,.05); }
.emblem-ring.ring-b { animation: masterRingDraw 1.8s cubic-bezier(.16,1,.3,1) .3s both, masterRingRotate 19s linear 2.1s infinite; }
.emblem-core { animation: masterCorePulse 2.7s ease-in-out 1.2s infinite; }
.intro-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  opacity: 1;
  transform: none;
  animation: none;
  max-width: 1050px;
  font-size: clamp(51px, 8.8vw, 126px);
  line-height: .91;
  letter-spacing: -.09em;
}
.intro-title-line { display: block; overflow: hidden; padding: 0 .09em .07em; margin-bottom: -.07em; }
.intro-title-line > span, .intro-title-line > em {
  display: inline-block;
  opacity: 0;
  transform: translateY(116%);
  animation: masterKineticText .96s cubic-bezier(.16,1,.3,1) forwards;
}
.intro-title-line:first-child > span { animation-delay: .58s; }
.intro-title-line:last-child > em { animation-delay: .82s; }
.intro-title-line em { color: var(--master-gold); font-family: var(--master-serif); font-weight: 400; letter-spacing: -.075em; }
.intro-pretitle { animation-delay: .38s; }
.intro-subtitle { animation-delay: 1.12s; }
.intro-enter { animation-delay: 1.34s; box-shadow: 0 10px 30px rgba(18,62,122,.09); }
.intro-enter:hover { box-shadow: 0 16px 36px rgba(18,62,122,.12); transform: translateY(-2px); }
.intro-progress i { animation-duration: 5.25s; }
.intro-bottomline { color: rgba(110,108,100,.88); }

/* Hero title enters in three controlled waves after the intro leaves. */
.hero-title-line { display: block; overflow: hidden; padding: 0 .08em .065em; margin: 0 0 -.065em -.08em; }
.hero-title-line > span { display: inline-block; }
body.experience-active .hero-title-line > span { animation: masterHeroLineIn .92s cubic-bezier(.16,1,.3,1) both; }
body.experience-active .hero-title-line:nth-child(1) > span { animation-delay: .12s; }
body.experience-active .hero-title-line:nth-child(2) > span { animation-delay: .25s; }
body.experience-active .hero-title-line:nth-child(3) > span { animation-delay: .38s; }
body.experience-active .master-eyebrow { animation: masterCopyIn .72s ease .08s both; }
body.experience-active .master-hero-lead { animation: masterCopyIn .8s ease .52s both; }
body.experience-active .master-hero-actions { animation: masterCopyIn .8s ease .64s both; }
body.experience-active .master-hero-meta { animation: masterCopyIn .8s ease .78s both; }

/* Depth follows pointer in the hero, but stays subtle and stable. */
.hero-image-frame {
  transform: perspective(1200px) rotateX(var(--frame-tilt-y, 0deg)) rotateY(var(--frame-tilt-x, 0deg)) translateY(var(--frame-scroll-y, 0px));
  transform-style: preserve-3d;
  will-change: transform;
  transition: transform .48s cubic-bezier(.16,1,.3,1);
  box-shadow: 0 24px 65px rgba(18,62,122,.08);
}
.hero-image-frame::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  background: linear-gradient(120deg, transparent 20%, rgba(255,255,255,.15) 48%, transparent 68%);
  transform: translateX(-110%);
}
.master-hero-visual:hover .hero-image-frame::after { opacity: 1; animation: masterImageGlint 1.1s cubic-bezier(.16,1,.3,1) both; }
.master-hero-visual:hover .hero-image-orbit { box-shadow: 0 0 0 12px rgba(255,255,255,.07), 0 0 30px rgba(255,178,13,.16); }
.hero-image-orbit { pointer-events: none; transition: transform .55s cubic-bezier(.16,1,.3,1), opacity .25s ease, top .3s ease, left .3s ease; }
.master-hero-visual { perspective: 1200px; }

/* Pointer-light, scroll progress and magnetic controls. */
.master-cursor-aura {
  position: fixed;
  z-index: 3;
  top: 0;
  left: 0;
  width: 380px;
  height: 380px;
  border-radius: 50%;
  pointer-events: none;
  opacity: .36;
  background: radial-gradient(circle, rgba(255,178,13,.095) 0%, rgba(255,178,13,.038) 33%, transparent 70%);
  mix-blend-mode: multiply;
  will-change: transform;
  transition: opacity .3s ease;
}
body.intro-active .master-cursor-aura { opacity: 0; }
.master-scroll-progress {
  position: fixed;
  z-index: 10020;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  pointer-events: none;
  background: rgba(255,178,13,.12);
}
.master-scroll-progress span {
  display: block;
  width: 100%;
  height: 100%;
  transform: scaleX(0);
  transform-origin: left center;
  background: linear-gradient(90deg, var(--master-gold), #219f4b, #0c418a);
  box-shadow: 0 0 9px rgba(255,178,13,.18);
}
body.intro-active .master-scroll-progress { opacity: 0; }
.master-button.is-magnetic, .header-contact.is-magnetic { transform: translate(var(--magnet-x,0px), var(--magnet-y,0px)); }

/* Section rows: light follows the pointer and imagery wipes into view. */
.master-service-row::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0 calc(clamp(14px, 2vw, 28px) * -1);
  pointer-events: none;
  opacity: 0;
  background: radial-gradient(ellipse at var(--row-pointer-x,50%) var(--row-pointer-y,50%), rgba(255,178,13,.105), transparent 58%);
  transition: opacity .38s ease;
}
.master-service-row.is-active::after, .master-service-row:hover::after, .master-service-row:focus-visible::after { opacity: 1; }
.master-service-row .service-row-image {
  clip-path: inset(0 0 0 100%);
  transition: clip-path .92s cubic-bezier(.77,0,.18,1);
}
.master-service-row.is-visible .service-row-image { clip-path: inset(0 0 0 0); }
.master-service-row:hover .service-row-image img,
.master-service-row.is-active .service-row-image img,
.master-service-row:focus-visible .service-row-image img {
  transform: scale(1.11) translate(var(--image-shift-x,0px), var(--image-shift-y,0px));
}
.service-row-image { isolation: isolate; }
.service-image-flash {
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  transform: translateX(-100%);
  background: linear-gradient(100deg, transparent 22%, rgba(255,255,255,.18), transparent 68%);
}
.master-service-row:hover .service-image-flash, .master-service-row:focus-visible .service-image-flash { opacity: 1; animation: masterImageGlint .9s ease both; }
.capability-ticker:hover .ticker-track { animation-play-state: paused; }

/* Add an editorial entrance for the approach and contact blocks. */
.master-approach .approach-steps article { transition: transform .45s cubic-bezier(.16,1,.3,1), border-color .35s ease; }
.master-approach .approach-steps article:hover { transform: translateY(-5px); border-color: var(--master-gold); }
.master-contact-cta { transition: background .45s ease; }
.master-contact-cta:hover { background: #dce7f4; }
.master-contact-cta::after { animation: masterCtaOrbit 30s linear infinite; }

/* Full-screen, multi-layer transition shared with every internal page. */
.route-curtain {
  position: fixed;
  inset: 0;
  z-index: 10005;
  display: block;
  overflow: hidden;
  pointer-events: none;
  background: #ffb20d;
  clip-path: inset(0 0 0 100%);
  transform: none;
  will-change: clip-path;
}
.route-curtain::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #123e7a;
  transform: translateY(102%);
  will-change: transform;
}
.route-curtain.is-covering { animation: routeCurtainCover .76s cubic-bezier(.77,0,.18,1) forwards; }
.route-curtain.is-covering::before { animation: routeCurtainPanelCover .66s cubic-bezier(.77,0,.18,1) .09s forwards; }
.route-curtain__inner {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: clamp(24px, 8vw, 110px);
  width: min(650px, calc(100% - 48px));
  color: var(--master-paper, #f4f8fc);
  opacity: 0;
  transform: translateY(calc(-50% + 22px));
}
.route-curtain.is-covering .route-curtain__inner { animation: routeLabelReveal .52s cubic-bezier(.16,1,.3,1) .33s forwards; }
.route-curtain__brand { display: block; margin-bottom: 30px; color: #ff7f00; font-size: 10px; font-weight: 700; letter-spacing: .24em; }
.route-curtain__brand i { padding: 0 7px; color: rgba(244,240,231,.34); font-style: normal; }
.route-curtain__inner strong { display: block; max-width: 650px; font-size: clamp(38px, 7.2vw, 92px); line-height: .96; letter-spacing: -.075em; font-weight: 450; }
.route-curtain__progress { display: block; width: min(230px, 48vw); height: 1px; margin: 28px 0 18px; overflow: hidden; background: rgba(244,240,231,.22); }
.route-curtain__progress i { display: block; height: 100%; width: 0; background: #ff7f00; }
.route-curtain.is-covering .route-curtain__progress i { animation: routeProgress .58s ease .3s forwards; }
.route-curtain__inner small { color: rgba(244,240,231,.56); font-size: 8px; letter-spacing: .18em; }
body.route-arrival .route-curtain { clip-path: inset(0); animation: routeCurtainArrival .9s cubic-bezier(.77,0,.18,1) .08s forwards; }
body.route-arrival .route-curtain::before { transform: translateY(0); animation: routeCurtainPanelArrival .65s cubic-bezier(.77,0,.18,1) .04s forwards; }
body.route-arrival .route-curtain__inner { opacity: 0; }
@keyframes routeCurtainCover { to { clip-path: inset(0); } }
@keyframes routeCurtainPanelCover { to { transform: translateY(0); } }
@keyframes routeCurtainArrival { to { clip-path: inset(0 0 0 100%); } }
@keyframes routeCurtainPanelArrival { to { transform: translateY(-102%); } }
@keyframes routeLabelReveal { to { opacity: 1; transform: translateY(-50%); } }
@keyframes routeProgress { to { width: 100%; } }
@keyframes masterIntroAtmosphere { from { opacity: .72; } to { opacity: 1; } }
@keyframes masterIntroOrbitCentered { to { transform: translate(-50%,-50%) rotate(360deg); } }
@keyframes masterGridDrift { to { background-position: 8vw 8vw, -8vw -8vw; } }
@keyframes masterIntroSweep { 0% { opacity: 0; left: -34%; } 20% { opacity: .65; } 75% { opacity: .4; } 100% { left: 125%; opacity: 0; } }
@keyframes masterKineticText { 0% { opacity: 0; transform: translateY(116%); filter: blur(7px); } 72% { opacity: 1; filter: blur(0); } 100% { opacity: 1; transform: translateY(0); filter: blur(0); } }
@keyframes masterHeroLineIn { from { opacity: 0; transform: translateY(115%) skewY(3deg); filter: blur(4px); } to { opacity: 1; transform: translateY(0) skewY(0); filter: blur(0); } }
@keyframes masterCopyIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
@keyframes masterMarkFloat { 0%,100% { margin-top: 0; } 50% { margin-top: -7px; } }
@keyframes masterRingRotate { to { transform: rotate(360deg); } }
@keyframes masterCorePulse { 0%,100% { box-shadow: 0 0 0 8px rgba(255,178,13,.1), 0 0 25px rgba(255,178,13,.22); } 50% { box-shadow: 0 0 0 16px rgba(255,178,13,.025), 0 0 38px rgba(255,178,13,.38); } }
@keyframes masterImageGlint { 0% { transform: translateX(-110%); } 100% { transform: translateX(110%); } }
@keyframes masterCtaOrbit { to { transform: rotate(360deg); } }

@media (hover: none), (pointer: coarse) {
  .master-cursor-aura { display: none; }
  .hero-image-frame { transform: none !important; }
  .master-service-row .service-row-image { clip-path: none; }
  .service-image-flash { display: none; }
}
@media (max-width: 760px) {
  .route-curtain__inner { left: 24px; width: calc(100% - 48px); }
  .route-curtain__brand { margin-bottom: 22px; }
  .route-curtain__inner small { font-size: 7px; letter-spacing: .12em; }
  .intro-title { font-size: clamp(48px, 11.8vw, 78px); }
  .master-intro::after { width: 120vw; }
  .intro-scanline { width: 34%; }
  .master-cursor-aura { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .master-intro, .master-intro::before, .master-intro::after, .intro-grid, .intro-scanline,
  .intro-emblem, .emblem-ring, .emblem-core, .intro-title-line > span, .intro-title-line > em,
  .intro-progress i, .hero-title-line > span, .hero-image-frame, .hero-image-frame::after,
  .master-contact-cta::after, .master-service-row .service-row-image, .service-row-image img,
  .service-image-flash, .route-curtain, .route-curtain::before, .route-curtain__inner,
  .route-curtain__progress i, .ticker-track {
    animation: none !important;
    transition: none !important;
  }
  .intro-emblem, .intro-title-line > span, .intro-title-line > em, .intro-pretitle,
  .intro-subtitle, .intro-enter, .intro-progress i { opacity: 1 !important; transform: none !important; filter: none !important; }
  .hero-title-line > span { opacity: 1 !important; transform: none !important; filter: none !important; }
  .master-scroll-progress { display: none; }
  .route-curtain { display: none !important; }
  .master-cursor-aura { display: none; }
}


/* Exact A2S logo assets and palette treatment for the master page. */
.home-page .master-header { background: rgba(244,248,252,.84); backdrop-filter: blur(18px); }
.home-page .brand-symbol-image { display:block; width:clamp(45px,4.4vw,58px); height:clamp(45px,4.4vw,58px); object-fit:contain; flex:0 0 auto; }
.home-page .brand { gap:12px; }
.home-page .brand-name { color:var(--master-blue); }
.home-page .brand-name strong { color:var(--master-blue); }
.home-page .header-contact { color:var(--master-blue); border-color:rgba(12,65,138,.3); background:rgba(255,255,255,.55); }
.home-page .header-contact:hover,.home-page .header-contact:focus-visible { color:#fff; background:var(--master-green); border-color:var(--master-green); }
.home-page .master-hero h1 em,.home-page .capabilities-heading h2 em,.home-page .approach-main h2 em,.home-page .master-cta-body h2 em { color:var(--master-green); }
.home-page .master-button-dark { background:var(--master-blue); border-color:var(--master-blue); color:#fff; }
.home-page .master-button-dark:hover,.home-page .master-button-dark:focus-visible { background:var(--master-green); color:#fff; border-color:var(--master-green); }
.home-page .master-text-link span,.home-page .hero-bottomline a:hover { color:var(--master-green); }
.home-page .service-row-number,.home-page .service-row-eyebrow { color:var(--master-green); }
.home-page .master-service-row::before { background:linear-gradient(90deg,rgba(12,65,138,.075),rgba(33,159,75,.055) 58%,rgba(255,178,13,.04)); }
.home-page .master-service-row::after { background:radial-gradient(circle at var(--row-pointer-x,50%) var(--row-pointer-y,50%),rgba(255,178,13,.18),transparent 36%); }
.home-page .master-service-row:hover .service-row-eyebrow,.home-page .master-service-row.is-active .service-row-eyebrow { color:var(--master-orange); }
.home-page .service-row-arrow { border-color:rgba(12,65,138,.28); }
.home-page .master-service-row:hover .service-row-arrow,.home-page .master-service-row.is-active .service-row-arrow,.home-page .master-service-row:focus-visible .service-row-arrow { background:var(--master-green); color:#fff; border-color:var(--master-green); }
.home-page .capability-ticker { background:linear-gradient(100deg,#e7eef7,#f8fbfe 45%,#e5f3e9); }
.home-page .ticker-track i { color:var(--master-orange); }
.home-page .approach-steps article { border-top-color:rgba(33,159,75,.55); }
.home-page .approach-steps article>span { color:var(--master-green); }
.home-page .master-contact-cta { background:linear-gradient(120deg,#e8eff8 0%,#f4f8fc 46%,#e4f2e8 100%); }
.home-page .master-contact-cta::after { border-color:rgba(12,65,138,.17); box-shadow:0 0 0 35px rgba(33,159,75,.035),0 0 0 75px rgba(255,178,13,.04),0 0 0 120px rgba(12,65,138,.025); }
.home-page .footer-brand { display:inline-flex; align-items:center; gap:10px; color:var(--master-blue); }
.home-page .footer-brand span { color:var(--master-blue); font-size:10px; letter-spacing:.09em; font-weight:800; }
.home-page .footer-symbol-image { width:35px; height:35px; object-fit:contain; }
.home-page .master-footer { background:rgba(231,238,247,.46); }
.home-page .route-curtain { background:var(--master-green); }
.home-page .route-curtain::before { background:var(--master-blue); }
.home-page .route-curtain__brand { color:#ffb20d; }
.home-page .route-curtain__progress i { background:linear-gradient(90deg,#ffb20d,#ff7f00); }
.home-page .master-scroll-progress { background:rgba(12,65,138,.12); }
.home-page .master-scroll-progress span { background:linear-gradient(90deg,#0c418a,#3267b8,#219f4b,#ffb20d,#ff7f00); }
.home-page .master-cursor-aura { background:radial-gradient(circle,rgba(12,65,138,.10) 0%,rgba(33,159,75,.07) 28%,rgba(255,178,13,.045) 45%,transparent 70%); mix-blend-mode:multiply; }

/* Intro is now brand-led and remains on screen until the visitor chooses to enter. */
.master-intro { --intro-x:50%; --intro-y:48%; background:#f4f8fc; }
.master-intro::before { background:radial-gradient(ellipse at var(--intro-x) var(--intro-y),rgba(255,178,13,.19),transparent 35%),radial-gradient(ellipse at 10% 90%,rgba(33,159,75,.11),transparent 42%),radial-gradient(ellipse at 92% 10%,rgba(12,65,138,.09),transparent 40%),linear-gradient(130deg,rgba(255,255,255,.9),rgba(231,238,247,.72) 55%,rgba(255,255,255,.92)); }
.master-intro::after { border-color:rgba(12,65,138,.14); box-shadow:0 0 0 42px rgba(33,159,75,.035),0 0 0 90px rgba(255,178,13,.028),0 0 0 140px rgba(12,65,138,.02); }
.intro-grid { opacity:.34; background-image:linear-gradient(rgba(12,65,138,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(12,65,138,.055) 1px,transparent 1px); }
.intro-water-layer { position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; opacity:.86; }
.intro-water-layer svg { width:100%; height:100%; overflow:visible; }
.water-ribbon { fill:none; stroke:url(#a2sWaterGradient); stroke-width:2.1; stroke-linecap:round; stroke-dasharray:300 90 75 130; animation:waterCurrent 26s linear infinite; }
.water-ribbon-one { stroke-width:2.5; opacity:.8; }
.water-ribbon-two { stroke-width:1.5; opacity:.62; animation-duration:34s; animation-direction:reverse; }
.water-ribbon-three { stroke-width:1.3; opacity:.48; animation-duration:41s; }
.water-ribbon-four { stroke-width:1.2; opacity:.5; animation-duration:29s; animation-direction:reverse; }
@keyframes waterCurrent { to { stroke-dashoffset:-1900; } }
.intro-center { z-index:2; width:min(94vw,980px); gap:0; padding:65px 22px 56px; }
.intro-pretitle { color:var(--master-blue); font-weight:800; font-size:clamp(8px,1vw,10px); letter-spacing:.24em; margin:0 0 clamp(17px,3vh,30px); animation:masterIntroRise .7s ease .15s both; }
.intro-logo-lockup { width:min(82vw,760px); padding:clamp(11px,2.4vw,22px); margin:0 auto; background:rgba(255,255,255,.84); border:1px solid rgba(12,65,138,.12); box-shadow:0 24px 75px rgba(12,65,138,.09),0 3px 15px rgba(255,178,13,.08); backdrop-filter:blur(16px); opacity:0; transform:translateY(18px) scale(.96); animation:brandLogoArrival 1.05s cubic-bezier(.16,1,.3,1) .28s forwards; }
.intro-wide-logo { display:block; width:100%; height:auto; object-fit:contain; }
@keyframes brandLogoArrival { 0% { opacity:0; transform:translateY(18px) scale(.96); filter:blur(5px); } 70% { opacity:1; transform:translateY(-2px) scale(1.01); filter:blur(0); } 100% { opacity:1; transform:translateY(0) scale(1); filter:blur(0); } }
.intro-service-tagline { max-width:800px; margin:clamp(19px,3vh,30px) auto 0; padding:0 12px; color:var(--master-blue); font-size:clamp(14px,1.75vw,19px); line-height:1.58; font-weight:650; letter-spacing:-.015em; text-wrap:balance; opacity:0; transform:translateY(12px); animation:masterIntroRise .8s cubic-bezier(.16,1,.3,1) .76s forwards; }
.intro-subtitle { max-width:90vw; margin:20px 0 0; color:var(--master-muted); font-size:clamp(7px,.82vw,9px); font-weight:750; letter-spacing:.2em; opacity:0; animation:masterIntroRise .7s ease 1s forwards; }
.intro-enter { margin-top:26px; color:#fff; background:var(--master-blue); border:1px solid var(--master-blue); border-radius:999px; min-width:196px; box-shadow:0 13px 33px rgba(12,65,138,.18); animation:masterIntroRise .7s cubic-bezier(.16,1,.3,1) 1.15s forwards; }
.intro-enter span { color:#fff; }
.intro-enter b { color:#ffb20d; }
.intro-enter:hover,.intro-enter:focus-visible { color:#fff; background:var(--master-green); border-color:var(--master-green); }
.intro-skip { color:var(--master-blue); background:rgba(255,255,255,.62); border-color:rgba(12,65,138,.2); backdrop-filter:blur(12px); }
.intro-skip:hover,.intro-skip:focus-visible { background:#fff; border-color:var(--master-green); }
.intro-topline,.intro-bottomline { color:rgba(18,62,122,.76); }
.intro-topline i { color:var(--master-orange); }
.intro-progress { background:rgba(12,65,138,.12); }
.intro-progress i { width:58%; background:linear-gradient(90deg,#0c418a,#219f4b,#ffb20d,#ff7f00); animation:waterProgress 2.8s ease-in-out infinite alternate; }
@keyframes waterProgress { from { transform:translateX(-12%); opacity:.62; } to { transform:translateX(70%); opacity:1; } }
.master-intro .intro-particles { opacity:.56; }
.master-intro.is-leaving { transform:translateY(-102%); }
.master-intro.is-leaving::after { transform:translate(-50%,-50%) scale(1.18); }
.cover-logo-plaque { position:absolute; z-index:4; top:clamp(14px,2vw,23px); right:clamp(14px,2vw,23px); width:clamp(155px,26%,282px); padding:8px 10px; background:rgba(255,255,255,.93); border:1px solid rgba(12,65,138,.12); box-shadow:0 8px 24px rgba(4,35,83,.14); backdrop-filter:blur(10px); }
.cover-logo-plaque img { display:block; width:100%; height:auto; object-fit:contain; }
.home-page .hero-image-topline { right:calc(clamp(155px,26%,282px) + 34px); }
.master-hero::before { content:""; position:absolute; z-index:0; width:42vw; height:42vw; max-width:640px; max-height:640px; top:8%; left:-28vw; border-radius:45% 55% 61% 39% / 51% 42% 58% 49%; background:linear-gradient(145deg,rgba(12,65,138,.055),rgba(33,159,75,.075),rgba(255,178,13,.05)); animation:fluidDrift 18s ease-in-out infinite alternate; pointer-events:none; }
@keyframes fluidDrift { 0% { transform:translate3d(-2%,0,0) rotate(0deg); border-radius:45% 55% 61% 39% / 51% 42% 58% 49%; } 50% { border-radius:62% 38% 45% 55% / 43% 60% 40% 57%; } 100% { transform:translate3d(16%,5%,0) rotate(14deg); border-radius:40% 60% 50% 50% / 60% 44% 56% 40%; } }
.cover-logo-plaque { border-radius:4px; }
.home-page .service-row-image { border:1px solid rgba(12,65,138,.12); }
.home-page .service-image-index { background:rgba(12,65,138,.82); }
.home-page .hero-image-caption { text-shadow:0 2px 16px rgba(0,0,0,.25); }
.master-cursor-aura { width:420px; height:420px; background:radial-gradient(circle,rgba(12,65,138,.105) 0%,rgba(33,159,75,.065) 28%,rgba(255,178,13,.045) 45%,transparent 70%); }
.pointer-ripple { position:fixed; z-index:10030; width:12px; height:12px; border:1px solid rgba(12,65,138,.62); border-radius:50%; pointer-events:none; transform:translate(-50%,-50%) scale(.2); animation:pointerRipple .85s cubic-bezier(.16,1,.3,1) forwards; }
.pointer-ripple::after { content:""; position:absolute; inset:4px; border:1px solid rgba(33,159,75,.7); border-radius:50%; }
@keyframes pointerRipple { 0% { opacity:.86; transform:translate(-50%,-50%) scale(.2); } 100% { opacity:0; transform:translate(-50%,-50%) scale(7.5); } }
@media(max-width:700px) { .intro-center { padding:76px 18px 56px; } .intro-logo-lockup { width:min(92vw,620px); padding:9px; } .intro-service-tagline { font-size:clamp(13px,3.6vw,17px); line-height:1.55; } .intro-subtitle { letter-spacing:.11em; line-height:1.8; max-width:330px; } .cover-logo-plaque { width:clamp(145px,44%,230px); padding:7px; } .home-page .hero-image-topline { right:calc(clamp(145px,44%,230px) + 26px); } }
@media(max-width:430px) { .intro-topline { left:14px; } .intro-bottomline > span:first-child { display:none; } .intro-progress { width:48px; } .intro-service-tagline { font-size:13px; } .cover-logo-plaque { width:156px; } }
@media(prefers-reduced-motion:reduce) { .water-ribbon,.master-hero::before,.pointer-ripple,.intro-logo-lockup,.intro-service-tagline,.intro-subtitle,.intro-enter,.intro-progress i { animation-duration:.01ms!important; animation-iteration-count:1!important; } .intro-logo-lockup,.intro-service-tagline,.intro-subtitle,.intro-enter { opacity:1!important; transform:none!important; filter:none!important; } .master-intro::after { animation:none!important; } }

.route-curtain__brand { display:flex; align-items:center; gap:9px; color:#ffb20d; }
.route-symbol-image { display:block; width:38px; height:38px; object-fit:contain; padding:3px; background:#fff; border-radius:50%; }
.intro-center { max-height:100svh; overflow-y:auto; scrollbar-width:none; }
.intro-center::-webkit-scrollbar { display:none; }
.master-capabilities { position:relative; isolation:isolate; }
.master-capabilities::before { content:""; position:absolute; z-index:-1; top:18%; right:-21vw; width:min(60vw,820px); height:min(60vw,820px); background:linear-gradient(140deg,rgba(12,65,138,.04),rgba(33,159,75,.045) 48%,rgba(255,178,13,.035)); border-radius:55% 45% 38% 62% / 48% 54% 46% 52%; pointer-events:none; animation:fluidDrift 22s ease-in-out infinite alternate-reverse; }
@media(max-width:560px) { .route-symbol-image { width:30px; height:30px; } }
@media(prefers-reduced-motion:reduce) { .master-capabilities::before { animation:none!important; } }


/* PHASE 1 / MASTER HERO V1 — typography leads; flowing A2S colours support it. */
.home-page .master-hero-fluid {
  --hero-pointer-x: 50%; --hero-pointer-y: 52%; --hero-parallax-x: 0px; --hero-parallax-y: 0px;
  position: relative; display: block; min-height: clamp(690px, calc(100svh - 94px), 930px);
  padding: clamp(25px, 3.2vw, 48px) 0 76px; isolation: isolate; overflow: hidden; border-bottom: 1px solid var(--master-line);
  background: radial-gradient(ellipse at 78% 18%, rgba(50,103,184,.055), transparent 30%), var(--master-paper);
}
.hero-fluid-stage { position: absolute; z-index: -1; inset: -2% -1% 0; pointer-events: none; overflow: hidden; }
.hero-fluid-stage::before {
  content: ""; position: absolute; inset: -12%; opacity: .72;
  background: radial-gradient(ellipse at var(--hero-pointer-x) var(--hero-pointer-y), rgba(255,178,13,.12), transparent 24%), radial-gradient(ellipse at 78% 31%, rgba(33,159,75,.105), transparent 28%), radial-gradient(ellipse at 45% 85%, rgba(12,65,138,.09), transparent 34%);
  transition: opacity .45s ease;
}
.hero-fluid-stage::after {
  content: ""; position: absolute; right: -14vw; bottom: -41vw; width: min(74vw, 1050px); aspect-ratio: 1; border: 1px solid rgba(12,65,138,.10); border-radius: 50%;
  box-shadow: 0 0 0 26px rgba(33,159,75,.026), 0 0 0 65px rgba(255,178,13,.028), 0 0 0 108px rgba(12,65,138,.022);
  animation: heroContourRotate 48s linear infinite;
}
.hero-fluid-svg { position: absolute; inset: -3% -7% -2%; width: 114%; height: 108%; overflow: visible; transform: translate3d(var(--hero-parallax-x), var(--hero-parallax-y), 0) scale(1.02); transition: transform .42s cubic-bezier(.2,.7,.2,1); }
.hero-flow-glow { fill: none; stroke-width: 92; stroke-linecap: round; filter: url(#heroFlowBlur); opacity: .36; stroke-dasharray: 180 110 245 150; animation: heroLiquidFlow 32s linear infinite; }
.hero-flow-glow-green { animation-duration: 38s; animation-direction: reverse; opacity: .32; }
.hero-flow-glow-sun { animation-duration: 42s; opacity: .27; }
.hero-flow-line { fill: none; stroke-width: 20; stroke-linecap: round; stroke-dasharray: 170 120 90 180; animation: heroLiquidFlow 25s linear infinite; opacity: .24; }
.hero-flow-line-green { stroke-width: 16; animation-duration: 31s; animation-direction: reverse; opacity: .22; }
.hero-flow-line-sun { stroke-width: 11; animation-duration: 36s; opacity: .24; }
.hero-flow-thread { fill: none; stroke: rgba(12,65,138,.28); stroke-width: 1.25; stroke-dasharray: 4 11 28 9; animation: heroLiquidThread 28s linear infinite; opacity: .42; }
.hero-flow-thread-two { stroke: rgba(33,159,75,.32); animation-duration: 35s; animation-direction: reverse; }
.hero-fluid-glow { position: absolute; width: clamp(140px, 22vw, 330px); aspect-ratio: 1; border-radius: 50%; filter: blur(44px); opacity: .25; transform: translate3d(var(--hero-parallax-x), var(--hero-parallax-y), 0); }
.hero-fluid-glow-blue { background: var(--master-blue); right: 7%; top: 2%; opacity: .10; }
.hero-fluid-glow-green { background: var(--master-green); right: 24%; top: 16%; opacity: .085; }
.hero-fluid-glow-sun { background: var(--master-gold); right: 0; bottom: 0; opacity: .10; }
.hero-top-rail { position: relative; z-index: 2; width: min(1480px, calc(100% - 88px)); margin: 0 auto; display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.hero-top-rail .master-eyebrow { display: inline-flex; align-items: center; gap: 11px; margin: 0; color: var(--master-blue); }
.hero-top-rail .eyebrow-line { flex: 0 0 28px; background: linear-gradient(90deg, var(--master-blue), var(--master-green), var(--master-gold)); }
.hero-location-chip { display: inline-flex; align-items: center; gap: 10px; color: var(--master-muted); font-size: 9px; line-height: 1.4; letter-spacing: .15em; font-weight: 700; }
.hero-location-pulse { position: relative; display: inline-block; width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: var(--master-green); box-shadow: 0 0 0 4px rgba(33,159,75,.08), 0 0 12px rgba(33,159,75,.28); }
.hero-location-pulse::after { content: ""; position: absolute; inset: -4px; border: 1px solid rgba(33,159,75,.45); border-radius: 50%; animation: heroMarkerPulse 2.7s ease-out infinite; }
.home-page .master-hero-fluid .hero-typography-copy { position: relative; z-index: 2; width: min(1480px, calc(100% - 88px)); max-width: none; margin: clamp(48px, 7.7vh, 78px) auto 0; padding: 0 0 20px; }
.home-page .master-hero-fluid .hero-kinetic-title { position: relative; z-index: 2; max-width: 1350px; margin: 0; color: var(--master-blue); font-size: clamp(52px, 7.4vw, 116px); font-weight: 560; line-height: .91; letter-spacing: -.082em; text-wrap: balance; }
.home-page .master-hero-fluid .hero-title-line { display: block; width: fit-content; max-width: 100%; overflow: hidden; padding: 0 .1em .085em; margin: 0 0 -.075em -.1em; white-space: nowrap; }
.home-page .master-hero-fluid .hero-title-line > span { display: inline-block; transform-origin: left center; }
.home-page .master-hero-fluid .hero-kinetic-title em { position: relative; display: inline-block; color: var(--master-green); font-family: var(--master-serif); font-weight: 400; font-style: italic; letter-spacing: -.074em; text-shadow: 0 8px 32px rgba(33,159,75,.11); }
.home-page .master-hero-fluid .hero-title-line:nth-child(2) em { background: linear-gradient(105deg, var(--master-green) 5%, #208e55 52%, var(--master-blue) 100%); background-clip: text; -webkit-background-clip: text; color: transparent; }
.home-page .master-hero-fluid .hero-title-line:nth-child(3) em { color: var(--master-blue); text-decoration: underline; text-decoration-thickness: .045em; text-decoration-color: rgba(255,178,13,.85); text-underline-offset: .085em; }
.home-page .master-hero-fluid .hero-kinetic-title em::after { content: ""; position: absolute; z-index: -1; left: 2%; right: 7%; bottom: .01em; height: .18em; background: linear-gradient(90deg, rgba(255,178,13,.18), rgba(33,159,75,.09), transparent); filter: blur(10px); border-radius: 50%; }
.home-page .master-hero-fluid .master-hero-lead { position: relative; z-index: 2; max-width: min(700px, 68vw); margin: clamp(27px, 3vw, 38px) 0 0; color: var(--master-muted); font-size: clamp(15px, 1.25vw, 18px); line-height: 1.75; letter-spacing: -.014em; }
.home-page .master-hero-fluid .master-hero-actions { position: relative; z-index: 2; display: flex; align-items: center; flex-wrap: wrap; gap: 26px; margin-top: 27px; }
.home-page .master-hero-fluid .master-button { border-radius: 999px; padding: 15px 19px 15px 22px; gap: 26px; box-shadow: 0 10px 25px rgba(12,65,138,.1); }
.home-page .master-hero-fluid .master-button span:last-child { display: inline-grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; background: rgba(255,255,255,.16); transition: transform .25s ease, background .25s ease; }
.home-page .master-hero-fluid .master-button:hover span:last-child { transform: translateY(3px); background: rgba(255,255,255,.25); }
.home-page .master-hero-fluid .master-text-link { display: inline-flex; align-items: center; gap: 11px; color: var(--master-blue); font-size: 12px; font-weight: 700; }
.home-page .master-hero-fluid .master-text-link span:last-child { display: inline-grid; place-items: center; width: 28px; height: 28px; border: 1px solid rgba(12,65,138,.22); border-radius: 50%; color: var(--master-orange); transition: transform .25s ease, border-color .25s ease; }
.home-page .master-hero-fluid .master-text-link:hover span:last-child { transform: translate(3px,-3px); border-color: var(--master-orange); }
.home-page .master-hero-fluid .master-hero-meta { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(190px, .8fr) minmax(160px, .65fr) minmax(240px, .8fr); align-items: center; gap: clamp(20px, 3vw, 42px); max-width: 1020px; margin: clamp(42px, 5.3vw, 70px) 0 0; padding-top: 19px; border-top: 1px solid rgba(12,65,138,.16); }
.home-page .master-hero-fluid .master-hero-meta > div { min-width: 0; gap: 7px; }
.home-page .master-hero-fluid .meta-label { color: var(--master-blue-mid); font-size: 8px; font-weight: 800; letter-spacing: .17em; }
.home-page .master-hero-fluid .master-hero-meta strong { color: var(--master-ink); font-size: 10px; font-weight: 600; line-height: 1.6; }
.hero-brand-card { justify-self: end; align-items: flex-end; }
.hero-brand-card .meta-label { align-self: flex-start; }
.hero-wide-logo { display: block; width: clamp(190px, 22vw, 280px); height: auto; max-height: 68px; object-fit: contain; padding: 7px 10px; background: rgba(255,255,255,.78); border: 1px solid rgba(12,65,138,.09); border-radius: 8px; box-shadow: 0 12px 33px rgba(12,65,138,.06); }
.hero-symbol-orbit { position: absolute; z-index: 1; top: 3%; right: clamp(50px, 8vw, 125px); display: grid; place-items: center; width: clamp(130px, 19.5vw, 290px); aspect-ratio: 1; transform: translate3d(var(--orbit-parallax-x, 0px), var(--orbit-parallax-y, 0px), 0); transition: transform .38s cubic-bezier(.2,.7,.2,1); }
.hero-symbol-image { position: relative; z-index: 2; display: block; width: 46%; height: 46%; object-fit: contain; filter: drop-shadow(0 9px 23px rgba(12,65,138,.12)); animation: heroSymbolBob 6s ease-in-out infinite; }
.hero-orbit-ring { position: absolute; inset: 5%; border: 1px solid rgba(12,65,138,.17); border-radius: 50%; box-shadow: inset 0 0 24px rgba(255,255,255,.45), 0 0 34px rgba(12,65,138,.04); }
.hero-orbit-ring-one { border-left-color: rgba(33,159,75,.58); border-bottom-color: rgba(255,178,13,.65); animation: heroOrbitSpin 26s linear infinite; }
.hero-orbit-ring-two { inset: 16%; border-style: dashed; border-color: rgba(255,127,0,.32); animation: heroOrbitSpin 33s linear infinite reverse; }
.hero-orbit-cross { position: absolute; width: 120%; height: 1px; background: linear-gradient(90deg, transparent, rgba(12,65,138,.16), transparent); }
.hero-orbit-cross-one { transform: rotate(35deg); }
.hero-orbit-cross-two { transform: rotate(-35deg); background: linear-gradient(90deg, transparent, rgba(33,159,75,.20), transparent); }
.hero-symbol-halo { position: absolute; inset: 25%; border-radius: 50%; background: radial-gradient(circle, rgba(255,178,13,.17), rgba(33,159,75,.07) 46%, transparent 72%); filter: blur(7px); }
.hero-orbit-dot { position: absolute; z-index: 3; width: 8px; height: 8px; border-radius: 50%; box-shadow: 0 0 0 6px rgba(255,255,255,.56), 0 0 20px currentColor; }
.hero-orbit-dot-blue { top: 13%; right: 21%; color: var(--master-blue); background: var(--master-blue); }
.hero-orbit-dot-sun { bottom: 16%; left: 13%; color: var(--master-orange); background: var(--master-orange); }
.hero-graphic-label { position: absolute; z-index: 2; right: clamp(24px, 5vw, 70px); bottom: 21%; display: inline-flex; align-items: center; gap: 10px; color: rgba(12,65,138,.62); font-size: 8px; font-weight: 800; letter-spacing: .17em; transform: rotate(-90deg) translateX(50%); transform-origin: right center; }
.hero-graphic-label i { display: block; width: 24px; height: 1px; background: linear-gradient(90deg, var(--master-green), var(--master-gold)); }
.home-page .master-hero-fluid .hero-bottomline { position: absolute; right: 0; bottom: 0; left: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 18px; width: min(1480px, calc(100% - 88px)); margin: auto; padding: 18px 0 0; border-top: 1px solid rgba(12,65,138,.11); color: var(--master-dim); font-size: 8px; font-weight: 750; letter-spacing: .15em; }
.home-page .master-hero-fluid .hero-bottomline a { display: inline-flex; align-items: center; gap: 10px; color: var(--master-blue); }
.home-page .master-hero-fluid .hero-bottomline a span:last-child { color: var(--master-orange); animation: heroScrollNudge 1.7s ease-in-out infinite; }
.home-page .master-hero-fluid .master-hero-copy { opacity: 1; transform: none; }
.home-page .master-hero-fluid .hero-top-rail { opacity: 0; animation: masterCopyIn .7s ease .08s forwards; }
.home-page .master-hero-fluid .hero-title-line > span { opacity: 0; transform: translateY(112%) skewY(3deg); filter: blur(5px); }
body.home-page.experience-active .master-hero-fluid .hero-title-line:nth-child(1) > span { animation: masterHeroLineIn .95s cubic-bezier(.16,1,.3,1) .12s forwards; }
body.home-page.experience-active .master-hero-fluid .hero-title-line:nth-child(2) > span { animation: masterHeroLineIn 1s cubic-bezier(.16,1,.3,1) .27s forwards; }
body.home-page.experience-active .master-hero-fluid .hero-title-line:nth-child(3) > span { animation: masterHeroLineIn 1.04s cubic-bezier(.16,1,.3,1) .42s forwards; }
.home-page .master-hero-fluid .master-hero-lead { opacity: 0; animation: masterCopyIn .8s ease .68s forwards; }
.home-page .master-hero-fluid .master-hero-actions { opacity: 0; animation: masterCopyIn .8s ease .8s forwards; }
.home-page .master-hero-fluid .master-hero-meta { opacity: 0; animation: masterCopyIn .8s ease .95s forwards; }
.home-page .master-hero-fluid .hero-symbol-orbit { opacity: 0; animation: heroOrbitAppear 1.1s cubic-bezier(.16,1,.3,1) .3s forwards; }
.home-page .master-hero-fluid .hero-bottomline { opacity: 0; animation: masterCopyIn .7s ease 1.05s forwards; }
@keyframes heroLiquidFlow { to { stroke-dashoffset: -1800; } }
@keyframes heroLiquidThread { to { stroke-dashoffset: 620; } }
@keyframes heroContourRotate { to { transform: rotate(360deg); } }
@keyframes heroOrbitSpin { to { transform: rotate(360deg); } }
@keyframes heroSymbolBob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes heroOrbitAppear { from { opacity: 0; transform: translate3d(0, 15px, 0) scale(.86); } to { opacity: 1; transform: translate3d(var(--orbit-parallax-x, 0px), var(--orbit-parallax-y, 0px), 0) scale(1); } }
@keyframes heroMarkerPulse { from { transform: scale(.65); opacity: .7; } to { transform: scale(1.75); opacity: 0; } }
@keyframes heroScrollNudge { 0%,100% { transform: translateY(0); } 50% { transform: translateY(3px); } }
@media (max-width: 1050px) {
  .hero-symbol-orbit { right: 4%; top: 6%; width: clamp(125px, 21vw, 220px); opacity: .76; }
  .hero-graphic-label { display: none; }
  .home-page .master-hero-fluid .hero-kinetic-title { font-size: clamp(53px, 8.15vw, 92px); }
  .home-page .master-hero-fluid .master-hero-meta { grid-template-columns: minmax(160px, .8fr) minmax(150px, .7fr) minmax(180px, .8fr); }
  .hero-wide-logo { width: clamp(165px, 20vw, 220px); }
}
@media (max-width: 760px) {
  .home-page .master-hero-fluid { min-height: unset; padding: 23px 0 64px; }
  .hero-top-rail, .home-page .master-hero-fluid .hero-typography-copy { width: calc(100% - 38px); }
  .hero-top-rail { align-items: flex-start; flex-direction: column; gap: 9px; }
  .hero-top-rail .master-eyebrow { font-size: 8px; letter-spacing: .13em; }
  .hero-location-chip { font-size: 7px; letter-spacing: .11em; }
  .home-page .master-hero-fluid .hero-typography-copy { margin-top: 50px; padding-bottom: 8px; }
  .home-page .master-hero-fluid .hero-kinetic-title { position: relative; font-size: clamp(43px, 10.2vw, 72px); line-height: .96; letter-spacing: -.077em; }
  .home-page .master-hero-fluid .hero-title-line { white-space: normal; width: auto; padding-bottom: .075em; }
  .home-page .master-hero-fluid .hero-title-line > span { max-width: 100%; }
  .home-page .master-hero-fluid .master-hero-lead { max-width: 100%; margin-top: 24px; font-size: 14px; line-height: 1.76; }
  .home-page .master-hero-fluid .master-hero-actions { align-items: flex-start; flex-direction: column; gap: 16px; margin-top: 23px; }
  .home-page .master-hero-fluid .master-hero-meta { grid-template-columns: 1fr 1fr; gap: 17px 18px; margin-top: 33px; padding-top: 16px; }
  .home-page .master-hero-fluid .master-hero-meta strong { font-size: 9px; }
  .hero-brand-card { grid-column: 1 / -1; justify-self: start; align-items: flex-start; }
  .hero-wide-logo { width: min(72vw, 260px); max-height: 58px; }
  .hero-symbol-orbit { top: 4%; right: -36px; width: 150px; opacity: .46; }
  .hero-fluid-stage::after { right: -36vw; bottom: -40vw; width: 110vw; }
  .hero-fluid-svg { inset: 6% -42% 0 -45%; width: 185%; height: 90%; opacity: .9; }
  .hero-flow-glow { stroke-width: 72; opacity: .27; }
  .hero-flow-line { stroke-width: 13; opacity: .2; }
  .hero-flow-line-green { stroke-width: 11; }
  .hero-flow-line-sun { stroke-width: 8; }
  .hero-fluid-glow { opacity: .14; }
  .home-page .master-hero-fluid .hero-bottomline { width: calc(100% - 38px); gap: 10px; font-size: 7px; letter-spacing: .09em; }
  .home-page .master-hero-fluid .hero-bottomline > span:last-child { display: none; }
  .hero-graphic-label { display: none; }
}
@media (max-width: 390px) {
  .home-page .master-hero-fluid .hero-kinetic-title { font-size: clamp(39px, 10.05vw, 48px); }
  .home-page .master-hero-fluid .master-hero-meta { gap: 14px; }
  .home-page .master-hero-fluid .hero-bottomline { font-size: 6.5px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-fluid-stage::after, .hero-flow-glow, .hero-flow-line, .hero-flow-thread, .hero-orbit-ring,
  .hero-symbol-image, .hero-location-pulse::after, .hero-bottomline a span:last-child {
    animation: none !important; transition: none !important;
  }
  .home-page .master-hero-fluid .hero-top-rail,
  .home-page .master-hero-fluid .hero-title-line > span,
  .home-page .master-hero-fluid .master-hero-lead,
  .home-page .master-hero-fluid .master-hero-actions,
  .home-page .master-hero-fluid .master-hero-meta,
  .home-page .master-hero-fluid .hero-symbol-orbit,
  .home-page .master-hero-fluid .hero-bottomline { opacity: 1 !important; transform: none !important; filter: none !important; }
}

/* PHASE 1 / FULL-PAGE INTRO — the supplied wide A2S logo is the main visual. */
.home-page .master-intro {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  min-height: 100svh;
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: 0;
  background: #F4F8FC;
}
.home-page .master-intro .intro-center {
  box-sizing: border-box;
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: none;
  min-height: 100%;
  max-height: 100svh;
  padding: clamp(68px, 8.4vh, 106px) clamp(12px, 2vw, 34px) clamp(72px, 8.4vh, 106px);
  overflow-y: auto;
  scrollbar-width: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
}
.home-page .master-intro .intro-center::-webkit-scrollbar { display: none; }
.home-page .master-intro .intro-logo-lockup {
  box-sizing: border-box;
  width: min(97vw, 1620px);
  max-width: none;
  padding: 0;
  margin: 0 auto;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  opacity: 0;
  transform: translateY(20px) scale(.965);
  animation: a2sFullPageLogoArrival 1.2s cubic-bezier(.16, 1, .3, 1) .24s forwards;
}
.home-page .master-intro .intro-wide-logo {
  display: block;
  width: 100%;
  height: auto;
  max-height: 43svh;
  object-fit: contain;
  filter: drop-shadow(0 13px 28px rgba(12, 65, 138, .075));
}
.home-page .master-intro .intro-pretitle {
  margin: 0 0 clamp(15px, 2.4vh, 27px);
  font-size: clamp(8px, .8vw, 10px);
  letter-spacing: .21em;
}
.home-page .master-intro .intro-service-tagline {
  width: min(92vw, 960px);
  max-width: 960px;
  margin: clamp(18px, 2.8vh, 30px) auto 0;
  font-size: clamp(13px, 1.45vw, 19px);
  line-height: 1.55;
  text-wrap: balance;
}
.home-page .master-intro .intro-subtitle {
  margin: clamp(15px, 2vh, 22px) 0 0;
  max-width: 90vw;
  font-size: clamp(7px, .72vw, 9px);
  line-height: 1.8;
}
.home-page .master-intro .intro-enter { margin-top: clamp(18px, 2.6vh, 27px); }
.home-page .master-intro .intro-topline,
.home-page .master-intro .intro-bottomline { z-index: 4; }
@keyframes a2sFullPageLogoArrival {
  0% { opacity: 0; transform: translateY(20px) scale(.965); filter: blur(6px); }
  65% { opacity: 1; filter: blur(0); }
  100% { opacity: 1; transform: translateY(0) scale(1); filter: drop-shadow(0 0 26px rgba(255, 178, 13, .1)); }
}
@media (max-height: 760px) and (min-width: 701px) {
  .home-page .master-intro .intro-center {
    padding-top: 62px;
    padding-bottom: 63px;
  }
  .home-page .master-intro .intro-wide-logo { max-height: 36svh; }
  .home-page .master-intro .intro-pretitle { margin-bottom: 12px; }
  .home-page .master-intro .intro-service-tagline { margin-top: 14px; font-size: clamp(12px, 1.2vw, 16px); }
  .home-page .master-intro .intro-subtitle { margin-top: 11px; }
  .home-page .master-intro .intro-enter { margin-top: 14px; }
}
@media (max-width: 700px) {
  .home-page .master-intro .intro-center {
    padding: 78px 10px 82px;
  }
  .home-page .master-intro .intro-logo-lockup { width: min(98vw, 760px); }
  .home-page .master-intro .intro-wide-logo { max-height: 27svh; }
  .home-page .master-intro .intro-pretitle { width: 92vw; text-align: center; font-size: 7px; letter-spacing: .13em; line-height: 1.8; }
  .home-page .master-intro .intro-service-tagline { width: 92vw; margin-top: 22px; padding: 0; font-size: clamp(12px, 3.35vw, 15px); line-height: 1.55; }
  .home-page .master-intro .intro-subtitle { width: 90vw; margin-top: 14px; font-size: 7px; letter-spacing: .12em; }
  .home-page .master-intro .intro-enter { margin-top: 20px; }
}
@media (max-width: 390px) {
  .home-page .master-intro .intro-center { padding-top: 72px; padding-bottom: 76px; }
  .home-page .master-intro .intro-wide-logo { max-height: 23svh; }
  .home-page .master-intro .intro-service-tagline { font-size: 12px; }
  .home-page .master-intro .intro-topline { left: 12px; right: 12px; font-size: 7px; }
  .home-page .master-intro .intro-bottomline { left: 12px; right: 12px; font-size: 6px; }
}
@media (prefers-reduced-motion: reduce) {
  .home-page .master-intro .intro-logo-lockup { animation: none !important; opacity: 1 !important; transform: none !important; filter: none !important; }
}


/* 3D solar-to-grid showcase — admin-editable content keys live in master-content.js */
.home-page .solar-grid-showcase { position:relative; padding:clamp(58px,8vw,124px) max(24px,calc((100vw - 1480px)/2)) clamp(58px,7vw,104px); overflow:hidden; background:linear-gradient(180deg,#f4f8fc 0%,#ffffff 48%,#eaf4ed 100%); border-top:1px solid rgba(12,65,138,.12); }
.home-page .solar-grid-showcase::before { content:""; position:absolute; width:min(64vw,900px); height:min(64vw,900px); right:-20%; top:8%; border-radius:50%; background:radial-gradient(circle,rgba(33,159,75,.13),rgba(50,103,184,.07) 42%,transparent 70%); pointer-events:none; }
.home-page .solar-grid-showcase__top { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:clamp(26px,4vw,56px); }
.home-page .solar-grid-showcase__top .eyebrow { margin:0; }
.home-page .solar-grid-showcase__index { color:var(--master-muted); font:600 11px/1.2 var(--master-sans); letter-spacing:.16em; }
.home-page .solar-grid-showcase__copy { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr); align-items:end; gap:clamp(24px,5vw,88px); margin-bottom:clamp(26px,4vw,48px); }
.home-page .solar-grid-showcase__copy h2 { margin:0; color:var(--master-blue); font-size:clamp(42px,6.2vw,90px); font-weight:560; line-height:.94; letter-spacing:-.075em; text-wrap:balance; }
.home-page .solar-grid-showcase__copy h2 em { color:var(--master-green); font-family:var(--master-serif); font-weight:400; letter-spacing:-.065em; }
.home-page .solar-grid-showcase__copy p { max-width:520px; margin:0 0 5px; color:var(--master-muted); font-size:clamp(15px,1.15vw,18px); line-height:1.8; }
.home-page .solar-grid-showcase__visual { position:relative; z-index:1; margin:0; border:1px solid rgba(12,65,138,.17); border-radius:clamp(16px,2vw,28px); overflow:hidden; background:#dceaf5; box-shadow:0 28px 90px rgba(12,65,138,.16),0 3px 14px rgba(12,65,138,.07); transform:translateZ(0); }
.home-page .solar-grid-showcase__visual::after { content:""; position:absolute; inset:0; pointer-events:none; border-radius:inherit; background:linear-gradient(115deg,rgba(255,255,255,.16),transparent 30%,transparent 72%,rgba(33,159,75,.12)); mix-blend-mode:screen; }
.home-page .solar-grid-showcase__visual img { display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; transition:transform 1.2s cubic-bezier(.2,.7,.2,1),filter .8s ease; }
.home-page .solar-grid-showcase__visual:hover img { transform:scale(1.025); filter:saturate(1.07) contrast(1.02); }
.home-page .solar-grid-showcase__visual figcaption { position:relative; z-index:2; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px 20px; padding:15px clamp(16px,2.2vw,30px); color:#fff; background:linear-gradient(100deg,#0c418a,#123e7a 58%,#167a43); font-size:10px; font-weight:650; letter-spacing:.12em; }
.home-page .solar-grid-showcase__visual figcaption span:last-child { color:#dcecf7; font-weight:450; letter-spacing:.04em; }
@media (max-width:760px) { .home-page .solar-grid-showcase { padding:58px 20px 64px; } .home-page .solar-grid-showcase__top { align-items:flex-start; } .home-page .solar-grid-showcase__copy { grid-template-columns:1fr; gap:18px; } .home-page .solar-grid-showcase__copy h2 { font-size:clamp(42px,10vw,68px); } .home-page .solar-grid-showcase__visual img { aspect-ratio:4/3; object-position:center; } .home-page .solar-grid-showcase__visual figcaption { font-size:9px; } }
@media (prefers-reduced-motion:reduce) { .home-page .solar-grid-showcase__visual img { transition:none; } }

/* Interactive solar system explorer — component copy and positions are fed from master-content.js. */
.home-page .solar-grid-interactive { position:relative; z-index:1; }
.home-page .solar-grid-explorer-toolbar { display:flex; justify-content:space-between; align-items:center; gap:20px; margin:0 0 18px; }
.home-page .solar-grid-explorer-toolbar > p { display:flex; align-items:center; gap:10px; margin:0; color:var(--master-ink); font-size:14px; line-height:1.5; }
.home-page .solar-grid-live-dot,.home-page .solar-grid-scene-badge__pulse { flex:0 0 auto; width:8px; height:8px; border-radius:50%; background:#219f4b; box-shadow:0 0 0 4px rgba(33,159,75,.12),0 0 16px rgba(33,159,75,.6); }
.home-page .solar-grid-explorer-controls { display:flex; align-items:center; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.home-page .solar-grid-simulation-label { color:var(--master-muted); font:650 9px/1.3 var(--master-sans); letter-spacing:.1em; margin-right:6px; }
.home-page .solar-grid-control { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:38px; border:1px solid rgba(12,65,138,.22); border-radius:999px; padding:9px 14px; color:var(--master-blue); background:rgba(255,255,255,.82); font:650 11px/1 var(--master-sans); cursor:pointer; transition:color .2s ease,background .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease; }
.home-page .solar-grid-control:hover,.home-page .solar-grid-control:focus-visible { transform:translateY(-2px); border-color:var(--master-blue); box-shadow:0 8px 22px rgba(12,65,138,.12); outline:none; }
.home-page .solar-grid-control-primary { color:#fff; border-color:var(--master-blue); background:var(--master-blue); }
.home-page .solar-grid-control-primary:hover,.home-page .solar-grid-control-primary:focus-visible { color:#fff; background:#12356b; }
.home-page .solar-control-icon { display:inline-grid; place-items:center; width:15px; font-size:12px; }
.home-page .solar-grid-explorer-layout { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(280px,.72fr); gap:clamp(15px,2vw,28px); align-items:stretch; }
.home-page .solar-grid-scene { min-width:0; align-self:start; }
.home-page .solar-grid-scene__canvas { position:relative; isolation:isolate; overflow:hidden; aspect-ratio:3/2; background:#b7d4e5; }
.home-page .solar-grid-scene__canvas::before { content:""; position:absolute; z-index:2; inset:0; pointer-events:none; background:radial-gradient(circle at var(--solar-pointer-x,50%) var(--solar-pointer-y,50%),rgba(255,255,255,.18),transparent 32%),linear-gradient(125deg,rgba(12,65,138,.08),transparent 34%,transparent 70%,rgba(33,159,75,.13)); mix-blend-mode:screen; }
.home-page .solar-grid-scene__canvas > img { position:absolute; inset:0; display:block; width:100%; height:100%; aspect-ratio:3/2; object-fit:cover; object-position:center; transform:scale(1.001); transform-origin:var(--solar-pointer-x,50%) var(--solar-pointer-y,50%); transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .5s ease; }
.home-page .solar-grid-scene:hover .solar-grid-scene__canvas > img { transform:scale(1.025); filter:saturate(1.06); }
.home-page .solar-grid-flow-overlay { position:absolute; z-index:3; inset:0; width:100%; height:100%; pointer-events:none; overflow:visible; }
.home-page .solar-grid-route-base { fill:none; stroke:rgba(255,255,255,.76); stroke-width:2; stroke-linecap:round; stroke-dasharray:2 12; opacity:.72; }
.home-page .solar-grid-route-segment { fill:none; stroke:url(#solarExplorerFlow); stroke-width:5; stroke-linecap:round; stroke-dasharray:10 17; stroke-dashoffset:0; opacity:.1; filter:url(#solarExplorerGlow); transition:opacity .4s ease,stroke-width .4s ease; animation:solarExplorerDash 1.4s linear infinite; }
.home-page .solar-grid-route-segment.is-lit { opacity:.98; stroke-width:6; }
.home-page .solar-grid-scene.is-flow-paused .solar-grid-route-segment { animation-play-state:paused; }
.home-page .solar-grid-scene-badge { position:absolute; z-index:6; top:14px; left:14px; display:flex; align-items:center; gap:9px; padding:9px 12px; color:#fff; background:rgba(7,22,40,.76); border:1px solid rgba(255,255,255,.24); border-radius:999px; backdrop-filter:blur(12px); font:650 9px/1 var(--master-sans); letter-spacing:.08em; text-transform:uppercase; }
.home-page .solar-grid-scene-badge__pulse { width:6px; height:6px; background:#4ff48b; }
.home-page .solar-grid-scene.is-flow-paused .solar-grid-scene-badge__pulse { background:#ffb20d; box-shadow:0 0 0 4px rgba(255,178,13,.14); }
.home-page .solar-grid-hotspots { position:absolute; z-index:5; inset:0; pointer-events:none; }
.home-page .solar-grid-hotspot { pointer-events:auto; position:absolute; left:var(--hotspot-x); top:var(--hotspot-y); display:flex; align-items:center; gap:7px; padding:0; border:0; background:transparent; color:#fff; cursor:pointer; transform:translate(-50%,-50%); filter:drop-shadow(0 4px 8px rgba(0,0,0,.4)); -webkit-tap-highlight-color:transparent; }
.home-page .solar-grid-hotspot__number { position:relative; display:grid; place-items:center; width:clamp(34px,3.1vw,46px); aspect-ratio:1; border:2px solid rgba(255,255,255,.96); border-radius:50%; background:linear-gradient(140deg,#0c418a,#3267b8); box-shadow:0 0 0 5px rgba(12,65,138,.18),0 0 24px rgba(50,103,184,.7); color:#fff; font:800 13px/1 var(--master-sans); transition:transform .25s ease,background .25s ease,box-shadow .25s ease; }
.home-page .solar-grid-hotspot__tooltip { position:absolute; left:calc(100% + 8px); top:50%; transform:translate(5px,-50%); padding:7px 10px; border-radius:7px; color:#122b4a; background:rgba(255,255,255,.95); box-shadow:0 4px 18px rgba(0,0,0,.2); font:750 10px/1.2 var(--master-sans); white-space:nowrap; opacity:0; visibility:hidden; transition:opacity .2s ease,transform .2s ease,visibility .2s ease; }
.home-page .solar-grid-hotspot:hover .solar-grid-hotspot__tooltip,.home-page .solar-grid-hotspot:focus-visible .solar-grid-hotspot__tooltip,.home-page .solar-grid-hotspot.is-active .solar-grid-hotspot__tooltip { opacity:1; visibility:visible; transform:translate(0,-50%); }
.home-page .solar-grid-hotspot:hover .solar-grid-hotspot__number,.home-page .solar-grid-hotspot:focus-visible .solar-grid-hotspot__number { transform:scale(1.14); }
.home-page .solar-grid-hotspot.is-active .solar-grid-hotspot__number { background:linear-gradient(140deg,#219f4b,#52cc77); box-shadow:0 0 0 6px rgba(33,159,75,.24),0 0 34px rgba(65,255,127,.85); transform:scale(1.13); }
.home-page .solar-grid-hotspot:focus-visible { outline:3px solid #fff; outline-offset:7px; border-radius:50%; }
.home-page .solar-grid-scene-hint { position:absolute; z-index:6; right:14px; bottom:14px; color:#fff; background:rgba(7,22,40,.68); border:1px solid rgba(255,255,255,.22); border-radius:6px; padding:7px 9px; font:700 8px/1 var(--master-sans); letter-spacing:.12em; }
.home-page .solar-grid-scene figcaption { min-height:45px; }
.home-page .solar-grid-detail-panel { position:relative; display:flex; flex-direction:column; min-width:0; padding:clamp(20px,2.1vw,32px); border:1px solid rgba(12,65,138,.16); border-radius:clamp(16px,2vw,26px); background:linear-gradient(160deg,rgba(255,255,255,.97),rgba(239,247,252,.96) 55%,rgba(231,245,235,.95)); box-shadow:0 18px 52px rgba(12,65,138,.09); overflow:hidden; }
.home-page .solar-grid-detail-panel::after { content:""; position:absolute; right:-78px; top:-82px; width:200px; height:200px; border-radius:50%; pointer-events:none; background:radial-gradient(circle,rgba(33,159,75,.15),rgba(50,103,184,.06) 48%,transparent 72%); }
.home-page .solar-grid-detail-panel__top { position:relative; z-index:1; display:flex; justify-content:space-between; align-items:center; gap:12px; color:var(--master-muted); font:700 9px/1.2 var(--master-sans); letter-spacing:.12em; }
.home-page .solar-grid-detail-icon { display:grid; place-items:center; width:43px; height:43px; border:1px solid rgba(33,159,75,.26); border-radius:14px; color:var(--master-green); background:rgba(33,159,75,.08); font-size:23px; }
.home-page .solar-grid-detail-eyebrow { position:relative; z-index:1; margin:clamp(20px,3vw,38px) 0 10px; color:var(--master-green); font:750 9px/1.3 var(--master-sans); letter-spacing:.16em; }
.home-page .solar-grid-detail-panel h3 { position:relative; z-index:1; margin:0; color:var(--master-blue); font-size:clamp(27px,2.4vw,39px); font-weight:650; line-height:1; letter-spacing:-.055em; }
.home-page .solar-grid-detail-description { position:relative; z-index:1; margin:16px 0 24px; color:var(--master-muted); font-size:clamp(13px,1vw,15px); line-height:1.75; }
.home-page .solar-grid-detail-output { position:relative; z-index:1; display:grid; gap:7px; padding:15px 0 17px; border-top:1px solid rgba(12,65,138,.14); border-bottom:1px solid rgba(12,65,138,.14); }
.home-page .solar-grid-detail-output span { color:var(--master-muted); font:750 9px/1.2 var(--master-sans); letter-spacing:.13em; }
.home-page .solar-grid-detail-output strong { color:var(--master-green); font-size:clamp(16px,1.4vw,20px); font-weight:700; line-height:1.3; }
.home-page .solar-grid-detail-note { position:relative; z-index:1; display:grid; grid-template-columns:23px minmax(0,1fr); align-items:start; gap:10px; margin-top:19px; }
.home-page .solar-grid-detail-note > span { display:grid; place-items:center; width:20px; height:20px; border-radius:50%; color:var(--master-blue); background:rgba(12,65,138,.08); font:750 12px/1 var(--master-sans); }
.home-page .solar-grid-detail-note p { margin:0; color:#5a6f86; font-size:11px; line-height:1.65; }
.home-page .solar-grid-detail-bottom { position:relative; z-index:1; display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:auto; padding-top:25px; color:var(--master-muted); font:750 9px/1.2 var(--master-sans); letter-spacing:.1em; }
.home-page .solar-grid-detail-bottom span:last-child { color:var(--master-green); font-size:13px; }
.home-page .solar-grid-step-nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:16px; }
.home-page .solar-grid-step-button { display:flex; align-items:center; gap:12px; min-width:0; text-align:left; padding:13px 15px; border:1px solid rgba(12,65,138,.14); border-radius:12px; background:rgba(255,255,255,.76); color:var(--master-blue); cursor:pointer; transition:background .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease; }
.home-page .solar-grid-step-button:hover,.home-page .solar-grid-step-button:focus-visible { transform:translateY(-2px); border-color:rgba(12,65,138,.42); box-shadow:0 8px 25px rgba(12,65,138,.08); outline:none; }
.home-page .solar-grid-step-button[aria-pressed="true"] { background:linear-gradient(115deg,rgba(12,65,138,.09),rgba(33,159,75,.09)); border-color:rgba(33,159,75,.45); box-shadow:inset 3px 0 var(--master-green); }
.home-page .solar-grid-step-button__number { flex:0 0 auto; display:grid; place-items:center; width:29px; height:29px; border-radius:50%; color:#fff; background:var(--master-blue); font:800 10px/1 var(--master-sans); }
.home-page .solar-grid-step-button[aria-pressed="true"] .solar-grid-step-button__number { background:var(--master-green); }
.home-page .solar-grid-step-button__text { min-width:0; }
.home-page .solar-grid-step-button__text strong { display:block; overflow:hidden; color:var(--master-ink); font-size:12px; line-height:1.3; text-overflow:ellipsis; white-space:nowrap; }
.home-page .solar-grid-step-button__text small { display:block; margin-top:4px; color:var(--master-muted); font-size:10px; line-height:1.3; }
.home-page .solar-grid-disclaimer { margin:13px 0 0; color:#6a7e92; font-size:10px; line-height:1.6; }
@keyframes solarExplorerDash { to { stroke-dashoffset:-54; } }
@media (max-width:1120px) {
  .home-page .solar-grid-explorer-toolbar { align-items:flex-start; flex-direction:column; }
  .home-page .solar-grid-explorer-controls { width:100%; justify-content:flex-start; }
  .home-page .solar-grid-simulation-label { flex:1 0 100%; }
  .home-page .solar-grid-explorer-layout { grid-template-columns:minmax(0,1fr); }
  .home-page .solar-grid-detail-panel { min-height:0; }
  .home-page .solar-grid-detail-eyebrow { margin-top:22px; }
  .home-page .solar-grid-detail-bottom { margin-top:22px; }
}
@media (max-width:760px) {
  .home-page .solar-grid-explorer-toolbar > p { font-size:12px; }
  .home-page .solar-grid-explorer-controls { gap:7px; }
  .home-page .solar-grid-control { min-height:35px; padding:8px 11px; font-size:10px; }
  .home-page .solar-grid-scene__canvas { aspect-ratio:3/2; }
  .home-page .solar-grid-scene-badge { top:8px; left:8px; padding:7px 8px; font-size:7px; gap:7px; }
  .home-page .solar-grid-scene-hint { right:7px; bottom:7px; font-size:6px; padding:6px 7px; }
  .home-page .solar-grid-hotspot__number { width:clamp(28px,7vw,36px); font-size:10px; border-width:1.5px; }
  .home-page .solar-grid-hotspot__tooltip { display:none; }
  .home-page .solar-grid-step-nav { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .home-page .solar-grid-step-button { gap:8px; padding:10px 9px; }
  .home-page .solar-grid-step-button__text strong { font-size:11px; }
  .home-page .solar-grid-step-button__text small { font-size:9px; }
  .home-page .solar-grid-scene figcaption { font-size:8px; padding:12px 14px; }
}
@media (max-width:420px) {
  .home-page .solar-grid-hotspot__number { width:27px; }
  .home-page .solar-grid-scene-badge { max-width:calc(100% - 16px); }
  .home-page .solar-grid-scene-hint { letter-spacing:.05em; }
  .home-page .solar-grid-step-button { align-items:flex-start; }
  .home-page .solar-grid-step-button__number { width:24px; height:24px; }
}
@media (prefers-reduced-motion:reduce) {
  .home-page .solar-grid-route-segment { animation:none !important; }
  .home-page .solar-grid-scene__canvas > img,.home-page .solar-grid-hotspot__number,.home-page .solar-grid-step-button,.home-page .solar-grid-control { transition:none !important; }
}

.home-page .solar-grid-flow-pulse { fill:none; stroke:#fff; stroke-width:7; stroke-linecap:round; stroke-dasharray:1 42; stroke-dashoffset:0; opacity:.8; filter:url(#solarExplorerGlow); animation:solarPulseDash 2.1s linear infinite; }
.home-page .solar-grid-flow-pulse-two { stroke:#FFB20D; stroke-width:4; stroke-dasharray:1 66; animation-duration:2.7s; animation-delay:-1.2s; opacity:.9; }
.home-page .solar-grid-scene.is-flow-paused .solar-grid-flow-pulse { animation-play-state:paused; }
@keyframes solarPulseDash { to { stroke-dashoffset:-258; } }
.home-page .solar-grid-details-link { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:22px; padding:13px 15px; border-radius:10px; color:#fff; background:linear-gradient(105deg,#0C418A,#176b55); font-size:12px; font-weight:700; text-decoration:none; transition:transform .2s ease,box-shadow .2s ease; }
.home-page .solar-grid-details-link:hover,.home-page .solar-grid-details-link:focus-visible { transform:translateY(-2px); box-shadow:0 10px 25px rgba(12,65,138,.18); outline:2px solid rgba(12,65,138,.22); outline-offset:3px; }
@media (prefers-reduced-motion:reduce) { .home-page .solar-grid-flow-pulse { animation:none !important; } .home-page .solar-grid-details-link { transition:none !important; } }

/* Phase 1 refinement: component cards are clickable hit areas over the artwork's correctly aligned callouts. */
.home-page .solar-grid-explorer-toolbar { align-items:center; flex-wrap:wrap; gap:12px 18px; margin-bottom:12px; }
.home-page .solar-grid-explorer-toolbar .solar-grid-simulation-label { margin-left:auto; margin-right:0; flex:0 0 auto; font-size:9px; }
.home-page .solar-grid-accessible-controls { display:none !important; }
.home-page .solar-grid-sunlight-toolbar { position:relative; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:14px; margin:0 0 15px; padding:12px 15px; border:1px solid rgba(12,65,138,.13); border-radius:14px; background:linear-gradient(110deg,rgba(255,255,255,.96),rgba(245,249,252,.95) 62%,rgba(239,249,241,.95)); box-shadow:0 8px 28px rgba(12,65,138,.055); }
.home-page .solar-grid-sunlight-toolbar__copy { display:grid; gap:4px; min-width:0; }
.home-page .solar-grid-sunlight-toolbar__copy strong { color:var(--master-blue); font:750 9px/1.25 var(--master-sans); letter-spacing:.13em; }
.home-page .solar-grid-sunlight-toolbar__copy span { color:var(--master-muted); font-size:10px; line-height:1.35; }
.home-page .solar-grid-sunlight-modes { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:5px; }
.home-page .solar-grid-sunlight-mode { border:1px solid rgba(12,65,138,.13); border-radius:999px; padding:8px 12px; color:#45617c; background:rgba(255,255,255,.8); font:650 10px/1 var(--master-sans); cursor:pointer; transition:background .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease; }
.home-page .solar-grid-sunlight-mode:hover,.home-page .solar-grid-sunlight-mode:focus-visible { transform:translateY(-1px); border-color:rgba(12,65,138,.38); outline:none; }
.home-page .solar-grid-sunlight-mode[aria-pressed="true"] { color:#fff; border-color:#0c418a; background:linear-gradient(115deg,#0c418a,#176b55); box-shadow:0 5px 14px rgba(12,65,138,.16); }
.home-page .solar-grid-scene__canvas { aspect-ratio:2.79 / 1; background:#c2dcec; }
.home-page .solar-grid-scene__canvas > img { aspect-ratio:2.79 / 1; }
.home-page .solar-grid-hotspot { left:var(--hotspot-x); top:var(--hotspot-y); width:var(--hotspot-w,12%); height:var(--hotspot-h,13%); display:block; padding:0; gap:0; transform:translate(-50%,-50%); border:1px solid transparent; border-radius:13px; background:transparent; filter:none; box-shadow:none; }
.home-page .solar-grid-hotspot__number,.home-page .solar-grid-hotspot__tooltip { display:none !important; }
.home-page .solar-grid-hotspot:hover,.home-page .solar-grid-hotspot:focus-visible { border-color:rgba(255,255,255,.9); background:rgba(255,255,255,.045); box-shadow:inset 0 0 0 1px rgba(12,65,138,.28),0 0 24px rgba(255,255,255,.24); outline:none; }
.home-page .solar-grid-hotspot.is-active { border-color:rgba(255,255,255,.8); background:rgba(33,159,75,.045); box-shadow:inset 0 0 0 1px rgba(33,159,75,.44),0 0 26px rgba(33,159,75,.21); }
.home-page .solar-grid-hotspot:focus-visible { outline:2px solid #fff; outline-offset:3px; }
.home-page .solar-grid-scene-control-hits { position:absolute; z-index:8; inset:0; pointer-events:none; }
.home-page .solar-grid-scene-control-hits button { position:absolute; left:var(--scene-action-x); top:var(--scene-action-y); width:var(--scene-action-w); height:var(--scene-action-h); transform:translate(-50%,-50%); overflow:hidden; padding:0; border:1px solid transparent; border-radius:999px; color:transparent; background:transparent; cursor:pointer; pointer-events:auto; }
.home-page .solar-grid-scene-control-hits button span { position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.home-page .solar-grid-scene-control-hits button:hover,.home-page .solar-grid-scene-control-hits button:focus-visible { outline:none; border-color:rgba(255,255,255,.85); background:rgba(255,255,255,.08); box-shadow:0 0 18px rgba(255,255,255,.2); }
.home-page .solar-grid-sunlight-overlay { position:absolute; z-index:2; left:var(--sun-x,10%); top:var(--sun-y,9%); width:var(--sunlight-size,14%); aspect-ratio:1; transform:translate(-50%,-50%); pointer-events:none; opacity:var(--sunlight-power,.85); mix-blend-mode:screen; transition:opacity .7s ease,filter .7s ease; }
.home-page .solar-grid-sunlight-overlay::before { content:""; position:absolute; inset:-46%; border-radius:50%; background:radial-gradient(circle,rgba(255,247,205,.44) 0%,rgba(255,207,100,.2) 23%,rgba(255,183,53,.08) 46%,transparent 72%); animation:solarSunGlow 5.5s ease-in-out infinite; }
.home-page .solar-grid-sunlight-overlay::after { content:""; position:absolute; inset:-54%; border-radius:50%; background:repeating-conic-gradient(from 2deg,rgba(255,238,176,.0) 0deg 6deg,rgba(255,239,186,.23) 7deg 8deg,rgba(255,201,91,.06) 9deg 12deg,rgba(255,238,176,0) 14deg 22deg); -webkit-mask:radial-gradient(circle,transparent 0 18%,#000 27% 73%,transparent 79%); mask:radial-gradient(circle,transparent 0 18%,#000 27% 73%,transparent 79%); filter:blur(1px); animation:solarSunRaySpin 62s linear infinite; }
.home-page .solar-grid-sunlight-overlay > span { position:absolute; inset:37%; border-radius:50%; background:radial-gradient(circle,#fffef0 0%,rgba(255,247,208,.78) 34%,rgba(255,205,102,.15) 74%,transparent 100%); box-shadow:0 0 24px rgba(255,235,160,.45); }
.home-page .solar-grid-scene__canvas[data-sunlight-mode="morning"] .solar-grid-sunlight-overlay { filter:saturate(1.1) hue-rotate(-4deg); }
.home-page .solar-grid-scene__canvas[data-sunlight-mode="midday"] .solar-grid-sunlight-overlay { filter:saturate(1.18) brightness(1.08); }
.home-page .solar-grid-scene__canvas[data-sunlight-mode="evening"] .solar-grid-sunlight-overlay { filter:saturate(.8) hue-rotate(-16deg); }
.home-page .solar-grid-scene__canvas[data-sunlight-mode="cloudy"] .solar-grid-sunlight-overlay { filter:saturate(.55) brightness(.88); }
.home-page .solar-grid-scene__canvas[data-sunlight-mode="cloudy"] .solar-grid-sunlight-overlay::after { opacity:.25; }
.home-page .solar-grid-scene__canvas[data-sunlight-mode="cloudy"] > img { filter:brightness(.84) saturate(.76); }
.home-page .solar-grid-scene__canvas[data-sunlight-mode="evening"] > img { filter:brightness(.91) saturate(.92) sepia(.08); }
.home-page .solar-grid-scene__canvas[data-sunlight-mode="midday"] > img { filter:brightness(1.04) saturate(1.04); }
@keyframes solarSunRaySpin { to { transform:rotate(360deg); } }
@keyframes solarSunGlow { 0%,100% { transform:scale(.96); opacity:.74; } 50% { transform:scale(1.08); opacity:1; } }
@media (max-width:1120px) {
  .home-page .solar-grid-sunlight-toolbar { align-items:flex-start; flex-direction:column; }
  .home-page .solar-grid-sunlight-modes { width:100%; justify-content:flex-start; }
}
@media (max-width:760px) {
  .home-page .solar-grid-explorer-toolbar { align-items:flex-start; flex-direction:column; }
  .home-page .solar-grid-simulation-label { margin-left:0; }
  .home-page .solar-grid-sunlight-toolbar { padding:11px; gap:10px; }
  .home-page .solar-grid-sunlight-modes { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:5px; }
  .home-page .solar-grid-sunlight-mode { padding:9px 5px; font-size:9px; }
  .home-page .solar-grid-scene__canvas { aspect-ratio:2 / 1; }
  .home-page .solar-grid-scene__canvas > img { aspect-ratio:2 / 1; }
  .home-page .solar-grid-hotspot { border-radius:8px; }
  .home-page .solar-grid-scene-control-hits button { border-radius:6px; }
  .home-page .solar-grid-sunlight-overlay { width:var(--sunlight-size,19%); }
}
@media (prefers-reduced-motion:reduce) {
  .home-page .solar-grid-sunlight-overlay::before,.home-page .solar-grid-sunlight-overlay::after { animation:none !important; }
  .home-page .solar-grid-sunlight-mode { transition:none !important; }
}
@media (max-width:760px) {
  .home-page .solar-grid-flow-overlay { display:none; }
}
@media (max-width:760px) {
  .home-page .solar-grid-flow-overlay { display:none; }
}
/* Keep the artwork and its transparent click zones locked together during pointer interaction. */
.home-page .solar-grid-scene:hover .solar-grid-scene__canvas > img { transform:scale(1.001); filter:saturate(1.045) contrast(1.01); }
@media (max-width:760px) {
  .home-page .solar-grid-accessible-controls { display:flex !important; flex-wrap:wrap; align-items:center; gap:8px; width:100%; }
  .home-page .solar-grid-accessible-controls .solar-grid-control { display:inline-flex; min-height:36px; padding:9px 13px; }
}

/* V6 solar explorer refinement: clickable equipment targets, cleaner alignment and a more alive sun ray layer. */
.home-page .solar-grid-object-hotspots { position:absolute; z-index:7; inset:0; pointer-events:none; }
.home-page .solar-grid-object-hotspot { position:absolute; left:var(--object-hotspot-x,50%); top:var(--object-hotspot-y,50%); width:var(--object-hotspot-w,8%); height:var(--object-hotspot-h,12%); display:grid; place-items:center; transform:translate(-50%,-50%); border:1px solid transparent; border-radius:15px; padding:0; background:transparent; color:#fff; cursor:pointer; pointer-events:auto; -webkit-tap-highlight-color:transparent; }
.home-page .solar-grid-object-hotspot__glyph { display:grid; place-items:center; width:clamp(28px,2.5vw,38px); height:clamp(28px,2.5vw,38px); border:2px solid rgba(255,255,255,.98); border-radius:50%; color:#fff; background:linear-gradient(135deg,#0C418A,#219F4B); box-shadow:0 0 0 4px rgba(12,65,138,.18),0 0 22px rgba(57,173,220,.72); font:500 24px/1 var(--master-sans); transition:transform .24s ease,background .24s ease,box-shadow .24s ease; animation:solarObjectPulse 2.8s ease-in-out infinite; }
.home-page .solar-grid-object-hotspot[data-solar-object-select="0"] .solar-grid-object-hotspot__glyph { background:linear-gradient(135deg,#FF7F00,#FFB20D); box-shadow:0 0 0 4px rgba(255,178,13,.2),0 0 24px rgba(255,178,13,.72); }
.home-page .solar-grid-object-hotspot[data-solar-object-select="1"] .solar-grid-object-hotspot__glyph { background:linear-gradient(135deg,#0C418A,#168EEA); box-shadow:0 0 0 4px rgba(12,65,138,.2),0 0 24px rgba(22,142,234,.76); }
.home-page .solar-grid-object-hotspot[data-solar-object-select="2"] .solar-grid-object-hotspot__glyph { background:linear-gradient(135deg,#168A3D,#32C961); box-shadow:0 0 0 4px rgba(33,159,75,.2),0 0 24px rgba(50,201,97,.74); }
.home-page .solar-grid-object-hotspot[data-solar-object-select="3"] .solar-grid-object-hotspot__glyph { background:linear-gradient(135deg,#0C418A,#219F4B); }
.home-page .solar-grid-object-hotspot:hover .solar-grid-object-hotspot__glyph,.home-page .solar-grid-object-hotspot:focus-visible .solar-grid-object-hotspot__glyph { transform:scale(1.12); box-shadow:0 0 0 7px rgba(255,255,255,.15),0 0 30px rgba(255,255,255,.72); }
.home-page .solar-grid-object-hotspot.is-active .solar-grid-object-hotspot__glyph { transform:scale(1.08); outline:2px solid rgba(255,255,255,.92); outline-offset:3px; }
.home-page .solar-grid-object-hotspot:focus-visible { outline:2px solid #fff; outline-offset:4px; }
.home-page .solar-grid-object-hotspot__sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
@keyframes solarObjectPulse { 0%,100% { box-shadow:0 0 0 4px rgba(12,65,138,.18),0 0 17px rgba(57,173,220,.48); } 50% { box-shadow:0 0 0 8px rgba(12,65,138,.06),0 0 29px rgba(57,173,220,.88); } }
.home-page .solar-grid-sunlight-overlay::after { animation:solarSunRaySpin 38s linear infinite; }
.home-page .solar-grid-sunlight-overlay::before { animation:solarSunGlow 4.2s ease-in-out infinite; }
.home-page .solar-grid-scene__canvas[data-sunlight-mode="morning"] .solar-grid-sunlight-overlay { opacity:calc(var(--sunlight-power,.72) + .05); }
.home-page .solar-grid-scene__canvas[data-sunlight-mode="midday"] .solar-grid-sunlight-overlay { opacity:1; }
.home-page .solar-grid-scene__canvas[data-sunlight-mode="evening"] .solar-grid-sunlight-overlay::after { opacity:.72; }
.home-page .solar-grid-scene__canvas[data-sunlight-mode="cloudy"] .solar-grid-sunlight-overlay { opacity:.28; }
.home-page .solar-grid-scene__canvas[data-sunlight-mode="cloudy"] .solar-grid-sunlight-overlay::before { opacity:.32; }
.home-page .solar-grid-scene__canvas[data-sunlight-mode="cloudy"] .solar-grid-object-hotspot__glyph { filter:saturate(.75); }
@media (max-width:760px) {
  .home-page .solar-grid-object-hotspot__glyph { width:30px; height:30px; font-size:20px; }
  .home-page .solar-grid-object-hotspot { border-radius:10px; }
}
@media (prefers-reduced-motion:reduce) {
  .home-page .solar-grid-object-hotspot__glyph,.home-page .solar-grid-sunlight-overlay::before,.home-page .solar-grid-sunlight-overlay::after { animation:none!important; }
  .home-page .solar-grid-object-hotspot__glyph { transition:none!important; }
}


/* ABOUT A2S — admin-ready, content-driven company introduction */
.master-about {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(76px, 10vw, 148px) clamp(22px, 6vw, 96px);
  background: linear-gradient(135deg, #eef4fb 0%, #f8fbff 47%, #edf7f0 100%);
  color: #123e7a;
}
.master-about::before,
.master-about::after {
  content: "";
  position: absolute;
  z-index: -1;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(2px);
}
.master-about::before {
  width: min(54vw, 720px);
  aspect-ratio: 1;
  right: -18%;
  top: -34%;
  background: radial-gradient(circle, rgba(33,159,75,.10), rgba(33,159,75,0) 68%);
}
.master-about::after {
  width: min(44vw, 600px);
  aspect-ratio: 1;
  left: -18%;
  bottom: -35%;
  background: radial-gradient(circle, rgba(12,65,138,.09), rgba(12,65,138,0) 70%);
}
.master-about__top,
.master-about__intro,
.master-about__pillar-head,
.master-about__sectors,
.master-about__credentials,
.master-about__coverage {
  position: relative;
  z-index: 1;
}
.master-about__top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  margin-bottom: clamp(38px, 6vw, 78px);
}
.master-about__index {
  color: #7085a0;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .18em;
}
.master-about__intro {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(230px, .65fr);
  align-items: center;
  gap: clamp(28px, 7vw, 104px);
}
.master-about__heading h2 {
  margin: 0;
  max-width: 900px;
  color: #123e7a;
  font-size: clamp(42px, 6.6vw, 94px);
  line-height: .98;
  letter-spacing: -.065em;
  font-weight: 700;
}
.master-about__heading h2 em {
  color: #219f4b;
  font-style: normal;
}
.master-about__lead {
  max-width: 760px;
  margin: 30px 0 0;
  color: #3d5572;
  font-size: clamp(17px, 1.7vw, 22px);
  line-height: 1.6;
}
.master-about__brand-panel {
  min-height: 310px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  padding: 24px;
  overflow: hidden;
  border: 1px solid rgba(12,65,138,.12);
  border-radius: 26px;
  background: linear-gradient(145deg, rgba(255,255,255,.84), rgba(235,244,252,.64));
  box-shadow: 0 24px 70px rgba(24,70,120,.08), inset 0 1px 0 rgba(255,255,255,.85);
}
.master-about__brand-kicker,
.master-about__brand-panel > p {
  color: #6b819d;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .19em;
  text-align: center;
}
.master-about__symbol-wrap {
  position: relative;
  width: 180px;
  max-width: 72%;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
}
.master-about__symbol-halo {
  position: absolute;
  inset: 4%;
  border-radius: 50%;
  background: conic-gradient(from 20deg, rgba(12,65,138,.15), rgba(33,159,75,.14), rgba(255,178,13,.17), rgba(255,127,0,.12), rgba(12,65,138,.15));
  filter: blur(22px);
  animation: aboutHaloDrift 9s ease-in-out infinite alternate;
}
.master-about__symbol-wrap img {
  position: relative;
  z-index: 1;
  width: 76%;
  height: 76%;
  object-fit: contain;
  filter: drop-shadow(0 16px 24px rgba(12,65,138,.13));
}
@keyframes aboutHaloDrift { from { transform: scale(.88) rotate(-12deg); opacity: .68; } to { transform: scale(1.12) rotate(18deg); opacity: 1; } }
.master-about__body {
  max-width: 900px;
  margin: clamp(34px, 5vw, 66px) 0 clamp(62px, 8vw, 104px);
  color: #526b87;
  font-size: clamp(15px, 1.35vw, 18px);
  line-height: 1.85;
}
.master-about__pillar-head { margin-bottom: 18px; }
.master-about__pillars {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.master-about-card {
  position: relative;
  display: flex;
  min-height: 250px;
  flex-direction: column;
  padding: clamp(18px, 2vw, 27px);
  border: 1px solid rgba(12,65,138,.11);
  border-radius: 18px;
  background: rgba(255,255,255,.74);
  box-shadow: 0 14px 36px rgba(24,70,120,.045);
  transition: transform .45s cubic-bezier(.2,.75,.25,1), box-shadow .45s ease, border-color .35s ease;
  transition-delay: calc(var(--about-card-index, 0) * 35ms);
}
.master-about-card:hover {
  transform: translateY(-7px);
  border-color: rgba(33,159,75,.32);
  box-shadow: 0 24px 50px rgba(24,70,120,.10);
}
.master-about-card__top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 28px; }
.master-about-card__number { color: #8da0b7; font-size: 11px; font-weight: 800; letter-spacing: .14em; }
.master-about-card__icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; color: #0c418a; background: linear-gradient(135deg, rgba(12,65,138,.09), rgba(33,159,75,.10)); font-size: 23px; }
.master-about-card h3 { margin: 0 0 12px; color: #123e7a; font-size: clamp(17px, 1.55vw, 21px); line-height: 1.2; letter-spacing: -.025em; }
.master-about-card p { margin: 0; color: #627893; font-size: 13px; line-height: 1.7; }
.master-about-card__rule { width: 42px; height: 3px; margin-top: auto; padding-top: 22px; background: linear-gradient(90deg, #219f4b, #ffb20d); background-clip: content-box; }
.master-about__sectors {
  display: grid;
  grid-template-columns: minmax(220px, .9fr) minmax(0, 1.1fr);
  align-items: center;
  gap: 30px;
  padding: 36px 0;
  margin-top: 46px;
  border-top: 1px solid rgba(12,65,138,.13);
  border-bottom: 1px solid rgba(12,65,138,.13);
}
.master-about__sectors-copy > p:last-child { max-width: 460px; margin: 12px 0 0; color: #627893; font-size: 14px; line-height: 1.65; }
.master-about__sector-tags { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.master-about-sector { display: inline-flex; align-items: center; gap: 9px; padding: 12px 17px; border: 1px solid rgba(12,65,138,.13); border-radius: 999px; color: #234c7b; background: rgba(255,255,255,.72); font-size: 13px; font-weight: 700; }
.master-about-sector::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: #219f4b; box-shadow: 0 0 0 4px rgba(33,159,75,.10); }
.master-about__credentials { display: grid; grid-template-columns: minmax(220px, .85fr) minmax(0, 1.15fr); gap: 30px; padding: 40px 0 32px; }
.master-about__credentials-heading > p:last-child { margin: 14px 0 0; color: #71849b; font-size: 12px; line-height: 1.7; }
.master-about__credential-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.master-about-credential { display: flex; gap: 13px; padding: 18px; border-radius: 14px; background: rgba(255,255,255,.68); border: 1px solid rgba(12,65,138,.10); }
.master-about-credential__index { color: #219f4b; font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.master-about-credential h3 { margin: 0 0 7px; color: #234c7b; font-size: 14px; line-height: 1.35; }
.master-about-credential p { margin: 0; color: #71849b; font-size: 11px; line-height: 1.6; }
.master-about__coverage { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 18px 0 0; border-top: 1px solid rgba(12,65,138,.13); }
.master-about__coverage span { color: #8194aa; font-size: 10px; font-weight: 800; letter-spacing: .17em; }
.master-about__coverage strong { color: #123e7a; font-size: clamp(17px, 2vw, 24px); font-weight: 650; letter-spacing: -.025em; text-align: right; }
@media (max-width: 1000px) {
  .master-about__pillars { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .master-about__intro { grid-template-columns: minmax(0, 1.2fr) minmax(200px, .8fr); }
}
@media (max-width: 700px) {
  .master-about { padding: 72px 20px; }
  .master-about__top { align-items: flex-start; margin-bottom: 34px; }
  .master-about__index { font-size: 8px; text-align: right; }
  .master-about__intro { grid-template-columns: 1fr; gap: 28px; }
  .master-about__heading h2 { font-size: clamp(39px, 11vw, 65px); }
  .master-about__lead { margin-top: 20px; font-size: 16px; }
  .master-about__brand-panel { min-height: 220px; border-radius: 20px; }
  .master-about__symbol-wrap { width: 130px; }
  .master-about__body { margin: 26px 0 46px; font-size: 14px; }
  .master-about__pillars { grid-template-columns: 1fr; }
  .master-about-card { min-height: auto; }
  .master-about-card__top { margin-bottom: 18px; }
  .master-about-card__rule { margin-top: 18px; padding-top: 0; }
  .master-about__sectors { grid-template-columns: 1fr; gap: 18px; margin-top: 34px; padding: 28px 0; }
  .master-about__sector-tags { justify-content: flex-start; }
  .master-about__credentials { grid-template-columns: 1fr; gap: 18px; padding: 30px 0 24px; }
  .master-about__credential-list { grid-template-columns: 1fr; }
  .master-about__coverage { align-items: flex-start; flex-direction: column; gap: 8px; }
  .master-about__coverage strong { text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
  .master-about__symbol-halo { animation: none; }
  .master-about-card { transition: none; }
}


/* Optional, owner-managed homepage photo sequence (Phase 3). */
.home-photo-sequence{padding:92px clamp(20px,6vw,92px);background:linear-gradient(135deg,#f5f0e7 0%,#fbf9f3 52%,#eaf1ed 100%);color:#123e7a}
.home-photo-sequence[hidden]{display:none}
.home-photo-sequence__heading{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);align-items:end;gap:36px;max-width:1300px;margin:0 auto 34px}
.home-photo-sequence__heading h2{margin:14px 0 0;font:500 clamp(36px,5vw,66px)/1.04 Georgia,serif;letter-spacing:-.045em;color:#123e7a}
.home-photo-sequence__heading>p{max-width:440px;margin:0 0 4px;color:#61748b;font-size:14px;line-height:1.75}
.home-photo-sequence__stage{max-width:1300px;margin:0 auto;display:grid;grid-template-columns:54px minmax(0,1fr) 54px;align-items:center;gap:16px}
.home-photo-sequence__stage figure{position:relative;margin:0;overflow:hidden;border-radius:22px;background:#dce4e7;box-shadow:0 22px 55px rgba(20,47,76,.13)}
.home-photo-sequence__stage figure>img{display:block;width:100%;height:clamp(280px,51vw,650px);object-fit:cover}
.home-photo-sequence__stage figcaption{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:end;justify-content:space-between;gap:20px;padding:34px 30px 22px;background:linear-gradient(0deg,rgba(8,26,45,.78),rgba(8,26,45,0));color:white}
.home-photo-sequence__stage figcaption strong{font-size:clamp(14px,2vw,22px);font-weight:650}
.home-photo-sequence__stage figcaption span{font-size:10px;letter-spacing:.16em;white-space:nowrap;color:rgba(255,255,255,.75)}
.home-gallery-arrow{width:48px;height:48px;border:1px solid rgba(18,62,122,.2);border-radius:50%;background:rgba(255,255,255,.78);color:#123e7a;font-size:22px;cursor:pointer;transition:background .2s,transform .2s}
.home-gallery-arrow:hover{background:white;transform:translateY(-2px)}
.home-photo-sequence__thumbs{max-width:1300px;margin:16px auto 0;display:flex;gap:10px;overflow-x:auto;padding:4px 2px 9px}
.home-photo-sequence__thumbs button{flex:0 0 112px;position:relative;padding:0;border:2px solid transparent;border-radius:9px;overflow:hidden;background:#fff;cursor:pointer;opacity:.72}
.home-photo-sequence__thumbs button.is-active{border-color:#219f4b;opacity:1}
.home-photo-sequence__thumbs img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.home-photo-sequence__thumbs span{position:absolute;right:5px;bottom:5px;padding:3px 5px;border-radius:4px;background:rgba(10,35,61,.75);color:#fff;font-size:8px}
@media(max-width:700px){.home-photo-sequence{padding:68px 18px}.home-photo-sequence__heading{grid-template-columns:1fr;gap:12px;margin-bottom:22px}.home-photo-sequence__heading>p{font-size:12px}.home-photo-sequence__stage{grid-template-columns:34px minmax(0,1fr) 34px;gap:7px}.home-photo-sequence__stage figure{border-radius:13px}.home-photo-sequence__stage figure>img{height:clamp(220px,62vw,420px)}.home-gallery-arrow{width:33px;height:33px;font-size:16px}.home-photo-sequence__stage figcaption{padding:25px 14px 14px}.home-photo-sequence__thumbs button{flex-basis:84px}}
