/* ============================================================
   INVERNESS FUND — design tokens
   Ink navy / stone paper / loch blue / brass, with a single
   hairline contour-line signature motif carried through the site.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300;9..144,400;9..144,500;9..144,600&family=Fraunces:ital,opsz,wght@1,9..144,400&family=Inter:wght@400;500;600&display=swap');

:root{
  --ink:        #14181B;
  --paper:      #ECEAE2;
  --paper-2:    #E2DFD4;
  --loch:       #33546B;
  --loch-dark:  #22394A;
  --brass:      #A9854B;
  --mist:       #8B9089;
  --line:       rgba(20,24,27,0.14);
  --line-on-ink:rgba(236,234,226,0.18);

  --serif: 'Fraunces', Georgia, serif;
  --serif-italic: 'Fraunces', Georgia, serif;
  --sans:  'Inter', -apple-system, BlinkMacSystemFont, sans-serif;

  --max: 1180px;
  --pad: clamp(24px, 5vw, 64px);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important;}
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}

a{color:inherit;}
img{max-width:100%;display:block;}

.wrap{
  max-width:var(--max);
  margin:0 auto;
  padding-left:var(--pad);
  padding-right:var(--pad);
}

.eyebrow{
  font-family:var(--sans);
  font-size:12px;
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--loch);
}
.eyebrow.on-ink{color:var(--brass);}

h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:500;
  margin:0;
  letter-spacing:-0.01em;
  color:var(--ink);
}

p{margin:0;}

.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--sans);
  font-size:13px;
  font-weight:600;
  letter-spacing:0.06em;
  text-transform:uppercase;
  text-decoration:none;
  padding:14px 26px;
  border:1px solid var(--ink);
  color:var(--ink);
  background:transparent;
  transition:background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
  cursor:pointer;
}
.btn:hover{background:var(--ink);color:var(--paper);}
.btn.primary{background:var(--ink);color:var(--paper);}
.btn.primary:hover{background:var(--loch-dark);border-color:var(--loch-dark);}
.btn.on-ink{border-color:var(--line-on-ink);color:var(--paper);}
.btn.on-ink:hover{background:var(--paper);color:var(--ink);}
.btn:focus-visible, a:focus-visible, button:focus-visible{
  outline:2px solid var(--brass);
  outline-offset:3px;
}

/* ---------- Header ---------- */
header.site{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(236,234,226,0.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.nav-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:20px;
  padding-bottom:20px;
}
.wordmark{
  font-family:var(--serif);
  font-size:20px;
  letter-spacing:0.02em;
  text-decoration:none;
  color:var(--ink);
  display:flex;
  align-items:baseline;
  gap:8px;
}
.wordmark small{
  font-family:var(--sans);
  font-size:10px;
  letter-spacing:0.22em;
  font-weight:600;
  color:var(--mist);
}
nav.links{
  display:flex;
  gap:36px;
  list-style:none;
  margin:0;
  padding:0;
}
nav.links a{
  font-size:13px;
  font-weight:500;
  letter-spacing:0.04em;
  text-transform:uppercase;
  text-decoration:none;
  color:var(--ink);
  position:relative;
  padding-bottom:4px;
}
nav.links a::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height:1px;
  background:var(--brass);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform 0.25s ease;
}
nav.links a:hover::after,
nav.links a[aria-current="page"]::after{transform:scaleX(1);}
nav.links a[aria-current="page"]{color:var(--loch);}

.menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:4px;}
.menu-toggle span{display:block;width:22px;height:1.5px;background:var(--ink);margin:5px 0;}

@media (max-width:760px){
  nav.links{
    position:fixed;
    inset:65px 0 0 0;
    background:var(--paper);
    flex-direction:column;
    gap:0;
    padding:8px var(--pad) 24px;
    transform:translateY(-8px);
    opacity:0;
    pointer-events:none;
    transition:opacity 0.2s ease, transform 0.2s ease;
  }
  nav.links.open{opacity:1;pointer-events:auto;transform:translateY(0);}
  nav.links a{
    display:block;
    padding:16px 0;
    border-bottom:1px solid var(--line);
    font-size:15px;
  }
  .menu-toggle{display:block;}
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  padding-top:clamp(48px,9vw,110px);
  padding-bottom:clamp(48px,8vw,96px);
  overflow:hidden;
}
.hero-grid{
  display:grid;
  grid-template-columns:1.15fr 0.85fr;
  gap:48px;
  align-items:end;
}
.hero h1{
  font-size:clamp(40px, 6vw, 78px);
  line-height:1.03;
}
.hero h1 em{
  font-style:italic;
  font-weight:400;
  color:var(--loch);
}
.hero .lede{
  font-size:17px;
  color:var(--ink);
  opacity:0.78;
  max-width:38ch;
  margin-top:22px;
}
.hero-meta{
  border-left:1px solid var(--line);
  padding-left:28px;
  align-self:end;
}
.hero-meta p{font-size:14px;color:var(--mist);line-height:1.7;}
@media (max-width:860px){
  .hero-grid{grid-template-columns:1fr;}
  .hero-meta{border-left:none;border-top:1px solid var(--line);padding-left:0;padding-top:20px;}
}

