/*
 * fynloy design tokens (single source of truth), from fynloy_brand_identity.pdf.
 * Deep Navy grounds, Cloud light bands, white rounded cards, Electric Violet for action and the loop,
 * Reward Lime only where a reward lands. Plus Jakarta Sans headlines, Inter body. Breakpoints: tablet <= 1024, mobile <= 767.
 */
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400 800;font-display:swap;src:url(../fonts/plus-jakarta-sans.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/inter.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Plus Jakarta Sans Fallback';src:local('Arial Bold'),local('Arial-BoldMT'),local('Liberation Sans Bold');font-weight:600 800;size-adjust:104%;ascent-override:100%;descent-override:26%;line-gap-override:0%}
@font-face{font-family:'Inter Fallback';src:local('Arial'),local('ArialMT'),local('Liberation Sans');font-weight:400 700;size-adjust:107%;ascent-override:90%;descent-override:22%;line-gap-override:0%}

:root{
  --fy-navy:#182B3A;--fy-navy-deep:#0F1E2B;--fy-navy-2:#223B4F;
  --fy-violet:#6757F5;--fy-violet-deep:#4A3BD9;--fy-violet-tint:#ECE9FE;
  --fy-lime:#B8F36B;--fy-lime-deep:#8CD63C;
  --fy-cloud:#F5F7FB;--fy-white:#fff;
  --fy-text:var(--fy-navy);--fy-text-2:#50607A;--fy-text-on-navy:#fff;--fy-text-2-on-navy:#C4CFE0;
  --fy-line:#E3E8F1;--fy-line-on-navy:rgba(255,255,255,.14);--fy-card:#fff;--fy-card-on-navy:#223B4F;
  --fy-r-card:20px;--fy-r-sm:12px;--fy-r-pill:999px;
  --fy-shadow:0 18px 40px -22px rgba(24,43,58,.35),0 2px 6px -2px rgba(24,43,58,.12);
  --fy-shadow-lift:0 28px 56px -24px rgba(24,43,58,.45),0 4px 10px -4px rgba(24,43,58,.14);
  --fy-grad-hero:linear-gradient(135deg,#182B3A 0%,#1D2F55 60%,#2B2A78 100%);
  --fy-grad-violet:linear-gradient(135deg,#6757F5 0%,#4A3BD9 100%);
  --fy-grad-glow:radial-gradient(55% 60% at 72% 28%,rgba(103,87,245,.5),transparent 70%);
  --fy-container:1200px;--fy-sect:clamp(64px,8vw,112px);--fy-ease:cubic-bezier(.16,1,.3,1);--fy-hdr:80px;
  --fy-font-display:"Plus Jakarta Sans","Plus Jakarta Sans Fallback",sans-serif;
  --fy-font-body:"Inter","Inter Fallback",sans-serif;
  /* aliases kept for the scene and icon systems */
  --fy-ink:var(--fy-navy);--fy-green:var(--fy-lime);--fy-lilac:var(--fy-violet-tint);--fy-paper:var(--fy-cloud);--fy-muted:var(--fy-text-2);--fy-mono:var(--fy-font-body);--fy-rule:1.5px solid var(--fy-line);
}

/* ---------- base ---------- */
body.fy-site{margin:0;background:var(--fy-cloud);color:var(--fy-text);font:400 17px/1.6 var(--fy-font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
html{overflow-x:clip;scroll-behavior:smooth;scrollbar-color:var(--fy-violet) var(--fy-cloud)}
::selection{background:var(--fy-lime);color:var(--fy-navy)}
::placeholder{color:#7A8799;opacity:1}
.fy-site :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--fy-violet);outline-offset:3px;border-radius:6px}
.fy-band-navy :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible,.fy-footer :where(a,button):focus-visible{outline-color:var(--fy-lime)}
.fy-site a{color:inherit}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* ---------- type scale ---------- */
.fy-site .fy-t-xl{font:800 72px/1.02 var(--fy-font-display);letter-spacing:-.035em}
.fy-site .fy-t-l{font:800 56px/1.04 var(--fy-font-display);letter-spacing:-.03em}
.fy-site .fy-t-h2{font:800 44px/1.08 var(--fy-font-display);letter-spacing:-.025em}
.fy-site .fy-t-h3{font:700 28px/1.2 var(--fy-font-display);letter-spacing:-.015em}
.fy-site .fy-t-h4{font:700 20px/1.3 var(--fy-font-display);letter-spacing:-.01em}
.fy-site .fy-t-lead,.fy-site .fy-t-lead p{font:400 20px/1.55 var(--fy-font-body)}
.fy-site .fy-t-body,.fy-site .fy-t-body p,.fy-site .fy-t-body li{font:400 17px/1.6 var(--fy-font-body)}
.fy-site .fy-t-small,.fy-site .fy-t-small p,.fy-site .fy-t-small li{font:500 15px/1.5 var(--fy-font-body)}
.fy-site .fy-t-mono{font:600 13px/1.4 var(--fy-font-body);letter-spacing:.01em}
@media (max-width:1024px){
  .fy-site .fy-t-xl{font-size:54px}.fy-site .fy-t-l{font-size:44px}.fy-site .fy-t-h2{font-size:36px}.fy-site .fy-t-h3{font-size:25px}.fy-site .fy-t-h4{font-size:19px}
  .fy-site .fy-t-lead,.fy-site .fy-t-lead p{font-size:19px}.fy-site .fy-t-body,.fy-site .fy-t-body p,.fy-site .fy-t-body li{font-size:16px}
}
@media (max-width:767px){
  .fy-site .fy-t-xl{font-size:40px}.fy-site .fy-t-l{font-size:34px}.fy-site .fy-t-h2{font-size:30px}.fy-site .fy-t-h3{font-size:22px}
  .fy-site .fy-t-lead,.fy-site .fy-t-lead p{font-size:18px}
}
.fy-site :is(h1,h2,h3,h4,h5,h6).fy-h{margin:0;text-wrap:balance}
.fy-site .fy-h a{color:inherit;text-decoration:none}
.fy-site .fy-text p{margin:0}.fy-site .fy-text p+p{margin-top:1em}.fy-site .fy-text ul,.fy-site .fy-text ol{margin:0;padding:0}
.fy-site .fy-text{text-wrap:pretty}

/* ---------- colour roles ---------- */
.fy-site .fy-c-ink{color:var(--fy-navy)}.fy-site .fy-c-white{color:#fff}.fy-site .fy-c-lilac{color:var(--fy-text-2-on-navy)}.fy-site .fy-c-muted{color:var(--fy-text-2)}.fy-site .fy-c-green{color:var(--fy-lime)}.fy-site .fy-c-violet{color:var(--fy-violet)}

/* ---------- layout primitives ---------- */
.fy-wrap{width:100%;max-width:var(--fy-container);margin-inline:auto;box-sizing:border-box;min-width:0}
.fy-band{padding:var(--fy-sect) 24px;position:relative;box-sizing:border-box}
.fy-band--hero{padding-top:clamp(56px,7vw,104px);padding-bottom:clamp(64px,8vw,112px)}
@media (max-width:767px){.fy-band{padding-inline:20px}}
.fy-stack{display:flex;flex-direction:column;gap:var(--g,16px);min-width:0}
.fy-stack--center{justify-content:center}
.fy-btns{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.fy-grid{display:grid;min-width:0}
.fy-col{min-width:0;box-sizing:border-box}
.fy-head{display:flex;flex-direction:column;gap:14px;max-width:62ch}
.fy-measure,.fy-measure p{max-width:62ch}
