  :root{
    --green:#1d352a; --green-deep:#162a21; --espresso:#2c2018;
    --ivory:#f4eee1; --ivory-2:#ece4d2;
    --brass:#bd9a5f; --brass-soft:#c9ad78;
    --ink:#23201a; --muted:#6f6757; --muted-ivory:#cfc6b1;
    --maxw:1140px;
    --disp:"Fraunces",Georgia,serif;
    --body:"Source Serif 4",Georgia,serif;
    --ui:"Libre Franklin",system-ui,sans-serif;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{margin:0;background:var(--ivory);color:var(--ink);
    font-family:var(--body);font-size:18px;line-height:1.66;
    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 30px;}
  a{color:inherit;}
  h1,h2,h3{font-family:var(--disp);font-weight:500;line-height:1.03;margin:0;
    font-optical-sizing:auto;letter-spacing:-.005em;}
  .eyebrow{font-family:var(--ui);font-size:11.5px;font-weight:500;text-transform:uppercase;
    letter-spacing:.26em;color:var(--brass);display:inline-flex;align-items:center;gap:12px;}
  .eyebrow::before{content:"";width:30px;height:1px;background:var(--brass);}

  .progress{position:fixed;top:0;left:0;height:2px;width:0;background:var(--brass);z-index:100;transition:width .1s linear;}

  nav{position:sticky;top:0;z-index:50;background:rgba(29,53,42,.94);backdrop-filter:blur(8px);
    border-bottom:1px solid rgba(189,154,95,.3);transition:background .3s,border-color .3s;}
  nav.solid{background:rgba(22,42,33,.99);}
  .nav-inner{display:flex;align-items:center;justify-content:space-between;height:62px;transition:height .3s;}
  nav.solid .nav-inner{height:54px;}
  .nav-mono{font-family:var(--disp);font-size:24px;color:var(--ivory);letter-spacing:.01em;white-space:nowrap;}
  .nav-mono b{color:var(--brass);font-weight:500;}
  .nav-links{display:flex;gap:30px;list-style:none;margin:0;padding:0;}
  .nav-links a{font-family:var(--ui);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.14em;
    text-decoration:none;color:var(--muted-ivory);padding-bottom:3px;border-bottom:1px solid transparent;transition:color .25s,border-color .25s;}
  .nav-links a:hover,.nav-links a:focus-visible,.nav-links a.active{color:var(--ivory);border-color:var(--brass);outline:none;}
  .nav-right{display:flex;align-items:center;gap:18px;}
  .lang{font-family:var(--ui);font-size:11px;letter-spacing:.12em;color:var(--muted-ivory);white-space:nowrap;}
  .lang b{color:var(--ivory);}
  .lang a{color:var(--muted-ivory);text-decoration:none;transition:color .2s;}
  .lang a:hover,.lang a:focus-visible{color:var(--ivory);outline:none;}
  .nav-toggle{display:none;width:28px;height:22px;background:none;border:0;cursor:pointer;position:relative;padding:0;}
  .nav-toggle span,.nav-toggle::before,.nav-toggle::after{content:"";position:absolute;left:0;width:100%;height:2px;
    background:var(--ivory);transition:transform .3s,opacity .3s,top .3s;}
  .nav-toggle::before{top:2px;} .nav-toggle span{top:10px;} .nav-toggle::after{top:18px;}
  .nav-toggle[aria-expanded="true"]::before{top:10px;transform:rotate(45deg);}
  .nav-toggle[aria-expanded="true"] span{opacity:0;}
  .nav-toggle[aria-expanded="true"]::after{top:10px;transform:rotate(-45deg);}
  .nav-mobile{display:flex;flex-direction:column;background:var(--green-deep);overflow:hidden;max-height:0;transition:max-height .35s ease;}
  .nav-mobile.open{max-height:360px;border-bottom:1px solid rgba(189,154,95,.3);}
  .nav-mobile a{font-family:var(--ui);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-ivory);
    text-decoration:none;padding:15px 30px;border-top:1px solid rgba(189,154,95,.16);transition:color .2s,background .2s;}
  .nav-mobile a:first-child{border-top:0;}
  .nav-mobile a:hover,.nav-mobile a:focus-visible{color:var(--ivory);background:rgba(189,154,95,.08);outline:none;}

  .hero{background:var(--green);color:var(--ivory);position:relative;overflow:hidden;border-bottom:1px solid rgba(189,154,95,.3);}
  .hero::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 80% at 82% 0%,rgba(189,154,95,.12),transparent 60%);}
  .hero-inner{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center;padding:84px 0 88px;position:relative;z-index:1;}
  .hero h1{font-size:clamp(54px,9.4vw,122px);color:var(--ivory);letter-spacing:-.01em;}
  .hero h1 .sur{display:block;color:var(--brass);}
  .hero .roles{font-family:var(--ui);font-size:12.5px;font-weight:500;text-transform:uppercase;letter-spacing:.2em;color:var(--muted-ivory);margin:24px 0 0;}
  .hero .roles span{position:relative;padding:0 14px;}
  .hero .roles span:first-child{padding-left:0;}
  .hero .roles span+span::before{content:"·";position:absolute;left:-2px;color:var(--brass);}
  .hero .tag{font-family:var(--disp);font-size:25px;font-style:italic;color:#e7dfcd;margin-top:30px;max-width:34ch;line-height:1.34;font-weight:400;}
  .hero .rule{width:64px;height:2px;background:var(--brass);margin-top:34px;transform-origin:left;}
  .hero figure{margin:0;}
  .port{aspect-ratio:4/5;border:1px solid rgba(189,154,95,.45);background:linear-gradient(160deg,#24412f,#172a20);position:relative;display:block;overflow:hidden;}
  .port img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;}
  .port .frame{position:absolute;inset:10px;border:1px solid rgba(189,154,95,.45);z-index:2;pointer-events:none;}

  .hero .eyebrow{animation:rise .8s cubic-bezier(.2,.7,.2,1) .05s backwards;}
  .hero h1{animation:rise .9s cubic-bezier(.2,.7,.2,1) .12s backwards;}
  .hero .roles{animation:rise .8s cubic-bezier(.2,.7,.2,1) .28s backwards;}
  .hero .tag{animation:rise .8s cubic-bezier(.2,.7,.2,1) .38s backwards;}
  .hero .rule{animation:draw .7s cubic-bezier(.2,.7,.2,1) .5s backwards;}
  .hero figure{animation:fade 1.1s ease .25s backwards;}
  @keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
  @keyframes draw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
  @keyframes fade{from{opacity:0}to{opacity:1}}

  section{padding:92px 0;scroll-margin-top:72px;}
  .sec-head{margin-bottom:44px;}
  .sec-head h2{font-size:clamp(34px,5vw,58px);margin-top:14px;}
  .on-green{background:var(--green);color:var(--ivory);}
  .on-green h2,.on-green h3{color:var(--ivory);}
  .on-espresso{background:var(--espresso);color:var(--ivory-2);}

  [data-reveal]{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease;}
  [data-reveal].in{opacity:1;transform:none;}
  [data-reveal][data-d="1"]{transition-delay:.08s;}
  [data-reveal][data-d="2"]{transition-delay:.16s;}
  [data-reveal][data-d="3"]{transition-delay:.24s;}

  .bio-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:start;}
  .bio-grid .lede{font-family:var(--disp);font-size:31px;line-height:1.3;color:var(--green);font-weight:500;}
  .bio-photo{margin:26px 0 0;}
  .bio-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center top;display:block;border:1px solid rgba(189,154,95,.5);background:#e7dcc6;}
  .bio-photo figcaption{font-family:var(--ui);font-size:12px;color:var(--muted);margin-top:10px;}
  .bio-grid p{margin:0 0 18px;}
  .bio-grid p:last-child{margin-bottom:0;}

  .chrono{display:grid;gap:0;}
  .crow{display:grid;grid-template-columns:150px 1fr;gap:34px;padding:26px 0;border-top:1px solid rgba(189,154,95,.32);align-items:baseline;}
  .crow:last-child{border-bottom:1px solid rgba(189,154,95,.32);}
  .crow .y{font-family:var(--disp);font-size:30px;color:var(--brass);}
  .crow h3{font-size:25px;margin-bottom:4px;}
  .crow p{margin:0;color:var(--muted-ivory);font-size:16px;}

  .works{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 34px;}
  .book .cov{aspect-ratio:2/3;background:linear-gradient(155deg,#274735,#15261d);border:1px solid rgba(189,154,95,.4);
    position:relative;display:flex;align-items:flex-end;padding:18px;margin-bottom:16px;overflow:hidden;transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s;}
  .book .cov::before{content:"";position:absolute;left:9px;top:9px;bottom:9px;width:3px;background:var(--brass);opacity:.5;}
  .book .cov span{font-family:var(--disp);font-size:21px;color:var(--ivory);line-height:1.16;}
  .book .cov.photo{padding:0;background:#15261d;}
  .book .cov.photo::before{display:none;}
  .book .cov img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
  .book:hover .cov{transform:translateY(-7px);box-shadow:0 18px 34px -18px rgba(20,40,28,.7);}
  .book .yr{font-family:var(--ui);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--brass);}
  .book h3{font-size:24px;margin:4px 0 6px;color:var(--ink);}
  .book p{font-size:15px;color:var(--muted);margin:0;line-height:1.5;}

  .pubs{border-top:1px solid rgba(189,154,95,.28);}
  .pub{display:flex;justify-content:space-between;gap:24px;align-items:baseline;padding:18px 0;border-bottom:1px solid rgba(189,154,95,.28);
    text-decoration:none;color:inherit;transition:padding-left .3s ease;}
  .pub:hover{padding-left:14px;}
  .pub .t{font-family:var(--disp);font-size:21px;color:var(--ivory);display:block;line-height:1.18;}
  .pub .v{font-family:var(--ui);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--brass);margin-top:6px;display:block;}
  .pub .arr{font-family:var(--ui);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--brass);white-space:nowrap;}
  .scholar{display:inline-flex;align-items:center;gap:10px;margin-top:30px;font-family:var(--ui);font-size:12px;letter-spacing:.14em;
    text-transform:uppercase;color:var(--brass);text-decoration:none;border:1px solid rgba(189,154,95,.5);padding:13px 24px;transition:background .25s,color .25s;}
  .scholar:hover,.scholar:focus-visible{background:var(--brass);color:var(--green-deep);outline:none;}

  .quote{text-align:center;}
  .quote .mk{font-family:var(--disp);font-size:84px;color:var(--brass);line-height:0;display:block;height:32px;}
  .quote blockquote{font-family:var(--disp);font-style:italic;font-size:clamp(30px,5vw,52px);line-height:1.26;color:var(--ivory);margin:0 auto;max-width:22ch;font-weight:400;}
  .quote cite{display:block;margin-top:34px;font-style:normal;font-family:var(--ui);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-ivory);}

  .vids{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
  .vid{cursor:pointer;}
  .vid .thumb{position:relative;aspect-ratio:16/9;border:1px solid rgba(189,154,95,.4);overflow:hidden;background:#15261d;}
  .vid .thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;filter:saturate(.92);}
  .vid:hover .thumb img{transform:scale(1.05);}
  .vid .thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,42,33,.05),rgba(22,42,33,.45));}
  .vid .play{position:absolute;inset:0;margin:auto;width:60px;height:60px;border-radius:50%;background:rgba(29,53,42,.78);border:1px solid var(--brass);
    display:flex;align-items:center;justify-content:center;z-index:2;transition:transform .3s,background .3s;}
  .vid:hover .play{transform:scale(1.08);background:var(--brass);}
  .vid .play::before{content:"";border-style:solid;border-width:9px 0 9px 15px;border-color:transparent transparent transparent var(--ivory);margin-left:3px;}
  .vid:hover .play::before{border-left-color:var(--green-deep);}
  .vid iframe{width:100%;aspect-ratio:16/9;border:1px solid rgba(189,154,95,.4);display:block;}
  .vid h3{font-size:20px;margin:14px 0 0;color:var(--ivory);}
  .vid .m{font-family:var(--ui);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--brass);margin-top:6px;}

  .shots{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
  .shot{display:block;text-decoration:none;color:inherit;}
  .shot-img{aspect-ratio:3/2;border:1px solid rgba(189,154,95,.4);overflow:hidden;background:#26201a;}
  .shot-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s ease;}
  .shot:hover .shot-img img{transform:scale(1.05);}
  .shot .date{font-family:var(--ui);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--brass);margin-top:15px;display:block;}
  .shot p{margin:8px 0 0;font-size:16px;color:var(--ivory-2);line-height:1.45;}
  .shot .src{font-family:var(--ui);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-ivory);margin-top:10px;display:inline-flex;gap:6px;transition:color .25s;}
  .shot:hover .src,.shot:focus-visible .src{color:var(--ivory);}

  .son{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center;}
  .son-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center top;display:block;border:1px solid rgba(189,154,95,.45);background:#1a3025;}
  .son blockquote{margin:0;}
  .son .big{font-family:var(--disp);font-size:clamp(24px,3.2vw,33px);font-style:italic;line-height:1.4;color:var(--ivory);font-weight:400;}
  .son .sign{font-family:var(--disp);font-size:24px;color:var(--brass);margin-top:26px;}

  footer{background:var(--green-deep);color:var(--muted-ivory);padding:54px 0;border-top:1px solid rgba(189,154,95,.3);}
  .foot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:24px;}
  .foot .name{font-family:var(--disp);font-size:36px;color:var(--ivory);}
  .foot .name b{color:var(--brass);font-weight:500;}
  .foot small{font-family:var(--ui);font-size:12px;letter-spacing:.06em;line-height:1.7;display:block;}

  @media(max-width:880px){
    .nav-links{display:none;} .nav-toggle{display:block;}
    .hero-inner{grid-template-columns:1fr;gap:44px;}
    .bio-grid{grid-template-columns:1fr;gap:30px;} .bio-photo{max-width:360px;}
    .works{grid-template-columns:repeat(2,1fr);}
    .vids{grid-template-columns:1fr;gap:30px;}
    .shots{grid-template-columns:repeat(2,1fr);}
    .son{grid-template-columns:1fr;gap:30px;} .son-photo{max-width:360px;}
  }
  @media(max-width:640px){
    section{padding:66px 0;} .hero-inner{padding:58px 0 64px;} .sec-head{margin-bottom:32px;}
    .shots{grid-template-columns:1fr;}
    .crow{grid-template-columns:1fr;gap:4px;padding:22px 0;} .crow .y{font-size:26px;}
    .bio-grid .lede{font-size:27px;} .hero .tag{font-size:22px;}
    .pub{flex-direction:column;gap:8px;} .pub .arr{align-self:flex-start;}
  }
  @media(max-width:520px){
    .wrap{padding:0 22px;}
    .works{grid-template-columns:1fr;} .book .cov{max-width:230px;}
    .nav-mono{font-size:21px;} .nav-right{gap:14px;}
  }
  :focus-visible{outline:2px solid var(--brass);outline-offset:3px;}
  @media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
    *,*::before,*::after{animation:none!important;transition:none!important;}
    [data-reveal]{opacity:1!important;transform:none!important;}
  }
