/* Timed perspective tunnel: no wheel listeners, controls, or navigation hijack. */
#homeIntro { display: none; }
html.home-intro-active { overflow: hidden !important; }
.home-intro-active::after { content: ''; position: fixed; inset: 0; z-index: 2147482999; background: #f3f7fc; pointer-events: auto; animation: opening-reveal var(--opening-duration,5300ms) linear both; }
.home-intro-active #homeIntro { display: block; position: fixed; inset: 0; z-index: 2147483000; overflow: hidden; }
.opening-scene { --opening-elapsed: 0ms; position: absolute; inset: 0; overflow: hidden; background: radial-gradient(ellipse at center,#e0ebff 0%,#f3f7fc 65%); perspective: 1200px; --opening-far: -1700px; --opening-near: 600px; animation: opening-reveal var(--opening-duration,5300ms) linear both; animation-delay: calc(-1 * var(--opening-elapsed)); }
.opening-grid { position: absolute; inset: 0; background-image: radial-gradient(#9bb0c9 1px,transparent 1px); background-size: 28px 28px; opacity: .38; mask-image: radial-gradient(ellipse at center,#000 30%,transparent 75%); }
.opening-orbit { position: absolute; left: 50%; top: 50%; translate: -50% -50%; border: 1px solid #648ac02b; border-radius: 50%; pointer-events: none; }
.opening-orbit-inner { width: 48vmin; height: 48vmin; }
.opening-orbit-outer { width: 80vmin; height: 80vmin; border-style: dashed; }
.opening-anchor { position: absolute; inset: 0; display: flex; flex-direction: column; gap: 20px; align-items: center; justify-content: center; color: #0b2749; text-align: center; padding: 24px; animation: opening-anchor var(--opening-duration,5300ms) ease both; animation-delay: calc(-1 * var(--opening-elapsed)); }
.opening-wordmark { font-family: var(--font-heading,sans-serif); font-size: clamp(13px,1.2vw,18px); font-weight: 800; letter-spacing: .09em; color: #0b2749; }
.opening-wordmark > span { color: #2467cf; }
.opening-headline { margin: 0; font-family: var(--font-heading,sans-serif); font-size: clamp(64px,10.4vw,160px); font-weight: 850; line-height: .94; letter-spacing: -.075em; text-transform: uppercase; color: #0b2749; background: linear-gradient(#082547 25%,#2d5480 75%,#8ca7c8); background-clip: text; -webkit-text-fill-color: transparent; }
.opening-caption { font: 400 clamp(11px,1.1vw,15px)/1.6 var(--font-body,sans-serif); color: #536c89; letter-spacing: .01em; }
.opening-tunnel { position: absolute; inset: 0; transform-style: preserve-3d; pointer-events: none; }
.opening-card { position: absolute; left: 50%; top: 50%; width: clamp(180px,18vw,270px); aspect-ratio: 4/5; border-radius: 18px; overflow: hidden; background: #fff; box-shadow: 0 20px 64px #0b274925; border: 1px solid #dbe5f0; opacity: 0; animation: opening-fly calc(var(--opening-duration,5300ms) * .755) cubic-bezier(.22,.42,.5,1) both; animation-delay: calc(var(--card-delay) - var(--opening-elapsed)); will-change: transform, opacity; }
.opening-card img { display: block; width: 100%; height: 75%; padding: 30px; box-sizing: border-box; object-fit: contain; }
.opening-card-caption { position: absolute; inset: auto 0 0; padding: 16px 20px; border-top: 1px solid #edf1f6; background: #fff; color: #0b2749; }
.opening-card-caption span { display: block; font: 800 12px/1.4 var(--font-heading,sans-serif); letter-spacing: .05em; text-transform: uppercase; }
.opening-card-caption small { display: block; margin-top: 4px; font: 400 10px/1.4 var(--font-body,sans-serif); color: #60728b; }
/* Photos and provider marks alternate clockwise around the same eight-card tunnel. */
.opening-card-0 { --x: -36vw; --y: -27vh; --rotate: -9deg; }
.opening-card-1 { --x: 15vw; --y: -64vh; --rotate: 8deg; }
.opening-card-2 { --x: 35vw; --y: -26vh; --rotate: 7deg; }
.opening-card-3 { --x: 49vw; --y: 3vh; --rotate: -7deg; }
.opening-card-4 { --x: 33vw; --y: 30vh; --rotate: -5deg; }
.opening-card-5 { --x: -17vw; --y: 64vh; --rotate: 7deg; }
.opening-card-6 { --x: -32vw; --y: 30vh; --rotate: 5deg; }
.opening-card-7 { --x: -49vw; --y: 3vh; --rotate: -6deg; }
/* Preserve the approved laptop depth, stagger and headline reveal. */
@keyframes opening-fly {
  0% { opacity: 0; transform: translate3d(calc(-50% + var(--x)),calc(-50% + var(--y)),var(--opening-far)) rotate(var(--rotate)); }
  18% { opacity: 1; }
  78% { opacity: 1; }
  100% { opacity: 0; transform: translate3d(calc(-50% + var(--x)),calc(-50% + var(--y)),var(--opening-near)) rotate(var(--rotate)); }
}
@keyframes opening-anchor { 0% { opacity: .2; transform: scale(.72); } 15% { opacity: 1; } 82% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: scale(1.13); } }
/* Phone-only motion starts closer and reaches readable size sooner. */
@keyframes opening-fly-mobile {
  0% { opacity: .15; transform: translate3d(calc(-50% + var(--x)),calc(-50% + var(--y)),var(--opening-far)) rotate(var(--rotate)); }
  10% { opacity: 1; }
  78% { opacity: 1; }
  100% { opacity: 0; transform: translate3d(calc(-50% + var(--x)),calc(-50% + var(--y)),var(--opening-near)) rotate(var(--rotate)); }
}
@keyframes opening-anchor-mobile { 0% { opacity: .75; transform: scale(.9); } 15% { opacity: 1; } 82% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: scale(1.13); } }
@keyframes opening-reveal { 0%,87% { opacity: 1; } 100% { opacity: 0; } }
[data-theme="dark"].home-intro-active::after { background: #0b1422; }
[data-theme="dark"] .opening-scene { background: radial-gradient(ellipse at center,#17305b 0%,#0b1422 70%); }
[data-theme="dark"] .opening-headline { background-image: linear-gradient(#fff 20%,#dbe8ff 65%,#7893b7); }
[data-theme="dark"] .opening-wordmark { color: #eef4ff; }
[data-theme="dark"] .opening-wordmark > span { color: #86b5ff; }
[data-theme="dark"] .opening-caption { color: #b1c0d5; }

.home-intro-active body { overflow: hidden; overscroll-behavior: none; }
.home-intro-active:not(.home-intro-playing)::after { animation: none; }
.opening-anchor { box-sizing: border-box; padding-inline: max(16px,env(safe-area-inset-left),env(safe-area-inset-right)); }
.opening-card.is-photo img { height: 100%; padding: 0; object-fit: cover; }
@media(max-width:767px) {
  .opening-scene { perspective: 900px; --opening-far: -260px; --opening-near: 380px; }
  .opening-anchor { gap: 16px; padding-block: 12px; }
  .opening-headline { font-size: clamp(38px,12.5vw,96px); }
  .opening-card { width: clamp(110px,31vw,170px); border-radius: 12px; box-shadow: 0 8px 24px #0b274920; }
  .opening-card-0 { --x: -34vw; --y: -26vh; }
  .opening-card-1 { --x: 0vw; --y: -38vh; }
  .opening-card-2 { --x: 34vw; --y: -26vh; }
  .opening-card-3 { --x: 63vw; --y: 2vh; }
  .opening-card-4 { --x: 34vw; --y: 29vh; }
  .opening-card-5 { --x: 0vw; --y: 38vh; }
  .opening-card-6 { --x: -34vw; --y: 29vh; }
  .opening-card-7 { --x: -63vw; --y: 2vh; }
  .opening-card img { padding: 14px; }
  .opening-card-caption { padding: 8px; }
  .opening-card-caption span { font-size: 9px; }
  .opening-card-caption small { display: none; }
}
@media(max-width:374px) and (orientation:portrait) {
  .opening-anchor { gap: 12px; }
  .opening-headline { font-size: clamp(36px,12vw,44px); }
  .opening-caption { max-width: 26ch; }
  .opening-card-0,.opening-card-2 { --y: -34vh; }
  .opening-card-1 { --y: -40vh; }
  .opening-card-4,.opening-card-6 { --y: 36vh; }
  .opening-card-5 { --y: 40vh; }
}
@media(max-width:1024px) and (max-height:500px) and (orientation:landscape) and (pointer:coarse) {
  .opening-scene { perspective: 1100px; --opening-far: -300px; --opening-near: 360px; }
  .opening-anchor { gap: 10px; padding-block: max(12px,env(safe-area-inset-top),env(safe-area-inset-bottom)); }
  .opening-headline { font-size: clamp(36px,17vh,76px); }
  .opening-wordmark { font-size: 12px; }
  .opening-caption { font-size: 10px; }
  .opening-card { width: clamp(90px,13vw,120px); border-radius: 10px; }
  .opening-card-0 { --x: -35vw; --y: -29vh; }
  .opening-card-1 { --x: 0vw; --y: -35vh; }
  .opening-card-2 { --x: 35vw; --y: -29vh; }
  .opening-card-3 { --x: 59vw; --y: 0vh; }
  .opening-card-4 { --x: 35vw; --y: 29vh; }
  .opening-card-5 { --x: 0vw; --y: 35vh; }
  .opening-card-6 { --x: -35vw; --y: 29vh; }
  .opening-card-7 { --x: -59vw; --y: 0vh; }
  .opening-card img { padding: 12px; }
  .opening-card-caption { padding: 6px; }
  .opening-card-caption span { font-size: 9px; }
  .opening-card-caption small { display: none; }
}
@media(prefers-reduced-motion:reduce) {
  .home-intro-active #homeIntro,.home-intro-active::after { display: none; }
  html.home-intro-active { overflow: auto !important; }
  .home-intro-active body { overflow: auto; }
}

@media(max-width:767px), (max-width:1024px) and (max-height:500px) and (orientation:landscape) and (pointer:coarse) {
  .opening-card { animation-name: opening-fly-mobile; animation-delay: calc(var(--card-index) * 90ms); }
  .opening-anchor { animation-name: opening-anchor-mobile; }
}
