/* ======================================================================
   Bright Care — Clear Aligners cinematic landing page (v2 — dark/glass)
   GPU-only animation. Loaded ONLY on /aligners. Scoped under .alpage.
   ====================================================================== */
.aligner-svg{width:100%;height:100%;display:block;overflow:visible}

/* Lenis smooth-scroll base */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}

/* ── Dark cohesive theme ──────────────────────────────── */
.alpage{background:#081a1d;position:relative}
.alpage .section{background:transparent;color:#c7e2de;position:relative;z-index:1}
.alpage .section--alt{background:rgba(255,255,255,.025)}
.alpage h2,.alpage h3{color:#fff}
.alpage .section__head p{color:#9fc4bf}
.alpage .kicker{color:#7fe0d4}
.alpage .kicker::before,.alpage .kicker::after{background:#ffd79b}
.alpage .grad{background:linear-gradient(105deg,#7fe0d4,#bff0e8,#ffd79b,#7fe0d4);background-size:240% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 7s linear infinite}
@keyframes shimmer{to{background-position:240% center}}

/* ── Bold editorial marquee ── */
.marquee{overflow:hidden;padding:24px 0;white-space:nowrap;border-block:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.02);position:relative;z-index:1;
  -webkit-mask:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.marquee__track{display:inline-flex;align-items:center;gap:44px;animation:marq 26s linear infinite;will-change:transform}
.marquee--rev .marquee__track{animation-direction:reverse;animation-duration:32s}
.marquee__item{display:inline-flex;align-items:center;gap:44px;font-family:var(--serif);font-weight:600;
  font-size:clamp(1.7rem,3.6vw,2.8rem);letter-spacing:.02em;color:rgba(255,255,255,.14);text-transform:uppercase}
.marquee__item b{background:linear-gradient(120deg,#7fe0d4,#bff0e8);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:600}
.marquee__dot{width:11px;height:11px;border-radius:50%;background:#ffd79b;box-shadow:0 0 16px 2px rgba(255,215,153,.5);flex:none}
@keyframes marq{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.marquee__track{animation:none}.alpage .grad{animation:none}}
/* faint starfield over the whole page */
.alpage::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(1px 1px at 20% 30%,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 70% 60%,rgba(127,224,212,.5),transparent),radial-gradient(1px 1px at 45% 80%,rgba(255,255,255,.4),transparent),radial-gradient(1px 1px at 88% 22%,rgba(255,255,255,.4),transparent),radial-gradient(1px 1px at 33% 55%,rgba(127,224,212,.4),transparent);
  background-size:auto}

/* decorative ───────────────────────────────────────────── */
.aurora{position:absolute;border-radius:50%;filter:blur(80px);will-change:transform,opacity}
.aurora--1{width:560px;height:560px;background:radial-gradient(circle,#2fb3c0,transparent 70%);top:-160px;left:-120px;opacity:.55;animation:aur 16s ease-in-out infinite}
.aurora--2{width:480px;height:480px;background:radial-gradient(circle,#5fe0d2,transparent 70%);bottom:-160px;right:-120px;opacity:.4;animation:aur 20s ease-in-out infinite reverse}
.aurora--3{width:400px;height:400px;background:radial-gradient(circle,#ffcf86,transparent 70%);top:38%;left:54%;opacity:.22;animation:aur 24s ease-in-out infinite}
@keyframes aur{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(70px,-46px) scale(1.18)}}
.spark{position:absolute;left:var(--x);top:var(--y);width:7px;height:7px;border-radius:50%;background:#fff;
  box-shadow:0 0 14px 3px rgba(127,224,212,.7);opacity:0;animation:spark 3.6s ease-in-out infinite;animation-delay:var(--d)}
@keyframes spark{0%,100%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1)}}

/* ════ HERO ════ */
.alh{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden;
  background:linear-gradient(160deg,#0a262b,#11484d 55%,#08222600);color:#fff;padding:96px 0 70px}
.alh__bg{position:absolute;inset:0;z-index:0}
.alh__in{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center}
.eyebrow.alh__eye{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);color:#bff0e8;box-shadow:none;backdrop-filter:blur(6px)}
.alh__eye .ic{color:#ffd79b}
.alh__title{font-family:var(--serif);font-weight:600;font-size:clamp(3rem,7.4vw,6rem);line-height:1.0;color:#fff;margin:.36em 0 .34em;letter-spacing:-.02em;
  opacity:0;transform:translateY(34px);animation:rise 1s cubic-bezier(.2,.7,.3,1) .15s forwards}
.alh__lead{font-size:clamp(1.05rem,1.7vw,1.28rem);color:#bcd9d6;max-width:33em;margin-bottom:2em;
  opacity:0;transform:translateY(30px);animation:rise 1s cubic-bezier(.2,.7,.3,1) .32s forwards}
.alh__cta{display:flex;gap:14px;flex-wrap:wrap;opacity:0;transform:translateY(30px);animation:rise 1s cubic-bezier(.2,.7,.3,1) .48s forwards}
.alpage .btn--ghost{background:rgba(255,255,255,.09);color:#fff;border-color:rgba(255,255,255,.24)}
.alpage .btn--ghost:hover{background:rgba(255,255,255,.18)}
.alh__trust{margin-top:2em;opacity:0;animation:fade 1.1s 1.1s forwards}
@keyframes rise{to{opacity:1;transform:none}}
@keyframes fade{to{opacity:1}}
.alh__stage{position:relative;display:grid;place-items:center;min-height:420px;perspective:1100px}
.alh__halo{position:absolute;width:min(460px,84%);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(127,224,212,.4),transparent 64%);animation:pulse2 5s ease-in-out infinite}
@keyframes pulse2{0%,100%{transform:scale(.9);opacity:.65}50%{transform:scale(1.1);opacity:1}}
.alh__aligner{position:relative;width:min(470px,86%);transform-style:preserve-3d;will-change:transform;
  filter:drop-shadow(0 40px 60px rgba(0,0,0,.5))}
.alh__scroll{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);z-index:3;color:#bff0e8;
  font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:8px}
.alh__scroll span{width:24px;height:38px;border:2px solid rgba(255,255,255,.4);border-radius:14px;position:relative}
.alh__scroll span::after{content:"";position:absolute;left:50%;top:7px;width:4px;height:7px;border-radius:3px;background:#fff;transform:translateX(-50%);animation:scrolldot 1.7s ease-in-out infinite}
@keyframes scrolldot{0%{opacity:0;transform:translate(-50%,0)}40%{opacity:1}100%{opacity:0;transform:translate(-50%,12px)}}
@media(max-width:900px){.alh__in{grid-template-columns:1fr;text-align:center}.alh__lead{margin-inline:auto}.alh__cta{justify-content:center}.alh__trust .gbadge{margin-inline:auto}.alh__stage{order:-1;min-height:300px}.alh__scroll{display:none}}

/* ════ CINEMATIC STAGE ════ */
.stage{position:relative;height:380vh;background:linear-gradient(180deg,#08222b,#0b3036)}
.stage__sticky{position:sticky;top:0;height:100vh;overflow:hidden;display:grid;place-items:center;perspective:1300px}
.stage__glow{position:absolute;width:680px;height:680px;border-radius:50%;background:radial-gradient(circle,rgba(63,200,205,.34),transparent 64%);filter:blur(50px);animation:pulse2 7s ease-in-out infinite}
.stage__track{position:absolute;inset:0;display:grid;place-items:center;z-index:2;perspective:1300px}
.stage__aligner{width:min(400px,64vw);transform-style:preserve-3d;will-change:transform;filter:drop-shadow(0 40px 60px rgba(0,0,0,.55))}
.stage__caps{position:absolute;inset:0;z-index:3;display:grid;place-items:center;pointer-events:none}
.stage__cap{position:absolute;text-align:center;color:#fff;max-width:600px;padding:0 24px;opacity:0;transform:translateY(46px) scale(.95);transition:opacity .6s,transform .6s}
.stage__cap.on{opacity:1;transform:none}
.stage__no{display:inline-block;font-weight:800;letter-spacing:.34em;color:#7fe0d4;font-size:.82rem;margin-bottom:12px}
.stage__cap h2{font-family:var(--serif);font-weight:600;font-size:clamp(2.8rem,7.5vw,5.4rem);color:#fff;line-height:1;text-shadow:0 10px 40px rgba(0,0,0,.4)}
.stage__cap p{color:#c7e2de;font-size:clamp(1rem,2vw,1.34rem);margin-top:14px}
.stage__progress{position:absolute;left:0;right:0;bottom:0;height:4px;background:rgba(255,255,255,.1);z-index:4}
.stage__progress span{display:block;height:100%;width:100%;background:linear-gradient(90deg,#7fe0d4,#3fc1cd);box-shadow:0 0 14px rgba(127,224,212,.7);transform:scaleX(0);transform-origin:left;will-change:transform}

/* ════ TEETH STRAIGHTEN ════ */
.straighten{overflow:hidden}
.teeth{display:flex;justify-content:center;align-items:flex-end;gap:10px;max-width:560px;margin:0 auto;height:170px;perspective:600px}
.tooth{width:46px;height:96px;border-radius:14px 14px 22px 22px;background:linear-gradient(180deg,#ffffff,#dcf3ef);
  box-shadow:0 14px 30px -10px rgba(0,0,0,.5),0 0 22px -6px rgba(127,224,212,.5),inset 0 -10px 14px -8px rgba(127,204,196,.6);
  transform:rotate(var(--r)) translateY(var(--y));transition:transform 1.1s cubic-bezier(.2,.85,.3,1)}
.tooth--big{width:54px;height:114px}
.teeth.in .tooth{transform:none}
.teeth.in .tooth:nth-child(1){transition-delay:.05s}.teeth.in .tooth:nth-child(2){transition-delay:.12s}
.teeth.in .tooth:nth-child(3){transition-delay:.19s}.teeth.in .tooth:nth-child(4){transition-delay:.26s}
.teeth.in .tooth:nth-child(5){transition-delay:.33s}.teeth.in .tooth:nth-child(6){transition-delay:.4s}
.teeth.in .tooth:nth-child(7){transition-delay:.47s}.teeth.in .tooth:nth-child(8){transition-delay:.54s}
.straighten__labels{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:34px;font-weight:800;font-size:1.05rem;color:#9fc4bf}
.straighten__labels .grad{font-size:1.3rem}
.straighten__arrow{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--grad);color:#fff;box-shadow:0 0 24px -4px rgba(127,224,212,.6)}
.straighten__arrow .ic{width:20px;height:20px}

/* ════ GLASS CARDS (benefits) ════ */
.albenefits{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.alben{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);padding:32px 28px;
  backdrop-filter:blur(10px);transition:transform .4s,box-shadow .4s,border-color .4s;
  opacity:0;transform:translateY(30px)}
.alben.in,.reveal.alben.in{opacity:1;transform:none}
.alben:hover{transform:translateY(-8px);border-color:rgba(127,224,212,.45);box-shadow:0 30px 60px -28px rgba(0,0,0,.7),0 0 40px -12px rgba(127,224,212,.35)}
.alben__ic{width:60px;height:60px;border-radius:16px;display:grid;place-items:center;background:var(--grad);color:#06262a;margin-bottom:18px;box-shadow:0 0 28px -6px rgba(127,224,212,.6)}
.alben__ic .ic{width:28px;height:28px}
.alben h3{font-size:1.2rem;margin-bottom:6px;color:#fff}
.alben p{font-size:.94rem;color:#9fc4bf}
@media(max-width:820px){.albenefits{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.albenefits{grid-template-columns:1fr}}

/* ════ PROCESS ════ */
.alsteps{display:flex;align-items:flex-start;justify-content:center;flex-wrap:nowrap}
.alstep{flex:1;max-width:300px;text-align:center;padding:0 18px}
.alstep__n{width:66px;height:66px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:1.5rem;color:#06262a;background:var(--grad);box-shadow:0 0 30px -6px rgba(127,224,212,.7)}
.alstep h3{font-size:1.22rem;margin-bottom:8px;color:#fff}.alstep p{font-size:.94rem;color:#9fc4bf}
.alstep__line{flex:0 0 60px;height:2px;margin-top:34px;background:linear-gradient(90deg,#7fe0d4,#3fc1cd);border-radius:2px;box-shadow:0 0 12px rgba(127,224,212,.6);transform:scaleX(0);transform-origin:left;transition:transform .9s}
.alstep__line.in{transform:scaleX(1)}
@media(max-width:760px){.alsteps{flex-direction:column;align-items:center;gap:8px}.alstep__line{width:2px;height:40px;flex-basis:40px;background:linear-gradient(180deg,#7fe0d4,#3fc1cd)}}

/* ════ STATS / FAQ glass overrides ════ */
.alpage .stats{margin-top:0}
.alpage .stats__grid{background:rgba(255,255,255,.045);background-image:none;border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(8px)}
.alpage .stat__num{color:#fff}.alpage .stat__label{color:#9fc4bf}
.alpage .faq__item{background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.1)}
.alpage .faq__item summary{color:#fff}
.alpage .faq__a p{color:#9fc4bf}
.alpage .faq__plus::before,.alpage .faq__plus::after{background:#7fe0d4}

/* ════ FINAL CTA ════ */
.alcta{position:relative;overflow:hidden;padding:clamp(72px,9vw,134px) 0;text-align:center;color:#fff;
  background:linear-gradient(150deg,#0a262b,#11484d);isolation:isolate}
.alcta__bg{position:absolute;inset:0;z-index:0}
.alcta__aligner{position:absolute;right:-70px;top:50%;transform:translateY(-50%) rotate(-12deg);width:360px;opacity:.16;z-index:0}
.alcta__in{position:relative;z-index:2;max-width:740px;margin-inline:auto}
.alcta__in h2{font-family:var(--serif);font-weight:600;color:#fff;font-size:clamp(2.1rem,4.6vw,3.4rem);margin:.4em 0 .4em}
.alcta__in p{color:#bcd9d6;font-size:1.12rem;margin-bottom:1.8em}
.alcta__btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ── Hero particle canvas ── */
.hero-particles{position:absolute;inset:0;z-index:1;pointer-events:none}
.alh__in{z-index:2}
/* ── Light beam / god-ray ── */
.alh__beam{position:absolute;top:-25%;left:32%;width:46%;height:135%;pointer-events:none;z-index:0;
  background:linear-gradient(180deg,rgba(127,224,212,.22),transparent 72%);filter:blur(34px);transform:rotate(9deg);
  animation:beam 8s ease-in-out infinite}
@keyframes beam{0%,100%{opacity:.45;transform:rotate(9deg) scaleY(1)}50%{opacity:.9;transform:rotate(6deg) scaleY(1.06)}}
/* ── Sweeping glare across the aligner ── */
.alh__aligner{position:relative}
.glare{position:absolute;top:-6%;left:0;width:55%;height:112%;pointer-events:none;z-index:3;
  background:linear-gradient(105deg,transparent 32%,rgba(255,255,255,.55) 48%,rgba(255,255,255,.85) 50%,rgba(255,255,255,.55) 52%,transparent 68%);
  filter:blur(5px);mix-blend-mode:screen;transform:translateX(-130%) skewX(-14deg);
  animation:glare 4.6s cubic-bezier(.6,0,.4,1) infinite}
@keyframes glare{0%{transform:translateX(-130%) skewX(-14deg)}55%,100%{transform:translateX(230%) skewX(-14deg)}}
/* ── Lens-flare glints ── */
.flare{position:absolute;width:10px;height:10px;border-radius:50%;z-index:4;pointer-events:none;
  background:radial-gradient(circle,#fff 0,rgba(255,255,255,.6) 35%,transparent 65%);opacity:0;
  animation:flarePulse 4.2s ease-in-out infinite}
.flare::before,.flare::after{content:"";position:absolute;left:50%;top:50%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.95),transparent);transform:translate(-50%,-50%)}
.flare::before{width:64px;height:2px}
.flare::after{width:2px;height:64px}
.flare--1{top:18%;left:16%;animation-delay:.6s}
.flare--2{top:60%;right:12%;left:auto;animation-delay:2.4s}
@keyframes flarePulse{0%,100%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1)}}

.alh__stage .alh__halo{background:radial-gradient(circle,rgba(127,224,212,.5),transparent 62%)}

/* ── How You Wear It ── */
.wear__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.wearcard{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);overflow:hidden;
  backdrop-filter:blur(10px);transition:transform .4s,box-shadow .4s,border-color .4s}
.wearcard:hover{transform:translateY(-8px);border-color:rgba(127,224,212,.45);box-shadow:0 30px 60px -28px rgba(0,0,0,.7),0 0 40px -12px rgba(127,224,212,.35)}
.wearcard__media{aspect-ratio:16/11;overflow:hidden;position:relative;background:#0c2f33}
.wearcard__media img{width:100%;height:100%;object-fit:cover;animation:ken 14s ease-in-out infinite alternate}
.wearcard__media--drop{display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,rgba(127,224,212,.22),transparent 60%)}
.wearcard__media--drop img{width:74%;height:auto;object-fit:contain;animation:none;
  filter:drop-shadow(0 0 18px rgba(127,224,212,.6)) drop-shadow(0 16px 24px rgba(0,0,0,.45))}
.wearcard.in .wearcard__media--drop img{animation:drop 1.1s cubic-bezier(.2,.8,.25,1.1) both}
@keyframes ken{from{transform:scale(1)}to{transform:scale(1.14)}}
@keyframes drop{0%{opacity:0;transform:translateY(-70px) rotate(-8deg) scale(.85)}60%{opacity:1}100%{opacity:1;transform:none}}
.wearcard figcaption{padding:24px 24px 28px;position:relative}
.wearcard__n{position:absolute;top:-22px;right:22px;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-weight:800;color:#06262a;background:var(--grad);box-shadow:0 0 24px -4px rgba(127,224,212,.7)}
.wearcard h3{font-size:1.22rem;margin-bottom:6px;color:#fff}
.wearcard p{font-size:.93rem;color:#9fc4bf}
@media(max-width:820px){.wear__grid{grid-template-columns:1fr;max-width:420px;margin-inline:auto}}

/* ── Lifestyle band ── */
.lifeband{position:relative;min-height:clamp(360px,52vw,520px);display:grid;align-items:center;overflow:hidden}
.lifeband__media{position:absolute;inset:0}
.lifeband__media img{width:100%;height:100%;object-fit:cover;animation:ken 18s ease-in-out infinite alternate}
.lifeband__overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,26,29,.92),rgba(8,26,29,.5) 60%,rgba(8,26,29,.2))}
.lifeband__in{position:relative;z-index:2;max-width:560px}
.lifeband__in h2{font-family:var(--serif);font-weight:600;color:#fff;font-size:clamp(1.9rem,4vw,3rem);margin-bottom:.4em}
.lifeband__in p{color:#c7e2de;font-size:1.08rem;margin-bottom:1.6em}
@media(max-width:640px){.lifeband__overlay{background:linear-gradient(180deg,rgba(8,26,29,.6),rgba(8,26,29,.92))}.lifeband__in{text-align:center}}

@media(prefers-reduced-motion:reduce){
  .aurora,.spark,.alh__halo,.stage__glow,.alh__scroll span::after,.wearcard__media img,.lifeband__media img{animation:none!important}
  .alh__title,.alh__lead,.alh__cta,.alh__trust,.alben{opacity:1!important;transform:none!important;animation:none!important}
  .stage{height:auto}.stage__sticky{position:static;height:auto;padding:60px 0}
  .stage__cap{position:relative;opacity:1;transform:none;margin-bottom:30px}
  .stage__aligner{display:none}.teeth .tooth{transform:none}
}
