/* ============================================================================
   The Financial Sciences Company — assets/tfsc-home.css
   Homepage v2 (2026-09-29): the homepage on the clean chrome (tfsc-site.css +
   tfsc_header.py), no Astra/Elementor/jQuery underneath. Theo's hero copy and
   section copy are carried verbatim by _tools/build_home_v2.py; this file only
   changes how it looks: depth in the hero, thin-line icons (brand kit §VII),
   cards that read as clickable, fewer competing titles, motion that respects
   prefers-reduced-motion. Brass stays under the 8% ceiling: hairlines, the
   kicker, one filled button per view.
   ========================================================================== */

.tfsc-page--home{background:var(--bone);}
.tfsc-page--home .tfsc-main{padding:0;}
.tfhome{--line:rgba(14,22,38,.10); --line-strong:rgba(14,22,38,.22); --ink-soft:#4A5468;
  --r:16px; --r-sm:10px; --ease:cubic-bezier(.22,.61,.36,1);
  --sh-1:0 1px 2px rgba(14,22,38,.05), 0 2px 8px rgba(14,22,38,.04);
  --sh-2:0 6px 14px -6px rgba(14,22,38,.16), 0 18px 40px -18px rgba(14,22,38,.22);
  --measure:62ch; color:var(--ink); font-family:var(--f-body);}
