/* Agent 1 — GmbH: the accepted Breathe scene opens the homepage. */
.home-breathe-page { --opening-nav: 72px; }
.home-breathe-page .site-shell { padding-top: var(--opening-nav); }
.home-opening {
  position: relative;
  height: calc(100svh - var(--opening-nav));
  min-height: 260px;
  overflow: hidden;
  isolation: isolate;
  background: var(--paper);
}
.home-opening-scene {
  height: 100%;
  min-height: 0;
  transform: translate3d(0, var(--opening-lift, 0px), 0);
  opacity: var(--opening-opacity, 1);
  will-change: transform, opacity;
}
.home-opening .breathe-focus { width: min(440px, 54vw); }
.home-down {
  position: absolute;
  bottom: max(24px, env(safe-area-inset-bottom));
  left: 50%;
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  color: var(--muted);
  background: none;
  border: 0;
  transform: translateX(-50%);
  opacity: var(--opening-arrow-opacity, 1);
  transition: color 180ms ease;
}
.home-down svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1; stroke-linecap: round; stroke-linejoin: round; transition: transform 350ms ease; }
.home-down:hover, .home-down:focus-visible { color: var(--ink); }
.home-down:hover svg, .home-down:focus-visible svg { transform: translateY(4px); }
.home-down:focus-visible { outline: 1px solid var(--ink); outline-offset: 2px; border-radius: 50%; }
.home-content {
  position: relative;
  transform: translate3d(0, var(--content-arrival, 0px), 0);
  scroll-margin-top: var(--opening-nav);
}
.home-content:focus { outline: none; }
.home-breathe-page #aurora-bg { opacity: var(--content-aurora, 0); }
.home-breathe-page .hero h1 .word { opacity: 1; transition: none; }
/* Traces reuse the real outline of each family mark, rather than drawing a new frame. */
.home-content .family-site-link { position: relative; transition: transform 400ms ease; }
.home-content .flat-logo .home-edge-trace {
  stroke: var(--ink);
  fill: none;
  stroke-width: 1.05;
  stroke-dasharray: 8 92;
  stroke-linecap: round;
  opacity: 0;
  animation: home-outline-trace 4.8s linear infinite paused;
  transition: opacity 250ms ease;
}
.home-content .flat-logo .home-edge-trace + .home-edge-trace { stroke-width: .45; stroke-dasharray: 3 97; animation-delay: -1.65s; opacity: 0; }
.home-content .service-row::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 100%;
  height: 1px;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, var(--muted), transparent) -28% 0 / 22% 100% no-repeat;
  opacity: 0;
  animation: home-row-trace 5.6s ease-in-out infinite paused;
  transition: opacity 250ms ease;
}
.home-content .service-row:focus-within::after { opacity: .75; animation-play-state: running; }
.home-content .service-row:focus-within .home-edge-trace { opacity: .9; animation-play-state: running; }
.home-content .service-row:focus-within .family-site-link { transform: translateX(2px); }
@media (hover: hover) and (pointer: fine) {
  .home-content .service-row:hover::after { opacity: .75; animation-play-state: running; }
  .home-content .service-row:hover .home-edge-trace { opacity: .9; animation-play-state: running; }
  .home-content .service-row:hover .family-site-link { transform: translateX(2px); }
}
.home-breathe-page.is-motion-hidden .home-content * { animation-play-state: paused !important; }
@keyframes home-outline-trace { to { stroke-dashoffset: -100; } }
@keyframes home-row-trace { from { background-position: -28% 0; } to { background-position: 128% 0; } }
@media(max-width:760px) {
  .home-breathe-page { --opening-nav: 78px; }
  .home-opening .breathe-focus { width: min(340px, 68vw); }
  .home-down { bottom: max(20px, env(safe-area-inset-bottom)); }
}
@media(prefers-reduced-motion:reduce) {
  .home-opening-scene { transform: none; opacity: 1; will-change: auto; }
  .home-content { transform: none; }
  .home-down { opacity: 1; }
  .home-down svg, .home-content .family-site-link { transform: none !important; transition: none; }
  .home-content .flat-logo .home-edge-trace, .home-content .service-row::after { display: none; animation: none !important; }
}

/* The opening carries the identity; the navigation makes room after it leaves. */
.home-breathe-page .topbar .brand {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 300ms ease, visibility 300ms;
}
.home-breathe-page .nav-cluster {
  transform: translateX(0);
  transition: none;
}
.home-breathe-page.home-nav-content .topbar .brand { opacity: 1; visibility: visible; pointer-events: auto; }
.home-breathe-page.home-nav-content .nav-cluster { transform: translateX(0); }
@media (max-width: 1200px) {
  .home-breathe-page .nav-cluster { transform: translateX(calc((100vw - 2 * var(--nav-side) - 136px) / 2)); }
}
@media (max-width: 760px) {
  .home-breathe-page .nav-cluster { transform: translateX(calc((100vw - 16px - 128px) / 2)); }
}
@media (prefers-reduced-motion: reduce) {
  .home-breathe-page .topbar .brand, .home-breathe-page .nav-cluster { transition: none; }
}
