/* ==========================================================================
   FORELAD · BASE — self-hosted Switzer, reset, typography, motion utilities
   ========================================================================== */
@font-face { font-family:'Switzer'; src:url('../assets/fonts/switzer-400.woff2') format('woff2'); font-weight:400; font-display:swap; }
@font-face { font-family:'Switzer'; src:url('../assets/fonts/switzer-500.woff2') format('woff2'); font-weight:500; font-display:swap; }
@font-face { font-family:'Switzer'; src:url('../assets/fonts/switzer-600.woff2') format('woff2'); font-weight:600; font-display:swap; }
@font-face { font-family:'Switzer'; src:url('../assets/fonts/switzer-700.woff2') format('woff2'); font-weight:700; font-display:swap; }

*,*::before,*::after{ box-sizing:border-box; }
*{ margin:0; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
/* Lenis (desktop) manages scroll; it adds html.lenis — disable native smooth then */
html.lenis, html.lenis body{ height:auto; }
.lenis.lenis-smooth{ scroll-behavior:auto !important; }
.lenis.lenis-stopped{ overflow:hidden; }

img,svg,video{ display:block; max-width:100%; }
img{ height:auto; }
a{ color:var(--accent); text-decoration:none; transition:color var(--t-fast) var(--ease); }
a:hover{ color:var(--violet-deep); }
button{ cursor:pointer; background:none; border:none; font:inherit; color:inherit; }
input,textarea,select{ font:inherit; color:inherit; }
ul{ list-style:none; padding:0; }

body{
  font-family:var(--font-body);
  font-size:var(--fs-body);
  line-height:var(--lh-body);
  color:var(--text-body);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:600;
  line-height:var(--lh-head);
  letter-spacing:var(--ls-head);
  color:var(--text-strong);
  text-wrap:balance;
}
h1{ font-size:var(--fs-h1); line-height:var(--lh-tight); letter-spacing:var(--ls-display); }
h2{ font-size:var(--fs-h2); }
h3{ font-size:var(--fs-h3); }
p{ text-wrap:pretty; }
strong{ font-weight:600; }

/* ---- Layout primitives -------------------------------------------------- */
.container{ max-width:var(--container); margin-inline:auto; padding-inline:var(--gutter); }
.section{ padding-block:var(--section-y); }
.section--tight{ padding-block:clamp(48px,6vw,84px); }

/* Numbered mono eyebrow: 01 — OUR LOANS */
.eyebrow{ display:inline-flex; align-items:center; gap:12px; margin-bottom:18px; }
.eyebrow .num{ font-family:var(--font-mono); font-size:var(--fs-cap); font-weight:500; color:var(--accent); }
.eyebrow .lbl{ font-family:var(--font-mono); font-size:var(--fs-cap); font-weight:500; letter-spacing:var(--ls-label); text-transform:uppercase; color:var(--text-muted); }

.lead{ font-size:var(--fs-lead); line-height:1.65; color:var(--text-muted); }
.muted{ color:var(--text-muted); }
.spark{ color:var(--spark); }
.accent{ color:var(--accent); }

.section-head{ max-width:640px; margin-bottom:clamp(40px,5vw,64px); }
.section-head.center{ margin-inline:auto; text-align:center; }
.section-head h2{ margin:0; }
.section-head .lead{ margin-top:18px; }

/* ---- Accessibility ------------------------------------------------------ */
:focus-visible{ outline:3px solid var(--accent); outline-offset:3px; border-radius:6px; }
.skip-link{
  position:absolute; left:16px; top:-64px; z-index:200;
  background:var(--aubergine); color:#fff; padding:12px 22px; border-radius:var(--r-pill);
  transition:top var(--t-fast) var(--ease);
}
.skip-link:focus{ top:16px; color:#fff; }
.visually-hidden{
  position:absolute!important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* ---- Scroll-reveal utility (JS adds .in) -------------------------------- */
.reveal{ opacity:0; transform:translateY(26px); filter:blur(8px); transition:opacity var(--t-slow) var(--ease), transform var(--t-slow) var(--ease), filter var(--t-slow) var(--ease); }
.reveal.in{ opacity:1; transform:none; filter:blur(0); }
.reveal[data-delay="1"]{ transition-delay:.08s; }
.reveal[data-delay="2"]{ transition-delay:.16s; }
.reveal[data-delay="3"]{ transition-delay:.24s; }
.reveal[data-delay="4"]{ transition-delay:.32s; }
.reveal[data-delay="5"]{ transition-delay:.40s; }
/* word-by-word (JS splits into .word spans) */
.rw .word{ display:inline-block; opacity:0; transform:translateY(.5em); filter:blur(5px); transition:opacity .5s var(--ease), transform .5s var(--ease), filter .5s var(--ease); }
.rw.in .word{ opacity:1; transform:none; filter:blur(0); }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important; }
  .reveal, .rw .word{ opacity:1!important; transform:none!important; filter:none!important; }
}
