  :root{
    --paper:#f7f8fa;
    --paper-2:#eceff3;
    --card:#ffffff;
    --ink:#12151a;
    --ink-soft:#454b54;
    --dim:#6d7480;
    --line:rgba(17,23,31,.12);
    --navy:#0f1720;
    --gold:#1849c9;
    --gold-deep:#123e91;
    --radius:14px;
    --wrap:1120px;
    --serif:'Fraunces', Georgia, serif;
    --sans:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  }

  *,*::before,*::after{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:var(--sans);
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  img{ max-width:100%; display:block; }
  a{ color:inherit; text-decoration:none; }
  ul{ margin:0; padding:0; list-style:none; }
  h1,h2,h3{ margin:0; font-family:var(--serif); font-weight:600; letter-spacing:-0.01em; color:var(--navy); }
  p{ margin:0; }
  button{ font:inherit; cursor:pointer; }
  input,textarea{ font:inherit; }

  .wrap{ max-width:var(--wrap); margin:0 auto; padding:0 26px; }
  section{ padding:96px 0; }
  section + section{ border-top:1px solid var(--line); }

  .kicker{
    display:inline-flex; align-items:center; gap:9px;
    font-size:13px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-deep); font-weight:600;
  }
  .kicker::before{ content:''; width:22px; height:1px; background:var(--gold-deep); }

  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    padding:14px 28px; border-radius:999px; font-weight:600; font-size:15px;
    border:1px solid transparent; transition:transform .18s ease, background .18s ease, color .18s ease;
    white-space:nowrap;
  }
  .btn-primary{ background:var(--navy); color:var(--paper); }
  .btn-primary:hover{ transform:translateY(-2px); background:#16202c; }
  .btn-ghost{ border-color:var(--line); color:var(--navy); }
  .btn-ghost:hover{ border-color:var(--gold-deep); color:var(--gold-deep); }

  /* header */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    padding:22px 0; transition:background .25s ease, box-shadow .25s ease, padding .25s ease;
  }
  header.is-scrolled{
    background:rgba(247,248,250,.9); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
    box-shadow:0 1px 0 var(--line); padding:15px 0;
  }
  .nav-row{ display:flex; align-items:center; justify-content:space-between; gap:24px; }
  .wordmark{ font-family:var(--serif); font-weight:600; font-size:20px; color:var(--navy); }
  .nav-links{ display:flex; align-items:center; gap:30px; }
  .nav-links a{ font-size:14.5px; font-weight:500; color:var(--ink-soft); }
  .nav-links a:hover{ color:var(--navy); }
  .nav-actions{ display:flex; align-items:center; gap:14px; }
  .burger{
    display:none; width:42px; height:42px; border-radius:10px; border:1px solid var(--line);
    background:transparent; align-items:center; justify-content:center; flex-direction:column; gap:5px;
  }
  .burger span{ width:18px; height:2px; background:var(--navy); display:block; }

  /* hero */
  .hero{ padding:168px 0 100px; }
  .hero-grid{ display:grid; grid-template-columns:1.2fr 1fr; gap:56px; align-items:start; }
  .hero-name{ font-size:clamp(2.6rem, 6vw, 4.3rem); line-height:1.02; margin-top:20px; }
  .hero-tagline{ margin-top:16px; font-size:clamp(1.1rem,2vw,1.35rem); color:var(--gold-deep); font-family:var(--serif); font-weight:500; }
  .hero-copy{ margin-top:22px; font-size:16.5px; color:var(--ink-soft); max-width:540px; line-height:1.7; }
  .hero-cta{ margin-top:34px; display:flex; gap:14px; flex-wrap:wrap; }
  .badges{ margin-top:40px; display:flex; gap:26px; flex-wrap:wrap; }
  .badge{ font-size:13.5px; color:var(--dim); border-left:2px solid var(--gold); padding-left:10px; }
  .badge b{ display:block; color:var(--navy); font-family:var(--serif); font-size:15px; font-weight:600; }

  .portrait{ position:relative; max-width:360px; margin-top:6px; }
  .portrait img{
    display:block; border-radius:18px; width:100%; height:auto;
    box-shadow:0 24px 48px -18px rgba(17,23,31,.32);
  }

  /* about */
  .about-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:56px; }
  .about-grid h2{ font-size:clamp(2rem,4vw,2.6rem); }
  .about-copy p{ font-size:16.5px; color:var(--ink-soft); line-height:1.75; }
  .about-copy p + p{ margin-top:18px; }
  .about-copy strong{ color:var(--navy); }

  .tags{ margin-top:32px; display:flex; flex-wrap:wrap; gap:10px; }
  .tag{
    font-size:13.5px; padding:8px 16px; border-radius:999px; border:1px solid var(--line);
    color:var(--ink-soft); background:var(--card);
  }

  /* experience */
  .exp-item{ display:grid; grid-template-columns:170px 1fr; gap:32px; padding:32px 0; border-top:1px solid var(--line); }
  .exp-item:first-of-type{ border-top:none; }
  .exp-years{ font-family:var(--serif); font-size:15px; color:var(--gold-deep); font-weight:600; padding-top:2px; }
  .exp-role{ font-size:19px; font-weight:600; color:var(--navy); font-family:var(--serif); }
  .exp-org{ font-size:15px; color:var(--dim); margin-top:2px; }
  .exp-item ul{ margin-top:14px; display:flex; flex-direction:column; gap:8px; }
  .exp-item li{ font-size:15px; color:var(--ink-soft); line-height:1.6; padding-left:18px; position:relative; }
  .exp-item li::before{ content:''; position:absolute; left:0; top:9px; width:5px; height:5px; border-radius:50%; background:var(--gold); }
  .exp-foot{ margin-top:36px; padding-top:24px; border-top:1px solid var(--line); font-size:14.5px; color:var(--dim); font-style:italic; }

  /* credentials */
  .cred-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
  .cred-card{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:28px; }
  .cred-card b{ display:block; font-family:var(--serif); font-size:18px; color:var(--navy); font-weight:600; }
  .cred-card span{ display:block; margin-top:6px; font-size:14px; color:var(--dim); }

  /* insights */
  .ins-top h2{ font-size:clamp(2rem,4vw,2.6rem); }
  .ins-top p{ margin-top:14px; color:var(--ink-soft); font-size:16px; max-width:600px; }
  .ins-grid{ margin-top:48px; display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
  .ins-card{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:30px; display:block; transition:border-color .15s ease, transform .15s ease; }
  .ins-card:hover{ border-color:var(--gold-deep); transform:translateY(-2px); }
  .ins-tag{ font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-deep); font-weight:600; }
  .ins-card h3{ margin-top:12px; font-size:19px; line-height:1.35; color:var(--navy); }
  .ins-card p{ margin-top:12px; font-size:14.5px; color:var(--ink-soft); line-height:1.65; }
  .ins-more{ margin-top:14px; font-size:13.5px; font-weight:600; color:var(--gold-deep); }
  .ins-top-row{ display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap; }
  .ins-top-row a{ font-size:14px; font-weight:600; color:var(--gold-deep); white-space:nowrap; }
  .ins-top-row a:hover{ text-decoration:underline; }

  /* contact */
  .contact-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:start; }
  .contact-info h2{ font-size:clamp(2rem,4vw,2.6rem); }
  .contact-info p{ margin-top:16px; color:var(--ink-soft); font-size:16px; max-width:420px; line-height:1.7; }
  .contact-deets{ margin-top:34px; display:flex; flex-direction:column; gap:14px; }
  .contact-deets .row{ display:flex; align-items:center; gap:12px; font-size:15.5px; color:var(--ink-soft); }
  .contact-deets svg{ color:var(--gold-deep); flex-shrink:0; }

  .form-card{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:36px; }
  .field{ margin-bottom:20px; }
  .field label{ display:block; font-size:12.5px; color:var(--dim); margin-bottom:8px; text-transform:uppercase; letter-spacing:.05em; }
  .field input, .field textarea{
    width:100%; background:var(--paper); border:1px solid var(--line); border-radius:10px; padding:13px 15px;
    color:var(--ink); font-size:15px; transition:border-color .15s ease;
  }
  .field input:focus, .field textarea:focus{ outline:none; border-color:var(--gold-deep); }
  .field textarea{ resize:vertical; min-height:110px; }
  .form-note{ font-size:13px; color:var(--dim); margin-top:14px; }
  .form-status{ margin-top:14px; font-size:14px; display:none; }
  .form-status.ok{ color:#3f7d4c; display:block; }
  .form-status.err{ color:#b3492f; display:block; }
  .hp{ position:absolute; left:-9999px; opacity:0; }

  /* footer */
  footer{ padding:52px 0 36px; }
  .foot-row{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:22px; }
  .foot-links{ display:flex; gap:26px; flex-wrap:wrap; }
  .foot-links a{ font-size:13.5px; color:var(--dim); }
  .foot-links a:hover{ color:var(--navy); }
  .social{ width:36px; height:36px; border-radius:50%; background:var(--navy); display:flex; align-items:center; justify-content:center; }
  .foot-bottom{ margin-top:30px; padding-top:20px; border-top:1px solid var(--line); font-size:12.5px; color:var(--dim); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; }

  .reveal{ opacity:0; transform:translateY(20px); transition:opacity .6s ease, transform .6s ease; }
  .reveal.in{ opacity:1; transform:none; }
  @media (prefers-reduced-motion: reduce){
    .reveal{ opacity:1; transform:none; transition:none; }
    html{ scroll-behavior:auto; }
  }

  @media (max-width:980px){
    .hero-grid, .about-grid, .contact-grid{ grid-template-columns:1fr; }
    .portrait{ max-width:340px; margin:0 auto; }
    .cred-grid, .ins-grid{ grid-template-columns:1fr; }
    .exp-item{ grid-template-columns:1fr; gap:8px; }
  }

  @media (max-width:720px){
    .nav-links{
      position:fixed; inset:0; top:0; height:100dvh; background:var(--paper); flex-direction:column;
      justify-content:center; align-items:center; gap:30px; transform:translateX(100%); transition:transform .3s ease; z-index:99;
    }
    .nav-links.open{ transform:translateX(0); }
    .nav-links a{ font-size:22px; }
    .burger{ display:flex; z-index:101; }
    .burger.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
    .burger.open span:nth-child(2){ opacity:0; }
    .burger.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
    section{ padding:64px 0; }
    .foot-row{ flex-direction:column; align-items:flex-start; }
  }

/* article pages */
.crumb{ font-size:13.5px; color:var(--dim); margin-top:110px; }
.crumb a{ color:var(--gold-deep); }
.crumb a:hover{ text-decoration:underline; }
.article-head{ margin-top:22px; max-width:760px; }
.article-head h1{ margin-top:14px; font-size:clamp(1.9rem,4.6vw,2.9rem); line-height:1.14; }
.article-meta{ margin-top:16px; font-size:14px; color:var(--dim); }
.article-body{ margin-top:44px; max-width:700px; }
.article-body p{ font-size:17px; color:var(--ink-soft); line-height:1.8; }
.article-body p + p{ margin-top:20px; }
.article-body h2{ margin-top:38px; font-size:22px; color:var(--navy); }
.article-body ul{ margin-top:18px; display:flex; flex-direction:column; gap:10px; }
.article-body li{ font-size:16px; color:var(--ink-soft); line-height:1.7; padding-left:20px; position:relative; }
.article-body li::before{ content:''; position:absolute; left:0; top:10px; width:5px; height:5px; border-radius:50%; background:var(--gold); }
.article-body blockquote{
  margin:32px 0; padding:4px 0 4px 22px; border-left:3px solid var(--gold);
  font-family:var(--serif); font-size:20px; color:var(--navy); font-weight:500; line-height:1.5;
}
.article-cta{
  margin-top:56px; padding:32px; background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
}
.article-cta p{ font-size:15.5px; color:var(--ink-soft); max-width:400px; }
.more-insights{ margin-top:70px; padding-top:40px; border-top:1px solid var(--line); }
.more-insights h2{ font-size:22px; }
.more-list{ margin-top:20px; display:flex; flex-direction:column; gap:12px; }
.more-list a{ font-size:15.5px; color:var(--navy); font-weight:500; }
.more-list a:hover{ color:var(--gold-deep); }

/* insights index page */
.ins-index-grid{ margin-top:48px; display:flex; flex-direction:column; gap:0; }
.ins-index-item{ padding:26px 0; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:24px; align-items:baseline; flex-wrap:wrap; }
.ins-index-item:first-child{ border-top:none; }
.ins-index-item a{ font-family:var(--serif); font-size:20px; color:var(--navy); font-weight:600; }
.ins-index-item a:hover{ color:var(--gold-deep); }
.ins-index-item span{ font-size:13px; color:var(--dim); white-space:nowrap; }

/* article figures */
.article-figure{ margin:32px 0 0; }
.article-figure img{ width:100%; border-radius:var(--radius); display:block; }
.article-figure figcaption{ margin-top:10px; font-size:13px; color:var(--dim); }
.article-figure.tight img{ max-width:340px; margin:0 auto; }

.stat-card{ background:var(--navy); border-radius:var(--radius); padding:30px; margin-top:32px; }
.stat-card .stc-label{ font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:#93a8c9; font-weight:600; }
.stat-card .stc-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:18px; }
.stat-card .stc-num{ font-family:var(--serif); font-size:clamp(1.6rem,4vw,2.2rem); color:#fff; font-weight:700; }
.stat-card .stc-cap{ font-size:12.5px; color:#c3cee0; margin-top:4px; line-height:1.4; }
.stat-card .stc-foot{ margin-top:20px; padding-top:16px; border-top:1px solid rgba(255,255,255,.14); font-size:13.5px; color:#dbe3ef; }

.mini-card{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:26px; margin-top:32px; display:flex; gap:20px; flex-wrap:wrap; }
.mini-card .mc-item{ flex:1; min-width:180px; }
.mini-card .mc-item b{ display:block; font-family:var(--serif); color:var(--navy); font-size:16px; margin-bottom:6px; }
.mini-card .mc-item p{ font-size:14px; color:var(--ink-soft); margin:0; }

.ins-card-thumb{ width:100%; aspect-ratio:16/10; object-fit:cover; border-radius:10px 10px 0 0; margin:-30px -30px 20px; width:calc(100% + 60px); }
.article-meta-row{ display:flex; gap:14px; align-items:center; flex-wrap:wrap; }