.tfhome-wrap{max-width:var(--container); margin:0 auto; padding:0 var(--gutter);}
.tfhome section{padding:clamp(56px,7vw,96px) 0; position:relative;}
.tfhome .tfhome-section--paper{background:var(--paper);}
.tfhome .tfhome-section--white{background:#fff;}
.tfhome .tfhome-section--ink{background:var(--ink); color:var(--bone);}

/* ---------------------------------------------------------- type ---- */
.tfhome h1,.tfhome h2,.tfhome h3{font-family:var(--f-display); font-weight:400; letter-spacing:-.005em; margin:0; color:inherit;}
.tfhome h2{font-size:clamp(30px,3.6vw,46px); line-height:1.12; max-width:20ch;}
.tfhome h3{font-size:22px; line-height:1.25;}
.tfhome p{margin:0; color:var(--ink-soft); font-size:17px; line-height:1.65;}
.tfhome .tfhome-kicker{display:inline-flex; align-items:center; gap:10px; margin:0 0 14px; font-family:var(--f-mono); font-size:11.5px;
  font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:var(--brass);}
.tfhome .tfhome-kicker::before{content:""; width:22px; height:1px; background:var(--brass); opacity:.8;}
.tfhome-head{max-width:760px; margin-bottom:clamp(28px,4vw,44px);}
.tfhome-head p{margin-top:14px; max-width:var(--measure);}
.tfhome-head--row{display:flex; align-items:flex-end; justify-content:space-between; gap:24px; max-width:none;}
.tfhome-head--row > div{max-width:760px;}
.tfhome-more{display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:15px; color:var(--ink); text-decoration:none;
  white-space:nowrap; padding:10px 0 2px; border-bottom:1px solid var(--line-strong); transition:border-color .2s var(--ease), color .2s var(--ease);}
.tfhome-more .tfhome-ico{width:16px; height:16px; transition:transform .2s var(--ease);}
.tfhome-more:hover{border-bottom-color:var(--brass); color:var(--ink);}
.tfhome-more:hover .tfhome-ico{transform:translateX(3px);}

/* ------------------------------------------------------- buttons ---- */
.tfhome-btn{display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:0 22px; border-radius:10px;
  font-family:var(--f-body); font-size:15px; font-weight:700; letter-spacing:.005em; text-decoration:none; line-height:1;
  border:1px solid transparent; transition:transform .18s var(--ease), box-shadow .18s var(--ease), background-color .18s var(--ease), color .18s var(--ease);}
.tfhome-btn .tfhome-ico{width:16px; height:16px; transition:transform .18s var(--ease);}
.tfhome-btn:hover .tfhome-ico{transform:translateX(3px);}
.tfhome-btn--brass{background:var(--brass); color:var(--ink); border-color:rgba(14,22,38,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28), 0 1px 2px rgba(14,22,38,.14), 0 10px 22px -12px rgba(14,22,38,.6);}
.tfhome-btn--brass:hover{background:#A07E4B; color:var(--ink); transform:translateY(-1px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.24), 0 2px 4px rgba(14,22,38,.16), 0 14px 26px -12px rgba(14,22,38,.65);}
.tfhome-btn--ink{background:var(--ink); color:var(--bone);}
.tfhome-btn--ink:hover{background:#1C2840; color:var(--bone); transform:translateY(-1px); box-shadow:0 12px 24px -12px rgba(14,22,38,.5);}
.tfhome-btn--ghost{background:transparent; color:var(--ink); border-color:var(--line-strong);}
.tfhome-btn--ghost:hover{background:rgba(14,22,38,.04); border-color:var(--ink); transform:translateY(-1px);}
.tfhome-section--ink .tfhome-btn--ghost,.tfhome-hero .tfhome-btn--ghost{color:var(--bone); border-color:rgba(250,248,244,.35);}
.tfhome-section--ink .tfhome-btn--ghost:hover,.tfhome-hero .tfhome-btn--ghost:hover{background:rgba(250,248,244,.08); border-color:var(--bone); color:var(--bone);}
.tfhome-btn:focus-visible,.tfhome-more:focus-visible,.tfhome-card:focus-visible,.tfhome-chip:focus-visible,.tfhome-door li a:focus-visible{outline:2px solid var(--brass); outline-offset:3px;}
.tfhome-section--ink :focus-visible{outline-color:var(--bone);}
.tfhome-actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:26px;}

/* ---------------------------------------------------------- hero ---- */
.tfhome-hero{background:linear-gradient(135deg,#08101D 0%,var(--ink) 54%,#173156 100%); color:var(--bone); overflow:hidden; padding:0;}
.tfhome-hero::before{content:""; position:absolute; inset:-30% -8% auto auto; width:640px; height:640px; pointer-events:none;
  background:radial-gradient(circle at center,rgba(176,141,87,.16),rgba(176,141,87,0) 62%);}
.tfhome-hero::after{content:""; position:absolute; left:0; right:0; bottom:0; height:120px; pointer-events:none;
  background:linear-gradient(180deg,rgba(8,16,29,0),rgba(8,16,29,.35));}
.tfhome-hero .tfhome-wrap{position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:clamp(24px,4vw,64px);
  align-items:center; row-gap:26px; padding-top:clamp(40px,5.5vw,64px); padding-bottom:clamp(36px,5vw,56px);}
.tfhome .tfhome-hero .tfhome-kicker{color:var(--brass); margin-bottom:22px;}
.tfhome-hero h1{font-size:clamp(40px,4.6vw,66px); line-height:1.06; color:var(--bone); max-width:none;}
.tfhome-hero h1 .tfhome-nowrap{white-space:nowrap;}
@media (max-width:700px){.tfhome-hero h1 .tfhome-nowrap{white-space:normal;}}
.tfhome-hero h1 em{font-style:italic; color:var(--bone);}
.tfhome .tfhome-hero .tfhome-lede{margin-top:24px; font-size:clamp(17px,1.4vw,20px); line-height:1.6; color:rgba(250,248,244,.84); max-width:58ch;}
.tfhome-hero .tfhome-actions{margin-top:28px;}
.tfhome-proof{display:flex; flex-wrap:wrap; gap:10px 28px; margin:28px 0 0; padding:18px 0 0; border-top:1px solid rgba(250,248,244,.14); list-style:none;}
.tfhome-proof li{display:inline-flex; align-items:center; gap:9px; font-size:14px; color:rgba(250,248,244,.78);}
.tfhome-proof .tfhome-ico{width:18px; height:18px; color:var(--brass); flex:none;}

/* the instrument: the firm's mark as a slow-turning armillary, plus a faint measuring ring */
.tfhome-instrument{position:relative; aspect-ratio:1; width:min(100%,470px); margin:0 0 0 auto; pointer-events:none; user-select:none;}
.tfhome-instrument svg{width:100%; height:100%; display:block; overflow:visible;}
.tfhome-instrument .ring{fill:none; stroke:rgba(250,248,244,.14); stroke-width:1;}
.tfhome-instrument .ring--dash{stroke:rgba(250,248,244,.14); stroke-dasharray:2 10; stroke-linecap:round;}
.tfhome-instrument .ticks{stroke:rgba(250,248,244,.16); stroke-width:1;}
.tfhome-instrument .orbit{fill:none; stroke:var(--brass); stroke-width:1.5; transform-origin:300px 300px; transform:rotate(var(--a0,0deg));}
.tfhome-instrument .orbit--a{opacity:.85;}
.tfhome-instrument .orbit--b{opacity:.45;}
.tfhome-instrument .orbit--c{opacity:.28; stroke-width:1;}
.tfhome-instrument .star{fill:var(--brass); transform-origin:300px 300px;}
.tfhome-instrument .glow{fill:rgba(176,141,87,.10);}
@media (prefers-reduced-motion:no-preference){
  .tfhome-instrument .orbit--a{animation:tfhome-orbit 72s linear infinite;}
  .tfhome-instrument .orbit--b{animation:tfhome-orbit 108s linear infinite reverse;}
  .tfhome-instrument .orbit--c{animation:tfhome-orbit 150s linear infinite;}
  .tfhome-instrument .star{animation:tfhome-breathe 7s ease-in-out infinite;}
}
@keyframes tfhome-orbit{from{transform:rotate(var(--a0,0deg));} to{transform:rotate(calc(var(--a0,0deg) + 360deg));}}
@keyframes tfhome-breathe{0%,100%{transform:scale(1);opacity:1;}50%{transform:scale(1.06);opacity:.85;}}

/* hero entrance (CSS only; plays once; skipped under reduced motion) */
@media (prefers-reduced-motion:no-preference){
  .tfhome-hero .tfhome-kicker,.tfhome-hero h1,.tfhome-hero .tfhome-lede,.tfhome-hero .tfhome-actions,.tfhome-hero .tfhome-proof,.tfhome-instrument{
    animation:tfhome-up .7s var(--ease) both;}
  .tfhome-hero h1{animation-delay:.08s;} .tfhome-hero .tfhome-lede{animation-delay:.16s;}
  .tfhome-hero .tfhome-actions{animation-delay:.24s;} .tfhome-hero .tfhome-proof{animation-delay:.32s;} .tfhome-instrument{animation-delay:.2s; animation-duration:1s;}
}
@keyframes tfhome-up{from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:none;}}

/* ---------------------------------------------------- icon chips ---- */
.tfhome-chips{grid-column:1 / -1; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-top:8px; position:relative; z-index:1;}
.tfhome-chip{display:flex; align-items:center; gap:12px; padding:14px 16px; border:1px solid rgba(250,248,244,.16); border-radius:12px;
  background:rgba(250,248,244,.05); color:var(--bone); text-decoration:none; font-size:14.5px; font-weight:600; line-height:1.3;
  transition:background-color .18s var(--ease), border-color .18s var(--ease), transform .18s var(--ease);}
.tfhome-chip .tfhome-ico{width:22px; height:22px; flex:none; color:var(--brass);}
.tfhome-chip .tfhome-ico--arrow{margin-left:auto; width:14px; height:14px; color:rgba(250,248,244,.5); transition:transform .18s var(--ease), color .18s var(--ease);}
.tfhome-chip:hover{background:rgba(250,248,244,.1); border-color:rgba(176,141,87,.6); transform:translateY(-2px);}
.tfhome-chip:hover .tfhome-ico--arrow{transform:translateX(3px); color:var(--bone);}

/* --------------------------------------------------------- cards ---- */
.tfhome-grid{display:grid; gap:18px; grid-template-columns:repeat(3,minmax(0,1fr));}
.tfhome-card{position:relative; display:flex; flex-direction:column; gap:12px; padding:26px 26px 24px; background:#fff; border:1px solid var(--line);
  border-radius:var(--r); box-shadow:var(--sh-1); text-decoration:none; color:var(--ink); overflow:hidden; isolation:isolate;
  transition:transform .22s var(--ease), box-shadow .22s var(--ease), border-color .22s var(--ease);}
.tfhome-card::after{content:""; position:absolute; left:0; right:0; top:0; height:2px; background:var(--brass); transform:scaleX(0); transform-origin:left;
  transition:transform .28s var(--ease);}
.tfhome-card:hover{transform:translateY(-4px); box-shadow:var(--sh-2); border-color:rgba(14,22,38,.16);}
.tfhome-card:hover::after{transform:scaleX(1);}
.tfhome .tfhome-card__eyebrow{font-family:var(--f-mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--steel); margin:0;}
.tfhome-card h3{font-size:22px;}
.tfhome-card p{font-size:15.5px; line-height:1.6;}
.tfhome-card__link{margin-top:auto; padding-top:8px; display:inline-flex; align-items:center; gap:8px; font-size:14.5px; font-weight:700; color:var(--ink);}
.tfhome-card__link .tfhome-ico{width:15px; height:15px; transition:transform .2s var(--ease);}
.tfhome-card:hover .tfhome-card__link .tfhome-ico{transform:translateX(3px);}
/* icon well: paper disc, turns Ink on hover */
.tfhome-well{width:48px; height:48px; border-radius:50%; display:grid; place-items:center; background:var(--paper); color:var(--ink); margin-bottom:4px;
  transition:background-color .22s var(--ease), color .22s var(--ease), transform .22s var(--ease);}
.tfhome-well .tfhome-ico{width:24px; height:24px;}
.tfhome-card:hover .tfhome-well{background:var(--ink); color:var(--bone); transform:scale(1.04);}
/* image cards (library) */
.tfhome-card--media{padding:0;}
.tfhome-card--media .tfhome-media{aspect-ratio:16/10; overflow:hidden; background:var(--paper);}
.tfhome-card--media .tfhome-media img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s var(--ease);}
.tfhome-card--media:hover .tfhome-media img{transform:scale(1.03);}
.tfhome-card--media .tfhome-card__body{display:flex; flex-direction:column; gap:10px; padding:22px 24px 22px; flex:1;}

/* -------------------------------------------------- why (pillars) --- */
.tfhome-why{display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(28px,5vw,72px); align-items:start;}
.tfhome-pillars{list-style:none; margin:0; padding:0; counter-reset:pillar;}
.tfhome-pillars li{display:grid; grid-template-columns:52px 1fr; gap:18px; padding:22px 0; border-top:1px solid var(--line); counter-increment:pillar;}
.tfhome-pillars li:last-child{border-bottom:1px solid var(--line);}
.tfhome-pillars .tfhome-well{width:44px; height:44px; margin:0;}
.tfhome-pillars .tfhome-well .tfhome-ico{width:22px; height:22px;}
.tfhome-pillars h3{font-size:21px; margin-bottom:6px;}
.tfhome-pillars h3::before{content:counter(pillar,decimal-leading-zero); font-family:var(--f-mono); font-size:11px; letter-spacing:.14em; color:var(--brass); margin-right:10px; vertical-align:middle;}
.tfhome-pillars p{font-size:15.5px;}

/* --------------------------------------------------------- doors ---- */
.tfhome-door{cursor:default;}
.tfhome-door:hover{transform:none; box-shadow:var(--sh-1);}
.tfhome-door:hover::after{transform:scaleX(0);}
.tfhome-door .tfhome-well{margin-bottom:2px;}
.tfhome-door ul{list-style:none; margin:6px 0 4px; padding:0;}
.tfhome-door li{border-top:1px solid var(--line);}
.tfhome-door li:last-child{border-bottom:1px solid var(--line);}
.tfhome-door li a{display:flex; justify-content:space-between; align-items:center; gap:12px; padding:11px 4px; color:var(--ink); text-decoration:none;
  font-size:15.5px; border-radius:6px; transition:color .18s var(--ease), padding-left .18s var(--ease), background-color .18s var(--ease);}
.tfhome-door li a .tfhome-ico{width:14px; height:14px; color:var(--brass); opacity:.6; transition:opacity .18s var(--ease), transform .18s var(--ease);}
.tfhome-door li a:hover{color:var(--ink); padding-left:10px; background:var(--paper);}
.tfhome-door li a:hover .tfhome-ico{opacity:1; transform:translateX(3px);}
.tfhome .tfhome-quiet{margin-top:26px; font-size:15px; color:var(--ink-soft);}
.tfhome-quiet a{color:var(--ink); font-weight:600; text-decoration-color:var(--brass); text-underline-offset:3px;}

/* ------------------------------------------------------ who leads --- */
.tfhome-lead{display:grid; grid-template-columns:200px 1fr; gap:clamp(24px,4vw,48px); align-items:center; padding:28px; background:#fff;
  border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--sh-1);}
.tfhome-lead img{width:100%; aspect-ratio:4/5; object-fit:cover; object-position:50% 20%; border-radius:12px; display:block;}
.tfhome-lead h3{font-size:24px;}
.tfhome-lead .tfhome-creds{display:block; margin:6px 0 12px; font-family:var(--f-mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--steel);}
.tfhome-lead p{max-width:60ch;}
.tfhome-lead .tfhome-more{margin-top:16px;}

/* ----------------------------------------------------- CTA band ----- */
.tfhome-cta{background:linear-gradient(135deg,#08101D 0%,var(--ink) 60%,#14294A 100%); color:var(--bone); overflow:hidden;}
.tfhome-cta::before{content:""; position:absolute; inset:auto -10% -40% auto; width:560px; height:560px; pointer-events:none;
  background:radial-gradient(circle,rgba(176,141,87,.14),rgba(176,141,87,0) 62%);}
.tfhome-cta .tfhome-wrap{position:relative; z-index:1; text-align:center;}
.tfhome-cta h2{margin:0 auto; max-width:22ch;}
.tfhome .tfhome-cta p{color:rgba(250,248,244,.8); margin:16px auto 0; max-width:52ch;}
.tfhome-cta .tfhome-actions{justify-content:center;}
.tfhome-ways{display:flex; flex-wrap:wrap; justify-content:center; gap:10px 32px; margin:30px 0 0; padding:22px 0 0; list-style:none;
  border-top:1px solid rgba(250,248,244,.14);}
.tfhome-ways li a{display:inline-flex; align-items:center; gap:9px; color:rgba(250,248,244,.85); text-decoration:none; font-size:15px; padding:8px 0; min-height:44px;
  border-bottom:1px solid transparent; transition:color .18s var(--ease), border-color .18s var(--ease);}
.tfhome-ways li a:hover{color:var(--bone); border-bottom-color:var(--brass);}
.tfhome-ways .tfhome-ico{width:17px; height:17px; color:var(--brass);}

/* ------------------------------------------------------ reveals ----- */
html.tfhome-js .tfhome-reveal{opacity:0; transform:translateY(16px); transition:opacity .7s var(--ease), transform .7s var(--ease);}
html.tfhome-js .tfhome-reveal.is-in{opacity:1; transform:none;}
html.tfhome-js .tfhome-card.tfhome-reveal.is-in{transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);}
html.tfhome-js .tfhome-card.tfhome-reveal.is-in:hover{transform:translateY(-4px);}
html.tfhome-js .tfhome-grid > .tfhome-reveal:nth-child(2){transition-delay:.08s;}
html.tfhome-js .tfhome-grid > .tfhome-reveal:nth-child(3){transition-delay:.16s;}
html.tfhome-js .tfhome-grid > .tfhome-reveal:nth-child(4){transition-delay:.06s;}
html.tfhome-js .tfhome-grid > .tfhome-reveal:nth-child(5){transition-delay:.14s;}
html.tfhome-js .tfhome-grid > .tfhome-reveal:nth-child(6){transition-delay:.22s;}
@media (prefers-reduced-motion:reduce){
  html.tfhome-js .tfhome-reveal{opacity:1; transform:none; transition:none;}
  .tfhome-btn,.tfhome-card,.tfhome-chip,.tfhome-well,.tfhome-more .tfhome-ico,.tfhome-card__link .tfhome-ico,.tfhome-door li a,.tfhome-media img{transition:none !important;}
  .tfhome-card:hover,.tfhome-btn:hover,.tfhome-chip:hover{transform:none;}
}

/* --------------------------------------------------- responsive ----- */
@media (max-width:1100px){
  .tfhome-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .tfhome-chips{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:960px){
  .tfhome-hero .tfhome-wrap{grid-template-columns:1fr; min-height:0;}
  .tfhome-instrument{position:absolute; right:-18%; top:-6%; width:min(78vw,420px); opacity:.42; z-index:0; animation:none;}   /* the entrance animation's fill-mode was pinning opacity at 1 */
  .tfhome-hero .tfhome-wrap > div:first-child{position:relative; z-index:1;}
  .tfhome-why{grid-template-columns:1fr;}
  .tfhome-head--row{flex-direction:column; align-items:flex-start;}
}
@media (max-width:640px){
  .tfhome-grid{grid-template-columns:1fr;}
  .tfhome-chips{grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px;}
  .tfhome-chip{padding:12px 12px; font-size:13.5px; gap:9px;}
  .tfhome-chip .tfhome-ico{width:20px; height:20px;}
  .tfhome-chip .tfhome-ico--arrow{display:none;}
  .tfhome-hero h1{font-size:clamp(36px,10.5vw,44px); max-width:none;}
  .tfhome .tfhome-hero .tfhome-kicker{font-size:10.5px; letter-spacing:.08em; align-items:flex-start; gap:8px;}
  .tfhome .tfhome-hero .tfhome-kicker::before{margin-top:.6em; width:14px;}
  .tfhome-instrument{top:150px; opacity:.5;}
  .tfhome-hero .tfhome-lede{font-size:17px;}
  .tfhome-actions{margin-top:22px;}
  .tfhome-actions .tfhome-btn{flex:1 1 100%;}
  .tfhome-proof{gap:8px 18px;}
  .tfhome-card{padding:22px 20px 20px;}
  .tfhome-lead{grid-template-columns:1fr; padding:22px;}
  .tfhome-lead img{max-width:200px;}
  .tfhome-ways{flex-direction:column; align-items:center; gap:12px;}
}
