/* One straight progress marker across Home, About, Work and case studies. */
body.akgm-home .ak-v24-link-dot { display: none !important; }
@keyframes akgm-hover-breathe {
  0%, 100% { box-shadow: 0 0 0 2px rgba(49,85,255,.10), 0 0 3px rgba(49,85,255,.2); }
  50% { box-shadow: 0 0 0 6px rgba(49,85,255,.07), 0 0 10px rgba(49,85,255,.38); }
}

/* Align the fourth About section's title with the other section titles. */
body.akgm-about .ak-about-v4__cap-head {
  display: block;
}
body.akgm-about .ak-about-v4__cap-head .ak-about-v4__eyebrow {
  margin-bottom: 16px;
}
body.akgm-about .ak-about-v4__photo-composition { display: none !important; }
@media (min-width: 1101px) {
  body.akgm-about .ak-about-v4__capabilities .ak-about-v4__shell {
    display: grid;
    grid-template-columns: minmax(0, 38.2%) minmax(0, 61.8%);
    align-items: start;
  }
  body.akgm-about .ak-about-v4__capabilities .ak-about-v4__rows {
    margin: 0 !important;
    min-width: 0;
  }
  body.akgm-about .ak-about-v4__capabilities .ak-about-v4__row:first-child {
    padding-top: 0;
  }
  body.akgm-home .ak-v19-about__left { transform: translateY(-88px); }
  body.akgm-home .ak-v20-services__list { padding-right: 84px; }
}

/* Retire the old animated routes; the shared gutter dot is the only travelling mark. */
body.akgm-home .ak-c-line,
body.akgm-home .ak-c-dot,
body.akgm-home .ak-v25-handoff-path,
body.akgm-home .ak-v25-handoff-dot,
body.akgm-home .ak-v28-thread-svg,
body.akgm-home .ak-v30-contact-path,
body.akgm-home .ak-v30-contact-dot,
body.akgm-about .ak-about-v7__flow { display: none !important; }

@keyframes akgm-dot-halo {
  0%, 100% { opacity: .12; transform: scale(.75); }
  50% { opacity: .42; transform: scale(1.35); }
}

/* The four Practice labels sit in the middle of their dividers. */
body.akgm-home .ak-v18-practice__row {
  display: flex !important;
  align-items: center;
}
body.akgm-home .ak-v18-practice__row:last-child { border-bottom: 0 !important; }

body.akgm-home .ak-v21-contact__meta li:last-child .ak-v21-contact__meta-label {
  margin-bottom: 3px;
}
body.akgm-home .ak-v21-contact__email-line { bottom: -5px; }

/* The rail is visible from the first section to the last. */
body.akgm-home .akgm-progress,
body.akgm-about .akgm-progress { opacity: 1; }

/* A brief geometric veil conceals fast anchor jumps between sections. */
.akgm-route-veil {
  position: fixed;
  z-index: 100300;
  inset: 0;
  display: grid;
  place-items: center;
  background: #f4f1ea;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .24s ease, visibility 0s linear .24s;
}
.akgm-route-veil.is-visible {
  opacity: 1;
  visibility: visible;
  transition: opacity .24s ease, visibility 0s;
}
.akgm-route-veil__mark {
  position: relative;
  width: 54px;
  height: 54px;
  border: 1px solid rgba(23,61,51,.28);
  border-radius: 50%;
  animation: akgm-veil-turn 2s ease-in-out infinite;
}
.akgm-route-veil__mark::before {
  content: '';
  position: absolute;
  top: -4px;
  left: 21px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #3155ff;
  box-shadow: 0 0 0 5px rgba(49,85,255,.08);
  animation: akgm-hover-breathe 2.7s ease-in-out infinite;
}
@keyframes akgm-veil-turn { 50% { transform: rotate(90deg); } }
@keyframes akgm-page-out { to { opacity: 0; transform: translateY(-5px) scale(.997); } }
@keyframes akgm-page-in { from { opacity: 0; transform: translateY(10px) scale(.997); } to { opacity: 1; transform: none; } }
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: .42s cubic-bezier(.4,0,.2,1) both akgm-page-out; }
::view-transition-new(root) { animation: .48s cubic-bezier(.16,1,.3,1) both akgm-page-in; }
html.akgm-pending-hash, html.akgm-pending-hash body { scroll-behavior: auto !important; }
html.akgm-no-scroll-motion, html.akgm-no-scroll-motion body { scroll-behavior: auto !important; }
html.akgm-pending-hash body.akgm-home { opacity: 0; animation: none; }

@keyframes akgm-page-enter { from { opacity: .38; } to { opacity: 1; } }
body.akgm-home,
body.akgm-about,
body.akgm-project,
body.akgm-work-page {
  animation: akgm-page-enter .32s ease-out both;
  transition: opacity .18s ease-in;
}
body.akgm-is-leaving { opacity: 0 !important; pointer-events: none; }

/* One quiet scroll companion in the same outer gutter on every desktop page. */
.akgm-progress {
  position: fixed;
  z-index: 100050;
  right: 23px;
  top: 50%;
  width: 1px;
  height: 160px;
  background: transparent;
  transform: translateY(-50%);
  pointer-events: none;
}
.akgm-progress__dot {
  position: absolute;
  left: 50%;
  top: var(--akgm-progress, 0%);
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #3155ff;
  transform: translate(-50%, -50%);
  transition: top .8s cubic-bezier(.22,1,.36,1);
  animation: akgm-hover-breathe 2.7s ease-in-out infinite;
}
.akgm-progress__dot::after {
  content: '';
  position: absolute;
  inset: -5px;
  border: 1px solid #3155ff;
  border-radius: 50%;
  animation: akgm-dot-halo 2.7s ease-in-out infinite;
}

