
  :root{
    --green:#1a3a2e; --green-deep:#10251c; --gold:#c9a13b; --gold-soft:#e6d3a3;
    --cream:#fbf8f1; --paper:#ffffff; --muted:#5b6b62;
    --serif:'Lora',Georgia,serif; --sans:'Poppins','Helvetica Neue',Arial,sans-serif;
  }
  *{ box-sizing:border-box; }
  body{ margin:0; background:var(--cream); color:var(--green);
        font-family:var(--sans); font-weight:300; -webkit-font-smoothing:antialiased; }

  /* ---------- header ---------- */
  .nav{ position:fixed; inset:0 0 auto 0; z-index:30;
        display:flex; align-items:center; justify-content:space-between;
        padding:1.05rem clamp(1.2rem,4vw,3.2rem);
        background:rgba(251,248,241,0); transition:background .4s, box-shadow .4s, padding .4s; }
  .nav.scrolled{ background:rgba(251,248,241,.93); backdrop-filter:blur(10px);
        box-shadow:0 1px 0 rgba(201,161,59,.5); padding:.7rem clamp(1.2rem,4vw,3.2rem); }
  .nav-title{ font-family:var(--serif); font-weight:600; font-size:1.02rem;
        letter-spacing:.14em; color:var(--green); text-decoration:none; }
  .nav-links{ display:flex; gap:clamp(.9rem,2.4vw,2.1rem); }
  .nav-links a{ position:relative; font-size:.69rem; font-weight:500; letter-spacing:.16em;
        text-transform:uppercase; color:var(--green); text-decoration:none; padding-bottom:.3em; }
  .nav-links a::after{ content:''; position:absolute; left:0; right:100%; bottom:0;
        height:1px; background:var(--gold); transition:right .3s ease; }
  .nav-links a:hover::after, .nav-links a.active::after{ right:0; }
  .burger{ display:none; background:none; border:none; cursor:pointer; padding:.4rem;
        width:2.2rem; height:2rem; position:relative; z-index:41; }
  .burger span{ display:block; height:1.5px; background:var(--green); margin:5px 0;
        transition:transform .3s, opacity .3s, background .3s; }
  @media (max-width:900px){
    .nav-links{ display:none; } .burger{ display:block; } }
  .menu{ position:fixed; inset:0; z-index:40; background:var(--green);
        display:flex; flex-direction:column; align-items:center; justify-content:center;
        gap:1.6rem; opacity:0; pointer-events:none; transition:opacity .35s; }
  .menu.open{ opacity:1; pointer-events:auto; }
  .menu a{ font-family:var(--serif); font-size:1.5rem; color:var(--cream);
        text-decoration:none; letter-spacing:.04em; }
  .menu a.active{ color:var(--gold); font-style:italic; }
  body.menu-open .burger span{ background:var(--cream); }
  body.menu-open .burger span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
  body.menu-open .burger span:nth-child(2){ opacity:0; }
  body.menu-open .burger span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

  
  /* ---------- hero ---------- */
  .hero{ position:relative; min-height:100svh; display:flex; flex-direction:column;
        align-items:center; justify-content:center; text-align:center;
        padding:6.5rem 1.25rem 4rem; overflow:hidden; }
  .gui{ position:absolute; pointer-events:none; }
  .gui-c{ width:min(1150px,150vw); top:50%; left:50%; transform:translate(-50%,-54%); opacity:.10; }
  .gui-l{ width:520px; left:-260px; top:-140px; opacity:.05; }
  .gui-r{ width:640px; right:-320px; bottom:-260px; opacity:.07; }
  .hero-glow{ position:absolute; width:min(760px,100vw); aspect-ratio:1; border-radius:50%;
        top:46%; left:50%; transform:translate(-50%,-50%);
        background:radial-gradient(circle, rgba(255,255,255,.85) 0%, rgba(255,255,255,0) 62%);
        pointer-events:none; }
  .crest-wrap{ position:relative; width:min(440px,78vw); aspect-ratio:730/710; }
  .crest-wrap img{ position:absolute; inset:0; width:100%; height:100%; display:block;
        opacity:0; transition:opacity .6s ease; }
  .crest-wrap img.on{ opacity:1; }
  .crest-wrap canvas{ position:absolute; inset:0; width:100%; height:100%; }
  .static .crest-wrap img{ opacity:1; transition:none; }
  .static .crest-wrap canvas{ display:none; }
  .breathe{ animation:breathe 8s ease-in-out 8s infinite alternate; }
  @keyframes breathe{ from{ transform:scale(1);} to{ transform:scale(1.008);} }
  .sheen{ position:absolute; inset:0; pointer-events:none; opacity:0;
        background:linear-gradient(115deg, transparent 38%, rgba(201,161,59,.3) 50%, transparent 62%);
        background-size:260% 100%; background-position:120% 0; }
  .sheen.go{ animation:sheen 2s ease-in-out 1; }
  @keyframes sheen{ 0%{opacity:1; background-position:120% 0;} 100%{opacity:0; background-position:-140% 0;} }
  .word{ font-family:var(--serif); font-weight:600; color:var(--green);
        font-size:clamp(1.5rem,4vw,2.3rem); letter-spacing:.3em; text-indent:.3em; margin-top:1rem; }
  .hero .word, .hero .copy{ opacity:0; transform:translateY(16px);
        transition:opacity 1s cubic-bezier(.22,1,.36,1), transform 1s cubic-bezier(.22,1,.36,1); }
  .hero .copy{ transition-delay:.15s; }
  .hero.settled .word, .hero.settled .copy, .static .word, .static .copy{ opacity:1; transform:none; }
  .copy{ max-width:52rem; margin-top:2rem; }
  .eyebrow{ font-weight:600; font-size:.72rem; letter-spacing:.26em;
        text-transform:uppercase; color:var(--gold); margin:0 0 1.2rem; }
  h1{ font-family:var(--serif); font-weight:500; text-wrap:balance;
        font-size:clamp(2rem,4.6vw,3.4rem); line-height:1.12; margin:0 0 1.2rem; }
  h1 em, h2 em{ font-style:italic; color:var(--gold); font-weight:600; }
  .sub{ font-size:1.05rem; line-height:1.8; margin:0 auto 2rem; max-width:41rem; color:#33473d; }
  .ctas{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }
  .btn{ font-weight:500; font-size:.78rem; letter-spacing:.16em; text-transform:uppercase;
        text-decoration:none; padding:1.05em 2.3em; border-radius:2px; display:inline-block;
        transition:background-color .25s,color .25s,border-color .25s,transform .25s; cursor:pointer; }
  .btn:hover{ transform:translateY(-1px); }
  .btn-solid{ background:var(--green); color:var(--cream); border:1px solid var(--green); }
  .btn-solid:hover{ background:var(--green-deep); border-color:var(--gold); }
  .btn-line{ background:transparent; color:var(--green); border:1px solid var(--gold); }
  .btn-line:hover{ background:var(--green); color:var(--cream); }
  .scroll-cue{ position:absolute; bottom:1.6rem; left:50%; transform:translateX(-50%);
        width:1px; height:52px; overflow:hidden; opacity:0; transition:opacity 1s 1s; }
  .hero.settled .scroll-cue, .static .scroll-cue{ opacity:.7; }
  .scroll-cue::after{ content:''; display:block; width:1px; height:100%;
        background:linear-gradient(var(--gold), transparent); animation:cue 2.4s ease-in-out infinite; }
  @keyframes cue{ 0%{ transform:translateY(-100%);} 60%,100%{ transform:translateY(100%);} }

  /* ---------- shared ---------- */
  section{ position:relative; padding:6rem clamp(1.2rem,5vw,3.2rem); }
  .inner{ max-width:66rem; margin:0 auto; }
  h2{ font-family:var(--serif); font-weight:500; font-size:clamp(1.7rem,3.4vw,2.5rem);
      line-height:1.15; margin:.3rem 0 1.2rem; text-wrap:balance; }
  h3{ font-family:var(--serif); font-weight:600; font-size:1.14rem; margin:0 0 .55rem; }
  p{ line-height:1.8; }
  .rule{ max-width:66rem; margin:0 auto; height:5px;
      background:
        linear-gradient(var(--gold),var(--gold)) 0 0/100% 1px no-repeat,
        linear-gradient(var(--green),var(--green)) 0 4px/100% 1px no-repeat; }
  .reveal{ opacity:0; transform:translateY(26px);
      transition:opacity .9s cubic-bezier(.22,1,.36,1), transform .9s cubic-bezier(.22,1,.36,1); }
  .reveal.in{ opacity:1; transform:none; }

  /* page header for interior pages */
  .phead{ padding:9.5rem clamp(1.2rem,5vw,3.2rem) 3.6rem; text-align:center;
      position:relative; overflow:hidden; }
  .phead .gui-c{ opacity:.06; }
  .phead h1{ font-size:clamp(2rem,4.4vw,3.2rem); }
  .phead .sub{ margin-bottom:.4rem; }

  /* pillars */
  .pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:3rem;
      border-top:1px solid rgba(26,58,46,.15); }
  .pillar{ padding:2.2rem 2rem 2.4rem; border-left:1px solid rgba(26,58,46,.15);
      position:relative; transition:background .35s; text-align:left; }
  .pillar:first-child{ border-left:none; }
  .pillar::before{ content:''; position:absolute; top:-1px; left:0; width:0; height:2px;
      background:var(--gold); transition:width .5s cubic-bezier(.22,1,.36,1); }
  .pillar:hover{ background:rgba(255,255,255,.7); }
  .pillar:hover::before{ width:100%; }
  .pn{ font-family:var(--serif); font-style:italic; color:var(--gold);
      font-size:.98rem; letter-spacing:.06em; display:block; margin-bottom:1.1rem; }
  .pillar p, .cell p{ font-size:.92rem; color:#3c4f46; margin:.3rem 0 0; }
  @media (max-width:860px){ .pillars{ grid-template-columns:1fr; }
      .pillar{ border-left:none; border-top:1px solid rgba(26,58,46,.15);} }

  /* engraved list */
  .elist{ list-style:none; padding:0; margin:1.2rem 0 0; text-align:left; }
  .elist li{ position:relative; padding:.65rem 0 .65rem 1.7rem; font-size:.95rem;
      color:#33473d; line-height:1.7; border-top:1px solid rgba(26,58,46,.1); }
  .elist li:first-child{ border-top:none; }
  .elist li::before{ content:''; position:absolute; left:0; top:1.35rem; width:.9rem;
      height:1px; background:var(--gold); }
  .elist b{ font-weight:500; color:var(--green); }

  /* two-col detail rows (services) */
  .drow{ display:grid; grid-template-columns:1fr 1.6fr; gap:clamp(1.5rem,4vw,4rem);
      padding:3.4rem 0; border-top:1px solid rgba(26,58,46,.14); text-align:left; }
  .drow:first-of-type{ border-top:none; }
  .drow h2{ font-size:clamp(1.4rem,2.6vw,1.9rem); margin-top:.6rem; }
  @media (max-width:820px){ .drow{ grid-template-columns:1fr; padding:2.6rem 0; } }

  /* comparison */
  .compare{ background:var(--paper); }
  .cmp-table{ width:100%; border-collapse:collapse; margin-top:2.8rem; }
  .cmp-table th{ font-weight:500; font-size:.7rem; letter-spacing:.14em;
      text-transform:uppercase; color:var(--muted); text-align:center; padding:0 .8rem 1.1rem; }
  .cmp-table th:first-child{ text-align:left; }
  .cmp-table th.fai{ color:var(--green); }
  .cmp-table th.fai .tag{ display:block; font-family:var(--serif); font-style:italic;
      text-transform:none; letter-spacing:.02em; font-size:.85rem; color:var(--gold);
      margin-top:.25rem; font-weight:600; }
  .cmp-table td{ border-top:1px solid rgba(26,58,46,.12); padding:1.02rem .8rem;
      font-size:.9rem; color:#33473d; text-align:center; }
  .cmp-table td:first-child{ text-align:left; font-weight:400; color:var(--green); }
  .cmp-table td.n{ color:rgba(91,107,98,.5); }
  .cmp-table td.fai{ background:rgba(201,161,59,.06); }
  .cmp-table tr:last-child td{ border-bottom:1px solid rgba(26,58,46,.12); }
  .cmp-note{ font-size:.78rem; color:var(--muted); margin-top:1.4rem; }
  @media (max-width:720px){
    .cmp-table th:nth-child(2), .cmp-table td:nth-child(2),
    .cmp-table th:nth-child(3), .cmp-table td:nth-child(3){ display:none; }
    .cmp-table th, .cmp-table td{ text-align:left; } }

  /* dark band */
  .band{ background:
      radial-gradient(1200px 600px at 50% -200px, rgba(201,161,59,.12), transparent 60%),
      var(--green); color:var(--cream); text-align:center; }
  .band h2, .band h3{ color:var(--cream); }
  .band .eyebrow{ color:var(--gold-soft); }
  .band .lead{ color:rgba(251,248,241,.82); max-width:44rem; margin:0 auto; }
  .pipe-row{ display:flex; align-items:stretch; justify-content:center;
      max-width:66rem; margin:3.2rem auto 0; }
  .stage{ flex:1 1 0; min-width:0; padding:1.6rem 1.3rem; text-align:left;
      border-left:1px solid rgba(251,248,241,.18); }
  .stage:first-child{ border-left:none; }
  .stage h3{ font-size:1.02rem; margin:.6rem 0 .45rem; }
  .stage p{ font-size:.85rem; line-height:1.7; color:rgba(251,248,241,.72); margin:0; }
  .num{ font-family:var(--serif); font-style:italic; font-weight:600; color:var(--gold);
      font-size:1rem; letter-spacing:.08em; }
  .seal{ line-height:0; margin-bottom:.2rem; }
  .creed{ display:flex; justify-content:center; gap:clamp(1.2rem,4vw,3.5rem);
      margin-top:3.4rem; flex-wrap:wrap; }
  .creed div{ max-width:15rem; }
  .creed b{ display:block; font-family:var(--serif); font-weight:600; font-size:1.05rem;
      color:var(--gold-soft); margin-bottom:.4rem; }
  .creed span{ font-size:.82rem; line-height:1.65; color:rgba(251,248,241,.7); }
  @media (max-width:860px){
    .pipe-row{ flex-direction:column; max-width:26rem; }
    .stage{ border-left:none; border-top:1px solid rgba(251,248,241,.18); }
    .stage:first-child{ border-top:none; } }

  /* grids */
  .g3{ display:grid; grid-template-columns:repeat(3,1fr); gap:2.6rem; margin-top:2.8rem; text-align:left; }
  .g2{ display:grid; grid-template-columns:1fr 1fr; gap:2.4rem 3rem; margin-top:2.8rem; text-align:left; }
  .g3 h3::before, .g2 h3::before, .cell h3::before{ content:''; display:block; width:2.2rem;
      height:1px; background:var(--gold); margin-bottom:.9rem; }
  .g3 p, .g2 p{ font-size:.92rem; color:#3c4f46; }
  @media (max-width:860px){ .g3, .g2{ grid-template-columns:1fr; } }

  /* form */
  .cgrid{ display:grid; grid-template-columns:1.4fr 1fr; gap:clamp(2rem,5vw,4.5rem);
      margin-top:3rem; text-align:left; }
  @media (max-width:820px){ .cgrid{ grid-template-columns:1fr; } }
  .field{ margin-bottom:1.3rem; }
  .field label{ display:block; font-size:.72rem; font-weight:500; letter-spacing:.12em;
      text-transform:uppercase; color:var(--muted); margin-bottom:.45rem; }
  .field input, .field textarea{ width:100%; background:var(--paper);
      border:1px solid rgba(26,58,46,.22); border-radius:2px; padding:.85em 1em;
      font-family:var(--sans); font-size:.95rem; color:var(--green); }
  .field input:focus, .field textarea:focus{ outline:none; border-color:var(--gold); }
  .steps{ counter-reset:s; margin-top:1.4rem; }
  .steps div{ position:relative; padding:0 0 1.5rem 2.6rem; }
  .steps div::before{ counter-increment:s; content:counter(s,upper-roman) ".";
      position:absolute; left:0; top:0; font-family:var(--serif); font-style:italic;
      font-weight:600; color:var(--gold); }
  .steps b{ font-weight:500; display:block; margin-bottom:.2rem; }
  .steps p{ font-size:.9rem; color:#3c4f46; margin:0; }

  blockquote{ font-family:var(--serif); font-style:italic; font-size:1.3rem; line-height:1.65;
      max-width:44rem; margin:3.4rem auto; padding-left:1.6rem;
      border-left:2px solid var(--gold); text-align:left; }

  footer{ background:var(--green-deep); color:var(--cream); text-align:center;
      padding:4rem 1.5rem 2.6rem; }
  footer .fword{ font-family:var(--serif); font-weight:600; letter-spacing:.3em;
      text-indent:.3em; font-size:1.05rem; }
  footer nav{ margin:1.6rem 0 2rem; display:flex; gap:1.7rem; justify-content:center; flex-wrap:wrap; }
  footer nav a{ color:var(--gold-soft); text-decoration:none; font-size:.68rem;
      font-weight:500; letter-spacing:.16em; text-transform:uppercase; }
  footer .disc{ max-width:54rem; margin:0 auto; font-size:.7rem; line-height:1.75;
      color:rgba(251,248,241,.55); }

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