/* TOP only. Light, kinetic aperture over the actual WebGL scene, not a video. */
.drive-opening { display: none; position: fixed; inset: 0; z-index: 1000; overflow: hidden; pointer-events: none; color: #142334; --drive-ease: cubic-bezier(.76,0,.18,1); }
.drive-intro-running .drive-opening { display: block; animation: drive-opening-safety 6s step-end forwards; }
.drive-opening__veil { position: absolute; inset: 0; background: #edf5f7; }
.drive-opening__veil--left { clip-path: polygon(0 0,76% 0,64% 56%,52% 100%,0 100%); background: linear-gradient(120deg,#fff 10%,#edf5f7 80%); }
.drive-opening__veil--right { clip-path: polygon(75.9% 0,100% 0,100% 100%,51.9% 100%,63.9% 56%); background: linear-gradient(135deg,#eaf4f6,#d5e9ef); }
.drive-opening__brand { position: absolute; top: max(32px,env(safe-area-inset-top)); left: clamp(24px,5vw,80px); right: clamp(24px,5vw,80px); display: flex; justify-content: space-between; align-items: center; gap: 24px; animation: drive-brand-in .65s .12s ease both; }
.drive-opening__brand img { display: block; width: clamp(150px,16vw,220px); height: auto; padding: 9px 12px; background: #fff; }
.drive-opening__brand > span, .drive-opening__footer { font: 700 .875rem/1.5 var(--font-latin); letter-spacing: .12em; }
.drive-opening__title { position: absolute; top: 50%; left: 50%; translate: -50% -50%; width: max-content; max-width: 94%; font: italic 800 clamp(5rem,15vw,14rem)/.8 var(--font-latin); letter-spacing: -.025em; }
.drive-opening__title > span { display: block; padding-right: 1.5em; animation: drive-type-in .85s .12s cubic-bezier(.16,1,.3,1) both; }
.drive-opening__title > strong { display: block; padding-left: .42em; margin-top: .08em; font: inherit; animation: drive-type-in .95s .3s cubic-bezier(.16,1,.3,1) both; }
.drive-opening__dot { color: #f7772d; }
.drive-opening__title p { margin: 32px 0 0 .25em; font: 700 clamp(.9375rem,1.35vw,1.2rem)/1.6 var(--font-body,sans-serif); letter-spacing: .16em; text-align: center; animation: drive-brand-in .7s .65s ease both; }
.drive-opening__trails { position: absolute; inset: 0; overflow: hidden; }
.drive-opening__trails i { position: absolute; width: 120vw; height: 2px; left: -10%; top: 50%; background: linear-gradient(90deg,transparent 10%,#ff873c 50%,#ffb682 85%,transparent); transform: rotate(-18deg) translateX(-120%); animation: drive-light-pass 1.65s .1s cubic-bezier(.55,.02,.8,.42) both; }
.drive-opening__trails i:nth-child(1) { top: 27%; }
.drive-opening__trails i:nth-child(2) { top: 40%; height: 1px; animation-delay: .38s; }
.drive-opening__trails i:nth-child(3) { top: 70%; height: 4px; animation-delay: .55s; }
.drive-opening__trails i:nth-child(4) { top: 83%; height: 1px; animation-delay: .75s; }
.drive-opening__footer { position: absolute; left: clamp(24px,5vw,80px); right: clamp(24px,5vw,80px); bottom: max(32px,env(safe-area-inset-bottom)); display: flex; justify-content: space-between; gap: 24px; align-items: center; border-top: 1px solid #14233426; padding-top: 18px; animation: drive-brand-in .6s .2s ease both; }
.drive-opening__signal { display: flex; align-items: center; gap: 10px; font: 500 .875rem/1.5 var(--font-body,sans-serif); letter-spacing: .04em; }
.drive-opening__signal::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: #ed712c; box-shadow: 0 0 0 5px #ff873c20; }
.drive-intro-revealing .drive-opening__veil--left { animation: drive-aperture-left 1.05s var(--drive-ease) both; }
.drive-intro-revealing .drive-opening__veil--right { animation: drive-aperture-right 1.05s var(--drive-ease) both; }
.drive-intro-revealing .drive-opening__title { animation: drive-title-out .65s cubic-bezier(.65,0,.25,1) both; }
.drive-intro-revealing .drive-opening__brand, .drive-intro-revealing .drive-opening__footer { animation: drive-detail-out .35s ease both; }
.drive-intro-revealing .drive-opening__trails { animation: drive-detail-out .3s ease both; }
.home .drive-hero .poster-hero__title span { animation: none; }
.drive-intro-running .drive-hero .poster-hero__inner { opacity: 0; animation: drive-copy-safety 6s step-end forwards; }
.drive-intro-revealing .drive-hero .poster-hero__inner { animation: drive-copy-in .85s .25s cubic-bezier(.16,1,.3,1) both; }
.drive-intro-running .drive-hero__backword { opacity: 0; }
.drive-intro-revealing .drive-hero__backword { animation: drive-copy-in .85s .25s ease both; }
.motion-paused .drive-opening { display: none; }
.motion-paused .drive-hero .poster-hero__inner, .motion-paused .drive-hero__backword { opacity: 1; }
@keyframes drive-opening-safety { to { visibility: hidden; } }
@keyframes drive-copy-safety { to { opacity: 1; } }
@keyframes drive-brand-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@keyframes drive-type-in { from { opacity: 0; transform: translateX(-80px) skewX(-6deg); } to { opacity: 1; transform: translateX(0) skewX(0); } }
@keyframes drive-light-pass { 0% { opacity: 0; transform: rotate(-18deg) translateX(-120%); } 25%,75% { opacity: 1; } 100% { opacity: 0; transform: rotate(-18deg) translateX(120%); } }
@keyframes drive-aperture-left { to { transform: translateX(-100%); } }
@keyframes drive-aperture-right { to { transform: translateX(100%); } }
@keyframes drive-title-out { to { opacity: 0; transform: translateX(12vw) scale(1.12); filter: blur(5px); } }
@keyframes drive-detail-out { to { opacity: 0; } }
@keyframes drive-copy-in { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@media(max-width:760px) {
  .drive-opening__brand > span { max-width: 110px; font-size: .75rem; text-align: right; }
  .drive-opening__title { font-size: clamp(4.5rem,22vw,9rem); }
  .drive-opening__title p { font-size: .9375rem; margin-top: 28px; letter-spacing: .08em; }
  .drive-opening__footer { flex-direction: column; align-items: flex-start; gap: 12px; font-size: .75rem; }
  .drive-opening__veil--left { clip-path: polygon(0 0,85% 0,50% 57%,20% 100%,0 100%); }
  .drive-opening__veil--right { clip-path: polygon(84.9% 0,100% 0,100% 100%,19.9% 100%,49.9% 57%); }
}
@media(prefers-reduced-motion:reduce) {
  .drive-opening { display: none !important; }
  .drive-intro-running .drive-hero .poster-hero__inner, .drive-intro-running .drive-hero__backword { opacity: 1; animation: none; }
}
