/* Progressive cinematic enhancement. The original design remains the source of truth. */
:root { --cinematic-progress: 0; --section-progress: 0; }
html { scroll-behavior: smooth; }
body { overflow-x: clip; }

/* Aladdin signature motion: restrained gold light, smoke and wish-star details. */
.aladdin-magic-layer { position: fixed; z-index: 7; inset: 0; overflow: hidden; pointer-events: none; }
.wish-comet { position: absolute; right: 18px; top: calc(13vh + var(--wish-travel) * 70vh); width: 18px; height: 18px; opacity: .78; transform: translate3d(var(--wish-sway),-50%,0); transition: top .16s linear; }
.wish-comet span { position: absolute; z-index: 2; inset: 0; display: grid; place-items: center; color: #f58a28; font-size: 13px; text-shadow: 0 0 9px rgba(245,138,40,.7); animation: wish-star-breathe 2.4s ease-in-out infinite; }
.wish-comet::before { content: ""; position: absolute; inset: -13px; border: 1px solid rgba(245,138,40,.18); border-radius: 50%; animation: wish-halo 2.8s ease-out infinite; }
.wish-comet i { position: absolute; right: 8px; top: 50%; width: 72px; height: 1px; opacity: .52; background: linear-gradient(90deg,transparent,rgba(245,138,40,.55)); filter: blur(.3px); transform: translateY(-50%); }
.ambient-sparks i { --sx: calc(8% + (var(--spark) * 8%)); --sy: calc(10% + (var(--spark) * 7%)); position: absolute; left: var(--sx); top: var(--sy); width: 3px; height: 3px; border-radius: 50%; background: #f6a34e; box-shadow: 0 0 8px rgba(246,163,78,.65); opacity: .16; animation: ambient-spark 7s calc(var(--spark) * -.63s) ease-in-out infinite; }
.ambient-sparks i:nth-child(2n) { left: auto; right: calc(5% + var(--spark) * 7%); background: #8bc8ff; box-shadow: 0 0 8px rgba(92,171,238,.52); }

.hero-wish-aura { position: absolute; z-index: 3; right: clamp(5%,9vw,13%); top: 50%; width: clamp(260px,34vw,520px); aspect-ratio: 1; border-radius: 50%; pointer-events: none; background: radial-gradient(circle,rgba(255,197,111,.14),rgba(242,126,31,.055) 36%,transparent 68%); transform: translate3d(var(--magic-pointer-x,0),calc(-50% + var(--magic-pointer-y,0)),0); transition: transform .45s ease-out; }
.hero-wish-aura::before,.hero-wish-aura::after { content: ""; position: absolute; inset: 13%; border: 1px solid rgba(242,126,31,.14); border-radius: 48% 52% 47% 53%; animation: aura-turn 28s linear infinite; }
.hero-wish-aura::after { inset: 25%; border-color: rgba(54,112,175,.12); animation-direction: reverse; animation-duration: 21s; }
.hero-wish-aura i { position: absolute; width: 5px; height: 5px; border-radius: 50%; background: #ffd18d; box-shadow: 0 0 12px rgba(245,137,38,.75); animation: aura-spark 4.6s ease-in-out infinite; }
.hero-wish-aura i:nth-child(1){left:18%;top:38%}.hero-wish-aura i:nth-child(2){right:16%;top:27%;animation-delay:-1.1s}.hero-wish-aura i:nth-child(3){right:9%;bottom:31%;animation-delay:-2.2s}.hero-wish-aura i:nth-child(4){left:27%;bottom:12%;animation-delay:-3.3s}

/* Keep the lamp-and-smoke transition, but remove decorative sparkles from every hero slide. */
.hero-wish-aura i,
.hero .magic-wish span,
.hero .lamp-slide-transition > span { display: none !important; }

.lamp-slide-transition { position: absolute; z-index: 40; inset: 0; overflow: hidden; opacity: 1; pointer-events: none; }
.lamp-slide-transition > img { position: absolute; z-index: 5; left: 50%; bottom: 1.5%; width: clamp(130px,15vw,205px); height: auto; opacity: .96; filter: drop-shadow(0 13px 12px rgba(68,35,8,.34)) drop-shadow(0 0 14px rgba(246,145,37,.3)); transform: translate(-50%,0) rotate(-2deg) scale(.88); transform-origin: 42% 75%; animation: idle-lamp-glow 4.2s ease-in-out infinite; }
.lamp-slide-transition > span { position: absolute; z-index: 7; left: 50%; bottom: 10%; width: 28px; height: 28px; display: grid; place-items: center; color: #fff8c9; opacity: 0; border-radius: 50%; background: radial-gradient(circle,#fff 0 10%,#ffc76d 28%,rgba(243,126,26,.22) 66%,transparent 72%); box-shadow: 0 0 20px rgba(255,179,72,.85),0 0 54px rgba(242,119,23,.48); transform: translate(-18px,0) scale(.25); }
.lamp-transition-smoke { position: absolute; z-index: 4; left: 50%; bottom: 8%; width: min(680px,76vw); height: 72%; transform: translateX(-50%); }
.lamp-transition-smoke i { --smoke-x:0%; --smoke-turn:7deg; --smoke-mid-turn:3deg; position: absolute; left: 50%; bottom: 0; width: 24%; height: 78%; opacity: 0; border-radius: 48% 52% 45% 55%; background: radial-gradient(ellipse at 50% 92%,rgba(255,238,197,.84),rgba(245,158,67,.46) 27%,rgba(80,153,215,.22) 53%,transparent 75%); filter: blur(19px); mix-blend-mode: screen; transform: translateX(-50%) scale(.18,.08); transform-origin: 50% 100%; }
.lamp-transition-smoke i:nth-child(2) { --smoke-x:-26%; --smoke-turn:-13deg; --smoke-mid-turn:-5deg; width: 31%; margin-left: -9%; filter: blur(24px); }
.lamp-transition-smoke i:nth-child(3) { --smoke-x:31%; --smoke-turn:16deg; --smoke-mid-turn:7deg; width: 35%; margin-left: 12%; filter: blur(29px); }
.lamp-transition-smoke i:nth-child(4) { --smoke-x:-45%; --smoke-turn:-21deg; --smoke-mid-turn:-9deg; width: 23%; height: 66%; margin-left: -17%; background: radial-gradient(ellipse at 50% 90%,rgba(255,227,170,.68),rgba(230,126,39,.3) 32%,rgba(79,155,220,.24) 58%,transparent 76%); filter: blur(17px); }
.lamp-transition-smoke i:nth-child(5) { --smoke-x:48%; --smoke-turn:23deg; --smoke-mid-turn:10deg; width: 27%; height: 70%; margin-left: 19%; background: radial-gradient(ellipse at 50% 90%,rgba(220,241,255,.56),rgba(76,151,216,.27) 39%,rgba(244,144,50,.18) 61%,transparent 78%); filter: blur(22px); }
.lamp-transition-veil { position: absolute; z-index: 3; inset: -12%; opacity: 0; background: radial-gradient(ellipse at 50% 94%,rgba(255,245,214,.92),rgba(247,165,73,.44) 23%,rgba(63,133,198,.12) 49%,transparent 72%); filter: blur(12px); transform: scale(.35); transform-origin: 50% 94%; }
.hero.is-casting .lamp-slide-transition { opacity: 1; }
.hero.is-casting .lamp-slide-transition > img { animation: transition-lamp 1.05s cubic-bezier(.2,.72,.2,1) both; }
.hero.is-casting .lamp-slide-transition > span { animation: transition-flare .8s .08s ease-out both; }
.hero.is-casting .lamp-transition-smoke i:nth-child(1) { animation: transition-smoke 1s .04s cubic-bezier(.18,.7,.2,1) both; }
.hero.is-casting .lamp-transition-smoke i:nth-child(2) { animation: transition-smoke 1s .11s cubic-bezier(.18,.7,.2,1) both; }
.hero.is-casting .lamp-transition-smoke i:nth-child(3) { animation: transition-smoke 1s .17s cubic-bezier(.18,.7,.2,1) both; }
.hero.is-casting .lamp-transition-smoke i:nth-child(4) { animation: transition-smoke 1.05s .08s cubic-bezier(.18,.7,.2,1) both; }
.hero.is-casting .lamp-transition-smoke i:nth-child(5) { animation: transition-smoke 1.08s .14s cubic-bezier(.18,.7,.2,1) both; }
.hero.is-casting .lamp-transition-veil { animation: transition-veil 1.02s ease both; }

.wish-section { position: relative; isolation: isolate; }
.wish-section::before { content: ""; position: absolute; z-index: 0; left: 50%; top: -42px; width: min(720px,82vw); height: 94px; opacity: 0; pointer-events: none; background: radial-gradient(ellipse,rgba(247,172,88,.19),rgba(75,139,201,.07) 42%,transparent 72%); filter: blur(17px); transform: translate(-50%,25px) scaleX(.68); transition: opacity .9s ease,transform 1.25s cubic-bezier(.16,.76,.24,1); }
.wish-section.magic-arrived::before { opacity: 1; transform: translate(-50%,0) scaleX(1); animation: section-wish-fade 1.8s 1.1s ease forwards; }
.wish-section > .container { position: relative; z-index: 1; }

@keyframes wish-star-breathe { 50% { color:#ffd38f; text-shadow:0 0 16px rgba(245,138,40,.9); transform:scale(1.3) rotate(18deg); } }
@keyframes wish-halo { from { opacity:.7; transform:scale(.45); } to { opacity:0; transform:scale(1.25); } }
@keyframes ambient-spark { 0%,100% { opacity:.08; transform:translateY(0) scale(.7); } 50% { opacity:.38; transform:translateY(-14px) scale(1.15); } }
@keyframes aura-turn { to { transform:rotate(360deg); } }
@keyframes aura-spark { 0%,100% { opacity:.2; transform:scale(.7); } 50% { opacity:.9; transform:scale(1.25); } }
@keyframes section-wish-fade { to { opacity:0; filter:blur(28px); } }
@keyframes idle-lamp-glow { 0%,100% { filter:drop-shadow(0 13px 12px rgba(68,35,8,.34)) drop-shadow(0 0 11px rgba(246,145,37,.24)); } 50% { filter:drop-shadow(0 13px 12px rgba(68,35,8,.34)) drop-shadow(0 0 22px rgba(246,145,37,.5)); transform:translate(-50%,-2px) rotate(-1deg) scale(.9); } }
@keyframes transition-lamp { 0% { opacity:.96; transform:translate(-50%,0) rotate(-2deg) scale(.88); } 24% { opacity:1; transform:translate(-50%,-4px) rotate(5deg) scale(.98); } 48% { transform:translate(-50%,-2px) rotate(-4deg) scale(1); } 100% { opacity:.96; transform:translate(-50%,0) rotate(-2deg) scale(.88); } }
@keyframes transition-flare { 0% { opacity:0; transform:translate(-18px,0) scale(.2); } 28% { opacity:1; transform:translate(-18px,-14px) scale(1.45); } 100% { opacity:0; transform:translate(-18px,-220px) scale(2.3); } }
@keyframes transition-smoke { 0% { opacity:0; transform:translateX(-50%) scale(.16,.06); } 24% { opacity:.88; } 48% { opacity:.76; transform:translateX(calc(-50% + var(--smoke-x))) translateY(-9%) scale(1.25,.8) rotate(var(--smoke-mid-turn)); } 78% { opacity:.42; } 100% { opacity:0; transform:translateX(calc(-50% + var(--smoke-x))) translateY(-34%) scale(2.55,1.45) rotate(var(--smoke-turn)); } }
@keyframes transition-veil { 0% { opacity:0; transform:scale(.28); } 42% { opacity:.86; transform:scale(1.1); } 64% { opacity:.7; } 100% { opacity:0; transform:scale(1.55); } }

@media (prefers-reduced-motion: reduce) { .lamp-slide-transition { display:block; } .lamp-transition-smoke,.lamp-transition-veil,.lamp-slide-transition > span { display:none; } .lamp-slide-transition > img { opacity:.96; animation:none; } }

.wish-thread { position: fixed; z-index: 8; right: 22px; top: 30vh; width: 1px; height: 40vh; pointer-events: none; background: rgba(244,135,31,.12); }
.wish-thread::before { content: ""; position: absolute; inset: 0; background: linear-gradient(#f58c2c,#ffd89a); transform: scaleY(var(--cinematic-progress)); transform-origin: top; box-shadow: 0 0 12px rgba(245,140,44,.34); }
.wish-thread i { position: absolute; left: 50%; top: calc(var(--cinematic-progress) * 100%); width: 5px; height: 5px; border-radius: 50%; background: #f58c2c; box-shadow: 0 0 0 4px rgba(245,140,44,.09),0 0 13px rgba(245,140,44,.55); transform: translate(-50%,-50%); }

.site-header { transition: background-color .35s ease,box-shadow .35s ease,transform .35s ease; }
.site-header.is-scrolled { background: rgba(255,255,255,.94); box-shadow: 0 10px 30px rgba(6,22,63,.07); backdrop-filter: blur(14px); }
.nav-links > a::after { content: ""; display: block; width: 100%; height: 2px; margin-top: 3px; background: #f47f20; transform: scaleX(0); transform-origin: right; transition: transform .28s ease; }
.nav-links > a:hover::after,.nav-links > a.is-active::after { transform: scaleX(1); transform-origin: left; }

.hero-copy > * { opacity: 0; transform: translateY(22px); }
.hero-slide.is-active .hero-copy > * { animation: cinematic-rise .72s cubic-bezier(.2,.72,.2,1) forwards; }
.hero-slide.is-active .hero-copy > *:nth-child(2) { animation-delay: .09s; }
.hero-slide.is-active .hero-copy > *:nth-child(3) { animation-delay: .18s; }
.hero-slide.is-active .hero-copy > *:nth-child(4) { animation-delay: .27s; }
.hero-slide.is-active .hero-copy > *:nth-child(5) { animation-delay: .34s; }
.hero-art { overflow: hidden; }
.hero-art img { --image-y: 0px; transform: translate3d(0,var(--image-y),0) scale(1.035); transition: transform 1.25s cubic-bezier(.2,.7,.2,1); }
.hero-slide.is-active .hero-art img { transform: translate3d(0,var(--image-y),0) scale(1); }

.cinematic-reveal { opacity: 0; transform: translate3d(0,28px,0); transition: opacity .72s ease,transform .85s cubic-bezier(.2,.72,.2,1); transition-delay: var(--motion-delay,0ms); }
.cinematic-reveal.is-visible { opacity: 1; transform: translate3d(0,0,0); }
.cinematic-image { overflow: hidden; }
.cinematic-image img { --parallax-y: 0px; transform: translate3d(0,var(--parallax-y),0) scale(1.045); transition: transform .18s linear; }
.industry-grid > a { transition: transform .35s ease,box-shadow .35s ease; }
.industry-grid > a:hover { transform: translateY(-5px); box-shadow: 0 18px 38px rgba(6,22,63,.14); }
.industry-grid > a:hover img { transform: translate3d(0,var(--parallax-y),0) scale(1.075); }

.ecosystem .orbit { stroke-dasharray: 1; }
.ecosystem .atom { opacity: .25; transform: scale(.88); transition: opacity .5s ease,transform .65s cubic-bezier(.2,.75,.2,1); transition-delay: var(--eco-delay); }
.ecosystem.is-assembled .atom { opacity: 1; transform: scale(1); }
.ecosystem .atom-1 { --eco-delay: 80ms; }.ecosystem .atom-2 { --eco-delay: 150ms; }.ecosystem .atom-3 { --eco-delay: 220ms; }
.ecosystem .atom-4 { --eco-delay: 290ms; }.ecosystem .atom-5 { --eco-delay: 360ms; }.ecosystem .atom-6 { --eco-delay: 430ms; }

.journey { --journey-progress: 0; }
.journey-grid { position: relative; }
.journey-grid::before { content: ""; position: absolute; z-index: 0; left: 4%; right: 4%; top: 50%; height: 2px; background: linear-gradient(90deg,#f47f20 calc(var(--journey-progress) * 100%),rgba(255,255,255,.14) 0); transition: background .12s linear; }
.journey-grid > * { position: relative; z-index: 1; }
.journey-grid article.is-active span { color: #fff; background: #f47f20; box-shadow: 0 0 0 7px rgba(244,127,32,.13); transition: .35s ease; }

.btn,.wish-button { position: relative; overflow: hidden; transform: translateZ(0); }
.btn::after,.wish-button::after { content: ""; position: absolute; inset: 0; background: linear-gradient(110deg,transparent 25%,rgba(255,255,255,.22),transparent 70%); transform: translateX(-130%); transition: transform .55s ease; }
.btn:hover::after,.wish-button:hover::after { transform: translateX(130%); }
.btn span:not(.play),.wish-button span { display: inline-block; transition: transform .25s ease; }
.btn:hover span:not(.play),.wish-button:hover span { transform: translateX(3px); }
.btn .play,.btn:hover .play { display: inline-grid; place-items: center; transform: none; }

.magic-cursor-wave { position: fixed; z-index: 9998; inset: 0; width: 100%; height: 100%; pointer-events: none; mix-blend-mode: screen; }

@keyframes cinematic-rise { to { opacity: 1; transform: translateY(0); } }

@media (max-width: 900px) {
  .wish-thread { display: none; }
  .journey-grid::before { display: none; }
  .cinematic-reveal { transform: translate3d(0,16px,0); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .wish-thread { display: none; }
  .cinematic-reveal,.hero-copy > * { opacity: 1!important; transform: none!important; animation: none!important; transition: none!important; }
  .hero-art img,.cinematic-image img,.industry-grid > a { transform: none!important; transition: none!important; }
  .ecosystem .atom { opacity: 1; transition: none; }
  .magic-cursor-wave { display: none; }
}
