/* OYL Aurora Glass unification layer - loads after all page styles */
/* Typography: Oswald/Playfair -> Archivo (matches homepage redesign) */
.about-cta .section-label-cta,.about-cta a,.about-photo-caption,.about-stat .label,.article-body h2,.article-body h3,.blog-body .cta-box a,.blog-body h2,.blog-body h3,.blog-card .blog-tag,.blog-card h3,.blog-hero .meta,.blog-hero h1,.blog-nav a,.breadcrumb,.btn-light,.btn-navy,.btn-outline,.btn-primary,.card h3,.contact-badge,.contact-info h3,.cta-banner .btn-primary,.cta-banner h2,.faq-q,.footer-col h4,.form-group label,.form-submit,.hf-mockup .mock-bar,.hf-mockup .mock-stat .l,.metric-card .label,.metrics-section-title,.nav-cta,.nav-links a,.nav-logo-text,.navy-cta a,.page-header .eyebrow,.page-header h1,.process-card h3,.section-label,.section-title,.sticky-cta .brand,.sticky-cta .btn-sm{font-family:'Archivo',sans-serif!important}
.about-cta h2,.about-stat .marker,.about-stat .num,.contact-header-section h1,.cta-banner h2,.editorial-heading h2,.excuse-list p,.faq-q,.form-header h2,.form-success h3,.hf-feature h4,.hf-mockup .mock-stat .n,.how-step .num,.how-step h3,.metric-card .value,.narrative h2,.navy-cta h2,.page-header h1,.page-hero h1,.process-header h2,.process-num,.real-results h2,.rr-item h3,.rr-number,.svc-card .card-num,.svc-card h3{font-family:'Archivo',sans-serif!important;font-style:normal!important}

/* glass cards */
.svc-card,.process-card{padding:28px 26px!important;border:1px solid rgba(15,16,20,.08)!important;border-radius:16px!important;background:#ffffff!important;box-shadow:0 1px 3px rgba(15,16,20,.05)!important;overflow:hidden}
.metric-card{border:1px solid rgba(15,16,20,.08)!important;border-radius:16px!important;background:#ffffff!important;box-shadow:0 1px 3px rgba(15,16,20,.05)!important;overflow:hidden}
.svc-card:hover,.process-card:hover,.metric-card:hover{border-color:rgba(59,108,255,.45)!important;transform:translateY(-2px)}

/* cursor spotlight v2 - surface wash + border glow */
.spotlight-card,.svc-card,.metric-card,.process-card{position:relative}
.spotlight-card::before,.svc-card::before,.metric-card::before,.process-card::before{content:"";position:absolute;inset:0;width:auto!important;height:auto!important;transform:none!important;border-radius:inherit;opacity:0;transition:opacity .5s ease;pointer-events:none;z-index:0;background:radial-gradient(340px circle at var(--mx,50%) var(--my,50%),rgba(59,108,255,.16),transparent 65%)}
.spotlight-card:hover::before,.svc-card:hover::before,.metric-card:hover::before,.process-card:hover::before{opacity:1}
.spotlight-card::after,.svc-card::after,.metric-card::after,.process-card::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;opacity:0;transition:opacity .5s ease;pointer-events:none;background:radial-gradient(220px circle at var(--mx,50%) var(--my,50%),rgba(59,108,255,.9),transparent 70%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
.spotlight-card:hover::after,.svc-card:hover::after,.metric-card:hover::after,.process-card:hover::after{opacity:1}
.spotlight-card>*,.svc-card>*,.metric-card>*,.process-card>*{position:relative}

/* CTA sheen sweep */
.btn-primary,.btn-navy,.btn-solid,.nav-cta{position:relative;overflow:hidden}
.btn-primary::after,.btn-navy::after,.btn-solid::after,.nav-cta::after{content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);pointer-events:none}
.btn-primary:hover::after,.btn-navy:hover::after,.btn-solid:hover::after,.nav-cta:hover::after{animation:oylSheen .8s ease}
@keyframes oylSheen{to{left:130%}}

/* hero mouse glow */
.page-hero,.hero,.page-header,.blog-hero{position:relative}
.hero-glow{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(560px circle at var(--mx,70%) var(--my,30%),rgba(59,108,255,.13),transparent 70%)}

/* word-by-word blur reveal */
.hw{display:inline-block;opacity:0;transform:translateY(12px);filter:blur(8px);transition:opacity .6s cubic-bezier(.23,1,.32,1),transform .6s cubic-bezier(.23,1,.32,1),filter .6s cubic-bezier(.23,1,.32,1)}
.hw.on{opacity:1;transform:none;filter:blur(0)}

@media(prefers-reduced-motion:reduce){
  .hw{opacity:1;transform:none;filter:none}
  .btn-primary::after,.btn-navy::after,.btn-solid::after,.nav-cta::after{display:none}
}
