/* fx.css — text/typography motion layer (reverse-engineered from the Ridgeline video) */
:root{--fx-ease:cubic-bezier(.16,1,.3,1);--navy:#0f1f3d;--slate:#5b6578;--mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* mono micro-labels + top status bar */
.fx-label{display:inline-block;white-space:pre;font:500 11px/1 var(--mono);letter-spacing:.05em;text-transform:uppercase}
.status{display:flex;justify-content:space-between;gap:16px;padding:9px 22px;font:500 10px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--navy)}
.status .sep{opacity:.35;margin:0 .8em}.status .live{color:#2fb86b}
@media(max-width:700px){.status .hide-m{display:none}.status{font-size:9.5px;padding:10px 14px}}
@media(max-width:420px){.status .hide-s{display:none}}

/* hero headline: weight 300, tracking -0.045em, line 2 at 55% opacity */
.hero-eyebrow{font:500 11px/1 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:rgba(255,255,255,.6);display:inline-block;margin-bottom:14px;padding-top:36px;position:relative;z-index:2;will-change:transform,opacity}
[data-fx="hero-title"]{will-change:transform,opacity;font-weight:300;letter-spacing:-.045em}
[data-fx="hero-title"] .dim{opacity:.55}

/* A. scroll-scrubbed character statement */
.statement{margin:0 0 60px;max-width:21em;font-size:clamp(26px,3.7vw,54px);line-height:1.08;letter-spacing:-.03em;font-weight:300;--fg:#fff;--fg2:#aab2c5}
.statement b,.statement strong{font-weight:700}
.statement .fx-c{color:var(--fg2);opacity:.18;will-change:opacity}
.statement b .fx-c,.statement strong .fx-c{color:var(--fg)}
.fx-w{display:inline-block;white-space:nowrap}

/* B. rolling odometer digits */
.od-wrap{display:inline-flex;font-variant-numeric:tabular-nums}
.od{display:inline-block;height:1em;line-height:1;overflow:hidden;vertical-align:top}
.od-r{display:block;will-change:transform}
.od-r i{display:block;height:1em;line-height:1;font-style:normal}

/* C. two-line headings: bold line 1, slate line 2 slides in from an indent, blur -> sharp */
[data-fx="head"]{font-weight:700;letter-spacing:-.045em;line-height:.98}
[data-fx="head"] .l1,[data-fx="head"] .l2{display:block}
[data-fx="head"] .l2{color:var(--l2,var(--slate))}
.about,.panel,footer.site{--l2:rgba(255,255,255,.55)}
.fx-on [data-fx="head"] .l1,.fx-on [data-fx="head"] .l2{opacity:0;filter:blur(10px);transition:opacity .9s var(--fx-ease),transform 1s var(--fx-ease),filter .9s var(--fx-ease)}
.fx-on [data-fx="head"] .l1{transform:translateY(.35em)}
.fx-on [data-fx="head"] .l2{transform:translate(.3em,.35em);transition-delay:.16s}
.fx-on [data-fx="head"].is-in .l1,.fx-on [data-fx="head"].is-in .l2{opacity:1;filter:none;transform:none}

/* D. card stagger: blur-in */
.fx-on [data-fx="stagger"]>*{opacity:0;filter:blur(12px);transform:translateY(24px);transition:opacity .9s var(--fx-ease),filter .9s var(--fx-ease),transform 1s var(--fx-ease);transition-delay:calc(var(--i,0)*110ms)}
.fx-on [data-fx="stagger"].is-in>*{opacity:1;filter:none;transform:none}

/* E. list rows: hairline draws left->right while the row fades up */
[data-fx="rows"]>*{position:relative}
[data-fx="rows"]>*::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:currentColor;opacity:.14}
.fx-on [data-fx="rows"]>*{opacity:0;transform:translateY(14px);transition:opacity .8s var(--fx-ease),transform .9s var(--fx-ease);transition-delay:calc(var(--i,0)*70ms)}
.fx-on [data-fx="rows"]>*::before{transform:scaleX(0);transform-origin:left;transition:transform 1.1s var(--fx-ease);transition-delay:inherit}
.fx-on [data-fx="rows"].is-in>*{opacity:1;transform:none}
.fx-on [data-fx="rows"].is-in>*::before{transform:none}

/* F. footer panel + giant wordmark, letters rise one by one */
footer.site{background:#12335a;color:#fff;border-radius:28px;margin:12px;padding:clamp(24px,5vw,56px) clamp(20px,4vw,48px) 20px;overflow:hidden;text-align:left;opacity:1}
footer.site h2{font-size:clamp(34px,5.4vw,72px)}
footer.site .meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:20px;border-top:1px solid #ffffff22;margin-top:48px;padding-top:20px;font-size:13px}
footer.site .meta .fx-label{display:block;opacity:.6;margin-bottom:8px;font-size:10px}
.wordmark{display:flex;overflow:hidden;white-space:pre;user-select:none;margin-top:28px;font-size:clamp(34px,11vw,260px);font-weight:700;letter-spacing:-.05em;line-height:.85;color:rgba(255,255,255,.08)}
.wordmark span{display:inline-block}
.fx-on .wordmark span{transform:translateY(105%);transition:transform 1.1s var(--fx-ease);transition-delay:calc(var(--i,0)*45ms)}
.fx-on .wordmark.is-in span{transform:none}

/* nav scroll-spy: active link = filled pill */
nav a.active:not(.logo):not(.go){background:#111;color:#fff}

/* stacked panel feel: credentials slides over the dark gallery */
.cred{border-radius:28px 28px 0 0;margin-top:-28px;position:relative;z-index:3}

@media(prefers-reduced-motion:reduce){
  [data-fx] *,[data-fx]>*,.wordmark span{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}
  [data-fx="hero-title"]{transform:none!important;opacity:1!important}
}
