/* Homepage-only immersive scene; navigation remains in the floating header. */
body.home { overflow: hidden; }
body.home .site-footer { display: none; }
body.home .site-main { padding-top: 0; }
.home-drift { position: relative; isolation: isolate; overflow: hidden; min-height: 0; height: 100svh; touch-action: pan-x; background: var(--color-paper); }
.home-drift__field { position: absolute; inset: 0; pointer-events: none; }
.home-drift__item { position: absolute; top: 0; left: 0; width: 453.6px; margin: 0; }
.home-drift.is-ready .home-drift__item { will-change: transform; }
.home-drift__image { display: block; width: 100%; height: auto; aspect-ratio: 1.72; object-fit: cover; border-radius: 8px; border: 1px solid var(--color-line); background: var(--color-image-surface); }
html.theme-dark .home-drift__image { filter: invert(1); }
.home-drift__item figcaption { margin-top: 10px; font-size: .8125rem; line-height: 1.35; color: var(--color-ink-soft); }
.home-drift__item:nth-child(1) { left: -5%; top: 12%; }
.home-drift__item:nth-child(2) { left: 37%; top: -12%; }
.home-drift__item:nth-child(3) { left: 80%; top: 24%; }
.home-drift__item:nth-child(4) { left: 12%; top: 76%; }
.home-drift__item:nth-child(5) { left: 63%; top: 88%; }
.home-drift__item:nth-child(6) { left: -12%; top: 58%; }
.home-drift__item:nth-child(7) { left: 80%; top: -18%; }
.home-drift__item:nth-child(8) { left: 40%; top: 120%; }
.home-drift.is-ready .home-drift__item { left: 0; top: 0; }
.home-drift__veil { position: absolute; inset: 0; pointer-events: none; opacity: .54; background: radial-gradient(ellipse 86% 34% at 50% 50%, var(--color-paper) 24%, var(--color-paper) 25%, transparent 100%); }
.home-drift .home-hero--centered, body.admin-bar .home-drift .home-hero--centered { position: relative; z-index: 1; height: 100%; max-width: 54rem; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 120px 24px; pointer-events: none; }
.home-drift .home-title { font-size: clamp(2.25rem, 4.2vw, 3.625rem); font-weight: 500; line-height: 1.05; text-wrap: balance; }
.home-drift .home-intro { width: 100%; max-width: none; }
.home-drift .home-actions { margin-top: 28px; pointer-events: auto; }

.home-drift__controls { position: absolute; inset: auto 32px 24px; z-index: 2; display: flex; justify-content: flex-start; align-items: center; pointer-events: none; }
.home-drift__controls[hidden] { display: none; }
.home-drift__pause { min-height: 36px; padding: 8px 16px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 999px; outline: 1px solid var(--color-control-outline); background: var(--color-surface-raised); color: var(--color-ink-soft); font: inherit; font-size: .8125rem; line-height: 1.4; cursor: pointer; pointer-events: auto; transition: color 160ms ease-out, outline-color 160ms ease-out; }
.home-drift__pause:hover { outline-color: var(--color-control-outline-hover); color: var(--color-ink); }
.home-drift__pause:focus-visible { outline: 2px solid var(--color-ink); outline-offset: 4px; }
body.menu-open .home-drift { visibility: hidden; pointer-events: none; }
body.home .site-footer { margin-top: 0; }
body.admin-bar .home-drift { height: calc(100svh - 32px); }
@media (max-width: 600px) {
 .home-drift { min-height: 0; }
 .home-drift__veil { opacity: 1; background: radial-gradient(ellipse 85% 36% at 50% 50%, var(--color-paper) 30%, color-mix(in srgb, var(--color-paper) 96%, transparent) 58%, transparent 100%); }
 .home-drift .home-intro { font-size: .9375rem; }
 .home-drift__controls { inset-inline: 18px; }
 .home-drift__item figcaption { font-size: .6875rem; }
}
@media (max-width: 782px) { body.admin-bar .home-drift { height: calc(100svh - 46px); } }
@media (prefers-reduced-motion: reduce) { .home-drift.is-ready .home-drift__item { will-change: auto; } }

@media (max-height: 540px) {
 .home-drift .home-hero--centered, body.admin-bar .home-drift .home-hero--centered { padding-block: 80px 64px; }
 .home-drift .home-title { font-size: clamp(1.5rem, 5vh, 2.25rem); }
 .home-drift .home-intro { font-size: .875rem; line-height: 1.35; margin-top: 12px; }
 .home-drift .home-actions { margin-top: 14px; }
 .home-drift__controls { bottom: 12px; }
}

.home-actions__icon { display: block; flex: none; width: 20px; height: 20px; }

@media (pointer: coarse) { .home-drift__pause { min-height: 44px; } }

/* Keep the moving position separate from the interactive image transform. */
.home-drift__link { display: block; pointer-events: auto; text-decoration: none; color: inherit; cursor: pointer; }
.home-drift__link figure { margin: 0; }
.home-drift__media { display: block; border-radius: 8px; transition: transform 500ms ease-out, box-shadow 220ms ease-out; }
.home-drift__link:hover .home-drift__media,
.home-drift__link:focus-visible .home-drift__media { transform: scale(.95); box-shadow: 0 0 0 1px var(--color-control-outline-hover); }
.home-drift__link:focus-visible { outline: 2px solid var(--color-control-outline-hover); outline-offset: 6px; border-radius: 8px; }
.home-drift__link figcaption { transition: color 220ms ease-out; }
.home-drift__link:hover figcaption,
.home-drift__link:focus-visible figcaption { color: var(--color-ink); }
.home-drift .home-title,
.home-drift .home-intro { pointer-events: auto; }
@media (prefers-reduced-motion: reduce) {
 .home-drift__media, .home-drift__link figcaption { transition: none; }
}

/* Repeating arrow track moves right on both pointer entry and exit. */
.home-actions__arrow { position: relative; display: block; flex: none; width: 20px; height: 20px; overflow: hidden; }
.home-actions__arrow-track { position: relative; display: block; width: 20px; height: 20px; }
.home-actions__arrow .home-actions__icon { position: absolute; top: 0; left: 0; }
.home-actions__arrow .home-actions__icon:nth-child(2) { left: -24px; }
.home-actions__arrow .home-actions__icon:nth-child(3) { left: -48px; }

/* Expand only the pill surface; its label, icon and layout stay still. */
.home-actions .button-pill {
 position: relative;
 isolation: isolate;
 background: transparent;
}
.home-actions .button-pill::before {
 content: '';
 position: absolute;
 inset: 0;
 z-index: -1;
 border-radius: inherit;
 background: var(--color-ink);
 transform: scale(1);
 transition: transform 400ms cubic-bezier(.16, 1, .3, 1);
}
.home-actions .button-pill:is(:hover, :focus-visible)::before {
 transform: scaleX(1.06);
}
@media (prefers-reduced-motion: reduce) {
 .home-actions .button-pill::before { transition: none; }
}

.home-drift__pause { gap: 8px; }
.home-drift__pause svg { display: block; flex: none; width: 20px; height: 20px; }
.home-drift__pause[data-paused="false"] .home-drift__play-icon,
.home-drift__pause[data-paused="true"] .home-drift__pause-icon { display: none; }
