/* A quiet motion layer. Content remains visible without JavaScript. */
:root{--ease-out:cubic-bezier(.22,1,.36,1);--ease-in-out:cubic-bezier(.65,0,.35,1)}
html{scrollbar-gutter:stable}
body.menu-open{overflow:hidden}
.hero-line{display:block;transform-origin:left bottom}
.hero-frame{position:relative;width:100%;aspect-ratio:4/5;overflow:hidden;background:#ded2bb;isolation:isolate;transform-origin:center;transition:transform 650ms var(--ease-out),box-shadow 650ms var(--ease-out)}
.hero-frame .hero-art{position:absolute;inset:0;width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:cover}
.hero-light{position:absolute;inset:0;pointer-events:none;opacity:0;background:radial-gradient(ellipse at var(--light-x,50%) var(--light-y,50%),rgba(255,246,225,.28),transparent 65%);mix-blend-mode:soft-light;transition:opacity 550ms var(--ease-out)}
html[data-parallax="on"] .hero-frame{transform:perspective(1400px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg))}
html[data-parallax="on"] .hero-frame .hero-art{transform:translate3d(0,var(--hero-drift,0px),0) scale(1.1)}
html[data-parallax="on"] .hero-visual.is-hovered .hero-light{opacity:1}
html[data-parallax="on"] .hero-visual.is-hovered .hero-frame{box-shadow:0 24px 45px -24px rgba(16,44,38,.28)}
html[data-parallax="on"] .principle-monogram{transform:translate3d(0,var(--principle-drift,0px),0)}
html[data-parallax="on"] .conversation-monogram{transform:translate3d(0,var(--conversation-drift,0px),0)}
.hero-visual figcaption{font-size:9px;line-height:1.55}
.reading-progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;overflow:hidden;pointer-events:none}
.reading-progress span{display:block;width:100%;height:100%;background:var(--forest);opacity:.65;transform:scaleX(var(--page-progress,0));transform-origin:left center}
.site-header{transition:background 350ms ease,border-color 350ms ease,box-shadow 350ms ease}
.site-header.scrolled{background:rgba(239,232,216,.975);box-shadow:0 9px 28px -22px rgba(16,44,38,.3)}
.brand .wordmark{transition:transform 450ms var(--ease-out);transform-origin:left center}
.site-header.scrolled .brand .wordmark{transform:scale(.96)}
.desktop-nav a,.header-contact{font-size:13px;min-height:44px;display:inline-flex;align-items:center}
.desktop-nav a::after{height:1px;transition:transform 350ms var(--ease-out)}
.desktop-nav a:focus-visible::after{transform:scaleX(1)}
.header-contact{overflow:hidden}
.header-contact span{transition:transform 300ms var(--ease-out)}
.header-contact:is(:hover,:focus-visible) span{transform:translate(3px,-3px)}
.header-contact.active{font-weight:600}
.button{position:relative;isolation:isolate;overflow:hidden;font-size:12px;min-height:54px;transition:background 250ms ease,box-shadow 300ms ease,transform 200ms var(--ease-out)}
.button::before{content:'';position:absolute;inset:0;z-index:-1;background:rgba(239,232,216,.09);transform:translateX(-102%);transition:transform 450ms var(--ease-out)}
.button:is(:hover,:focus-visible)::before{transform:translateX(0)}
.button:is(:hover,:focus-visible){box-shadow:0 9px 20px -13px rgba(16,44,38,.6)}
.button .arrow{display:inline-block;min-width:16px;transition:transform 300ms var(--ease-out)}
.button:is(:hover,:focus-visible) .arrow{transform:translate(3px,-3px)}
.button:active{transform:scale(.985);box-shadow:none}
.button:disabled{cursor:wait}
.button.is-success{background:#294e3e}
.button.is-success .arrow{transform:none}
.button.is-success .arrow{animation:confirmation-in 300ms var(--ease-out)}
.text-link{position:relative;min-height:44px;gap:54px;font-size:12px;align-items:center}
.text-link:hover{gap:54px}
.text-link::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform 350ms var(--ease-out)}
.text-link:is(:hover,:focus-visible)::after{transform:scaleX(1)}
.text-link>span[aria-hidden]{transition:transform 300ms var(--ease-out)}
.text-link:is(:hover,:focus-visible)>span[aria-hidden]{transform:translate(3px,-3px)}
.post-link{min-height:44px;font-size:11px;margin-top:14px;gap:16px}
.post-link span{display:inline-block;transition:transform 250ms var(--ease-out)}
.post-link:is(:hover,:focus-visible) span{transform:translateX(4px)}
.intro-copy{font-size:14px;line-height:1.85}
.principles-heading>p{font-size:14px;line-height:1.85}
.detail-copy{font-size:14px;line-height:1.8}
.detail-copy p:first-child{font-size:14px;font-weight:500}
.principle summary{transition:color 200ms ease}
.principle summary:is(:hover,:focus-visible){color:var(--champagne)}
.principle .detail-number{transition:color 200ms ease}
.principle[open] .detail-number{color:var(--champagne)}
.plus:after{transition:transform 320ms var(--ease-out)}
.principle[open] .plus:after{transform:rotate(180deg)}
.focus-copy .focus-lead{font-size:18px;line-height:1.6}
.focus-copy>p:not(.eyebrow):not(.focus-lead){font-size:14px;line-height:1.85}
.focus-tags span{font-size:10px;padding:7px 10px}
.guardy-art{transition:box-shadow 400ms var(--ease-out)}
.guardy-art-top{font-size:9px;letter-spacing:.1em}
.guardy-art>img{transition:transform 550ms var(--ease-out)}
.guardy-orbits{transition:transform 700ms var(--ease-out)}
html[data-parallax="on"] .guardy-orbits{transform:translate3d(var(--guardy-x,0px),var(--guardy-y,0px),0) rotate(var(--orbit-turn,0deg))}
html[data-parallax="on"] .guardy-art.is-hovered>img{transform:translate3d(var(--guardy-logo-x,0px),var(--guardy-logo-y,0px),0)}
.guardy-card-trigger{position:absolute;inset:0;width:100%;height:100%;padding:0;background:transparent;color:var(--ivory);z-index:3;text-align:left}
.guardy-card-trigger>span{position:absolute;left:32px;bottom:111px;font-size:9px;line-height:1.5;letter-spacing:.1em;text-transform:uppercase;opacity:0;transform:translateY(4px);transition:opacity 220ms ease,transform 300ms var(--ease-out)}
.guardy-card-trigger:is(:hover,:focus-visible)>span{opacity:.85;transform:none}
.guardy-card-trigger:focus-visible{outline:2px solid var(--ivory);outline-offset:-10px}
.guardy-art:is(:hover,:focus-within){box-shadow:0 18px 32px -24px rgba(16,44,38,.5)}
.guardy-art:is(:hover,:focus-within) .round-button{background:var(--ivory);color:var(--forest);transform:rotate(-7deg)}
.round-button{width:48px;height:48px;transition:background 250ms ease,color 250ms ease,transform 350ms var(--ease-out)}
.process-list article{position:relative}
.process-list article::after{content:'';position:absolute;left:0;bottom:-1px;width:100%;height:1px;background:var(--forest);transform:scaleX(0);transform-origin:left;transition:transform 900ms var(--ease-out)}
.process-list article.is-in-view::after{transform:scaleX(1)}
.process-list p,.conversation-bottom p{font-size:14px;line-height:1.8}
.back-to-top{min-height:44px;font-size:11px}
.back-to-top span{transition:transform 250ms var(--ease-out)}
.back-to-top:is(:hover,:focus-visible) span{transform:translateY(-4px)}
.footer-bottom{font-size:10px;gap:24px}
.footer-bottom>div{gap:20px;align-items:center;flex-wrap:wrap}
.footer-bottom button{min-height:44px;font-size:10px}
.footer-bottom>span{font-size:8px}
.motion-toggle{display:none!important;align-items:center;gap:8px;white-space:nowrap;text-decoration:none!important}
html[data-motion] .motion-toggle{display:inline-flex!important}
.motion-toggle[aria-pressed="true"]{color:var(--ivory)}
.motion-toggle:disabled{cursor:default}
.motion-icon{width:12px;height:12px;position:relative;display:inline-block;flex:0 0 auto}
.motion-icon::before,.motion-icon::after{content:'';position:absolute;top:1px;bottom:1px;width:2px;background:currentColor;transition:transform 250ms ease}
.motion-icon::before{left:3px}.motion-icon::after{right:3px}
.motion-toggle[aria-pressed="true"] .motion-icon::before{transform:rotate(-35deg) translateX(2px)}
.motion-toggle[aria-pressed="true"] .motion-icon::after{transform:rotate(35deg) translateX(-2px)}
.return-top{position:fixed;right:24px;bottom:24px;z-index:30;width:48px;height:48px;border:1px solid rgba(16,44,38,.3);background:rgba(246,241,231,.96);display:grid;place-items:center;box-shadow:0 5px 16px -9px rgba(16,44,38,.3);font-size:25px;line-height:1;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity 250ms ease,visibility 250ms ease,transform 350ms var(--ease-out),background 200ms ease}
.return-top.is-visible{opacity:1;visibility:visible;transform:none}
.return-top:is(:hover,:focus-visible){background:var(--forest);color:var(--ivory)}
.return-top span{transition:transform 250ms var(--ease-out)}
.return-top:is(:hover,:focus-visible) span{transform:translateY(-3px)}
.menu-open .return-top,.modal-open .return-top{opacity:0;visibility:hidden}
.menu-scrim{position:fixed;inset:0;z-index:35;padding:0;border:0;background:rgba(16,44,38,.28);opacity:0;transition:opacity 250ms ease;cursor:default}
.menu-scrim.is-open{opacity:1}
.menu-toggle span{transition:transform 300ms var(--ease-out)}
.modal,.post-modal{padding:0;overflow:hidden}
.modal[open]{animation:dialog-enter 340ms var(--ease-out)}
.modal::backdrop{background:rgba(8,28,22,.62);animation:backdrop-enter 250ms ease;transition:opacity 180ms ease}
.modal.is-closing::backdrop{opacity:0;animation:none}
.modal-body{padding:46px;max-height:calc(100svh - 56px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.modal-close{position:absolute;right:12px;top:12px;width:44px;height:44px;z-index:5;transition:background 200ms ease,transform 250ms var(--ease-out)}
.modal-close:hover{transform:rotate(90deg)}
.post-modal[open]{display:block}
.post-modal .modal-body{display:grid;grid-template-columns:1.15fr 1fr;align-items:center;padding:0;scrollbar-gutter:auto}
.contact-modal label{font-size:12px;transition:color 200ms ease}
.contact-modal label:focus-within{color:var(--forest)}
input,textarea,select{font-size:14px;transition:background 200ms ease,border-color 200ms ease,box-shadow 200ms ease}
input:focus,textarea:focus,select:focus{background:rgba(255,255,255,.32);border-color:var(--forest);box-shadow:inset 0 -2px 0 var(--forest)}
.form-note{font-size:12px;line-height:1.75}
.form-status{font-size:13px;line-height:1.7;padding-left:13px;border-left:2px solid #49735a}
.modal-heading>p:last-child,.post-modal-copy>p:not(.eyebrow){font-size:14px}
@keyframes dialog-enter{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
@keyframes backdrop-enter{from{opacity:0}to{opacity:1}}
@keyframes confirmation-in{from{opacity:0;transform:scale(.65)}to{opacity:1;transform:scale(1)}}
@media(min-width:1700px){.hero-frame{max-height:760px}}
@media(max-width:1150px){.footer-bottom>span{display:none}.guardy-art-top{font-size:8px}}
@media(max-width:900px){
  .desktop-nav a,.header-contact{display:none}
  .mobile-nav{opacity:0;transform:translateY(-12px);transition:opacity 220ms ease,transform 320ms var(--ease-out);max-height:calc(100svh - 83px);overflow-y:auto;overscroll-behavior:contain}
  .mobile-nav.is-open{opacity:1;transform:none}
  .mobile-nav>a{min-height:58px}
  .mobile-nav>a span{font-size:11px}
  .mobile-nav>p{font-size:12px}
  .guardy-card-trigger>span{left:22px;bottom:101px;font-size:8px}
  .hero-visual figcaption{font-size:8px;letter-spacing:.08em}
  .hero .button{font-size:12px;min-height:50px}
  .hero-lead{font-size:14px}
  .detail-copy,.detail-copy p:first-child,.principles-heading>p,.process-list p,.focus-copy>p:not(.eyebrow):not(.focus-lead){font-size:14px}
  .focus-copy .focus-lead{font-size:17px}
  .focus-tags span{font-size:9px}
  .post-link{font-size:11px}
  .post-modal-copy>p:not(.eyebrow){font-size:14px}
}
@media(max-width:640px){
  .hero-frame{aspect-ratio:1/1.12}
  .hero-frame .hero-art{object-position:center 56%}
  .hero .eyebrow,.eyebrow{font-size:9px}
  .hero-lead{font-size:14px;line-height:1.8}
  .hero .button{font-size:12px;min-height:52px;padding:16px 20px}
  .hero-visual figcaption{font-size:8px;letter-spacing:.04em;gap:10px}
  .intro-copy{font-size:14px;line-height:1.8}
  .detail-copy{padding-left:33px;padding-right:0;font-size:14px;line-height:1.8}
  .detail-copy p:first-child{font-size:14px}
  .principles-heading>p{font-size:14px}
  .guardy-art-top{font-size:8px;letter-spacing:.06em;left:24px;right:24px}
  .guardy-card-trigger>span{opacity:.85;transform:none;left:24px;bottom:112px;font-size:8px}
  .focus-copy>p:not(.eyebrow):not(.focus-lead){font-size:14px;line-height:1.8}
  .focus-copy .focus-lead{font-size:17px}
  .focus-tags span{font-size:10px}
  .round-button{width:46px;height:46px}
  .text-link{font-size:12px}
  .post-link{font-size:12px}
  .process-list p,.conversation-bottom p{font-size:14px;line-height:1.8}
  .process-number{font-size:10px}
  .mobile-nav{max-height:calc(100svh - 78px)}
  .footer-bottom{font-size:10px;gap:8px}
  .footer-bottom>p{max-width:none;padding-top:0}
  .footer-bottom>div{gap:17px;width:100%;justify-content:space-between}
  .footer-bottom button{font-size:10px}
  .back-to-top{font-size:10px}
  .return-top{width:44px;height:44px;right:14px;bottom:14px;font-size:23px}
  .modal{padding:0;width:calc(100% - 24px);max-height:calc(100svh - 28px)}
  .modal-body{padding:54px 24px 28px;max-height:calc(100svh - 28px)}
  .modal-close{right:8px;top:8px;width:44px;height:44px}
  .modal-heading h2{font-size:49px}
  .modal-heading>p:last-child{font-size:13px}
  .contact-modal label{font-size:12px}
  input,textarea,select{font-size:16px}
  .form-note{font-size:12px}
  .post-modal .modal-body{grid-template-columns:1fr;padding:0}
  .post-modal-copy>p:not(.eyebrow){font-size:13px}
}
html[data-motion="off"]{scroll-behavior:auto}
html[data-motion="off"] *,html[data-motion="off"] *::before,html[data-motion="off"] *::after{animation:none!important;transition:none!important}
html[data-motion="off"] .hero-frame,html[data-motion="off"] .hero-frame .hero-art,html[data-motion="off"] .guardy-orbits,html[data-motion="off"] .guardy-art>img,html[data-motion="off"] .principle-monogram,html[data-motion="off"] .conversation-monogram{transform:none!important}
@media(prefers-reduced-motion:reduce){.hero-frame,.hero-frame .hero-art,.guardy-orbits,.guardy-art>img,.principle-monogram,.conversation-monogram{transform:none!important}}
