:root{
    --charcoal:#1A1714;
    --charcoal-soft:#231F1A;
    --charcoal-deep:#121009;
    --ivory:#F7F2E7;
    --paper:#FBF8F1;
    --gold:#4C9A2A;
    --gold-light:#E8CE8E;
    --gold-dim:#6B8F4A;
    --ember:#A85A34;
    --olive:#3E7A24;
    --travertine:#D9BC85;
    --slate-water:#3C90CC;
    --ink:#231F1A;
    --line: rgba(35,31,26,0.12);
    --line-dark: rgba(247,242,231,0.15);
    --maxw: 1280px;
  }

  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--paper);
    color:var(--ink);
    font-family:'Inter', sans-serif;
    font-weight:300;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%; display:block;}
  a{color:inherit; text-decoration:none;}
  ul{list-style:none;}

  h1,h2,h3,.serif{
    font-family:'Playfair Display', serif;
    font-weight:500;
    line-height:1.08;
    letter-spacing:-0.005em;
  }
  .script{
    font-family:'Poppins', sans-serif;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:0.01em;
    line-height:1;
  }

  .eyebrow{
    font-family:'Inter', sans-serif;
    font-weight:500;
    font-size:0.72rem;
    letter-spacing:0.24em;
    text-transform:uppercase;
    display:flex;
    align-items:center;
    gap:12px;
  }
  .eyebrow::before{
    content:'';
    width:24px; height:1px;
    background:currentColor;
    display:inline-block;
  }

  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 44px;}

  :focus-visible{outline:2px solid var(--gold); outline-offset:3px;}

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
  }

  .reveal{opacity:0; transform:translateY(24px); transition:opacity 0.9s ease, transform 0.9s ease;}
  .reveal.in{opacity:1; transform:translateY(0);}

  /* ---------- NAV ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    padding:30px 0;
    transition:background 0.4s ease, backdrop-filter 0.4s ease, padding 0.35s ease, border-color .4s ease;
    border-bottom:1px solid transparent;
  }
  header.scrolled{
    background:rgba(26,23,20,0.88);
    backdrop-filter:blur(12px);
    padding:16px 0;
    border-color:var(--line-dark);
  }
  nav.wrap{display:flex; align-items:center; justify-content:space-between;}
  .brand{display:flex; align-items:center; gap:14px; line-height:1;}
  .brand-mark{height:52px; width:auto; flex-shrink:0;}
  .brand-text{display:flex; flex-direction:column;}
  .brand .script{font-size:1.35rem; color:var(--gold-light); letter-spacing:0.03em;}
  .brand span{
    font-size:0.6rem; letter-spacing:0.3em; text-transform:uppercase;
    color:rgba(247,242,231,0.65); margin-top:2px; margin-left:2px;
  }

  .nav-links{display:flex; align-items:center; gap:38px;}
  .nav-links a{
    color:var(--ivory); opacity:0.82;
    font-size:0.78rem; letter-spacing:0.12em; text-transform:uppercase;
    position:relative; padding:4px 0;
  }
  .nav-links a:hover{opacity:1;}
  .nav-links a.quote{
    opacity:1;
    background:var(--gold);
    color:var(--charcoal-deep);
    padding:12px 24px;
    border-radius:1px;
    font-weight:500;
    transition:background 0.25s ease, transform 0.25s ease;
  }
  .nav-links a.quote:hover{background:var(--gold-light); transform:translateY(-1px);}
  .nav-links a.phone{opacity:1; display:flex; align-items:center; gap:8px; letter-spacing:0.06em;}

  .nav-toggle{display:none; background:none; border:0; color:var(--ivory); font-size:1.7rem; cursor:pointer;}

  @media (max-width:920px){
    .nav-links{
      position:fixed; inset:0 0 0 auto; width:80%; max-width:360px;
      background:var(--charcoal-deep); flex-direction:column; align-items:flex-start;
      padding:120px 36px 40px; gap:28px;
      transform:translateX(100%); transition:transform 0.4s ease;
    }
    .nav-links.open{transform:translateX(0);}
    .nav-toggle{display:block;}
  }

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    min-height:100svh;
    background:var(--charcoal-deep);
    color:var(--ivory);
    overflow:hidden;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    text-align:center;
    padding:140px 24px 90px;
  }
  .hero-photo{
    position:absolute; inset:0;
    background-image:
      linear-gradient(180deg, rgba(18,16,9,0.72) 0%, rgba(18,16,9,0.4) 22%, rgba(18,16,9,0.38) 40%, rgba(18,16,9,0.5) 62%, rgba(18,16,9,0.92) 100%),
      radial-gradient(ellipse 70% 55% at 50% 40%, rgba(18,16,9,0) 0%, rgba(18,16,9,0.45) 100%),
      url('images/hero-bg.jpg');
    background-size:cover, cover, cover;
    background-position:center, center, center 38%;
    background-repeat:no-repeat;
    transform:scale(1.06);
  }
  .hero-photo::after{
    content:'';
    position:absolute; inset:0;
    background-image: radial-gradient(rgba(247,242,231,0.05) 1px, transparent 1px);
    background-size:4px 4px;
    opacity:0.3;
  }

  .hero-sparks{position:absolute; inset:0; z-index:1; overflow:hidden; pointer-events:none;}
  .hero-sparks span{
    position:absolute; width:3px; height:3px; border-radius:50%;
    background:var(--gold-light);
    opacity:0; box-shadow:0 0 6px 1px rgba(232,206,142,0.75);
    animation:heroSparkRise linear infinite;
  }
  .hero-sparks span:nth-child(1){left:10%; bottom:4%; animation-duration:12s; animation-delay:0s;}
  .hero-sparks span:nth-child(2){left:23%; bottom:0%; animation-duration:15s; animation-delay:2s;}
  .hero-sparks span:nth-child(3){left:37%; bottom:9%; animation-duration:10s; animation-delay:4.5s;}
  .hero-sparks span:nth-child(4){left:51%; bottom:2%; animation-duration:14s; animation-delay:1s;}
  .hero-sparks span:nth-child(5){left:65%; bottom:6%; animation-duration:13s; animation-delay:5.5s;}
  .hero-sparks span:nth-child(6){left:79%; bottom:0%; animation-duration:11s; animation-delay:3s;}
  .hero-sparks span:nth-child(7){left:89%; bottom:10%; animation-duration:16s; animation-delay:6.5s;}
  .hero-sparks span:nth-child(8){left:5%; bottom:15%; animation-duration:17s; animation-delay:7.5s;}
  @keyframes heroSparkRise{
    0%{transform:translateY(0) scale(0.6); opacity:0;}
    8%{opacity:0.9;}
    72%{opacity:0.45;}
    100%{transform:translateY(-340px) scale(1.15); opacity:0;}
  }

  .hero-vignette{
    position:absolute; inset:0; z-index:2;
    box-shadow: inset 0 0 220px 60px rgba(0,0,0,0.55);
  }
  @media (prefers-reduced-motion: reduce){
    .hero-sparks span{animation:none;}
  }

  .hero-badge{
    position:relative; z-index:3;
    width:96px; height:96px; border:1px solid var(--gold-dim);
    border-radius:50%; display:flex; align-items:center; justify-content:center;
    margin-bottom:30px; padding:5px;
  }
  .hero-badge-img{width:100%; height:100%; object-fit:contain;}

  .hero-content{position:relative; z-index:3; max-width:900px;}
  .hero-eyebrow{
    font-size:0.72rem; letter-spacing:0.34em; text-transform:uppercase;
    color:var(--gold-light); margin-bottom:26px;
    text-shadow:0 2px 4px rgba(0,0,0,0.85), 0 1px 14px rgba(0,0,0,0.9);
  }
  .hero .script-word{
    font-size:clamp(2.6rem, 8vw, 5.4rem);
    color:var(--ivory);
    display:block;
    letter-spacing:0.01em;
  }
  .hero-sub-label{
    font-family:'Inter', sans-serif; font-size:0.82rem; letter-spacing:0.5em;
    text-transform:uppercase; color:rgba(247,242,231,0.55); margin-top:8px;
  }
  .hero-tagline{
    font-family:'Playfair Display', serif; font-style:italic; font-weight:400;
    font-size:clamp(1.2rem, 2vw, 1.55rem);
    color:rgba(247,242,231,0.85);
    margin-top:34px; max-width:34ch; margin-left:auto; margin-right:auto;
  }
  .hero-cta{display:flex; gap:18px; margin-top:46px; flex-wrap:wrap; justify-content:center;}
  .btn{
    font-family:'Inter', sans-serif; font-weight:500;
    font-size:0.76rem; letter-spacing:0.14em; text-transform:uppercase;
    padding:16px 30px; border-radius:1px;
    display:inline-flex; align-items:center; gap:10px;
    transition:transform 0.25s ease, background 0.25s ease, color 0.25s ease, border-color .25s ease;
  }
  .btn-primary{background:var(--gold); color:var(--charcoal-deep);}
  .btn-primary:hover{background:var(--gold-light); transform:translateY(-2px);}
  .btn-ghost{border:1px solid var(--line-dark); color:var(--ivory);}
  .btn-ghost:hover{border-color:var(--gold-light); color:var(--gold-light); transform:translateY(-2px);}

  .scroll-cue{
    position:absolute; bottom:34px; left:50%; transform:translateX(-50%); z-index:3;
    display:flex; flex-direction:column; align-items:center; gap:10px;
    color:rgba(247,242,231,0.5); font-size:0.65rem; letter-spacing:0.3em; text-transform:uppercase;
  }
  .scroll-cue .line{width:1px; height:34px; background:linear-gradient(var(--gold-light), transparent); animation:pulse 2.4s ease-in-out infinite;}
  @keyframes pulse{0%,100%{opacity:0.3;} 50%{opacity:1;}}

  /* ---------- MARQUEE ---------- */
  .marquee-strip{
    background:var(--gold); color:var(--charcoal-deep);
    overflow:hidden; white-space:nowrap;
    padding:15px 0;
  }
  .marquee-track{display:inline-flex; animation:scroll 36s linear infinite;}
  .marquee-track span{
    font-family:'Inter', sans-serif; font-weight:500; font-size:0.78rem; letter-spacing:0.16em;
    text-transform:uppercase; padding:0 30px; display:inline-flex; align-items:center; gap:30px;
  }
  .marquee-track span::after{content:'✦'; font-size:0.6rem; opacity:0.65;}
  @keyframes scroll{from{transform:translateX(0);} to{transform:translateX(-50%);}}

  /* ---------- SECTION SHARED ---------- */
  section{padding:130px 0;}
  .section-head{
    display:flex; justify-content:space-between; align-items:flex-end;
    gap:40px; margin-bottom:70px; flex-wrap:wrap;
  }
  .section-head .eyebrow{color:var(--gold-dim); margin-bottom:20px;}
  .section-head h2{font-size:clamp(2.1rem, 4vw, 3.3rem);}
  .section-head p{max-width:36ch; color:#6b6357; font-size:0.98rem; font-weight:300;}

  /* ---------- SERVICES ---------- */
  .services{background:var(--charcoal-deep);}
  .services .section-head h2{color:var(--ivory);}
  .services .section-head p{color:rgba(247,242,231,0.62);}
  .services .section-head .eyebrow{color:var(--gold-light);}
  .spec-grid{
    display:grid; grid-template-columns:repeat(4,1fr); gap:2px;
    background:var(--line-dark);
  }
  .spec-item{
    position:relative; overflow:hidden;
    padding:30px 26px; min-height:380px;
    display:flex; flex-direction:column; justify-content:space-between;
    color:var(--ivory);
  }
  .spec-item::before{
    content:''; position:absolute; inset:0; z-index:0;
    transition:transform 0.7s ease;
  }
  .spec-item::after{
    content:'';
    position:absolute; inset:0; z-index:0;
    background-image: radial-gradient(rgba(247,242,231,0.06) 1px, transparent 1px);
    background-size:4px 4px;
  }
  .spec-item:hover::before{transform:scale(1.06);}
  .spec-item.cat-landscape::before{
    background:
      radial-gradient(ellipse 90% 70% at 25% 15%, rgba(76,154,42,0.55), transparent 60%),
      radial-gradient(ellipse 70% 55% at 85% 90%, rgba(18,16,9,0.5), transparent 60%),
      linear-gradient(150deg, #223018 0%, #171410 100%);
  }
  .spec-item.cat-hardscape::before{
    background:
      radial-gradient(ellipse 90% 70% at 25% 15%, rgba(199,162,82,0.55), transparent 60%),
      radial-gradient(ellipse 70% 55% at 85% 90%, rgba(18,16,9,0.5), transparent 60%),
      linear-gradient(150deg, #2B2418 0%, #171410 100%);
  }
  .spec-item.cat-pool::before{
    background:
      radial-gradient(ellipse 90% 70% at 25% 15%, rgba(60,144,204,0.55), transparent 60%),
      radial-gradient(ellipse 70% 55% at 85% 90%, rgba(18,16,9,0.5), transparent 60%),
      linear-gradient(150deg, #16232B 0%, #101418 100%);
  }
  .spec-item.cat-build::before{
    background:
      radial-gradient(ellipse 90% 70% at 25% 15%, rgba(231,206,138,0.4), transparent 60%),
      radial-gradient(ellipse 70% 55% at 85% 90%, rgba(18,16,9,0.5), transparent 60%),
      linear-gradient(150deg, #23201B 0%, #121009 100%);
  }
  .spec-item > *{position:relative; z-index:1;}
  .spec-num{font-family:'Inter'; font-weight:500; font-size:0.7rem; color:rgba(247,242,231,0.65); letter-spacing:0.14em;}
  .spec-icon{margin:0;}
  .spec-item h3{font-size:1.55rem; margin-bottom:10px; font-weight:500; color:var(--ivory);}
  .spec-item p{font-size:0.9rem; color:rgba(247,242,231,0.75); font-weight:300;}
  .swatch{width:13px; height:13px; border-radius:50%; display:inline-block; margin-right:8px;}

  @media (max-width:900px){.spec-grid{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:560px){.spec-grid{grid-template-columns:1fr;}}

  /* ---------- PROCESS ---------- */
  .process{background:var(--charcoal-deep); color:var(--ivory);}
  .process .section-head p{color:rgba(247,242,231,0.58);}
  .process .eyebrow{color:var(--gold-light);}
  .process-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-dark);}
  .process-item{background:var(--charcoal-deep); padding:46px 36px;}
  .process-item .big-num{
    font-family:'Playfair Display', serif; font-style:italic; font-weight:400;
    font-size:3.6rem; color:var(--gold); line-height:1;
  }
  .process-item h3{margin:20px 0 12px; font-size:1.55rem; font-weight:500;}
  .process-item p{color:rgba(247,242,231,0.6); font-size:0.92rem; font-weight:300;}
  @media (max-width:820px){.process-grid{grid-template-columns:1fr;}}

  /* ---------- PROJECTS ---------- */
  .projects{background:var(--ivory);}
  .project-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
  .project-card{position:relative; aspect-ratio:4/5; overflow:hidden; border-radius:2px; cursor:pointer;}
  .ph-photo{
    position:absolute; inset:0;
    background:
      linear-gradient(180deg, rgba(18,16,9,0.15), rgba(18,16,9,0.75)),
      radial-gradient(ellipse 90% 70% at 30% 20%, rgba(168,90,52,0.4), transparent 60%),
      radial-gradient(ellipse 70% 60% at 80% 90%, rgba(63,90,99,0.35), transparent 60%),
      linear-gradient(150deg, #23201B 0%, #171410 100%);
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
    transition:transform 0.7s ease;
  }
  .project-card:hover .ph-photo{transform:scale(1.05);}
  .ph-icon{opacity:0.7;}
  .project-card::after{
    content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
    background:linear-gradient(180deg, rgba(18,16,9,0) 45%, rgba(18,16,9,0.55) 75%, rgba(18,16,9,0.85) 100%);
  }
  .ph-label{position:absolute; left:22px; bottom:22px; z-index:2; color:var(--ivory); text-shadow:0 1px 6px rgba(0,0,0,0.35);}
  .ph-label .eyebrow{color:var(--gold-light); margin-bottom:6px;}
  .ph-label h3{font-size:1.5rem; font-weight:500;}

  .status-badge{
    display:inline-flex; align-items:center; gap:7px;
    padding:6px 14px; border-radius:20px;
    background:rgba(18,16,9,0.55);
    border:1px solid rgba(232,206,142,0.45);
    font-size:0.66rem; letter-spacing:0.14em; text-transform:uppercase;
    color:var(--gold-light); font-weight:500;
  }
  .status-badge .dot{
    width:6px; height:6px; border-radius:50%; background:var(--gold-light); flex:none;
    animation:statusPulse 1.8s infinite;
  }
  @keyframes statusPulse{
    0%{box-shadow:0 0 0 0 rgba(232,206,142,0.55);}
    70%{box-shadow:0 0 0 7px rgba(232,206,142,0);}
    100%{box-shadow:0 0 0 0 rgba(232,206,142,0);}
  }
  .status-badge.card-badge{position:absolute; top:18px; right:18px; z-index:2; backdrop-filter:blur(3px);}
  @media (prefers-reduced-motion: reduce){ .status-badge .dot{animation:none;} }
  @media (max-width:900px){.project-grid{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:600px){.project-grid{grid-template-columns:1fr;}}

  .projects-note{margin-top:30px; font-size:0.78rem; color:#8f8676; font-weight:300; letter-spacing:0.02em;}

  /* ---------- PHILOSOPHY ---------- */
  .philosophy{background:var(--paper);}
  .philosophy .wrap{display:grid; grid-template-columns:0.9fr 1.1fr; gap:84px; align-items:center;}
  .philosophy h2{font-size:clamp(2rem,4vw,3.1rem); line-height:1.14;}
  .philosophy .body-col p{color:#6b6357; margin-bottom:20px; font-size:1.02rem; font-weight:300;}
  .philosophy .body-col p:last-child{margin-bottom:0;}
  @media (max-width:860px){.philosophy .wrap{grid-template-columns:1fr; gap:36px;}}

  /* ---------- TESTIMONIALS ---------- */
  .testimonials{background:var(--charcoal-deep); color:var(--ivory); position:relative;}
  .testimonials .eyebrow{color:var(--gold-light);}
  .testimonials .section-head h2{color:var(--ivory);}
  .quote-row{display:grid; grid-template-columns:repeat(3,1fr); gap:52px; margin-top:0;}
  .quote-mark{font-family:'Playfair Display'; font-size:2.6rem; color:var(--gold); font-style:italic; line-height:1; margin-bottom:8px;}
  .quote-item p{font-family:'Playfair Display', serif; font-style:italic; font-weight:400; font-size:1.35rem; line-height:1.35; margin-bottom:18px; color:rgba(247,242,231,0.92);}
  .quote-item span{font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase; color:rgba(247,242,231,0.5); font-weight:400;}
  @media (max-width:860px){.quote-row{grid-template-columns:1fr; gap:44px;}}

  /* ---------- CONTACT ---------- */
  .contact{background:var(--charcoal); color:var(--ivory); position:relative; overflow:hidden; border-top:1px solid var(--line-dark);}
  .contact-glow{position:absolute; inset:0; background:radial-gradient(ellipse 60% 50% at 85% 20%, rgba(199,162,82,0.12), transparent 60%);}
  .contact .wrap{position:relative; z-index:2; display:grid; grid-template-columns:1fr 1fr; gap:84px;}
  .contact h2{font-size:clamp(2.3rem,5vw,4.1rem); margin-bottom:22px;}
  .contact-info p{color:rgba(247,242,231,0.62); max-width:40ch; margin-bottom:38px; font-weight:300;}
  .contact-detail{margin-bottom:24px;}
  .contact-detail .eyebrow{color:var(--gold-light); margin-bottom:7px;}
  .contact-detail a, .contact-detail div{font-size:1.15rem; font-weight:400;}
  .contact-detail a:hover{color:var(--gold-light);}

  form{display:flex; flex-direction:column; gap:20px;}
  .field{display:flex; flex-direction:column; gap:9px;}
  .field label{font-size:0.68rem; letter-spacing:0.14em; text-transform:uppercase; color:rgba(247,242,231,0.55); font-weight:500;}
  .field input, .field select, .field textarea{
    background:transparent; border:none; border-bottom:1px solid var(--line-dark);
    color:var(--ivory); font-family:'Inter'; font-weight:300; font-size:1rem; padding:10px 2px;
  }
  .field input:focus, .field select:focus, .field textarea:focus{border-color:var(--gold-light);}
  .field select option{color:#000;}
  form .btn-primary{align-self:flex-start; border:0; cursor:pointer; margin-top:10px;}
  form .btn-primary:disabled{opacity:0.6; cursor:default; transform:none;}
  .form-status{font-size:0.92rem; margin-top:12px; min-height:1.3em;}
  .form-status-success{color:var(--gold);}
  .form-status-error{color:#c98a4b;}

  @media (max-width:860px){.contact .wrap{grid-template-columns:1fr; gap:50px;}}

  /* ---------- FOOTER ---------- */
  footer{background:var(--charcoal-deep); border-top:1px solid var(--line-dark); padding:36px 0;}
  footer .wrap{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px;}
  footer p, footer a{font-size:0.74rem; color:rgba(247,242,231,0.5); letter-spacing:0.04em; font-weight:300;}
  footer a:hover{color:var(--gold-light);}
  .footer-links{display:flex; gap:28px;}
  .footer-brand{display:flex; align-items:center; gap:14px;}
  .footer-mark{height:30px; width:auto;}
  /* ---------- NAV ACTIVE STATE ---------- */
  .nav-links a.active{opacity:1; color:var(--gold-light);}

  /* ---------- INNER PAGE HEADER (shorter hero for sub-pages) ---------- */
  .page-header{
    position:relative;
    min-height:52vh;
    background:var(--charcoal-deep);
    color:var(--ivory);
    overflow:hidden;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    text-align:center;
    padding:150px 24px 70px;
  }
  .page-header .hero-photo{
    position:absolute; inset:0;
    background-image:
      radial-gradient(ellipse 60% 45% at 50% 68%, rgba(168,90,52,0.35), transparent 70%),
      radial-gradient(ellipse 80% 60% at 78% 15%, rgba(63,90,99,0.28), transparent 65%),
      linear-gradient(180deg, #171410 0%, #1D1912 45%, #120F0A 100%);
  }
  .page-header-content{position:relative; z-index:3; max-width:760px;}
  .page-header .eyebrow{justify-content:center; color:var(--gold-light); margin-bottom:22px;}
  .page-header h1{font-size:clamp(2.4rem, 6vw, 4.4rem); color:var(--ivory);}
  .page-header p{
    margin-top:20px; color:rgba(247,242,231,0.68); max-width:48ch;
    margin-left:auto; margin-right:auto; font-size:1.02rem; font-weight:300;
  }

  /* ---------- PAGE-HEADER / PROJECT-HERO TEXT ENTRANCE ---------- */
  .page-header-content .breadcrumb,
  .page-header-content .eyebrow,
  .page-header-content > p:not(.breadcrumb):not(.eyebrow),
  .project-hero-content .breadcrumb,
  .project-hero-content .eyebrow,
  .project-hero-content .project-location{
    opacity:0;
    transform:translateY(16px);
    animation:pageTextFadeUp 0.8s cubic-bezier(0.22,1,0.36,1) forwards;
  }
  .page-header-content .breadcrumb, .project-hero-content .breadcrumb{animation-delay:0.05s;}
  .page-header-content .eyebrow, .project-hero-content .eyebrow{animation-delay:0.16s;}
  .page-header-content > p:not(.breadcrumb):not(.eyebrow){animation-delay:0.8s;}
  .project-hero-content .project-location{animation-delay:0.55s;}
  @keyframes pageTextFadeUp{
    to{opacity:1; transform:translateY(0);}
  }

  .word-reveal{display:inline-block; overflow:hidden; vertical-align:bottom; padding-bottom:0.08em; margin-bottom:-0.08em;}
  .word-reveal .word-inner{
    display:inline-block;
    transform:translateY(115%) rotate(3deg);
    opacity:0;
    animation:wordRise 0.9s cubic-bezier(0.19,1,0.22,1) forwards;
  }
  @keyframes wordRise{
    to{transform:translateY(0) rotate(0deg); opacity:1;}
  }
  @media (prefers-reduced-motion: reduce){
    .page-header-content .breadcrumb, .page-header-content .eyebrow, .page-header-content > p,
    .project-hero-content .breadcrumb, .project-hero-content .eyebrow, .project-hero-content .project-location{
      opacity:1; transform:none; animation:none;
    }
    .word-reveal .word-inner{opacity:1; transform:none; animation:none;}
  }
  .breadcrumb{
    position:relative; z-index:3;
    font-size:0.7rem; letter-spacing:0.14em; text-transform:uppercase;
    color:rgba(247,242,231,0.45); margin-bottom:18px;
  }
  .breadcrumb a{color:rgba(247,242,231,0.7);}
  .breadcrumb a:hover{color:var(--gold-light);}

  /* ---------- CTA BAND (used between sections on sub-pages) ---------- */
  .cta-band{background:var(--gold); padding:64px 0; text-align:center;}
  .cta-band h2{color:var(--charcoal-deep); font-size:clamp(1.7rem,3.4vw,2.4rem); margin-bottom:22px;}
  .cta-band .btn-primary{background:var(--charcoal-deep); color:var(--ivory);}
  .cta-band .btn-primary:hover{background:#000;}

  /* ---------- ABOUT / OWNER ---------- */
  .owner-section{background:var(--paper);}
  .owner-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:80px; align-items:start;}
  .owner-photo{
    position:relative; aspect-ratio:3/4; border-radius:2px; overflow:hidden;
  }
  .owner-photo .ph-photo{position:absolute; inset:0;}
  .owner-name-card{
    margin-top:22px; padding:22px 0 0; border-top:1px solid var(--line);
  }
  .owner-name-card h3{font-size:1.4rem; margin-bottom:4px;}
  .owner-name-card span{font-size:0.76rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-dim);}

  .pull-quote{
    font-family:'Playfair Display', serif; font-style:italic; font-weight:400;
    font-size:clamp(1.5rem, 2.6vw, 2.1rem); line-height:1.35;
    color:var(--ink); margin-bottom:40px; max-width:26ch;
  }
  .owner-body p{color:#5a564c; font-size:1.04rem; margin-bottom:22px; font-weight:300;}
  .owner-body p:last-child{margin-bottom:0;}

  .focus-strip{
    display:flex; flex-wrap:wrap; gap:14px; margin-top:40px;
  }
  .focus-chip{
    border:1px solid var(--line); border-radius:20px; padding:9px 18px;
    font-size:0.76rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink);
    display:flex; align-items:center; gap:8px;
  }
  .focus-chip .swatch{width:8px; height:8px; margin-right:0;}

  .signature-line{
    margin-top:44px; display:flex; align-items:center; gap:16px;
  }
  .signature-line .script{font-size:1.6rem; color:var(--gold-dim);}
  .signature-line span{font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:#8f8676;}

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

  /* ---------- TRUST STRIP (in-house / budget / single contact) ---------- */
  .trust-strip{background:var(--paper); padding:90px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .trust-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:56px;}
  .trust-item svg{margin-bottom:20px;}
  .trust-item h3{font-size:1.28rem; margin-bottom:10px; font-weight:500;}
  .trust-item p{color:#6b6357; font-size:0.92rem; font-weight:300; max-width:32ch;}
  @media (max-width:860px){.trust-grid{grid-template-columns:1fr; gap:40px;}}

  /* ---------- PROJECT DETAIL PAGE ---------- */
  a.project-card{display:block;}

  .project-hero{position:relative; min-height:78vh; overflow:hidden; background:var(--charcoal-deep);}
  .project-hero .hero-photo{position:absolute; inset:0;}
  .project-hero-overlay{position:absolute; inset:0; background:linear-gradient(180deg, rgba(18,16,9,0.1) 35%, rgba(18,16,9,0.88) 100%);}
  .project-hero-content{position:absolute; left:0; right:0; bottom:0; z-index:2; padding:60px 44px;}
  .project-hero-content .breadcrumb{color:rgba(247,242,231,0.55);}
  .project-hero-content .breadcrumb a{color:rgba(247,242,231,0.8);}
  .project-hero-content .eyebrow{color:var(--gold-light); margin-bottom:16px;}
  .project-hero-content h1{color:var(--ivory); font-size:clamp(2.4rem,5vw,4.2rem);}
  .project-location{
    margin-top:14px; font-size:0.82rem; letter-spacing:0.12em; text-transform:uppercase;
    color:rgba(247,242,231,0.68); display:flex; align-items:center; gap:8px;
  }

  .project-detail{background:var(--paper); padding:100px 0;}
  .project-detail-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:70px; align-items:start;}
  .project-detail-grid .body p{color:#5a564c; font-size:1.05rem; margin-bottom:22px; font-weight:300;}
  .project-detail-grid .chips{display:flex; gap:12px; flex-wrap:wrap; margin:8px 0 34px;}
  .project-secondary-photo{position:relative; aspect-ratio:4/3; border-radius:2px; overflow:hidden;}

  .project-gallery-extra{margin-top:84px;}
  .project-gallery-extra .eyebrow{color:var(--gold-dim); margin-bottom:24px;}
  .project-gallery-extra .grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
  .project-gallery-extra .grid > div{position:relative; aspect-ratio:4/5; border-radius:2px; overflow:hidden;}
  @media (max-width:900px){.project-gallery-extra .grid{grid-template-columns:1fr 1fr;}}
  @media (max-width:560px){.project-gallery-extra .grid{grid-template-columns:1fr;}}

  .project-gallery-extra .grid.grid-2up{grid-template-columns:repeat(2,1fr);}
  @media (max-width:560px){.project-gallery-extra .grid.grid-2up{grid-template-columns:1fr;}}

  .project-gallery-extra .feature-photo{position:relative; aspect-ratio:3/4; max-width:620px; margin:0 auto 20px; border-radius:2px; overflow:hidden;}
  .project-gallery-extra .grid.grid-4up{grid-template-columns:repeat(4,1fr);}
  .project-gallery-extra .grid.grid-4up > div{aspect-ratio:3/4;}
  @media (max-width:900px){.project-gallery-extra .grid.grid-4up{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:560px){.project-gallery-extra .grid.grid-4up{grid-template-columns:1fr;}}

  .project-video-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
  .project-video-grid .video-card{position:relative; border-radius:2px; overflow:hidden; background:#000;}
  .project-video-grid video{display:block; width:100%; aspect-ratio:16/9; object-fit:cover; background:#000;}
  .project-video-grid .video-tag{
    position:absolute; top:16px; left:16px; z-index:2;
    font-size:0.68rem; letter-spacing:0.14em; text-transform:uppercase;
    color:var(--ivory); background:rgba(18,16,9,0.55); padding:7px 14px; border-radius:20px;
    pointer-events:none;
  }
  @media (max-width:760px){.project-video-grid{grid-template-columns:1fr;}}

  .project-video-grid.video-grid-3up{grid-template-columns:repeat(3,1fr);}
  .project-video-grid.video-grid-3up video{aspect-ratio:9/16;}
  @media (max-width:900px){.project-video-grid.video-grid-3up{grid-template-columns:1fr 1fr;}}
  @media (max-width:560px){.project-video-grid.video-grid-3up{grid-template-columns:1fr;}}

  .project-gallery-extra .video-card-single{position:relative; max-width:400px; margin:0 auto; border-radius:2px; overflow:hidden; background:#000;}
  .project-gallery-extra .video-card-single video{display:block; width:100%; aspect-ratio:9/16; object-fit:cover; background:#000;}

  .project-nav{display:flex; justify-content:space-between; align-items:center; padding:50px 0; border-top:1px solid var(--line); background:var(--paper);}
  .project-nav a{font-size:0.78rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink); display:flex; align-items:center; gap:8px;}

  /* Field gallery — supplementary single-feature shots, grouped by category */
  .field-gallery{padding:70px 0 20px;}
  .field-gallery .section-head{margin-bottom:10px;}
  .field-category{margin-top:56px;}
  .field-category .eyebrow{color:var(--gold-dim); margin-bottom:18px;}
  .field-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(230px,1fr)); gap:16px; align-items:start;}
  .field-tile{position:relative; border-radius:2px; overflow:hidden; background:#000;}
  .field-tile img, .field-tile video{display:block; position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
  .field-tile-caption{
    position:absolute; left:0; right:0; bottom:0; z-index:2;
    font-size:0.72rem; letter-spacing:0.04em; color:var(--ivory);
    background:linear-gradient(to top, rgba(18,16,9,0.75), transparent);
    padding:22px 14px 10px; pointer-events:none;
  }
  @media (max-width:560px){.field-grid{grid-template-columns:repeat(2,1fr);}}

  /* Behind the Build — process/crew video reel */
  .build-gallery{padding:20px 0 70px;}
  .build-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:14px;}
  .build-tile{position:relative; aspect-ratio:9/16; border-radius:2px; overflow:hidden; background:#000;}
  .build-tile video{display:block; width:100%; height:100%; object-fit:cover;}
  @media (max-width:900px){.build-grid{grid-template-columns:repeat(3,1fr);}}
  @media (max-width:560px){.build-grid{grid-template-columns:repeat(2,1fr);}}
  .project-nav a:hover{color:var(--gold-dim);}
  .project-nav a.next{margin-left:auto; text-align:right;}

  @media (max-width:860px){.project-detail-grid{grid-template-columns:1fr; gap:36px;}}

  /* ---------- RICHNESS LAYER: grain, scroll progress, page fade, scrollbar ---------- */
  html{background:var(--paper);}
  body{opacity:0; transition:opacity 0.5s ease;}
  body.loaded{opacity:1;}

  #scrollProgress{
    position:fixed; top:0; left:0; height:2px; width:0%;
    background:linear-gradient(90deg, var(--gold), var(--gold-light));
    z-index:9999; transition:width 0.08s linear;
  }

  .grain-overlay{
    position:fixed; inset:0; z-index:1; pointer-events:none;
    opacity:0.045; mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }

  ::-webkit-scrollbar{width:10px; height:10px;}
  ::-webkit-scrollbar-track{background:var(--paper);}
  ::-webkit-scrollbar-thumb{background:var(--travertine); border-radius:6px;}
  ::-webkit-scrollbar-thumb:hover{background:var(--gold-dim);}
  html{scrollbar-color:var(--travertine) var(--paper); scrollbar-width:thin;}

  @media (prefers-reduced-motion: reduce){
    body{opacity:1; transition:none;}
  }

  /* ---------- HERO PARALLAX ---------- */
  .hero .hero-photo, .project-hero .hero-photo, .page-header .hero-photo{
    will-change:transform;
  }

  /* ---------- PHOTO WIPE REVEAL (scroll-triggered) ---------- */
  .reveal .ph-photo{
    clip-path:inset(0 0 0 0);
    transition:clip-path 1.1s cubic-bezier(0.65,0,0.35,1);
  }
  .reveal:not(.in) .ph-photo{
    clip-path:inset(0 0 100% 0);
  }
  @media (prefers-reduced-motion: reduce){
    .reveal:not(.in) .ph-photo{clip-path:inset(0 0 0 0);}
  }

  /* ---------- PROJECT CARD HOVER: "View Project" ---------- */
  .card-view{
    position:absolute; left:22px; bottom:22px; z-index:3;
    display:flex; align-items:center; gap:8px;
    font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase;
    color:var(--gold-light);
    opacity:0; transform:translateY(10px);
    transition:opacity 0.35s ease, transform 0.35s ease;
  }
  .project-card:hover .card-view{opacity:1; transform:translateY(0);}
  .project-card:hover .ph-label{transform:translateY(-26px);}
  .ph-label{transition:transform 0.35s ease;}
  .card-view svg{transition:transform 0.35s ease;}
  .project-card:hover .card-view svg{transform:translateX(4px);}

  /* ---------- PROCESS WATERMARK NUMBER ---------- */
  .process-item{position:relative; overflow:hidden;}
  .process-item .watermark-num{
    position:absolute; top:-0.3em; right:-0.05em; z-index:0;
    font-family:'Playfair Display', serif; font-style:italic; font-weight:400;
    font-size:9rem; line-height:1; color:var(--ivory); opacity:0.045;
    pointer-events:none; user-select:none;
  }
  .process-item > *:not(.watermark-num){position:relative; z-index:1;}

  /* ---------- BEFORE / AFTER SLIDER ---------- */
  .before-after{
    position:relative; aspect-ratio:16/10; overflow:hidden; border-radius:2px;
    cursor:ew-resize; user-select:none;
  }
  .before-after .ba-panel{position:absolute; inset:0;}
  .before-after .ba-after{clip-path:inset(0 0 0 50%);}
  .before-after .ba-handle{
    position:absolute; top:0; bottom:0; left:50%; width:2px;
    background:var(--gold-light); z-index:3; pointer-events:none;
  }
  .before-after .ba-handle::after{
    content:'\21c6'; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    width:44px; height:44px; border-radius:50%; background:var(--gold);
    color:var(--charcoal-deep); display:flex; align-items:center; justify-content:center;
    font-size:1.1rem;
  }
  .before-after .ba-tag{
    position:absolute; top:18px; z-index:2;
    font-size:0.68rem; letter-spacing:0.14em; text-transform:uppercase;
    color:var(--ivory); background:rgba(18,16,9,0.55); padding:7px 14px; border-radius:20px;
  }
  .before-after .ba-tag.before{left:18px;}
  .before-after .ba-tag.after{right:18px;}

  /* ---------- PROCESS STAGE DETAIL LIST ---------- */
  .process-item .stage-list{
    list-style:none; margin-top:20px; padding-top:18px;
    border-top:1px solid var(--line-dark);
  }
  .process-item .stage-list li{
    display:flex; align-items:flex-start; gap:10px;
    font-size:0.86rem; color:rgba(247,242,231,0.7); font-weight:300;
    margin-bottom:10px; line-height:1.4;
  }
  .process-item .stage-list li:last-child{margin-bottom:0;}
  .process-item .stage-list li::before{
    content:''; flex-shrink:0; width:6px; height:6px; border-radius:50%;
    background:var(--gold); margin-top:6px;
  }
