/* ===== Index Dynamic Entrance (pntwhere-inspired) ===== */

/* ---------- Loading Overlay ---------- */
.loading-overlay{position:fixed;inset:0;z-index:99999;background:#0a0a0a;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .6s cubic-bezier(.4,0,.2,1),visibility .6s;pointer-events:all}
.loading-overlay.done{opacity:0;visibility:hidden;pointer-events:none}
.loader-counter{font-size:clamp(4rem,12vw,8rem);font-weight:700;font-family:'JetBrains Mono',monospace;background:var(--gradient-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.04em;line-height:1}
.loader-label{font-size:.85rem;color:var(--text-muted);letter-spacing:.25em;text-transform:uppercase;margin-top:.8rem}
.loader-bar-track{width:200px;height:2px;background:rgba(255,255,255,.08);border-radius:1px;margin-top:1.5rem;overflow:hidden}
.loader-bar-fill{width:0;height:100%;background:var(--gradient-primary);border-radius:1px;transition:width .05s linear}

/* ---------- Hero Clip-Reveal ---------- */
.hero-entrance .hero-content{opacity:1}

/* Hero line-by-line clip reveal */
.clip-line{display:block;overflow:hidden}
.clip-line-inner{display:block;transform:translateY(110%);transition:transform .9s cubic-bezier(.16,1,.3,1);
  background:var(--gradient-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.hero-entrance.revealed .clip-line-inner{transform:translateY(0)}
.hero-entrance.revealed .clip-line:nth-child(2) .clip-line-inner{transition-delay:.12s}
.hero-entrance.revealed .clip-line:nth-child(3) .clip-line-inner{transition-delay:.24s}
.hero-entrance.revealed .clip-line:nth-child(4) .clip-line-inner{transition-delay:.36s}

/* Hero sub / CTA stagger */
.hero-sub-reveal{opacity:0;transform:translateY(20px);transition:opacity .8s ease .5s,transform .8s ease .5s}
.hero-entrance.revealed .hero-sub-reveal{opacity:1;transform:translateY(0)}
.hero-cta-reveal{opacity:0;transform:translateY(20px);transition:opacity .8s ease .7s,transform .8s ease .7s}
.hero-entrance.revealed .hero-cta-reveal{opacity:1;transform:translateY(0)}

/* ---------- News Ticker (horizontal marquee) ---------- */
.news-ticker{overflow:hidden;border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);background:rgba(10,10,10,.5);padding:.9rem 0}
.news-ticker-track{display:flex;width:max-content;animation:tickerScroll 30s linear infinite}
.news-ticker-track a{flex-shrink:0;display:flex;align-items:center;gap:.75rem;padding:0 2.5rem;color:var(--text-secondary);text-decoration:none;font-size:.9rem;white-space:nowrap;transition:color .3s ease}
.news-ticker-track a:hover{color:var(--accent-cyan)}
.news-ticker-track .ticker-date{color:var(--accent-cyan);font-family:'JetBrains Mono',monospace;font-size:.8rem}
.news-ticker-track .ticker-dot{width:5px;height:5px;border-radius:50%;background:var(--accent-cyan);flex-shrink:0}
@keyframes tickerScroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ---------- Scroll Reveal ---------- */
.sr{opacity:0;transform:translateY(50px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.sr.sr-left{transform:translateX(-50px)}
.sr.sr-right{transform:translateX(50px)}
.sr.sr-scale{transform:scale(.92)}
.sr.active{opacity:1;transform:none}

/* ---------- Section Divider ---------- */
.section-divider{display:flex;align-items:center;gap:1.5rem;margin-bottom:3rem}
.section-divider .div-num{font-size:clamp(3rem,8vw,5rem);font-weight:800;background:linear-gradient(135deg,rgba(0,212,255,.1),rgba(139,92,246,.08));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;font-family:'JetBrains Mono',monospace}
.section-divider .div-line{flex:1;height:1px;background:var(--border-subtle)}
.section-divider .div-label{font-size:.75rem;color:var(--text-muted);letter-spacing:.3em;text-transform:uppercase}

/* ---------- Rolling Text Nav (hover flip) ---------- */
.rolling-link{display:inline-flex;overflow:hidden;height:1.4em;vertical-align:middle;position:relative}
.rolling-link span{display:block;transition:transform .4s cubic-bezier(.4,0,.2,1);line-height:1.4em}
.rolling-link span::after{content:attr(data-text);display:block;line-height:1.4em}
.rolling-link:hover span{transform:translateY(-1.4em)}

/* ---------- Parallax Float Elements ---------- */
.float-el{position:absolute;border-radius:50%;pointer-events:none;filter:blur(60px);will-change:transform}
.float-el-1{width:400px;height:400px;background:rgba(0,212,255,.06);top:10%;left:-5%}
.float-el-2{width:300px;height:300px;background:rgba(139,92,246,.06);bottom:10%;right:-5%}
.float-el-3{width:250px;height:250px;background:rgba(236,72,153,.04);top:50%;left:60%}

/* ---------- Enhanced Section Cards ---------- */
.cards-stagger .article-card{opacity:0;transform:translateY(40px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1),box-shadow .4s ease,border-color .4s ease}
.cards-stagger .article-card.visible{opacity:1;transform:translateY(0)}

/* ---------- Responsive ---------- */
@media(max-width:768px){
    .float-el{display:none}
    .news-ticker-track a{padding:0 1.5rem;font-size:.8rem}
}