@media (max-width: 1199px) { .akgm-progress { display: none !important; } }

@media (prefers-reduced-motion: reduce) {
  body.akgm-home .ak-c-dot,
  body.akgm-home .ak-c-dot::after,
  body.akgm-home .ak-v25-handoff-dot,
  body.akgm-home .ak-v28-thread-dot,
  body.akgm-home .ak-v30-contact-dot,
  body.akgm-about .ak-about-v7__flow-dot,
  body.akgm-about .ak-about-v4__photo-rail .rail-dot::after,
  body.akgm-about .ak-about-v5__hero-flow .flow-dot::after,
  .akgm-progress__dot,
  .akgm-progress__dot::after,
  .akgm-route-veil,
  .akgm-route-veil__mark,
  .akgm-route-veil__mark::before,
  body.akgm-home, body.akgm-about, body.akgm-project, body.akgm-work-page {
    animation: none !important;
    transition: none !important;
  }
  ::view-transition-old(root), ::view-transition-new(root) { animation-duration: .01ms !important; }
}

/* =========================================================
   v1.5 consistency audit
   ========================================================= */

/* About: retire the remaining local rail so there is only one site-wide route. */
body.akgm-about .ak-about-v4__photo-rail,
body.akgm-about .ak-about-v5__hero-flow,
body.akgm-about .ak-about-v7__flow { display:none!important; }

/* The global companion travels on one quiet straight line. */
.akgm-progress {
  background:linear-gradient(to bottom, transparent 0, rgba(49,85,255,.16) 9%, rgba(49,85,255,.16) 91%, transparent 100%);
}

/* Home: keep the hero construction as geometry; the straight progress rail owns the only persistent dot. */
body.akgm-home .ak-hero-geo .ak-geo-dot { display:none!important; }

/* Desktop scroll dispersion. Uses individual translate so legacy transform animations remain intact. */
body.akgm-home .ak-hero-geo { --akgm-dispersion:0; }
@media (min-width:1024px) and (prefers-reduced-motion:no-preference) {
  body.akgm-home .ak-hero-geo .ak-geo-frame { translate:calc(var(--akgm-dispersion) * -48px) calc(var(--akgm-dispersion) * -28px); }
  body.akgm-home .ak-hero-geo .ak-geo-rect { translate:calc(var(--akgm-dispersion) * 42px) calc(var(--akgm-dispersion) * 20px); }
  body.akgm-home .ak-hero-geo .ak-geo-arc { translate:calc(var(--akgm-dispersion) * 54px) calc(var(--akgm-dispersion) * -38px); }
  body.akgm-home .ak-hero-geo .ak-geo-radius { translate:calc(var(--akgm-dispersion) * -32px) calc(var(--akgm-dispersion) * 44px); }
}

/* Project media: dark sections never acquire a white picture frame from older case-study CSS. */
body.akgm-project .rtj-case .rtj-dark figure,
body.akgm-project .rtj-case .rtj-dark .rtj-image-panel,
body.akgm-project .rtj-case .rtj-on-dark figure,
body.akgm-project .rtj-case .rtj-on-dark .rtj-image-panel,
body.akgm-project .rtj-case [class*="dark"] figure,
body.akgm-project .akdk [class*="dark"] figure {
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
}
body.akgm-project .rtj-case .rtj-dark figure img,
body.akgm-project .rtj-case .rtj-on-dark figure img,
body.akgm-project .rtj-case [class*="dark"] figure img,
body.akgm-project .akdk [class*="dark"] figure img {
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
}

/* Apply the no-frame rule to dark sections across every case-study template. */
body.akgm-project [class*="dark"] :is(figure, picture, .image-panel, [class*="image-panel"]) {
  padding:0!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  background:transparent!important;
}
body.akgm-project [class*="dark"] :is(figure, picture, .image-panel, [class*="image-panel"]) img {
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
}

/* Keep project and Work titles legible if theme or Elementor heading styles leak through. */
body.akgm-work-page .akgm-work__intro h1,
body.akgm-project .akgm-work-main h1,
body.akgm-project .akarc h1 {
  color:#173d33!important;
}
body.akgm-project .akarc h2,
body.akgm-project .akarc h3 { color:#173d33!important; }
body.akgm-project .akarc-study h2 { color:#f4f1ea!important; }

/* Personal portfolio audit, 2026-10-13. */
body.akgm-project .rtj-case,body.akgm-project .enc-case,body.akgm-project .hpc-case{width:var(--ak-case-width,100vw)!important;margin-left:calc(50% - var(--ak-case-width,100vw) / 2)!important;margin-right:calc(50% - var(--ak-case-width,100vw) / 2)!important}
body.akgm-project .rtj-case .rtj-hero-figure,body.akgm-project .enc-case .enc-hero-figure,body.akgm-project .hpc-case .hpc-hero-figure{padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
body.akgm-project .rtj-case .rtj-card-visual.rtj-mockup{border:0!important;box-shadow:none!important;border-radius:0!important;padding:0!important}
body.akgm-project a:focus-visible,body.akgm-about a:focus-visible{outline:2px solid #3155ff!important;outline-offset:5px!important}
@media(min-width:1200px){body.akgm-work-page .akgm-progress{display:block!important;opacity:1!important}}
