:root{
    --cream:#F8F5F0;
    --cream-deep:#F1EBE1;
    --charcoal:#222222;
    --charcoal-soft:#4A4A47;
    --orange:#D9782D;
    --orange-deep:#B8611E;
    --white:#FFFFFF;
    --line:rgba(34,34,34,0.12);
    --serif:'Playfair Display', Georgia, serif;
    --sans:'Assistant', -apple-system, sans-serif;
  }

  *{margin:0;padding:0;box-sizing:border-box;}

  html{scroll-behavior:smooth;}

  body{
    background:var(--cream);
    color:var(--charcoal);
    font-family:var(--sans);
    font-size:18px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }

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

  .wrap{
    max-width:1180px;
    margin:0 auto;
    padding:0 40px;
  }

  /* ---------- eyebrow / chapter motif ---------- */
  .chapter{
    display:flex;
    align-items:center;
    gap:14px;
    margin-bottom:22px;
    font-family:var(--serif);
    font-weight:600;
    font-size:14px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--orange-deep);
  }
  .chapter::before{
    content:"";
    width:34px;
    height:1px;
    background:var(--orange);
    display:block;
  }

  h1,h2,h3{
    font-family:var(--serif);
    font-weight:600;
    line-height:1.08;
    letter-spacing:-0.01em;
  }

  .btn{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:15px 30px;
    font-family:var(--sans);
    font-weight:600;
    font-size:15px;
    letter-spacing:.02em;
    border-radius:2px;
    transition:transform .25s ease, background .25s ease, color .25s ease;
    cursor:pointer;
    border:1px solid transparent;
  }
  .btn-solid{background:var(--orange);color:var(--white);}
  .btn-solid:hover{background:var(--orange-deep); transform:translateY(-2px);}
  .btn-outline{border-color:currentColor;color:var(--white);}
  .btn-outline:hover{background:var(--white);color:var(--charcoal); transform:translateY(-2px);}
  .btn-outline-dark{border-color:var(--charcoal);color:var(--charcoal);}
  .btn-outline-dark:hover{background:var(--charcoal);color:var(--white); transform:translateY(-2px);}

  /* ---------- nav ---------- */
  header.site-nav{
    position:fixed;
    top:0;left:0;right:0;
    z-index:100;
    background:rgba(248,245,240,0.88);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav-inner{
    max-width:1180px;
    margin:0 auto;
    padding:20px 40px;
    display:flex;
    align-items:center;
    justify-content:space-between;
  }
  .logo{
    font-family:var(--serif);
    font-weight:700;
    font-size:21px;
    letter-spacing:.01em;
  }
  .nav-links{
    display:flex;
    gap:34px;
    list-style:none;
    font-size:15px;
    font-weight:600;
  }
  .nav-links a{
    position:relative;
    padding-bottom:4px;
  }
  .nav-links a::after{
    content:"";
    position:absolute;
    left:0;bottom:0;
    width:0;height:1px;
    background:var(--orange);
    transition:width .25s ease;
  }
  .nav-links a:hover::after{width:100%;}
  .nav-cta{
    padding:11px 22px;
    font-size:14px;
  }
  .nav-toggle{display:none;}

  /* ---------- photo placeholder frames ---------- */
  .photo-frame{
    position:relative;
    background:
      linear-gradient(160deg, rgba(34,34,34,.78), rgba(217,120,45,.55)),
      repeating-linear-gradient(45deg, #d8d2c4 0 2px, #ece7dc 2px 4px);
    overflow:hidden;
    display:flex;
    align-items:flex-end;
  }
  .photo-frame .cap{
    position:relative;
    z-index:2;
    padding:18px 22px;
    color:var(--white);
    font-size:12.5px;
    font-weight:600;
    letter-spacing:.08em;
    text-transform:uppercase;
    font-family:var(--sans);
    display:flex;
    align-items:center;
    gap:10px;
  }
  .photo-frame .cap::before{
    content:"◎";
    font-size:15px;
  }
  .photo-frame.has-img{background:var(--charcoal);}
  .photo-frame.has-img img{
    position:absolute; inset:0;
    width:100%; height:100%;
    object-fit:cover;
    z-index:0;
  }
  .photo-frame.has-img::after{
    content:"";
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(34,34,34,0) 45%, rgba(34,34,34,.82) 100%);
    z-index:1;
  }
  .photo-frame.has-img .cap{display:none;}

  /* ---------- hero ---------- */
  .hero{
    position:relative;
    min-height:100vh;
    display:flex;
    align-items:flex-end;
    color:var(--white);
  }
  .hero .photo-frame{
    position:absolute; inset:0;
    align-items:flex-end;
  }
  .hero .photo-frame.has-img img{
    filter:blur(2px) saturate(0.9) brightness(0.92);
    transform:scale(1.03);
    object-position:78% center;
  }
  .hero .photo-frame.has-img::after{
    background:linear-gradient(180deg, rgba(34,34,34,.56) 0%, rgba(34,34,34,.48) 40%, rgba(34,34,34,.96) 100%);
  }
  .hero-content{
    position:relative;
    z-index:2;
    width:100%;
    padding:0 40px 90px;
    max-width:1180px;
    margin:0 auto;
  }
  .hero-eyebrow{
    font-family:var(--serif);
    font-style:italic;
    font-size:16px;
    letter-spacing:.03em;
    color:var(--cream);
    opacity:.85;
    margin-bottom:14px;
  }
  .hero h1{
    font-size:clamp(52px, 9vw, 118px);
    margin-bottom:18px;
  }
  .hero-sub{
    font-family:var(--sans);
    font-weight:600;
    font-size:clamp(16px,2.2vw,22px);
    letter-spacing:.02em;
    margin-bottom:24px;
    color:var(--cream);
  }
  .hero-copy{
    max-width:560px;
    font-size:18px;
    line-height:1.65;
    margin-bottom:36px;
    color:rgba(248,245,240,.92);
  }
  .hero-buttons{display:flex;gap:16px;flex-wrap:wrap;}
  .scroll-cue{
    position:absolute;
    bottom:28px; left:50%;
    transform:translateX(-50%);
    z-index:2;
    width:1px; height:56px;
    background:rgba(248,245,240,.55);
  }
  .scroll-cue::after{
    content:"";
    position:absolute;
    top:0;left:-3px;
    width:7px;height:7px;
    border-radius:50%;
    background:var(--orange);
    animation:cue 2.2s ease-in-out infinite;
  }
  @keyframes cue{
    0%{top:0;opacity:0;}
    20%{opacity:1;}
    90%{opacity:1;}
    100%{top:50px;opacity:0;}
  }

  section{padding:130px 0;}
  @media (max-width:720px){ section{padding:88px 0;} }

  /* ---------- about ---------- */
  .about-grid{
    display:grid;
    grid-template-columns:0.85fr 1.15fr;
    gap:80px;
    align-items:center;
  }
  .about-grid .photo-frame{
    aspect-ratio:4/5;
    border-radius:2px;
  }
  .about-text h2{
    font-size:clamp(32px,4vw,46px);
    max-width:11ch;
    margin-bottom:28px;
  }
  .about-text p{margin-bottom:20px;color:var(--charcoal-soft);}
  .about-text blockquote{
    font-family:var(--serif);
    font-style:italic;
    font-size:22px;
    line-height:1.5;
    color:var(--charcoal);
    border-left:2px solid var(--orange);
    padding-left:22px;
    margin:28px 0;
  }
  .about-text p.final-line{
    color:var(--charcoal);
    font-weight:500;
  }

  /* ---------- philosophy ---------- */
  .philosophy{
    background:var(--charcoal);
    color:var(--cream);
    text-align:center;
  }
  .philosophy .wrap{max-width:820px;}
  .philosophy p{
    font-family:var(--serif);
    font-weight:500;
    font-size:clamp(26px,4.4vw,42px);
    line-height:1.45;
    letter-spacing:.005em;
  }
  .philosophy .accent-line{
    color:var(--orange);
  }
  .philosophy .takeaway{
    font-family:var(--serif);
    font-weight:700;
    font-size:clamp(30px,5.2vw,50px);
    color:var(--orange);
    margin-top:34px;
    letter-spacing:.005em;
  }
  .philosophy .chapter{justify-content:center;color:var(--orange);}
  .philosophy .chapter::before{display:none;}

  /* ---------- services ---------- */
  .services-head{max-width:640px;margin-bottom:70px;}
  .services-head h2{font-size:clamp(32px,4vw,46px);}
  .services-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
  }
  .service-card{
    background:var(--cream);
    padding:48px 36px;
    transition:background .3s ease;
  }
  .service-card:hover{background:var(--cream-deep);}
  .service-num{
    font-family:var(--serif);
    font-style:italic;
    color:var(--orange);
    font-size:15px;
    margin-bottom:26px;
    display:block;
  }
  .service-card h3{
    font-size:24px;
    margin-bottom:14px;
  }
  .service-card p{color:var(--charcoal-soft); font-size:16px;}

  /* ---------- featured workshop ---------- */
  .workshop-grid{
    display:grid;
    grid-template-columns:1.1fr 0.9fr;
    gap:80px;
    align-items:start;
  }
  .workshop-copy h2{
    font-size:clamp(32px,4vw,46px);
    max-width:14ch;
    margin-bottom:12px;
  }
  .workshop-subhead{
    font-family:var(--sans);
    font-weight:600;
    font-size:17px;
    color:var(--orange-deep);
    margin-bottom:26px;
  }
  .workshop-copy p{
    color:var(--charcoal-soft);
    font-size:17px;
    margin-bottom:28px;
    max-width:52ch;
  }
  .workshop-aside{
    background:var(--cream-deep);
    padding:40px;
    border-left:2px solid var(--orange);
  }
  .outcomes-list{list-style:none;margin-bottom:26px;}
  .outcomes-list li{
    position:relative;
    padding-left:24px;
    margin-bottom:14px;
    font-size:16px;
    color:var(--charcoal);
    line-height:1.5;
  }
  .outcomes-list li::before{
    content:"—";
    position:absolute;
    left:0;
    color:var(--orange-deep);
  }
  .workshop-ideal{
    font-family:var(--serif);
    font-style:italic;
    font-size:16px;
    color:var(--charcoal-soft);
    margin-bottom:26px;
  }
  @media (max-width:860px){
    .workshop-grid{grid-template-columns:1fr;gap:44px;}
  }

  @media (max-width:860px){
    .services-grid{grid-template-columns:1fr;}
  }

  /* ---------- featured work ---------- */
  .work-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:32px;
  }
  @media (max-width:980px){
    .work-grid{grid-template-columns:1fr 1fr;}
  }
  .work-card .photo-frame{
    aspect-ratio:16/11;
    margin-bottom:20px;
  }
  .work-card h3{font-size:24px;margin-bottom:8px;}
  .work-card p{color:var(--charcoal-soft);margin-bottom:12px;}
  .work-card .learn{
    font-weight:700;
    font-size:14px;
    letter-spacing:.03em;
    color:var(--orange-deep);
    display:inline-flex;
    align-items:center;
    gap:6px;
  }
  .work-card .learn::after{content:"→"; transition:transform .2s ease;}
  .work-card:hover .learn::after{transform:translateX(4px);}

  @media (max-width:720px){ .work-grid{grid-template-columns:1fr;} }

  /* ---------- impact ---------- */
  .impact{background:var(--cream-deep);}
  .impact-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:40px;
    text-align:center;
  }
  .impact-num{
    font-family:var(--serif);
    font-weight:700;
    font-size:clamp(34px,4.6vw,54px);
    color:var(--orange-deep);
    margin-bottom:10px;
  }
  .impact-label{
    font-size:14px;
    font-weight:600;
    letter-spacing:.02em;
    color:var(--charcoal-soft);
  }
  @media (max-width:860px){
    .impact-grid{grid-template-columns:1fr 1fr;row-gap:50px;}
  }

  /* ---------- experience ---------- */
  .experience-layout{
    display:grid;
    grid-template-columns:1fr 1.4fr;
    gap:70px;
  }
  .timeline{list-style:none;position:relative; padding-left:28px; border-left:1px solid var(--line);}
  .timeline li{
    position:relative;
    padding-bottom:30px;
    font-family:var(--serif);
    font-size:20px;
  }
  .timeline li:last-child{padding-bottom:0;}
  .timeline li::before{
    content:"";
    position:absolute;
    left:-33px; top:6px;
    width:9px;height:9px;
    border-radius:50%;
    background:var(--orange);
  }
  .experience-context{
    font-size:16px;
    color:var(--charcoal-soft);
    align-self:center;
    background:var(--white);
    padding:32px;
    border-left:2px solid var(--orange);
  }
  @media (max-width:860px){
    .experience-layout{grid-template-columns:1fr;}
  }

  /* ---------- testimonials ---------- */
  .testimonial-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:44px;
  }
  .testimonial{
    padding-top:26px;
    border-top:2px solid var(--orange);
  }
  .testimonial p{
    font-family:var(--serif);
    font-weight:500;
    font-size:20px;
    line-height:1.55;
    margin-bottom:22px;
  }
  .testimonial .who{font-size:14px;font-weight:700;color:var(--charcoal-soft);}
  @media (max-width:860px){
    .testimonial-grid{grid-template-columns:1fr;gap:50px;}
  }

  /* ---------- final CTA ---------- */
  .final-cta{
    position:relative;
    color:var(--white);
    padding:0;
    min-height:78vh;
    display:flex;
    align-items:center;
  }
  .final-cta .photo-frame{position:absolute; inset:0; align-items:center; justify-content:center;}
  .final-cta .photo-frame .cap{position:absolute; bottom:0; left:0;}
  .final-cta .photo-frame.has-img::after{
    background:linear-gradient(180deg, rgba(34,34,34,.62) 0%, rgba(34,34,34,.5) 50%, rgba(34,34,34,.72) 100%);
  }
  .final-cta-content{
    position:relative;
    z-index:2;
    text-align:center;
    max-width:760px;
    margin:0 auto;
    padding:0 40px;
  }
  .final-cta h2{
    font-size:clamp(34px,5.6vw,58px);
    margin-bottom:22px;
  }
  .final-cta p{
    font-size:19px;
    margin-bottom:38px;
    color:rgba(248,245,240,.92);
  }
  .final-buttons{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}

  /* ---------- footer ---------- */
  footer{
    background:var(--charcoal);
    color:var(--cream);
    padding:60px 0 34px;
  }
  .footer-top{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    flex-wrap:wrap;
    gap:30px;
    padding-bottom:36px;
    border-bottom:1px solid rgba(248,245,240,.15);
    margin-bottom:24px;
  }
  .footer-top .logo{color:var(--cream);}
  .footer-links{display:flex;gap:28px;list-style:none;font-size:15px;flex-wrap:wrap;}
  .footer-bottom{
    display:flex;
    justify-content:space-between;
    font-size:13px;
    color:rgba(248,245,240,.55);
    flex-wrap:wrap;
    gap:10px;
  }

  /* ---------- reveal on scroll ---------- */
  .reveal{
    opacity:0;
    transform:translateY(28px);
    transition:opacity .8s ease, transform .8s ease;
  }
  .reveal.in{opacity:1;transform:translateY(0);}

  @media (prefers-reduced-motion:reduce){
    .reveal{opacity:1;transform:none;transition:none;}
    .scroll-cue::after{animation:none;}
  }

  /* ---------- mobile nav ---------- */
  @media (max-width:860px){
    .nav-links{
      position:fixed;
      top:64px; left:0; right:0;
      background:var(--cream);
      flex-direction:column;
      gap:0;
      border-bottom:1px solid var(--line);
      max-height:0;
      overflow:hidden;
      transition:max-height .3s ease;
    }
    .nav-links.open{max-height:360px;}
    .nav-links li{width:100%;}
    .nav-links a{display:block;padding:16px 40px;}
    .nav-links a::after{display:none;}
    .nav-cta{display:none;}
    .nav-toggle{
      display:block;
      background:none;border:none;
      font-size:22px;
      cursor:pointer;
      color:var(--charcoal);
    }
    .about-grid, .experience-layout{grid-template-columns:1fr;}
  }
