/* StudyVest v19.0 — 120 Hz readiness pass
   Goal: minimise scroll-time paint/compositing cost on capable 120 Hz devices.
   This cannot force a 120 Hz panel/browser to render at 120 FPS. */

:root{
  --sv190-shadow:0 4px 12px rgba(8,31,63,.035);
  --sv190-shadow-hero:0 8px 20px rgba(8,31,63,.045);
}

/* Native scrolling is usually smoother than scripted/smooth interpolation at high refresh rates. */
html{scroll-behavior:auto!important}
body{overscroll-behavior-y:auto}

/* Avoid expensive translucent blur on the element that repaints throughout every scroll frame. */
.header{
  background:#fff!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  box-shadow:0 1px 0 rgba(8,31,63,.07)!important;
}

/* Keep effects cheap and stable while scrolling. */
.path-card,.simple-card,.tool-card,.article-card,.course-card,.dashboard-card,.pricing-card,
.calc-card,.account-panel,.member-panel,.sv13-card,.member-card,.country-experience-card,
.featured-article,.media-story-main,.media-story-card,.media-frame,.feature-image,
.learning-visual-stack>img,.learning-preview,.news-lead-card,.news-story-card,.news-side-card,
.auth-card,.metric,.panel{
  box-shadow:var(--sv190-shadow)!important;
  filter:none!important;
}

.hero-board,.pro-hero{box-shadow:var(--sv190-shadow-hero)!important}

/* Do not promote every image/video to its own GPU layer. Layer explosion is especially costly on mobile. */
img,video{
  transform:none!important;
  backface-visibility:visible!important;
  will-change:auto!important;
}
video{contain:paint}

/* Continuous decorative movement consumes the frame budget. Keep the data, remove the perpetual animation. */
.ticker{overflow:auto!important;scrollbar-width:none}
.ticker::-webkit-scrollbar{display:none}
.ticker-track{
  animation:none!important;
  transform:none!important;
  padding-left:18px!important;
  display:flex!important;
  width:max-content;
}

/* Interactions should never require layout-changing transforms. */
.button,.country-card,.account-side a,.member-side a,
.path-card,.simple-card,.tool-card,.article-card,.course-card,.news-story-card,.news-side-card,.news-lead-card{
  transition:background-color .12s linear,border-color .12s linear,color .12s linear,opacity .12s linear!important;
  will-change:auto!important;
}
.button:hover,.country-card:hover,.path-card:hover,.simple-card:hover,.tool-card:hover,
.article-card:hover,.course-card:hover,.news-story-card:hover,.news-side-card:hover,.news-lead-card:hover{
  transform:none!important;
}

/* Containment gives the browser smaller paint/layout regions. */
.article-card,.course-card,.path-card,.simple-card,.tool-card,.calc-card,
.news-story-card,.news-side-card,.news-lead-card,.sv13-card,.account-panel,.member-panel{
  contain:layout paint style;
}

/* Render below-the-fold content on demand on modern Chromium/Safari builds that support it. */
@supports(content-visibility:auto){
  main>.section,
  main>.world-news-section,
  main>.signal-panel,
  main>.market-video-panel,
  .article-grid>article:nth-child(n+4),
  .course-grid>article:nth-child(n+3),
  .footer{
    content-visibility:auto;
    contain-intrinsic-size:auto 640px;
  }
}

/* Large images should paint within their own box, not trigger wider repaints. */
.media-frame,.feature-image,.learning-visual-stack,.news-image-wrap,.hero-board,.pro-hero{
  contain:paint;
}

/* Keep sticky article navigation cheap on narrow/lower-power devices. */
@media(max-width:900px){
  .article-aside{position:static!important}
}

/* Mobile: simplify large paint surfaces further. */
@media(max-width:720px){
  .section{padding-top:58px!important;padding-bottom:58px!important}
  .path-card,.simple-card,.tool-card,.article-card,.course-card,.pricing-card,.calc-card,.account-panel,.member-panel,.sv13-card{
    box-shadow:none!important;
  }
  .header{box-shadow:0 1px 0 rgba(8,31,63,.08)!important}
  .market-video-panel video{max-height:260px!important}
}

/* Users asking the OS to save battery/data get the lowest-cost presentation automatically. */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
/* v19.4 World & Markets public simplification */
.market-simple-cta{margin:42px 0 12px;padding:0}.market-simple-cta-inner{max-width:860px;margin:0 auto;padding:36px;border:1px solid var(--line,#dce5f2);border-radius:24px;background:#fff;text-align:center}.market-simple-cta h2{margin:10px auto 12px;max-width:720px}.market-simple-cta p{max-width:680px;margin:0 auto 20px;color:var(--muted,#66758d)}
