@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,400..800&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap');

  :root{
    --bg:#F3F4F4;
    --surface:#FFFFFF;
    --surface-alt:#EAEBEB;
    --ink:#16181B;
    --ink-muted:#5A5F66;
    --line:#DCDFE0;
    --accent:#C1584E;
    --accent-strong:#A8433A;
    --accent-soft:#F1DAD6;
    --accent-contrast:#FFFFFF;
    --shadow: 0 1px 2px rgba(20,20,20,0.04), 0 8px 24px rgba(20,20,20,0.06);
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --bg:#15171B;
      --surface:#1C1F24;
      --surface-alt:#23272D;
      --ink:#F1F2F1;
      --ink-muted:#A7ACB3;
      --line:#2B2F35;
      --accent:#E2897C;
      --accent-strong:#E2897C;
      --accent-soft:#3A2422;
      --accent-contrast:#15171B;
      --shadow: 0 1px 2px rgba(0,0,0,0.3), 0 8px 24px rgba(0,0,0,0.35);
    }
  }
  :root[data-theme="dark"]{
    --bg:#15171B;
    --surface:#1C1F24;
    --surface-alt:#23272D;
    --ink:#F1F2F1;
    --ink-muted:#A7ACB3;
    --line:#2B2F35;
    --accent:#E2897C;
    --accent-strong:#E2897C;
    --accent-soft:#3A2422;
    --accent-contrast:#15171B;
    --shadow: 0 1px 2px rgba(0,0,0,0.3), 0 8px 24px rgba(0,0,0,0.35);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }

  body{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }

  h1,h2,h3{
    font-family:'Bricolage Grotesque', 'IBM Plex Sans', sans-serif;
    font-weight:700;
    text-wrap:balance;
    margin:0;
  }

  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.72rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--accent);
    font-weight:500;
  }

  a{ color:inherit; }
  a:focus-visible, button:focus-visible{
    outline:2px solid var(--accent);
    outline-offset:3px;
    border-radius:3px;
  }

  .wrap{
    max-width:840px;
    margin:0 auto;
    padding:0 28px;
  }

  /* ---------- Nav ---------- */
  header.nav{
    position:sticky;
    top:0;
    z-index:40;
    background:color-mix(in srgb, var(--bg) 86%, transparent);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav-inner{
    max-width:840px;
    margin:0 auto;
    padding:16px 28px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
  }
  .nav-mark{
    font-family:'Bricolage Grotesque', sans-serif;
    font-weight:700;
    font-size:1.05rem;
    letter-spacing:-0.01em;
  }
  .nav-links{
    display:flex;
    align-items:center;
    gap:24px;
    list-style:none;
    margin:0; padding:0;
  }
  .nav-links a{
    font-size:0.88rem;
    text-decoration:none;
    color:var(--ink-muted);
    transition:color .15s ease;
  }
  .nav-links a:hover{ color:var(--ink); }
  .nav-cta{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.78rem;
    text-decoration:none;
    color:var(--accent-contrast);
    background:var(--accent-strong);
    padding:8px 14px;
    border-radius:100px;
    white-space:nowrap;
    transition:opacity .15s ease;
  }
  .nav-cta:hover{ opacity:0.85; }

  /* ---------- Hero ---------- */
  .hero{
    position:relative;
    min-height:82vh;
    display:flex;
    align-items:flex-end;
    overflow:hidden;
    isolation:isolate;
  }
  .hero-bg{
    position:absolute;
    top:-70px; left:-16px; right:-16px; bottom:-16px;
    z-index:1;
    background-image:url('../images/hero.jpg');
    background-size:cover;
    background-position:center 62%;
    will-change:transform;
  }
  .hero-glow{
    position:absolute;
    inset:0;
    z-index:1;
    background:radial-gradient(620px circle at var(--gx,52%) var(--gy,55%), rgba(193,88,78,0.60), transparent 60%);
    mix-blend-mode:overlay;
  }
  .hero-wash{
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(125deg, rgba(168,67,58,0.6) 0%, rgba(168,67,58,0.16) 40%, transparent 64%);
    mix-blend-mode:overlay;
    background-size:220% 220%;
    animation:washDrift 18s ease-in-out infinite alternate;
  }
  @keyframes washDrift{
    0%{ background-position:10% 20%; }
    100%{ background-position:90% 80%; }
  }
  .hero-scrim{
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(180deg, rgba(10,12,14,0.12) 0%, rgba(10,12,14,0.30) 38%, rgba(6,7,8,0.93) 100%);
  }
  @media (prefers-reduced-motion: reduce){
    .hero-wash{ animation:none; }
    .hero-bg{ transform:none !important; }
  }
  .hero-inner{
    position:relative;
    z-index:2;
    width:100%;
    max-width:840px;
    margin:0 auto;
    padding:0 28px 56px;
    color:#F5F1EE;
  }
  .hero h1{
    font-size:clamp(2.6rem, 8vw, 5rem);
    line-height:0.98;
    color:#FBF8F6;
    letter-spacing:-0.01em;
    text-shadow:0 4px 28px rgba(0,0,0,0.45);
  }
  .hero-role{
    margin-top:16px;
    font-family:'Bricolage Grotesque', sans-serif;
    font-weight:600;
    font-size:clamp(1.15rem, 2.6vw, 1.6rem);
    letter-spacing:-0.005em;
    color:#F2665A;
    text-shadow:0 3px 20px rgba(0,0,0,0.5);
  }
  .hero-loc{
    margin-top:16px;
    display:inline-flex;
    align-items:center;
    gap:7px;
    font-family:'IBM Plex Mono', monospace;
    font-size:0.82rem;
    letter-spacing:0.04em;
    text-transform:uppercase;
    color:#E4DFDA;
    text-shadow:0 2px 12px rgba(0,0,0,0.5);
  }
  .hero-loc svg{
    width:14px; height:14px;
    flex:0 0 auto;
    color:#F2665A;
  }
  .hero-scroll{
    position:absolute;
    z-index:2;
    right:28px;
    bottom:24px;
    font-family:'IBM Plex Mono', monospace;
    font-size:0.7rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:#DAD5D1;
    display:flex;
    align-items:center;
    gap:8px;
    opacity:0.8;
  }
  .hero-scroll .line{
    width:26px; height:1px; background:#DAD5D1;
  }

  /* ---------- Sections generic ---------- */
  section{
    padding:96px 0;
    border-bottom:1px solid var(--line);
  }
  section:last-of-type{ border-bottom:none; }
  .section-head{
    margin-bottom:40px;
  }
  .section-head h2{
    font-size:clamp(1.7rem, 4vw, 2.3rem);
    margin-top:10px;
  }

  .reveal{
    opacity:0;
    transform:translateY(14px);
    transition:opacity .6s ease, transform .6s ease;
    transition-delay:calc(var(--i, 0) * 70ms);
  }
  .reveal.in{
    opacity:1;
    transform:translateY(0);
  }
  @media (prefers-reduced-motion: reduce){
    .reveal{ opacity:1; transform:none; transition:none; }
  }

  .scroll-progress{
    position:fixed;
    top:0; left:0;
    height:2px;
    width:0%;
    background:var(--accent-strong);
    z-index:60;
    transform-origin:left;
  }
  @media (prefers-reduced-motion: reduce){
    .scroll-progress{ transition:none; }
  }

  /* ---------- Story ---------- */
  .story-grid{
    display:grid;
    grid-template-columns:260px 1fr;
    gap:44px;
    align-items:start;
  }
  .story-photo{
    position:relative;
    border-radius:16px;
    overflow:hidden;
    border:1px solid var(--line);
    box-shadow:var(--shadow);
    aspect-ratio:3/4;
  }
  .story-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }
  @media (max-width:700px){
    .story-grid{ grid-template-columns:1fr; }
    .story-photo{ max-width:260px; margin:0 auto; }
  }
  .story p{
    font-size:1.08rem;
    line-height:1.75;
    color:var(--ink);
    max-width:62ch;
    margin:0 0 20px;
  }
  .story p.muted{ color:var(--ink-muted); }

  .tags{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:32px;
  }
  .tag{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.78rem;
    color:var(--ink-muted);
    border:1px solid var(--line);
    padding:7px 13px;
    border-radius:100px;
  }

  /* ---------- Beyond the screen ---------- */
  .beyond-grid{
    display:grid;
    grid-template-columns:1fr 300px;
    gap:44px;
    align-items:start;
  }
  .beyond-photos{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
  }
  @media (max-width:700px){
    .beyond-grid{ grid-template-columns:1fr; }
  }
  .yt-link{
    color:var(--accent);
    font-weight:600;
    text-decoration:underline;
    text-underline-offset:3px;
    white-space:nowrap;
  }
  .yt-link:hover{ color:var(--accent-strong); }

  /* ---------- Experience ---------- */
  .role-group-label{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.72rem;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--ink-muted);
    margin:36px 0 14px;
  }
  .role-group-label:first-child{ margin-top:0; }

  .role{
    display:flex;
    align-items:center;
    gap:18px;
    padding:18px 4px;
    border-top:1px solid var(--line);
  }
  .role-group-label + .role{ border-top:none; }
  .badge{
    flex:0 0 auto;
    width:48px; height:48px;
    border-radius:12px;
    background:var(--accent-soft);
    color:var(--accent-strong);
    display:flex;
    align-items:center;
    justify-content:center;
    font-family:'IBM Plex Mono', monospace;
    font-weight:500;
    font-size:0.82rem;
    letter-spacing:0.01em;
  }
  .role-logo{
    flex:0 0 auto;
    width:70px;
    height:70px;
    object-fit:contain;
    border-radius:12px;
    background:#FFFFFF;
    border:1px solid var(--line);
    padding:6px;
  }
  .role-main{
    flex:1 1 auto;
    min-width:0;
    display:flex;
    flex-wrap:wrap;
    align-items:baseline;
    gap:2px 10px;
  }
  .role-co{
    font-weight:600;
    font-size:1.02rem;
  }
  .role-title{
    color:var(--ink-muted);
    font-size:0.96rem;
  }
  .role-when{
    flex:0 0 auto;
    font-family:'IBM Plex Mono', monospace;
    font-size:0.78rem;
    color:var(--ink-muted);
    text-align:right;
    white-space:nowrap;
  }

  .edu{
    margin-top:32px;
    padding-top:24px;
    border-top:1px solid var(--line);
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:10px 16px;
  }
  .edu-main{
    display:flex;
    align-items:center;
    gap:12px;
  }
  .edu-logo{
    width:70px;
    height:70px;
    object-fit:contain;
    flex:0 0 auto;
    border-radius:12px;
    background:#FFFFFF;
    border:1px solid var(--line);
    padding:6px;
  }
  .edu-what{ font-size:0.98rem; }
  .edu-what b{ font-weight:600; }
  .edu-when{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.78rem;
    color:var(--ink-muted);
  }

  /* ---------- Contact ---------- */
  .contact-lede{
    font-size:1.08rem;
    line-height:1.6;
    color:var(--ink-muted);
    max-width:50ch;
    margin:14px 0 36px;
  }
  .links{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
  }
  .link-card{
    display:flex;
    align-items:center;
    gap:10px;
    padding:13px 18px;
    border-radius:12px;
    border:1px solid var(--line);
    background:var(--surface);
    text-decoration:none;
    color:var(--ink);
    font-size:0.92rem;
    font-weight:500;
    transition:border-color .15s ease, transform .15s ease;
  }
  .link-card:hover{ border-color:var(--accent); transform:translateY(-1px); }
  .link-card.primary{
    background:var(--accent-strong);
    border-color:var(--accent-strong);
    color:var(--accent-contrast);
  }
  .link-card .dot{
    width:7px; height:7px; border-radius:50%;
    background:var(--accent);
  }
  .link-card.primary .dot{ background:var(--accent-contrast); }

  footer{
    padding:32px 0 48px;
  }
  footer .wrap{
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:10px;
  }
  footer p{
    margin:0;
    font-family:'IBM Plex Mono', monospace;
    font-size:0.76rem;
    color:var(--ink-muted);
  }

  @media (max-width:560px){
    .nav-links{ display:none; }
    .role{ flex-wrap:wrap; }
    .role-when{ order:3; flex-basis:100%; text-align:left; padding-left:66px; margin-top:-4px; }
  }
