:root{
    --cream:#f3f7fb;
    --ink:#1e3350;
    --forest:#1f3b57;
    --gold:#d1a13a;
    --gold-deep:#a97e22;
    --target-red:#a53d3d;
    --line: rgba(31,59,87,0.14);
    --paper:#ffffff;
    --hero-blue:#aecdea;
    --hero-blue-shadow:#93b5db;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--cream);
    color:var(--ink);
    font-family:'Inter', sans-serif;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.serif{
    font-family:'Source Serif 4', serif;
    font-weight:600;
    color:var(--forest);
    margin:0;
  }
  img{max-width:100%; display:block;}
  a{color:inherit;}

  .wrap{max-width:1280px; margin:0 auto; padding:0 32px;}
  .narrow{max-width:660px; margin:0 auto; padding:0 28px;}

  /* ---------- Top ribbon ---------- */
  .ribbon{
    background:var(--forest);
    color:var(--cream);
    text-align:center;
    font-size:14px;
    letter-spacing:.02em;
    padding:9px 16px;
  }
  .ribbon b{color:var(--gold);}

  /* ---------- Hero ---------- */
  .hero{
    position:relative;
    min-height:clamp(560px, 88vh, 880px);
    display:flex;
    align-items:center;
    background:var(--hero-blue);
    overflow:hidden;
  }
  .hero-grid{
    display:grid;
    grid-template-columns:1.15fr 0.85fr;
    grid-template-areas:
      "copy visual"
      "cta visual";
    align-items:center;
    gap:28px 32px;
    width:100%;
  }
  .hero-copy{grid-area:copy; padding-top:64px;}
  .hero-cta{grid-area:cta; padding-bottom:64px;}
  .hero-visual{grid-area:visual;}
  .hero-eyebrow{
    display:flex;
    align-items:center;
    gap:10px;
    font-size:14px;
    color:var(--gold-deep);
    margin:0 0 18px;
    font-weight:600;
  }
  .hero-eyebrow .dot{
    width:7px; height:7px; border-radius:50%; background:var(--target-red);
    box-shadow:0 0 0 3px rgba(165,61,61,0.3);
  }
  .hero h1{
    color:var(--forest);
    font-size:clamp(2rem, 4.6vw, 3.4rem);
    line-height:1.1;
    letter-spacing:-0.01em;
  }
  .hero p.lede{
    max-width:520px;
    margin:20px 0 0;
    color:#3a4f61;
    font-size:17px;
  }
  .hero-cta{
    display:flex;
    justify-content:flex-start;
    align-items:flex-start;
    gap:14px;
    flex-wrap:wrap;
  }
  .hero-visual{
    position:relative;
    height:100%;
    min-height:460px;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .hero-photo{
    position:relative;
    z-index:2;
    width:320px;
    height:320px;
    border-radius:50%;
    overflow:hidden;
    box-shadow:0 24px 56px rgba(20,40,70,0.28);
  }
  .hero-photo img{width:100%; height:100%; object-fit:cover; display:block;}

  .btn{
    display:inline-block;
    padding:15px 30px;
    border-radius:2px;
    font-weight:600;
    font-size:15.5px;
    text-decoration:none;
    cursor:pointer;
    border:1px solid transparent;
    transition:transform .15s ease, background .2s ease;
  }
  .btn:hover{transform:translateY(-1px);}
  .btn-gold{background:var(--gold); color:#1f3b57;}
  .btn-gold:hover{background:#e0b451;}
  .btn-ghost{background:transparent; color:var(--forest); border-color:rgba(37,57,47,0.4);}
  .btn-ghost:hover{border-color:var(--forest); background:rgba(37,57,47,0.06);}

  /* ---------- Intro / who he is ---------- */
  section{padding:56px 0;}
  .intro{padding-top:84px; padding-bottom:26px;}
  .intro .kicker{
    font-size:13.5px;
    font-weight:600;
    color:var(--gold-deep);
    text-transform:uppercase;
    letter-spacing:.09em;
    margin-bottom:22px;
    text-align:left;
    max-width:820px;
    margin-left:auto;
    margin-right:auto;
  }
  .intro h2{font-size:clamp(1.5rem,3.2vw,2.05rem); line-height:1.28; max-width:820px; margin-left:auto; margin-right:auto; text-align:left;}
  .intro .lead-text{font-size:16.5px; margin-top:26px; color:#3d4f63; max-width:820px; margin-left:auto; margin-right:auto; text-align:left;}

  .signature-line{
    margin-top:30px;
    padding-top:26px;
    border-top:1px solid var(--line);
    font-family:'Source Serif 4', serif;
    font-style:italic;
    font-size:clamp(1.15rem, 2.4vw, 1.5rem);
    line-height:1.5;
    color:var(--forest);
    max-width:820px;
    margin-left:auto;
    margin-right:auto;
    text-align:left;
  }
  .signature-line .name{
    font-style:normal;
    color:var(--gold-deep);
  }

  /* ---------- Three worlds (inline strip) ---------- */
  .worlds-strip{
    display:flex;
    flex-wrap:wrap;
    gap:10px 28px;
    margin-top:30px;
    padding-top:26px;
    border-top:1px solid var(--line);
  }
  .worlds-strip .w-item{
    display:flex; align-items:baseline; gap:8px;
    font-size:14.5px;
    color:#3d4f63;
  }
  .worlds-strip .w-item b{
    font-family:'Source Serif 4', serif;
    color:var(--forest);
    font-weight:600;
  }

  /* ---------- Carousel (part of intro) ---------- */
  .carousel-wrap{
    margin-top:34px;
    padding-top:30px;
    border-top:1px solid var(--line);
    position:relative;
    max-width:820px;
    margin-left:auto;
    margin-right:auto;
  }
  .carousel-frame{
    position:relative;
  }
  .carousel{
    display:flex;
    align-items:center;
    height:520px;
    padding:30px 0;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    scroll-behavior:smooth;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y;
    scrollbar-width:none;
    gap:6px;
  }
  .carousel::-webkit-scrollbar{display:none;}
  .carousel figure{
    flex:0 0 auto;
    height:100%;
    scroll-snap-align:center;
    margin:0;
    border-radius:6px;
    overflow:hidden;
    opacity:.5;
    transform:scale(.9);
    transition:transform .4s cubic-bezier(.22,.75,.32,1), opacity .4s ease;
  }
  .carousel figure.active{
    opacity:1;
    transform:scale(1.06);
    position:relative;
    z-index:2;
  }
  .carousel img{height:100%; width:auto; display:block;}

  .carousel-nav{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:18px;
    margin-top:16px;
  }
  .carousel-dots{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:8px;
  }
  .dot{
    width:7px; height:7px;
    border-radius:50%;
    background:var(--line);
    border:none;
    padding:0;
    cursor:pointer;
    transition:background .2s ease, transform .2s ease;
    position:relative;
  }
  .dot::before{
    content:"";
    position:absolute;
    inset:-10px;
  }
  .dot.active{background:var(--gold-deep); transform:scale(1.5);}

  .car-btn{
    width:34px; height:34px;
    border-radius:50%;
    border:1px solid var(--line);
    background:var(--paper);
    color:var(--forest);
    display:flex; align-items:center; justify-content:center;
    cursor:pointer;
    font-size:15px;
    transition:background .15s ease, border-color .15s ease;
  }
  .car-btn:hover{background:var(--gold); border-color:var(--gold); color:#1f3b57;}

  /* ---------- Turning point (with inline needs) ---------- */
  .turning{
    background:var(--forest);
    color:var(--cream);
    padding:60px 0;
  }
  .turning .kicker{font-size:13.5px; font-weight:600; color:var(--gold); text-transform:uppercase; letter-spacing:.09em; margin-bottom:16px; text-align:left; max-width:820px; margin-left:auto; margin-right:auto;}
  .turning h2{color:#fff; font-size:clamp(1.5rem,3vw,2rem); line-height:1.32; max-width:820px; margin-left:auto; margin-right:auto; text-align:left;}
  .turning p{color:rgba(250,246,239,0.82); font-size:15.5px; max-width:820px; margin-top:16px; margin-left:auto; margin-right:auto; text-align:left;}
  .turning .diagnosis-mark{
    color:var(--gold);
    font-weight:600;
  }
  .turning .center-line{
    text-align:center;
    max-width:none;
    margin-top:26px;
    padding-top:26px;
    border-top:1px solid rgba(250,246,239,0.18);
  }
  .turning .center-line + .center-line{
    margin-top:8px;
    padding-top:0;
    border-top:none;
  }
  .turning .center-line.strong{
    color:#fff;
    font-family:'Source Serif 4', serif;
    font-size:clamp(1.3rem, 2.6vw, 1.7rem);
  }
  .needs-inline{
    display:flex;
    flex-wrap:wrap;
    gap:10px 32px;
    margin-top:32px;
    padding-top:26px;
    border-top:1px solid rgba(250,246,239,0.18);
  }
  .needs-inline .need-item{
    font-size:14.5px;
    color:rgba(250,246,239,0.82);
    max-width:280px;
  }
  .needs-inline .need-item b{color:var(--gold); font-family:'Source Serif 4', serif; font-weight:600; display:block; margin-bottom:3px; font-size:15px;}

  /* ---------- Donate CTA ---------- */
  .donate{
    background:var(--paper);
    text-align:center;
    padding:56px 0;
  }
  .donate h2{color:var(--gold-deep); font-size:clamp(1.7rem,3.6vw,2.3rem); max-width:820px; margin-left:auto; margin-right:auto;}
  .donate p.sub-emph{color:var(--forest); margin-top:20px; font-size:18px; font-weight:600; max-width:640px; margin-left:auto; margin-right:auto;}
  .donate-lede{
    font-size:15.5px;
    color:#3d4f63;
    margin:0 auto 6px;
    max-width:520px;
  }
  .donate-lede.strong{
    font-family:'Source Serif 4', serif;
    font-size:clamp(1.3rem, 2.6vw, 1.6rem);
    color:var(--forest);
    margin:6px auto 6px;
  }
  .donate-title{
    font-size:clamp(1.5rem,3.4vw,2.1rem);
    max-width:640px;
    margin:26px auto 0;
    line-height:1.24;
  }
  .donate p.sub{color:#3d4f63; margin-top:10px; font-size:15.5px; max-width:560px; margin-left:auto; margin-right:auto;}

  .donate-panel{
    margin:32px auto 0;
    max-width:560px;
    border:1px solid var(--line);
    background:var(--cream);
    padding:28px 30px;
    text-align:left;
    border-radius:3px;
  }
  .donate-panel .row{
    display:flex; justify-content:space-between; align-items:baseline;
    padding:11px 0;
    border-bottom:1px solid var(--line);
    font-size:15px;
  }
  .donate-panel .row:last-of-type{border-bottom:none;}
  .donate-panel .row span:first-child{color:#57677a;}
  .donate-panel .row span:last-child{font-weight:600; font-family:'Source Serif 4', serif; color:var(--forest); text-align:right;}
  .donate-panel .row-value{display:flex; align-items:center; gap:10px;}
  .copy-btn{
    font-family:'Inter', sans-serif;
    font-weight:600;
    font-size:12px;
    color:var(--gold-deep);
    background:transparent;
    border:1px solid var(--gold-deep);
    border-radius:999px;
    padding:4px 10px;
    cursor:pointer;
    transition:background .15s ease, color .15s ease;
    white-space:nowrap;
  }
  .copy-btn:hover{background:var(--gold-deep); color:#fff;}
  .copy-btn.copied{background:var(--forest); border-color:var(--forest); color:#fff;}
  .donate-panel small{display:block; margin-top:20px; color:#71808f; font-size:12.5px; text-align:center;}

  .donate-notes{
    max-width:560px;
    margin:20px auto 0;
    text-align:left;
  }
  .donate-notes p{
    color:#7f8fa0;
    font-size:12.5px;
    line-height:1.6;
    margin:0 0 10px;
  }
  .donate-notes p:last-child{margin-bottom:0;}

  /* ---------- Footer ---------- */
  footer{
    padding:32px 0 40px;
    text-align:center;
    color:#5f6f80;
    font-size:13.5px;
  }
  footer .serif{color:var(--forest); font-size:15px; margin-bottom:5px; display:block;}
  .footer-social{margin-top:12px;}
  .social-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:38px; height:38px;
    border-radius:50%;
    color:var(--forest);
    background:transparent;
    border:1px solid var(--line);
    transition:background .15s ease, color .15s ease, border-color .15s ease;
  }
  .social-link:hover{background:var(--forest); color:#fff; border-color:var(--forest);}
  .footer-contact{margin-top:14px; font-size:13.5px;}
  .footer-contact a{color:var(--gold-deep); text-decoration:none; border-bottom:1px solid rgba(169,126,34,0.35);}
  .footer-contact a:hover{border-bottom-color:var(--gold-deep);}

  /* ---------- Responsive: baseline is 1920×1080, scaling down ---------- */

  /* Laptops / small desktops */
  @media (max-width: 1440px){
    .wrap{max-width:1120px; padding:0 28px;}
    .carousel{height:460px; padding:30px 0;}
  }

  /* Tablets landscape */
  @media (max-width: 1024px){
    section{padding:48px 0;}
    .hero{min-height:0;}
    .hero-grid{gap:20px 24px;}
    .hero-copy{padding-top:48px;}
    .hero-cta{padding-bottom:48px;}
    .hero-visual{min-height:400px;}
    .hero-photo{width:260px; height:260px;}
    .carousel{height:400px; padding:26px 0;}
  }

  /* Tablets portrait */
  @media (max-width: 768px){
    .wrap{padding:0 24px;}
    section{padding:44px 0;}
    .hero-grid{
      display:grid;
      grid-template-columns:1fr;
      grid-template-areas:"copy" "visual" "cta";
      gap:0;
    }
    .hero-copy{padding:56px 0 0; text-align:center;}
    .hero-eyebrow{margin:0 auto 18px;}
    .hero p.lede{margin-left:auto; margin-right:auto;}
    .hero-visual{min-height:320px; padding:32px 0;}
    .hero-photo{width:230px; height:230px;}
    .hero-cta{justify-content:center; padding:0 0 48px;}
    .btn{padding:14px 24px; font-size:15px;}
    .donate-panel{padding:24px 20px;}
    .needs-inline{gap:20px;}
    .needs-inline .need-item{max-width:calc(50% - 16px);}
  }

  /* Large phones */
  @media (max-width: 600px){
    .wrap{padding:0 20px;}
    .carousel{height:330px; padding:22px 0;}
    .hero-copy{padding-top:44px;}
    .hero-visual{min-height:260px; padding:24px 0;}
    .hero-photo{width:190px; height:190px;}
    .hero-cta{flex-direction:column; align-items:stretch; padding-bottom:36px;}
    .hero-cta .btn{text-align:center;}
    .needs-inline{flex-direction:column; gap:18px;}
    .needs-inline .need-item{max-width:100%;}
    .donate-panel .row{flex-direction:column; align-items:flex-start; gap:3px; padding:12px 0;}
    .donate-panel .row span:last-child{text-align:left;}
    .car-btn{width:36px; height:36px; font-size:14px;}
  }

  /* Small phones */
  @media (max-width: 380px){
    .hero h1{font-size:1.85rem;}
    .intro h2, .turning h2, .donate h2{font-size:1.35rem;}
    .wrap{padding:0 18px;}
  }