.contour{
  width:100%;
  height:auto;
  stroke:var(--loch);
  fill:none;
}
.contour path{
  stroke-dasharray:2000;
  stroke-dashoffset:2000;
  animation:draw 2.6s ease forwards;
}
.contour path:nth-child(2){animation-delay:0.15s;}
.contour path:nth-child(3){animation-delay:0.3s;}
.contour path:nth-child(4){animation-delay:0.45s;}
@keyframes draw{to{stroke-dashoffset:0;}}
@media (prefers-reduced-motion: reduce){
  .contour path{stroke-dashoffset:0;animation:none;}
}

/* ---------- Sections ---------- */
section{padding-top:clamp(56px,8vw,110px);padding-bottom:clamp(56px,8vw,110px);}
section.tight{padding-top:clamp(40px,5vw,64px);padding-bottom:clamp(40px,5vw,64px);}
.rule-top{border-top:1px solid var(--line);}

.section-head{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  margin-bottom:48px;
}
.section-head h2{font-size:clamp(28px,3.4vw,42px);line-height:1.12;}
.section-head .eyebrow{margin-bottom:14px;display:block;}
@media (max-width:760px){.section-head{grid-template-columns:1fr;gap:16px;}}

.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:56px;}
@media (max-width:760px){.grid-3{grid-template-columns:1fr;}.grid-2{grid-template-columns:1fr;gap:32px;}}

.card{background:var(--paper);padding:36px 32px;}
.card .num{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--brass);display:block;margin-bottom:18px;}
.card h3{font-size:20px;margin-bottom:12px;}
.card p{color:var(--ink);opacity:0.75;font-size:14.5px;}

/* dark band */
.band-ink{background:var(--ink);color:var(--paper);}
.band-ink h2, .band-ink h3{color:var(--paper);}
.band-ink p{color:var(--paper);}

.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;}
.stat-row .stat{border-top:1px solid var(--line-on-ink);padding-top:18px;}
.stat .figure{font-family:var(--serif);font-size:clamp(28px,3vw,40px);color:var(--paper);}
.stat .label{font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--mist);margin-top:8px;display:block;}
@media (max-width:760px){.stat-row{grid-template-columns:1fr 1fr;}}

/* team */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
@media (max-width:760px){.team-grid{grid-template-columns:1fr;}}
.person{background:var(--paper);padding:40px 32px;}
.mono{
  width:64px;height:64px;
  border:1px solid var(--ink);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--serif);font-style:italic;font-size:20px;
  margin-bottom:24px;
  color:var(--loch);
}
.person h3{font-size:19px;margin-bottom:2px;}
.person .role{font-size:12.5px;letter-spacing:0.06em;text-transform:uppercase;color:var(--brass);display:block;margin-bottom:16px;}
.person p{font-size:14px;opacity:0.75;}

/* pull quote */
.pull{
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(24px,3vw,34px);
  line-height:1.35;
  max-width:26ch;
  color:var(--ink);
}
.pull cite{
  display:block;
  font-family:var(--sans);
  font-style:normal;
  font-size:12.5px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--mist);
  margin-top:20px;
}

/* list rows */
.rows{border-top:1px solid var(--line);}
.row{
  display:grid;
  grid-template-columns:0.5fr 2fr 2.5fr;
  gap:24px;
  padding:26px 0;
  border-bottom:1px solid var(--line);
}
.row .tag{font-family:var(--serif);font-style:italic;color:var(--loch);font-size:15px;}
.row h4{font-size:16px;font-weight:600;font-family:var(--sans);}
.row p{font-size:14px;opacity:0.72;}
@media (max-width:760px){.row{grid-template-columns:1fr;gap:8px;}}

/* contact */
.field{margin-bottom:22px;}
.field label{display:block;font-size:12px;letter-spacing:0.06em;text-transform:uppercase;color:var(--mist);margin-bottom:8px;}
.field input, .field textarea, .field select{
  width:100%;
  border:none;
  border-bottom:1px solid var(--ink);
  background:transparent;
  padding:10px 2px;
  font-family:var(--sans);
  font-size:15px;
  color:var(--ink);
}
.field input:focus, .field textarea:focus, .field select:focus{
  outline:none;
  border-bottom:1px solid var(--loch);
}
.field textarea{resize:vertical;min-height:110px;}

.info-line{display:flex;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--line);font-size:14px;}
.info-line span:first-child{color:var(--mist);text-transform:uppercase;letter-spacing:0.06em;font-size:12px;}

/* footer */
footer.site{background:var(--ink);color:var(--paper);padding-top:56px;padding-bottom:36px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;padding-bottom:40px;border-bottom:1px solid var(--line-on-ink);}
.footer-grid h5{font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--mist);margin:0 0 16px;font-family:var(--sans);}
.footer-grid a{display:block;font-size:14px;text-decoration:none;color:var(--paper);opacity:0.85;margin-bottom:10px;}
.footer-grid a:hover{opacity:1;color:var(--brass);}
.footer-bottom{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-top:24px;flex-wrap:wrap;}
.footer-bottom p{font-size:11.5px;color:var(--mist);line-height:1.7;max-width:640px;}
@media (max-width:760px){.footer-grid{grid-template-columns:1fr 1fr;}}

.reveal{opacity:0;transform:translateY(18px);transition:opacity 0.7s ease, transform 0.7s ease;}
.reveal.in{opacity:1;transform:translateY(0);}
@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;}}
