
  :root{
    --bg:#0A0A0C;
    --bg-panel:#111114;
    --text:#F5F3EE;
    --text-dim:#A8A6A0;
    --gold:#C9A24B;
    --gold-dim:#8a7038;
    --blue:#3D5A6C;
    --red:#7A2222;
    --serif: 'Source Serif Pro', Georgia, 'Times New Roman', serif;
    --sans: 'Inter', -apple-system, 'Segoe UI', Roboto, sans-serif;
    --condensed: 'Oswald', 'Arial Narrow', sans-serif;
  }

  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  img{max-width:100%;display:block;height:auto;}
  body{
    background:var(--bg);
    color:var(--text);
    font-family:var(--sans);
    line-height:1.6;
    overflow-x:hidden;
  }

  @font-face{
    font-family:'Oswald';
    src:local('Oswald');
  }

  a{color:inherit;text-decoration:none;}

  /* ===== NAV ===== */
  nav{
    position:fixed;top:0;left:0;right:0;z-index:100;
    display:flex;align-items:center;justify-content:space-between;
    padding:22px 5vw;
    background:linear-gradient(to bottom, rgba(10,10,12,0.95), rgba(10,10,12,0));
    backdrop-filter:blur(2px);
    transition:padding .3s ease, background .3s ease;
  }
  nav.scrolled{
    padding:14px 5vw;
    background:rgba(10,10,12,0.92);
    border-bottom:1px solid rgba(201,162,75,0.15);
  }
  .nav-name{
    font-family:var(--serif);
    font-size:1.15rem;
    letter-spacing:0.02em;
    font-weight:600;
  }
  .nav-name span{color:var(--gold);}
  .nav-links{display:flex;gap:2.4rem;}
  .nav-links a{
    font-family:var(--condensed);
    font-size:0.78rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--text-dim);
    position:relative;
    padding-bottom:6px;
    transition:color .25s ease;
  }
  .nav-links a:hover{color:var(--gold);}
  .nav-links a::after{
    content:'';position:absolute;left:0;bottom:0;width:0;height:1px;
    background:var(--gold);transition:width .3s ease;
  }
  .nav-links a:hover::after{width:100%;}
  .nav-toggle{display:none;}

  @media (max-width:780px){
    .nav-links{
      position:fixed;top:0;right:0;height:100vh;width:72vw;
      background:var(--bg-panel);
      flex-direction:column;align-items:flex-start;
      padding:6rem 2rem 2rem;gap:1.8rem;
      transform:translateX(100%);
      transition:transform .35s ease;
      border-left:1px solid rgba(201,162,75,0.2);
    }
    .nav-links.open{transform:translateX(0);}
    .nav-toggle{
      display:block;background:none;border:none;color:var(--text);
      font-size:1.6rem;z-index:101;cursor:pointer;
    }
  }

  /* ===== HERO ===== */
  .hero{
    position:relative;
    height:100vh;
    min-height:640px;
    display:flex;
    align-items:flex-end;
    overflow:hidden;
  }
  .hero-img{
    position:absolute;inset:0;
    width:100%;height:100%;
    object-fit:cover;
    object-position:center 30%;
    filter:saturate(0.85) contrast(1.05);
  }
  .hero-scrim{
    position:absolute;inset:0;
    background:
      linear-gradient(to top, rgba(10,10,12,1) 0%, rgba(10,10,12,0.92) 22%, rgba(10,10,12,0.5) 52%, rgba(10,10,12,0.28) 72%, rgba(10,10,12,0.55) 100%);
  }
  .hero-content{
    position:relative;z-index:2;
    padding:0 5vw 7vw;
    max-width:980px;
  }
  .hero-eyebrow{
    font-family:var(--condensed);
    font-size:0.8rem;
    letter-spacing:0.22em;
    text-transform:uppercase;
    color:var(--gold);
    margin-bottom:1.1rem;
    display:flex;align-items:center;gap:0.8rem;
    text-shadow:0 1px 4px rgba(0,0,0,0.95), 0 2px 14px rgba(0,0,0,0.85);
  }
  .hero-eyebrow::before{
    content:'';width:32px;height:1px;background:var(--gold);
  }
  .hero h1{
    font-family:var(--condensed);
    font-weight:700;
    font-size:clamp(2.6rem, 8vw, 6.2rem);
    line-height:0.98;
    text-transform:uppercase;
    letter-spacing:0.01em;
    margin-bottom:1.4rem;
    text-shadow:0 4px 24px rgba(0,0,0,0.7), 0 2px 8px rgba(0,0,0,0.8);
  }
  .hero h1 .thin{font-weight:400;display:block;color:#F5F3EE;opacity:0.82;font-size:0.42em;letter-spacing:0.28em;margin-bottom:0.3em;text-shadow:0 2px 18px rgba(0,0,0,0.85), 0 1px 4px rgba(0,0,0,0.9);}
  .hero p{
    font-family:var(--serif);
    font-size:clamp(1.05rem, 1.6vw, 1.35rem);
    color:var(--text-dim);
    max-width:620px;
    font-style:italic;
    line-height:1.55;
  }
  .hero-scroll{
    position:absolute;bottom:2.4rem;left:5vw;z-index:2;
    display:flex;align-items:center;gap:0.7rem;
    font-family:var(--condensed);font-size:0.72rem;letter-spacing:0.18em;
    color:var(--text-dim);text-transform:uppercase;
  }
  .hero-scroll .line{width:1px;height:34px;background:linear-gradient(to bottom, var(--gold), transparent);}

  /* ===== HORIZON DIVIDER (signature element) ===== */
  .horizon{
    position:relative;height:2px;width:100%;
    background:linear-gradient(to right, transparent, var(--gold-dim) 20%, var(--gold) 50%, var(--gold-dim) 80%, transparent);
    margin:0 auto;
  }
  .horizon-wrap{padding:0 5vw;}

  /* ===== SECTION SCAFFOLDING ===== */
  section{padding:7rem 5vw;position:relative;}
  .section-inner{max-width:1180px;margin:0 auto;}
  .eyebrow{
    font-family:var(--condensed);font-size:0.78rem;letter-spacing:0.22em;
    text-transform:uppercase;color:var(--gold);margin-bottom:1rem;
    display:flex;align-items:center;gap:0.8rem;
  }
  .eyebrow::before{content:'';width:24px;height:1px;background:var(--gold);}
  h2{
    font-family:var(--condensed);font-weight:600;text-transform:uppercase;
    font-size:clamp(1.9rem, 3.4vw, 3rem);letter-spacing:0.01em;line-height:1.05;
    margin-bottom:1.6rem;
    overflow-wrap:break-word;word-wrap:break-word;
  }
  /* Headings inside a two-column split must size off the column, not the viewport,
     so long phrases can't overflow a ~45vw-wide column. */
  .two-col h2, .family-grid h2{
    font-size:clamp(1.7rem, 2.6vw, 2.4rem);
  }
  .lede{
    font-family:var(--serif);font-size:clamp(1.1rem,1.6vw,1.4rem);
    color:var(--text-dim);max-width:760px;font-style:italic;line-height:1.6;
  }

  /* ===== INTRO / WHO ===== */
  .intro{background:var(--bg);}
  .intro-grid{
    display:grid;grid-template-columns:1.1fr 0.9fr;gap:4rem;align-items:center;
  }
  .intro-grid > *{min-width:0;}
  .intro-grid img{
    width:100%;border-radius:2px;
    filter:saturate(0.9) contrast(1.02);
  }
  .intro-text p{color:var(--text-dim);margin-bottom:1.2rem;font-size:1.02rem;}
  .intro-text strong{color:var(--text);font-weight:600;}
  @media (max-width:860px){
    .intro-grid{grid-template-columns:1fr;gap:2.4rem;}
  }

  /* ===== THREE PILLARS ===== */
  .pillars{background:var(--bg-panel);}
  .pillar-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:0;
    border:1px solid rgba(201,162,75,0.18);
  }
  .pillar{
    position:relative;
    padding:2.6rem 2rem;
    border-right:1px solid rgba(201,162,75,0.18);
    min-height:420px;
    display:flex;flex-direction:column;
    overflow:hidden;
  }
  .pillar:last-child{border-right:none;}
  .pillar-img{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
    opacity:0.22;transition:opacity .4s ease, transform .6s ease;
    filter:saturate(0.7);
  }
  .pillar:hover .pillar-img{opacity:0.38;transform:scale(1.04);}
  .pillar-num{
    font-family:var(--condensed);font-size:0.78rem;letter-spacing:0.18em;
    color:var(--gold);position:relative;z-index:1;margin-bottom:1.6rem;
  }
  .pillar h3{
    font-family:var(--condensed);font-size:1.5rem;text-transform:uppercase;
    position:relative;z-index:1;margin-bottom:0.9rem;letter-spacing:0.01em;
  }
  .pillar p{
    position:relative;z-index:1;color:var(--text-dim);font-size:0.95rem;
    margin-bottom:1.6rem;flex-grow:1;
  }
  .pillar-link{
    position:relative;z-index:1;
    font-family:var(--condensed);font-size:0.78rem;letter-spacing:0.14em;
    text-transform:uppercase;color:var(--text);
    display:inline-flex;align-items:center;gap:0.6rem;
  }
  .pillar-link::after{content:'→';color:var(--gold);transition:transform .25s ease;}
  .pillar:hover .pillar-link::after{transform:translateX(4px);}

  @media (max-width:860px){
    .pillar-grid{grid-template-columns:1fr;}
    .pillar{border-right:none;border-bottom:1px solid rgba(201,162,75,0.18);min-height:320px;}
  }

  /* ===== CREDENTIALS STRIP ===== */
  .credentials{
    background:var(--bg);
    padding:4rem 5vw;
    border-top:1px solid rgba(201,162,75,0.15);
    border-bottom:1px solid rgba(201,162,75,0.15);
  }
  .cred-grid{
    max-width:1180px;margin:0 auto;
    display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;
  }
  .cred-item{text-align:center;}
  .cred-num{
    font-family:var(--serif);font-weight:600;font-size:clamp(2rem,4vw,2.8rem);
    color:var(--gold);line-height:1;margin-bottom:0.5rem;
  }
  .cred-label{
    font-family:var(--condensed);font-size:0.72rem;letter-spacing:0.14em;
    text-transform:uppercase;color:var(--text-dim);
  }
  @media (max-width:760px){
    .cred-grid{grid-template-columns:repeat(2,1fr);gap:2.4rem;}
  }

  /* ===== QUOTE / PHILOSOPHY ===== */
  .philosophy{
    background:var(--bg);
    position:relative;
  }
  .philosophy-inner{
    max-width:880px;margin:0 auto;text-align:center;
  }
  .philosophy blockquote{
    font-family:var(--serif);font-style:italic;font-weight:500;
    font-size:clamp(1.5rem,3vw,2.3rem);line-height:1.4;color:var(--text);
    position:relative;
  }
  .philosophy blockquote::before{
    content:'"';color:var(--gold);font-size:1.4em;display:block;line-height:0.4;margin-bottom:0.3em;
  }
  .philosophy cite{
    display:block;margin-top:1.6rem;font-family:var(--condensed);
    font-size:0.78rem;letter-spacing:0.16em;text-transform:uppercase;
    color:var(--gold);font-style:normal;
  }

  /* ===== FAMILY STRIP ===== */
  .family-strip{background:var(--bg-panel);}
  .family-grid{
    display:grid;grid-template-columns:0.85fr 1.15fr;gap:4rem;align-items:center;
  }
  .family-grid > *{min-width:0;}
  .family-grid img{width:100%;border-radius:2px;}
  @media (max-width:860px){
    .family-grid{grid-template-columns:1fr;gap:2.4rem;}
    .family-grid .img-col{order:-1;}
  }

  /* ===== FOOTER / CONTACT TEASER ===== */
  footer{
    background:var(--bg);
    padding:6rem 5vw 3rem;
    text-align:center;
    border-top:1px solid rgba(201,162,75,0.15);
  }
  .footer-cta h2{margin-bottom:1rem;}
  .footer-cta p{color:var(--text-dim);margin-bottom:2.4rem;max-width:560px;margin-left:auto;margin-right:auto;}
  .btn{
    display:inline-flex;align-items:center;gap:0.8rem;
    font-family:var(--condensed);font-size:0.85rem;letter-spacing:0.14em;
    text-transform:uppercase;color:var(--bg);background:var(--gold);
    padding:1rem 2.2rem;border-radius:2px;transition:background .25s ease, transform .25s ease;
  }
  .btn:hover{background:#dfb55c;transform:translateY(-2px);}
  .footer-meta{
    margin-top:5rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;
    font-family:var(--condensed);font-size:0.72rem;letter-spacing:0.1em;
    text-transform:uppercase;color:var(--text-dim);
    border-top:1px solid rgba(245,243,238,0.08);padding-top:2rem;
    max-width:1180px;margin-left:auto;margin-right:auto;
  }
  .footer-meta a:hover{color:var(--gold);}

  /* fade-in on scroll (progressive enhancement — visible by default) */
  .reveal{opacity:1;transform:none;}
  .js .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease, transform .8s ease;}
  .js .reveal.visible{opacity:1;transform:translateY(0);}

  @media (prefers-reduced-motion: reduce){
    .js .reveal{opacity:1;transform:none;transition:none;}
    html{scroll-behavior:auto;}
  }

  /* ===== INNER PAGE HERO ===== */
  .page-hero{
    position:relative;
    height:62vh;min-height:440px;
    display:flex;align-items:flex-end;
    overflow:hidden;
    margin-top:0;
  }
  .page-hero-content{position:relative;z-index:2;padding:0 5vw 4rem;max-width:980px;}
  .page-hero .hero-scrim{
    background: linear-gradient(to top, rgba(10,10,12,1) 0%, rgba(10,10,12,0.96) 18%, rgba(10,10,12,0.62) 48%, rgba(10,10,12,0.3) 75%, rgba(10,10,12,0.5) 100%);
  }
  .page-hero-content h1{text-shadow:0 4px 24px rgba(0,0,0,0.7), 0 2px 8px rgba(0,0,0,0.85);}
  .page-hero p.lede{margin-top:1.2rem;color:#F5F3EE;opacity:0.88;text-shadow:0 2px 14px rgba(0,0,0,0.8);}

  /* split hero variant — text always on solid dark, photo contained separately */
  .page-hero-split{
    height:auto;min-height:auto;
    display:grid;grid-template-columns:1.1fr 0.9fr;
    align-items:stretch;
    padding-top:7.5rem;
    background:var(--bg);
  }
  .page-hero-split-text{
    padding:2rem 5vw 3.5rem 5vw;
    display:flex;flex-direction:column;justify-content:center;
  }
  .page-hero-split-text .lede{color:var(--text-dim);opacity:1;text-shadow:none;margin-top:1.2rem;max-width:520px;}
  .page-hero-split-img{position:relative;overflow:hidden;min-height:320px;}
  .page-hero-split-img img{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 20%;
    filter:saturate(0.85) contrast(1.02);
  }
  .page-hero-split-img::after{
    content:'';position:absolute;inset:0;
    background:linear-gradient(to right, rgba(10,10,12,0.85), rgba(10,10,12,0.05) 35%);
  }
  @media (max-width:860px){
    .page-hero-split{grid-template-columns:1fr;}
    .page-hero-split-img{min-height:260px;order:-1;}
    .page-hero-split-text{padding-top:2rem;}
  }

  /* ===== TWO COL CONTENT ===== */
  .content-block{background:var(--bg);}
  .two-col{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start;}
  .two-col > *{min-width:0;}
  @media (max-width:860px){.two-col{grid-template-columns:1fr;gap:2.4rem;}}
  .body-text p{color:var(--text-dim);margin-bottom:1.2rem;font-size:1.02rem;}
  .body-text strong{color:var(--text);font-weight:600;}
  .body-text img{width:100%;border-radius:2px;margin:1rem 0;}

  /* ===== CARD GRID (for timeline/services/topics) ===== */
  .card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;}
  @media (max-width:760px){.card-grid{grid-template-columns:1fr;}}
  .card{
    border:1px solid rgba(201,162,75,0.18);
    background:var(--bg-panel);
    padding:2.2rem;
    transition:border-color .25s ease, transform .25s ease;
  }
  .card:hover{border-color:rgba(201,162,75,0.5);transform:translateY(-3px);}
  .card-eyebrow{
    font-family:var(--condensed);font-size:0.72rem;letter-spacing:0.14em;
    text-transform:uppercase;color:var(--gold);margin-bottom:0.9rem;
  }
  .card h3{
    font-family:var(--condensed);font-size:1.3rem;text-transform:uppercase;
    margin-bottom:0.8rem;letter-spacing:0.01em;
  }
  .card p{color:var(--text-dim);font-size:0.95rem;}

  /* ===== TIMELINE ===== */
  .timeline{position:relative;padding-left:2.2rem;border-left:1px solid rgba(201,162,75,0.25);}
  .timeline-item{position:relative;margin-bottom:2.6rem;}
  .timeline-item::before{
    content:'';position:absolute;left:-2.42rem;top:0.3rem;
    width:9px;height:9px;border-radius:50%;background:var(--gold);
  }
  .timeline-year{
    font-family:var(--condensed);font-size:0.78rem;letter-spacing:0.14em;
    color:var(--gold);text-transform:uppercase;margin-bottom:0.4rem;
  }
  .timeline-item h4{font-family:var(--condensed);font-size:1.15rem;text-transform:uppercase;margin-bottom:0.5rem;letter-spacing:0.01em;}
  .timeline-item p{color:var(--text-dim);font-size:0.95rem;max-width:560px;}

  /* ===== IMG STRIP / GALLERY ===== */
  .img-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;}
  @media (max-width:760px){.img-strip{grid-template-columns:1fr 1fr;}}
  .img-strip img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5;border-radius:2px;}

  /* ===== FORM ===== */
  .form-grid{display:grid;gap:1.4rem;max-width:640px;}
  label{
    font-family:var(--condensed);font-size:0.72rem;letter-spacing:0.12em;
    text-transform:uppercase;color:var(--text-dim);margin-bottom:0.5rem;display:block;
  }
  input, select, textarea{
    width:100%;background:var(--bg-panel);border:1px solid rgba(245,243,238,0.15);
    color:var(--text);padding:0.85rem 1rem;font-family:var(--sans);font-size:0.95rem;
    border-radius:2px;transition:border-color .2s ease;
  }
  input:focus, select:focus, textarea:focus{outline:none;border-color:var(--gold);}
  textarea{resize:vertical;min-height:130px;}
  .form-submit{
    font-family:var(--condensed);font-size:0.85rem;letter-spacing:0.14em;
    text-transform:uppercase;color:var(--bg);background:var(--gold);
    padding:1rem 2.2rem;border-radius:2px;border:none;cursor:pointer;
    transition:background .25s ease, transform .25s ease;justify-self:start;
  }
  .form-submit:hover{background:#dfb55c;transform:translateY(-2px);}
  .contact-info-item{margin-bottom:1.8rem;}
  .contact-info-label{
    font-family:var(--condensed);font-size:0.72rem;letter-spacing:0.14em;
    text-transform:uppercase;color:var(--gold);margin-bottom:0.4rem;
  }
  .contact-info-value{font-family:var(--serif);font-size:1.2rem;}
  .contact-info-value a:hover{color:var(--gold);}
