/*!
 * Themeasy — Scroll Stack
 *
 * Sticky stacking cards. Each card pins near the top of the viewport via
 * `position: sticky`; the next card rises to cover it, building a depth-sorted
 * deck. GSAP layers the covered card's shrink, tilt, depth scrim and content
 * lift on top of this CSS base.
 *
 * Layering:
 * - Frontend (CSS base): the deck stacks with pure `position: sticky` — works
 *   with no JavaScript. Each item sticks a little lower than the previous one
 *   (--tms-ss-step), so a sliver of every covered card peeks at the top, and
 *   sits --tms-ss-gap below it in the flow so the deck breathes before the
 *   covering starts.
 * - Frontend (JS active): GSAP scrubs scale / rotation / scrim / content lift.
 * - Editor (--static): the same card composition, minus the scroll mechanics —
 *   the deck reads as a plain vertical list and the progress rail stays visible
 *   so it can be seen and styled on the canvas.
 * - Fallback (touch / reduced motion, --fallback added by JS): the plain list
 *   again, with the rail dropped since nothing drives it there.
 *
 * Card layouts: Image + Text (image beside the body) and Full Media
 * (--layout-media / __card--full: the image fills the card, the title is the
 * shared `.tms-display-title` centered over it). Any card may carry the shared
 * `.tms-folder-tab` and a stretched card link. Card Growth (--tms-ss-growth)
 * narrows each card by its distance to the last one (--tms-ss-k, inline), so
 * the deck fans out as it builds.
 *
 * Tokens consumed: --tms-primary-color, --tms-heading-color, --tms-body-color,
 * --tms-surface-color, --tms-border-color, --tms-white-color, --tms-accent-font
 * (public --tms-* design API); --tms-display-title-* / --tms-folder-tab-* for
 * the shared components (shared.min.css).
 *
 * @author Themeasy
 * @link https://themeasy.co
 * @since 1.0.0
 */
