@layer reset,tokens,base,layout,components,utilities;
@layer reset{*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body,h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}img,svg{display:block;max-width:100%}button,input,select,textarea{font:inherit}a{color:inherit}}
@layer tokens{:root{--ink:#17232D;--slate:#516776;--amber:#D88A28;--paper:#F7F5F0;--surface:#FFFFFF;--line:#D9DDDE;--text:#202629;--muted:#66747C;--danger:#A63D40;--success:#2D6A4F;--max:1160px;--measure:68ch;--font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;--s1:.5rem;--s2:.75rem;--s3:1rem;--s4:1.5rem;--s5:2rem;--s6:3rem;--s7:4.5rem;--s8:7rem;--radius:2px;--shadow:0 20px 45px rgb(23 35 45 / .08)}}
@layer base{html{font-family:var(--font);color:var(--text);background:var(--paper);font-size:100%}body{min-height:100vh;line-height:1.65}h1,h2,h3{color:var(--ink);line-height:1.08;letter-spacing:-.035em;text-wrap:balance}h1{font-size:clamp(3rem,7vw,6.4rem);font-weight:760;max-width:12ch}h2{font-size:clamp(2rem,4.5vw,4rem);font-weight:740;max-width:16ch}h3{font-size:clamp(1.2rem,2.4vw,1.6rem);font-weight:720}p{max-width:var(--measure)}a{text-underline-offset:.18em}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--amber);outline-offset:4px}::selection{background:#f1c58d;color:var(--ink)}main{overflow:hidden}}
@layer layout{.container{width:min(calc(100% - 2.5rem),var(--max));margin-inline:auto}.narrow{width:min(calc(100% - 2.5rem),760px);margin-inline:auto}.section{padding-block:var(--s8)}.section--tight{padding-block:var(--s7)}.split{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,7vw,7rem);align-items:start}.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.5rem,4vw,3rem)}.stack>*+*{margin-top:var(--s4)}.stack-lg>*+*{margin-top:var(--s6)}}
@layer components{.skip-link{position:fixed;left:1rem;top:-5rem;z-index:1000;background:var(--amber);color:var(--ink);padding:.8rem 1rem;font-weight:800}.skip-link:focus{top:1rem}.site-header{position:sticky;top:0;z-index:100;background:rgb(247 245 240 / .96);border-bottom:1px solid rgb(217 221 222 / .8);backdrop-filter:blur(10px)}.header-row{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{display:inline-flex;align-items:center;gap:.75rem;text-decoration:none;color:var(--ink);font-weight:760;letter-spacing:-.025em}.brand img{width:42px;height:42px}.primary-nav{display:flex;align-items:center;gap:2rem}.primary-nav a{font-weight:650;text-decoration:none}.primary-nav a[aria-current="page"]{text-decoration:underline;text-decoration-color:var(--amber);text-decoration-thickness:3px;text-underline-offset:.55rem}.nav-toggle{display:none;border:1px solid var(--line);background:transparent;padding:.65rem .85rem;color:var(--ink)}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:.8rem 1.2rem;border:1px solid var(--ink);background:var(--ink);color:#fff;font-weight:760;text-decoration:none}.button:hover{background:#0e171e}.button--ghost{background:transparent;color:var(--ink);border-color:var(--slate)}.button--ghost:hover{background:#fff;color:var(--ink)}.button--amber{background:var(--amber);border-color:var(--amber);color:var(--ink)}.button--amber:hover{background:#e09a42;color:var(--ink)}.actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:2rem}.hero{padding:clamp(5.5rem,12vw,10rem) 0 clamp(5rem,10vw,8rem)}.hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:clamp(3rem,9vw,9rem);align-items:end}.eyebrow{font:700 .76rem/1.2 var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--slate);margin-bottom:1.5rem}.lead{font-size:clamp(1.15rem,2.1vw,1.42rem);line-height:1.55;color:var(--muted);margin-top:1.7rem;max-width:54ch}.hero-note{border-top:2px solid var(--ink);padding-top:1.4rem}.hero-note strong{display:block;color:var(--ink);font-size:1.08rem}.hero-note p{margin-top:.45rem;color:var(--muted)}.signal-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.signal{padding:2rem 2rem 2rem 0}.signal+.signal{border-left:1px solid var(--line);padding-left:2rem}.signal span{display:block;font:700 .72rem/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--amber);margin-bottom:.7rem}.signal p{color:var(--muted);font-size:.96rem}.quiet{background:var(--surface)}.service-list{border-top:1px solid var(--line)}.service-row{display:grid;grid-template-columns:5rem 1fr auto;gap:2rem;align-items:start;padding:2rem 0;border-bottom:1px solid var(--line)}.service-row>span{font:700 .72rem/1.2 var(--mono);color:var(--amber);letter-spacing:.08em}.service-row p{color:var(--muted);margin-top:.6rem}.service-row .text-link{white-space:nowrap}.text-link{font-weight:760;text-decoration:none;border-bottom:1px solid currentColor}.price-panel{border-top:3px solid var(--ink);padding-top:1.5rem}.price-panel .price{font-size:clamp(2.7rem,6vw,5rem);line-height:1;color:var(--ink);letter-spacing:-.05em;font-weight:760;margin:.6rem 0 1rem}.price-panel p{color:var(--muted)}.feature-list{list-style:none;padding:0;margin-top:1.5rem;border-top:1px solid var(--line)}.feature-list li{padding:1rem 0;border-bottom:1px solid var(--line)}.feature-list li::before{content:"+";color:var(--amber);font-weight:900;margin-right:.75rem}.process{counter-reset:step;list-style:none;padding:0;border-top:1px solid var(--line)}.process li{counter-increment:step;display:grid;grid-template-columns:4rem 1fr;gap:1.5rem;padding:1.6rem 0;border-bottom:1px solid var(--line)}.process li::before{content:"0" counter(step);font:700 .72rem/1.2 var(--mono);color:var(--amber);letter-spacing:.08em}.process p{color:var(--muted);margin-top:.45rem}.callout{background:var(--ink);color:#dce2e5}.callout h2{color:#fff}.callout .eyebrow{color:#c6d0d5}.callout-grid{display:grid;grid-template-columns:1fr auto;gap:3rem;align-items:end}.callout p{margin-top:1rem;color:#c6d0d5}.fine{font-size:.9rem;color:var(--muted)}.mt-1{margin-top:1rem}.price-unit{font-size:.3em;letter-spacing:0}.form-wrap{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:clamp(3rem,8vw,8rem)}.project-form{background:var(--surface);border-top:3px solid var(--ink);padding:2rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.15rem}.field{display:flex;flex-direction:column;gap:.45rem}.field--full{grid-column:1/-1}label{font-weight:700;font-size:.93rem}input,select,textarea{width:100%;min-height:50px;border:1px solid #aab2b5;background:#fff;color:var(--text);padding:.78rem .85rem;border-radius:0}textarea{min-height:170px;resize:vertical}input[aria-invalid="true"],select[aria-invalid="true"],textarea[aria-invalid="true"]{border-color:var(--danger)}.checkbox{display:grid;grid-template-columns:auto 1fr;gap:.7rem;align-items:start}.checkbox input{width:1.2rem;height:1.2rem;min-height:auto;margin-top:.25rem}.field-error{font-size:.84rem;color:var(--danger)}.form-status{margin-bottom:1rem;padding:1rem;border-left:4px solid var(--danger);background:#fff5f5}.form-status.success{border-left-color:var(--success);background:#f1f8f4}.honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important}.contact-aside{border-top:1px solid var(--line);padding-top:1.5rem}.contact-aside>*+*{margin-top:1.3rem}.contact-aside a{font-weight:760}.legal{padding:var(--s7) 0 var(--s8)}.legal h1{font-size:clamp(2.5rem,6vw,4.5rem);max-width:14ch}.legal h2{font-size:clamp(1.45rem,3vw,2.2rem);margin-top:3rem}.legal h3{font-size:1.15rem;margin-top:2rem}.legal p,.legal li{color:#445159}.legal ul,.legal ol{padding-left:1.25rem}.legal .notice{border-left:4px solid var(--amber);padding:1rem 1.2rem;background:#fff;margin:1.5rem 0}.site-footer{border-top:1px solid var(--line);padding:3.5rem 0 1.5rem}.footer-grid{display:grid;grid-template-columns:1.35fr .65fr .8fr;gap:3rem}.footer-brand p{margin-top:1rem;color:var(--muted);max-width:36ch}.footer-nav{display:flex;flex-direction:column;gap:.55rem}.footer-nav strong{margin-bottom:.4rem}.footer-nav a{color:var(--muted);text-decoration:none}.footer-nav a:hover{color:var(--ink)}.footer-bottom{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:1.5rem;margin-top:2.5rem;font-size:.88rem;color:var(--muted)}.footer-brand .brand img{width:46px;height:46px}}
@layer utilities{@media(max-width:900px){.hero-grid,.split,.form-wrap,.callout-grid,.footer-grid{grid-template-columns:1fr}.signal-row{grid-template-columns:1fr}.signal,.signal+.signal{border-left:0;padding:1.5rem 0}.signal+.signal{border-top:1px solid var(--line)}.service-row{grid-template-columns:3rem 1fr}.service-row .text-link{grid-column:2}.primary-nav{display:none;position:absolute;top:73px;left:1.25rem;right:1.25rem;background:var(--paper);border:1px solid var(--line);padding:1rem;flex-direction:column;align-items:stretch;box-shadow:var(--shadow)}.primary-nav.is-open{display:flex}.nav-toggle{display:inline-flex}.primary-nav .button{width:100%}}@media(max-width:640px){.container,.narrow{width:min(calc(100% - 1.4rem),var(--max))}.section{padding-block:5rem}.hero{padding-top:4.5rem}.form-grid,.two-col{grid-template-columns:1fr}.field--full{grid-column:auto}.actions{flex-direction:column}.actions .button{width:100%}.project-form{padding:1.2rem}.site-header .brand span{font-size:.94rem}.brand img{width:38px;height:38px}.header-row{min-height:72px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}}

/* Premium motion system ---------------------------------------------------- */
@layer tokens{
  :root{
    --motion-fast:220ms;
    --motion-ui:340ms;
    --motion-reveal:760ms;
    --motion-reveal-long:980ms;
    --ease-ui:cubic-bezier(.2,.75,.25,1);
    --ease-reveal:cubic-bezier(.22,1,.36,1);
    --reveal-distance:18px;
  }
}

@layer components{
  /* UI responsiveness */
  .site-header{
    transition:background-color var(--motion-ui) var(--ease-ui),
      border-color var(--motion-ui) var(--ease-ui),
      box-shadow var(--motion-ui) var(--ease-ui),
      backdrop-filter var(--motion-ui) var(--ease-ui);
  }
  .site-header.is-scrolled{
    background:rgb(247 245 240 / .985);
    border-bottom-color:rgb(23 35 45 / .13);
    box-shadow:0 10px 32px rgb(23 35 45 / .055);
    backdrop-filter:blur(14px);
  }
  .brand,
  .brand img,
  .primary-nav a,
  .footer-nav a,
  .text-link,
  .button,
  .nav-toggle,
  .signal,
  .service-row,
  .price-panel,
  .contact-aside{
    transition-duration:var(--motion-ui);
    transition-timing-function:var(--ease-ui);
  }
  .brand{transition-property:opacity,transform}
  .brand img{transition-property:transform}
  .brand:hover{opacity:.9;text-decoration:none}
  .brand:hover img{transform:translateY(-1px)}
  .primary-nav a:not(.button),.footer-nav a{transition-property:color,opacity,text-decoration-color}
  .primary-nav a:not(.button):hover{color:var(--slate)}
  .button{
    transition-property:transform,background-color,border-color,color,box-shadow;
    will-change:transform;
  }
  .button:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgb(23 35 45 / .12)}
  .button:active{transform:translateY(0);box-shadow:0 4px 12px rgb(23 35 45 / .08);transition-duration:90ms}
  .text-link{transition-property:color,border-color,transform}
  .text-link:hover{color:var(--slate);border-color:var(--amber)}
  .nav-toggle{transition-property:background-color,border-color,color,transform}
  .nav-toggle:hover{background:var(--surface);border-color:var(--slate)}
  .nav-toggle:active{transform:scale(.98)}

  /* Quiet lift on interactive / card-like surfaces */
  @media (hover:hover) and (pointer:fine){
    .signal,.service-row,.price-panel,.contact-aside{transition-property:transform,border-color,box-shadow}
    .signal:hover,.service-row:hover,.price-panel:hover,.contact-aside:hover{transform:translateY(-3px)}
    .price-panel:hover,.contact-aside:hover{box-shadow:0 18px 42px rgb(23 35 45 / .055)}
  }

  /* Reveal state is only enabled after JavaScript confirms animation support.
     Without JavaScript, all content remains fully visible. */
  .motion-ready .reveal{
    opacity:0;
    transform:translate3d(0,var(--reveal-distance),0);
    transition:opacity var(--motion-reveal) var(--ease-reveal),
      transform var(--motion-reveal) var(--ease-reveal);
    transition-delay:var(--reveal-delay,0ms);
    will-change:opacity,transform;
  }
  .motion-ready .reveal.reveal--soft{transform:translate3d(0,12px,0)}
  .motion-ready .reveal.is-visible{
    opacity:1;
    transform:translate3d(0,0,0);
    will-change:auto;
  }

  /* Hero hierarchy: each stage resolves before the next becomes dominant. */
  .motion-ready .hero .hero-reveal{
    opacity:0;
    transform:translate3d(0,20px,0);
    transition:opacity var(--motion-reveal-long) var(--ease-reveal),
      transform var(--motion-reveal-long) var(--ease-reveal);
    transition-delay:var(--hero-delay,0ms);
    will-change:opacity,transform;
  }
  .motion-ready .hero .hero-reveal.is-visible{
    opacity:1;
    transform:translate3d(0,0,0);
    will-change:auto;
  }
  .motion-ready .hero .hero-note.hero-reveal{
    transform:translate3d(14px,10px,0);
  }
  .motion-ready .hero .hero-note.hero-reveal.is-visible{transform:translate3d(0,0,0)}

  /* Mobile navigation keeps its existing behaviour but transitions cleanly. */
  @media(max-width:900px){
    .primary-nav{
      display:flex;
      opacity:0;
      visibility:hidden;
      pointer-events:none;
      transform:translateY(-8px) scale(.985);
      transform-origin:top center;
      transition:opacity var(--motion-ui) var(--ease-ui),
        transform var(--motion-ui) var(--ease-ui),
        visibility 0s linear var(--motion-ui);
    }
    .primary-nav.is-open{
      display:flex;
      opacity:1;
      visibility:visible;
      pointer-events:auto;
      transform:translateY(0) scale(1);
      transition:opacity var(--motion-ui) var(--ease-ui),
        transform var(--motion-ui) var(--ease-ui),
        visibility 0s linear 0s;
    }
  }
}

@layer utilities{
  @media(max-width:640px){:root{--reveal-distance:14px}}
  @media(prefers-reduced-motion:reduce){
    .site-header,.brand,.brand img,.primary-nav,.primary-nav a,.footer-nav a,.text-link,.button,.nav-toggle,.signal,.service-row,.price-panel,.contact-aside{transition:none!important}
    .button:hover,.button:active,.brand:hover img,.signal:hover,.service-row:hover,.price-panel:hover,.contact-aside:hover{transform:none!important;box-shadow:none!important}
    .motion-ready .reveal,.motion-ready .hero .hero-reveal{opacity:1!important;transform:none!important;transition:none!important;animation:none!important}
  }
}


/* Motion refinement: slower site cadence, cinematic hero hierarchy and full-width mobile menu. */
@layer components{
  /* Hero entrance uses distinct motion signatures to establish hierarchy. */
  .motion-ready .hero .hero-reveal{
    opacity:0;
    transform:translate3d(0,28px,0);
    transition-duration:var(--motion-reveal-long);
    transition-timing-function:var(--ease-reveal);
  }
  .motion-ready .hero .eyebrow.hero-reveal{
    transform:translate3d(0,14px,0);
    letter-spacing:.145em;
    transition-property:opacity,transform,letter-spacing;
  }
  .motion-ready .hero h1.hero-reveal{
    clip-path:inset(0 0 100% 0);
    transform:translate3d(0,34px,0);
    transition-property:opacity,transform,clip-path;
  }
  .motion-ready .hero .lead.hero-reveal{
    transform:translate3d(0,24px,0);
  }
  .motion-ready .hero .actions.hero-reveal{
    transform:none;
  }
  .motion-ready .hero .actions.hero-reveal > *{
    opacity:0;
    transform:translate3d(0,16px,0);
    transition:opacity 720ms var(--ease-reveal),transform 720ms var(--ease-reveal),background-color var(--motion-ui) var(--ease-ui),border-color var(--motion-ui) var(--ease-ui),color var(--motion-ui) var(--ease-ui),box-shadow var(--motion-ui) var(--ease-ui);
    transition-delay:var(--hero-action-delay,0ms);
  }
  .motion-ready .hero .hero-note.hero-reveal{
    opacity:0;
    transform:translate3d(28px,8px,0);
    clip-path:inset(0 0 0 18%);
    transition-property:opacity,transform,clip-path;
  }
  .motion-ready .hero .hero-reveal.is-visible{
    opacity:1;
    transform:translate3d(0,0,0);
  }
  .motion-ready .hero .eyebrow.hero-reveal.is-visible{letter-spacing:.11em}
  .motion-ready .hero h1.hero-reveal.is-visible,
  .motion-ready .hero .hero-note.hero-reveal.is-visible{clip-path:inset(0 0 0 0)}
  .motion-ready .hero .actions.hero-reveal.is-visible > *{
    opacity:1;
    transform:translate3d(0,0,0);
  }

  @media(max-width:900px){
    /* Full-viewport-width dropdown anchored directly beneath the sticky header. */
    .primary-nav{
      position:fixed;
      top:82px;
      left:0;
      right:0;
      width:100vw;
      max-width:none;
      margin:0;
      padding:1.15rem max(1.25rem,calc((100vw - var(--max))/2));
      background:rgb(247 245 240 / .985);
      border:0;
      border-bottom:1px solid var(--line);
      box-shadow:0 22px 42px rgb(23 35 45 / .09);
      backdrop-filter:blur(12px);
      flex-direction:column;
      align-items:stretch;
      gap:0;
      opacity:0;
      visibility:hidden;
      pointer-events:none;
      transform:none;
      clip-path:inset(0 0 100% 0);
      transition:clip-path 460ms var(--ease-reveal),opacity 360ms var(--ease-ui),visibility 0s linear 460ms;
    }
    .primary-nav.is-open{
      opacity:1;
      visibility:visible;
      pointer-events:auto;
      transform:none;
      clip-path:inset(0 0 0 0);
      transition:clip-path 460ms var(--ease-reveal),opacity 360ms var(--ease-ui),visibility 0s linear 0s;
    }
    .primary-nav > a{
      width:100%;
      opacity:0;
      transform:translate3d(28px,0,0);
      transition:opacity 440ms var(--ease-reveal),transform 440ms var(--ease-reveal),color var(--motion-ui) var(--ease-ui),background-color var(--motion-ui) var(--ease-ui),border-color var(--motion-ui) var(--ease-ui);
      transition-delay:0ms;
    }
    .primary-nav > a:not(.button){
      padding:1rem 0;
      border-bottom:1px solid rgb(217 221 222 / .72);
    }
    .primary-nav > .button{margin-top:1rem}
    .primary-nav.is-open > a{
      opacity:1;
      transform:translate3d(0,0,0);
      transition-delay:calc(110ms + (var(--nav-index,0) * 90ms));
    }
    .nav-toggle{
      position:relative;
      overflow:hidden;
    }
    .nav-toggle::after{
      content:"";
      width:.42rem;
      height:.42rem;
      border-right:1.5px solid currentColor;
      border-bottom:1.5px solid currentColor;
      transform:translateY(-2px) rotate(45deg);
      margin-left:.55rem;
      transition:transform var(--motion-ui) var(--ease-ui);
    }
    .nav-toggle[aria-expanded="true"]::after{transform:translateY(2px) rotate(225deg)}
  }
  @media(max-width:640px){
    .primary-nav{top:72px;padding-inline:.7rem}
  }
}

@layer utilities{
  @media(prefers-reduced-motion:reduce){
    .motion-ready .hero .eyebrow.hero-reveal,
    .motion-ready .hero h1.hero-reveal,
    .motion-ready .hero .lead.hero-reveal,
    .motion-ready .hero .actions.hero-reveal,
    .motion-ready .hero .hero-note.hero-reveal,
    .motion-ready .hero .actions.hero-reveal > *{opacity:1!important;transform:none!important;clip-path:none!important;letter-spacing:inherit!important;transition:none!important}
    @media(max-width:900px){
      .primary-nav{clip-path:none!important;transition:none!important}
      .primary-nav > a{opacity:1!important;transform:none!important;transition:none!important}
      .nav-toggle::after{transition:none!important}
    }
  }
}

/* Motion correction: mobile navigation + clearly sequenced hero ---------------- */
@layer tokens{
  :root{
    --motion-ui:380ms;
    --motion-reveal:860ms;
    --motion-reveal-long:1080ms;
  }
}

@layer components{
  /* Keep compact header controls on one line at every width. */
  .nav-toggle,
  .primary-nav .button{
    white-space:nowrap;
    flex-shrink:0;
  }
  .nav-toggle{
    align-items:center;
    justify-content:center;
    gap:.55rem;
  }

  /* Hero: individual elements resolve in a deliberate sequence. */
  @keyframes heroEyebrowIn{
    from{opacity:0;transform:translate3d(0,14px,0);letter-spacing:.15em}
    to{opacity:1;transform:translate3d(0,0,0);letter-spacing:.11em}
  }
  @keyframes heroTitleIn{
    from{opacity:0;transform:translate3d(0,34px,0);clip-path:inset(0 0 100% 0)}
    to{opacity:1;transform:translate3d(0,0,0);clip-path:inset(0 0 0 0)}
  }
  @keyframes heroCopyIn{
    from{opacity:0;transform:translate3d(0,24px,0)}
    to{opacity:1;transform:translate3d(0,0,0)}
  }
  @keyframes heroActionIn{
    from{opacity:0;transform:translate3d(0,18px,0)}
    to{opacity:1;transform:translate3d(0,0,0)}
  }
  @keyframes heroPanelIn{
    from{opacity:0;transform:translate3d(28px,8px,0);clip-path:inset(0 0 0 20%)}
    to{opacity:1;transform:translate3d(0,0,0);clip-path:inset(0 0 0 0)}
  }
  @keyframes heroPanelItemIn{
    from{opacity:0;transform:translate3d(12px,0,0)}
    to{opacity:1;transform:translate3d(0,0,0)}
  }

  .motion-ready .hero .hero-reveal{
    transition:none;
    animation:none;
  }
  .motion-ready .hero .eyebrow.hero-reveal{
    opacity:0;
    transform:translate3d(0,14px,0);
    letter-spacing:.15em;
  }
  .motion-ready .hero h1.hero-reveal{
    opacity:0;
    transform:translate3d(0,34px,0);
    clip-path:inset(0 0 100% 0);
  }
  .motion-ready .hero .lead.hero-reveal{
    opacity:0;
    transform:translate3d(0,24px,0);
  }
  .motion-ready .hero .actions.hero-reveal{
    opacity:1;
    transform:none;
  }
  .motion-ready .hero .actions.hero-reveal > *{
    opacity:0;
    transform:translate3d(0,18px,0);
    transition:background-color var(--motion-ui) var(--ease-ui),
      border-color var(--motion-ui) var(--ease-ui),
      color var(--motion-ui) var(--ease-ui),
      box-shadow var(--motion-ui) var(--ease-ui),
      transform var(--motion-ui) var(--ease-ui);
  }
  .motion-ready .hero .hero-note.hero-reveal{
    opacity:0;
    transform:translate3d(28px,8px,0);
    clip-path:inset(0 0 0 20%);
  }
  .motion-ready .hero .hero-note.hero-reveal > *{
    opacity:0;
    transform:translate3d(12px,0,0);
  }

  .motion-ready .hero .eyebrow.hero-reveal.is-visible{
    animation:heroEyebrowIn 820ms var(--ease-reveal) 90ms both;
  }
  .motion-ready .hero h1.hero-reveal.is-visible{
    animation:heroTitleIn 1080ms var(--ease-reveal) 230ms both;
  }
  .motion-ready .hero .lead.hero-reveal.is-visible{
    animation:heroCopyIn 900ms var(--ease-reveal) 520ms both;
  }
  .motion-ready .hero .actions.hero-reveal.is-visible > *:nth-child(1){
    animation:heroActionIn 820ms var(--ease-reveal) 760ms both;
  }
  .motion-ready .hero .actions.hero-reveal.is-visible > *:nth-child(2){
    animation:heroActionIn 820ms var(--ease-reveal) 880ms both;
  }
  .motion-ready .hero .actions.hero-reveal.is-visible > *:nth-child(n+3){
    animation:heroActionIn 820ms var(--ease-reveal) 1000ms both;
  }
  .motion-ready .hero .hero-note.hero-reveal.is-visible{
    animation:heroPanelIn 980ms var(--ease-reveal) 1040ms both;
  }
  .motion-ready .hero .hero-note.hero-reveal.is-visible > *:nth-child(1){
    animation:heroPanelItemIn 760ms var(--ease-reveal) 1220ms both;
  }
  .motion-ready .hero .hero-note.hero-reveal.is-visible > *:nth-child(2){
    animation:heroPanelItemIn 760ms var(--ease-reveal) 1340ms both;
  }
}

@layer utilities{
  @keyframes mobileMenuDrop{
    from{opacity:0;clip-path:inset(0 0 100% 0)}
    to{opacity:1;clip-path:inset(0 0 0 0)}
  }
  @keyframes mobileMenuItemIn{
    from{opacity:0;transform:translate3d(32px,0,0)}
    to{opacity:1;transform:translate3d(0,0,0)}
  }

  @media(max-width:900px){
    /* Always keep the menu in the render tree so opening can animate. */
    .primary-nav,
    .primary-nav.is-open{
      display:flex;
    }
    .primary-nav{
      position:absolute;
      top:100%;
      left:0;
      right:0;
      width:100%;
      max-width:none;
      margin:0;
      padding:1.2rem 1.25rem 1.35rem;
      background:rgb(247 245 240 / .99);
      border:0;
      border-bottom:1px solid var(--line);
      box-shadow:0 22px 42px rgb(23 35 45 / .09);
      backdrop-filter:blur(12px);
      flex-direction:column;
      align-items:stretch;
      gap:0;
      opacity:0;
      visibility:hidden;
      pointer-events:none;
      transform:none;
      clip-path:inset(0 0 100% 0);
      transition:opacity 300ms var(--ease-ui),
        clip-path 520ms var(--ease-reveal),
        visibility 0s linear 520ms;
    }
    .primary-nav.is-open{
      opacity:1;
      visibility:visible;
      pointer-events:auto;
      clip-path:inset(0 0 0 0);
      transition:opacity 300ms var(--ease-ui),
        clip-path 520ms var(--ease-reveal),
        visibility 0s linear 0s;
    }
    .primary-nav > a{
      width:100%;
      opacity:0;
      transform:translate3d(32px,0,0);
      animation:none;
      transition:color var(--motion-ui) var(--ease-ui),
        background-color var(--motion-ui) var(--ease-ui),
        border-color var(--motion-ui) var(--ease-ui),
        box-shadow var(--motion-ui) var(--ease-ui);
    }
    .primary-nav > a:not(.button){
      padding:1rem 0;
      border-bottom:1px solid rgb(217 221 222 / .72);
    }
    .primary-nav > .button{
      margin-top:1rem;
    }
    .primary-nav.is-open > a{
      animation:mobileMenuItemIn 620ms var(--ease-reveal) both;
      animation-delay:calc(150ms + (var(--nav-index,0) * 105ms));
    }
  }

  @media(max-width:640px){
    .primary-nav{padding-inline:.7rem}
    .nav-toggle{padding:.62rem .72rem}
  }

  @media(prefers-reduced-motion:reduce){
    .motion-ready .hero .eyebrow.hero-reveal.is-visible,
    .motion-ready .hero h1.hero-reveal.is-visible,
    .motion-ready .hero .lead.hero-reveal.is-visible,
    .motion-ready .hero .actions.hero-reveal.is-visible > *,
    .motion-ready .hero .hero-note.hero-reveal.is-visible,
    .motion-ready .hero .hero-note.hero-reveal.is-visible > *{
      animation:none!important;
      opacity:1!important;
      transform:none!important;
      clip-path:none!important;
      letter-spacing:inherit!important;
    }
    @media(max-width:900px){
      .primary-nav{transition:none!important;clip-path:none!important}
      .primary-nav.is-open > a{animation:none!important;opacity:1!important;transform:none!important}
    }
  }
}
