/* Horizon cinematic motion: single isolated layer. Existing layout rules remain in styles.css. */
@keyframes hzIntroWord {from{opacity:0;clip-path:inset(0 0 100% 0);filter:blur(12px)}to{opacity:1;clip-path:inset(0 0 0 0);filter:blur(0)}}
@keyframes hzIntroRule {from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes hzIntroExit {0%,65%{transform:translateY(0);opacity:1}100%{transform:translateY(-105%);opacity:1}}
@keyframes hzHeroWords {from{opacity:0;clip-path:inset(0 0 100% 0);filter:blur(8px)}to{opacity:1;clip-path:inset(0 0 0 0);filter:blur(0)}}
@keyframes hzHeroVisual {from{opacity:0;clip-path:circle(3% at 50% 55%);filter:blur(12px)}to{opacity:1;clip-path:circle(110% at 50% 55%);filter:blur(0)}}
@keyframes hzBadge {from{opacity:0;scale:.7;filter:blur(8px)}to{opacity:1;scale:1;filter:blur(0)}}
@keyframes hzDraw {from{stroke-dashoffset:340}to{stroke-dashoffset:0}}
@keyframes hzPulse {0%,100%{opacity:.35}50%{opacity:.8}}
.hz-intro{display:none}
@media(prefers-reduced-motion:no-preference){
  .hz-intro{display:grid;place-items:center;position:fixed;inset:0;z-index:9999;background:#050d09;pointer-events:none;overflow:hidden;animation:hzIntroExit 3s cubic-bezier(.76,0,.24,1) both}
  .hz-intro:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,rgba(46,145,74,.18),transparent 55%)}
  .hz-intro-content{position:relative;text-align:center;padding:25px}
  .hz-intro-kicker,.hz-intro-sub{display:block;color:#a4e6b7;letter-spacing:.32em;font-size:clamp(9px,1.1vw,12px);font-weight:700;animation:hzIntroWord .65s .15s both}
  .hz-intro-title{font-size:clamp(58px,12vw,170px);font-weight:800;letter-spacing:-.085em;line-height:1.3;color:#effff0;animation:hzIntroWord 1.1s .32s both}
  .hz-intro-period{color:#54ef83}
  .hz-intro-line{height:1px;max-width:440px;margin:5px auto 24px;background:linear-gradient(90deg,transparent,#7cf6a0,transparent);transform-origin:center;animation:hzIntroRule .9s .9s both}
  .hz-intro-sub{animation-delay:1.1s}
  .hero-copy>.eyebrow{animation:hzHeroWords .8s 2.45s both}
  .hero-copy>h1{animation:hzHeroWords 1.2s 2.6s both}
  .hero-copy>p{animation:hzHeroWords .85s 3s both}
  .hero-buttons{animation:hzHeroWords .85s 3.2s both}
  .hero-foot{animation:hzHeroWords .85s 3.45s both}
  .hero-canvas{animation:hzHeroVisual 1.6s 2.55s both}
  .hero-top-card{animation:hzBadge .8s 3.6s both}
  .hero-small-card{animation:hzBadge .8s 3.85s both}
  .sparkline polyline{stroke-dasharray:340;animation:hzDraw 1.5s 4.1s both}
  .hero-halo:before{animation:hzPulse 5s ease-in-out infinite}
  .hero-top-card,.hero-small-card{transition:scale .6s cubic-bezier(.22,1,.36,1),translate .6s cubic-bezier(.22,1,.36,1),opacity .6s,filter .6s}
  @media(hover:hover) and (pointer:fine){
    .hero-canvas:hover .hero-top-card{scale:.78;translate:24px -18px;opacity:.3;filter:blur(2px)}
    .hero-canvas:hover .hero-small-card{scale:.78;translate:-22px 20px;opacity:.3;filter:blur(2px)}
    .hero-canvas:hover .hero-illustration{scale:1.045;transition:scale .65s ease}
    .bento .tile:hover .tile-art{scale:1.07;transition:scale .7s ease}
    .feature-card:hover{translate:0 -6px;border-color:rgba(110,239,151,.43);transition:translate .35s,border-color .35s}
  }
  .hz-scroll-item{opacity:0;translate:0 28px;transition:opacity .8s ease,translate .8s cubic-bezier(.22,1,.36,1);transition-delay:var(--hz-delay,0ms)}
  .hz-scroll-item.hz-visible{opacity:1;translate:0 0}
  .reveal.in{animation:none}
}
@media(prefers-reduced-motion:reduce){.hz-intro{display:none!important}}