.tms-scroll-stack{--tms-ss-offset:80px;--tms-ss-step:18px;--tms-ss-gap:24px;--tms-ss-radius:24px;--tms-ss-card-min-height:60vh;--tms-ss-card-max-width:1040px;--tms-ss-media-width:44%;--tms-ss-media-ratio:3 / 2;--tms-ss-content-gap:16px;--tms-ss-button-gap:12px;--tms-ss-icon-gap:10px;--tms-ss-rail-offset:clamp(12px, 3vw, 44px);--tms-ss-dot-gap:12px;--tms-ss-dim-color:#05070d;--tms-ss-growth:0;--tms-ss-focal-x:50%;--tms-ss-focal-y:50%;--tms-ss-accent:var(--tms-primary-color,#6c5ce7);--tms-ss-ease:cubic-bezier(.22, 1, .36, 1);width:100%;position:relative}.tms-scroll-stack--layout-media{--tms-display-title-size:clamp(2.75rem, 9vw, 8rem)}.tms-scroll-stack__progress{z-index:20;pointer-events:none;padding-block-start:50vh;position:absolute;top:0;bottom:0;left:0;right:0}.tms-scroll-stack__progress-inner{width:max-content;gap:var(--tms-ss-dot-gap);flex-direction:column;margin-inline-start:auto;margin-inline-end:var(--tms-ss-rail-offset);display:flex;position:sticky;top:50vh;transform:translateY(-50%)}.tms-scroll-stack--rail-left .tms-scroll-stack__progress-inner{margin-inline-start:var(--tms-ss-rail-offset);margin-inline-end:auto}.tms-scroll-stack__dot{background-color:var(--tms-border-color,#80808059);width:10px;height:10px;transition:transform .4s var(--tms-ss-ease), background-color .4s var(--tms-ss-ease);border-radius:100px;position:relative}.tms-scroll-stack__dot.is-active{background-color:var(--tms-ss-accent);transform:scale(1.4)}.tms-scroll-stack__list{display:block;position:relative}.tms-scroll-stack__item{top:calc(var(--tms-ss-offset) + var(--tms-ss-i,0) * var(--tms-ss-step));z-index:calc(var(--tms-ss-i,0) + 1);padding-bottom:calc(var(--tms-ss-k,0) * var(--tms-ss-step));pointer-events:none;justify-content:center;display:flex;position:sticky}.tms-scroll-stack__item:not(:first-child){top:calc(var(--tms-ss-offset) + var(--tms-ss-i,0) * var(--tms-ss-step) - var(--tms-ss-gap));margin-top:calc(-1 * (var(--tms-ss-k,-1) + 1) * var(--tms-ss-step));padding-top:var(--tms-ss-gap)}.tms-scroll-stack__card{pointer-events:auto;width:calc(min(100%, var(--tms-ss-card-max-width)) * (1 - var(--tms-ss-k,0) * var(--tms-ss-growth)));max-width:100%;min-height:var(--tms-ss-card-min-height);border-radius:var(--tms-ss-radius);background-color:var(--tms-surface-color,#fff);transform-origin:top;-webkit-backface-visibility:hidden;backface-visibility:hidden;isolation:isolate;flex-direction:column;display:flex;position:relative;overflow:hidden}.tms-scroll-stack:not(.tms-scroll-stack--static):not(.tms-scroll-stack--fallback) .tms-scroll-stack__card{will-change:transform}.tms-scroll-stack__card--has-media{flex-direction:column}.tms-scroll-stack__media{width:100%;aspect-ratio:var(--tms-ss-media-ratio);flex:none;position:relative;overflow:hidden}.tms-scroll-stack__media .tms-scroll-stack__image{object-fit:cover;width:100%;height:100%;display:block}.tms-scroll-stack__body{z-index:2;justify-content:center;align-items:flex-start;gap:var(--tms-ss-content-gap);color:var(--tms-body-color,#4b5563);flex-direction:column;flex:auto;padding:36px;display:flex;position:relative}.tms-scroll-stack__body>*{max-width:100%}.tms-scroll-stack__index{font-variant-numeric:tabular-nums;letter-spacing:.08em;color:var(--tms-ss-accent);font-size:.875rem;font-weight:700}.tms-scroll-stack__eyebrow{font-family:var(--tms-accent-font);letter-spacing:.18em;text-transform:uppercase;color:var(--tms-ss-accent);font-size:.75rem;font-weight:600}.tms-scroll-stack__title{color:var(--tms-heading-color,#0a0c14);margin:0;font-size:clamp(1.5rem,2.6vw,2.4rem);line-height:1.12}.tms-scroll-stack__description{max-width:56ch;color:inherit;margin:0;font-size:1rem;line-height:1.65}.tms-scroll-stack__button{align-items:center;gap:var(--tms-ss-icon-gap);margin-top:var(--tms-ss-button-gap);-webkit-appearance:none;appearance:none;color:var(--tms-white-color,#fff);background-color:var(--tms-ss-accent);cursor:pointer;border:1px solid #0000;border-radius:100px;padding:14px 28px;font-family:inherit;font-size:.875rem;font-weight:600;line-height:1;text-decoration:none;transition:background-color .3s,color .3s,border-color .3s;display:inline-flex}.tms-scroll-stack__button-icon{flex:none;justify-content:center;align-items:center;font-size:1.15em;line-height:0;display:inline-flex}.tms-scroll-stack__button-icon svg{fill:currentColor;width:1em;height:1em}.tms-scroll-stack__button-icon svg[fill=none]{fill:none;stroke:currentColor}.tms-scroll-stack__button-icon img{width:1em;height:1em}.tms-scroll-stack__button-icon i{font-size:inherit;line-height:1}.tms-scroll-stack--icon-left .tms-scroll-stack__button{flex-direction:row-reverse}.tms-scroll-stack__card--full .tms-scroll-stack__media{aspect-ratio:auto;width:100%;height:100%;min-height:0;position:absolute;top:0;bottom:0;left:0;right:0}.tms-scroll-stack__card--full .tms-scroll-stack__media .tms-scroll-stack__image{object-position:var(--tms-ss-focal-x) var(--tms-ss-focal-y)}.tms-scroll-stack__card--full .tms-scroll-stack__media:after{content:"";pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.tms-scroll-stack__card--full .tms-scroll-stack__body{z-index:2;text-align:center;justify-content:center;align-items:center;position:absolute;top:0;bottom:0;left:0;right:0}.tms-scroll-stack__card--full .tms-scroll-stack__title{max-width:100%;font-size:var(--tms-display-title-size);letter-spacing:-.04em;color:var(--tms-white-color,#fff);line-height:.95}.tms-scroll-stack__card--full:not(.tms-scroll-stack__card--has-media) .tms-scroll-stack__title{color:var(--tms-heading-color,#0a0c14)}.tms-scroll-stack__link{z-index:3;border-radius:inherit;position:absolute;top:0;bottom:0;left:0;right:0}.tms-scroll-stack__link:focus-visible{outline:2px solid var(--tms-ss-accent);outline-offset:-6px}.tms-scroll-stack__card--linked .tms-scroll-stack__body{z-index:4;pointer-events:none}.tms-scroll-stack__card--linked .tms-scroll-stack__button{pointer-events:auto}.tms-scroll-stack__tab{top:-1px}.tms-scroll-stack__cover{z-index:5;pointer-events:none;opacity:0;background-color:var(--tms-ss-dim-color,#05070d);border-radius:inherit;position:absolute;top:0;bottom:0;left:0;right:0}@media (min-width:768px){.tms-scroll-stack__card--has-media{flex-direction:row;align-items:stretch}.tms-scroll-stack__card--media-right{flex-direction:row-reverse}.tms-scroll-stack__media{width:var(--tms-ss-media-width,44%);aspect-ratio:auto;min-height:100%}.tms-scroll-stack__body{padding:clamp(40px,4vw,72px)}}.tms-scroll-stack--static .tms-scroll-stack__item,.tms-scroll-stack--fallback .tms-scroll-stack__item{position:static}.tms-scroll-stack--static .tms-scroll-stack__card,.tms-scroll-stack--fallback .tms-scroll-stack__card{transform:none}.tms-scroll-stack--static .tms-scroll-stack__cover,.tms-scroll-stack--fallback .tms-scroll-stack__cover{opacity:0}.tms-scroll-stack--fallback .tms-scroll-stack__progress{display:none}.tms-scroll-stack--fallback .tms-scroll-stack__card{width:min(100%, var(--tms-ss-card-max-width))}@media (prefers-reduced-motion:reduce){.tms-scroll-stack__button,.tms-scroll-stack__dot{transition:none}.tms-scroll-stack__item{position:static}.tms-scroll-stack__card{transform:none}.tms-scroll-stack:not(.tms-scroll-stack--static) .tms-scroll-stack__progress{display:none}}