:root{--c-ink: #101b28;--c-slate: #505b68;--c-granite: #72777b;--c-deep-teal: #193741;--c-steel: #98a0a9;--c-pebble: #bdbebb;--c-parchment: #d8d9d4;--c-linen: #e8e7e2;--c-dove: #cccdc9;--c-alloy: #8b8f93;--c-mushroom: #78736d;--c-sandstone: #c7b19a;--bg: var(--c-parchment);--surface: var(--c-pebble);--ink: var(--c-ink);--muted: var(--c-slate);--primary: var(--c-deep-teal);--primary-deep: var(--c-ink);--on-primary: var(--c-parchment);--flint: var(--c-ink);--flint-ink: var(--c-parchment);--line: color-mix(in srgb, var(--c-ink) 14%, transparent);--amp-on-hero: var(--c-steel);--accent-warm: var(--c-sandstone);--hero-scrim-bottom: color-mix(in srgb, var(--c-ink) 60%, transparent);--hero-scrim-mid: color-mix(in srgb, var(--c-ink) 48%, transparent);--hero-scrim-top: color-mix(in srgb, var(--c-ink) 56%, transparent);--font-display: "PP Hatton", Palatino, "Palatino Linotype", serif;--font-body: "PP Radio Grotesk", "Avenir Next", "Segoe UI", sans-serif;--font-ui: var(--font-body);--display-weight: 500;--body-leading: 1.55;--body-weight: 300;--body-tracking: .025rem;--text-display: clamp(2.75rem, 5.5vw, 4.5rem);--text-heading: clamp(1.5rem, 2.4vw, 1.875rem);--text-body: clamp(1rem, 2vw, 1.25rem);--text-small: clamp(.875rem, 1.6vw, 1rem);--text-number: clamp(4.5rem, 6.6vw, 5.775rem);--leading-display: 1.12;--leading-heading: 1.28;--space-block: 1.25rem}@font-face{font-family:PP Hatton;src:url(/_astro/PPHatton-Medium.DQ8Q7Oh9.woff2) format("woff2");font-weight:500;font-style:normal;font-display:block}@font-face{font-family:PP Hatton;src:url(/_astro/PPHatton-MediumItalic.CdFTIsJM.woff2) format("woff2");font-weight:500;font-style:italic;font-display:block}@font-face{font-family:PP Radio Grotesk;src:url(/_astro/PPRadioGrotesk-Light.DZG4sVzD.woff2) format("woff2");font-weight:300;font-style:normal;font-display:block}:root{--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2.5rem;--space-2xl: 4rem;--gutter: clamp(1.25rem, 5vw, 4.5rem);--section: clamp(4.5rem, 12vw, 9rem);--measure: 62ch;--arrow-size-sm: clamp(12px, 1.4vw, 14px);--arrow-size: clamp(13px, 1.5vw, 16px);--arrow-size-lg: clamp(16px, 1.8vw, 20px);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--duration: .42s;--reveal-duration: 1.1s;--reveal-ease: cubic-bezier(.22, 1, .36, 1);--reveal-handoff-duration: .22s;--z-sticky: 200;--z-modal-backdrop: 300;--z-modal: 400;--z-toast: 500;--z-tooltip: 600}*,*:before,*:after{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth}@media(prefers-reduced-motion:no-preference){::view-transition-group(root){animation:none}::view-transition-old(root){animation:page-leave .22s ease-in both}::view-transition-new(root){animation:page-enter .9s cubic-bezier(.4,0,1,1) .24s both}html.is-page-enter body{animation:page-enter .9s cubic-bezier(.4,0,1,1) .24s both}html.is-page-enter [data-reveal],html.is-page-enter [data-reveal-stagger]>*,html.is-page-enter main>*:not(.hero):not(.page-mast){opacity:0;transform:translateY(20px)}@keyframes page-leave{to{opacity:0}}@keyframes page-enter{0%{opacity:0}}}html:focus-within{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:var(--text-body);font-weight:var(--body-weight, 300);letter-spacing:var(--body-tracking, .025rem);line-height:var(--body-leading, 1.55);text-wrap:pretty;font-synthesis:none}[data-reveal]{transition:opacity var(--reveal-duration) var(--reveal-ease) var(--reveal-delay, 0ms),transform var(--reveal-duration) var(--reveal-ease) var(--reveal-delay, 0ms)}[data-reveal].is-reveal-hidden{opacity:0;transform:translateY(20px)}[data-reveal].is-reveal-hidden.is-reveal-exiting-up{transform:translateY(-20px)}[data-reveal].is-reveal-initial,[data-reveal].is-reveal-scroll-owned{transition:none}[data-reveal]:has(:focus-visible),[data-reveal]:target,[data-reveal]:has(:target){opacity:1!important;transform:translateY(0)!important}main>.is-enter-hidden{opacity:0;transform:translateY(20px)}main>.is-enter-unlock{transition:opacity var(--reveal-duration) var(--reveal-ease),transform var(--reveal-duration) var(--reveal-ease)}img{max-width:100%;height:auto;display:block}.image-placeholder{display:block;background:var(--surface)}a{color:inherit;text-decoration:none}a:not(.button):hover{color:var(--primary)}:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.skip{position:absolute;left:var(--gutter);top:.75rem;z-index:calc(var(--z-sticky) + 1);padding:.55rem .85rem;background:var(--ink);color:var(--bg);text-decoration:none;transform:translateY(-150%)}.skip:focus{transform:none}.wordmark{display:flex;align-items:center;line-height:1}.wordmark-logo{display:block;height:1.35rem;width:auto}.wordmark-logo-light{display:none}.site-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-lg);height:70px;padding:0 var(--gutter);position:sticky;top:0;z-index:var(--z-sticky);background:var(--bg);border-bottom:1px solid var(--line);flex-wrap:nowrap}.site-header nav{display:flex;align-items:center;gap:clamp(1rem,2.4vw,1.75rem);font-family:var(--font-ui);font-size:var(--text-small);font-weight:500;flex-wrap:nowrap;flex-shrink:0}.site-header nav a{display:inline-flex;align-items:stretch;text-decoration:none;line-height:1.2;position:relative;overflow:hidden;flex-shrink:0;white-space:nowrap}.site-header nav a:not(.button){padding:.85rem 0}.site-header nav a[aria-current=page]{box-shadow:none}.site-header:not(.is-nav-compact) nav a[aria-current=page]:not(.button):after{content:"";position:absolute;right:0;bottom:.35rem;left:0;height:1px;background:var(--ink)}.site-header nav a:not(.button):hover{color:inherit}.home .site-header{position:absolute;width:100%;background:transparent;border-bottom:1px solid transparent;color:var(--flint-ink);transition:background-color var(--duration) var(--ease-out-expo),color var(--duration) var(--ease-out-expo),border-color var(--duration) var(--ease-out-expo)}.home .site-header.is-nav-compact.is-nav-open{background:var(--bg);color:var(--ink);border-bottom-color:var(--line)}.home .site-header.is-nav-compact.is-nav-open .wordmark-logo-dark{display:block}.home .site-header.is-nav-compact.is-nav-open .wordmark-logo-light{display:none}.home .site-header nav a[aria-current=page]{box-shadow:none}.home .site-header:not(.is-nav-compact) nav a[aria-current=page]:not(.button):after{background:var(--flint-ink)}.home .wordmark-logo-dark{display:none}.home .wordmark-logo-light{display:block}.nav-toggle{display:none;margin-left:auto;padding:.7rem .1rem;border:0;background:transparent;color:inherit;cursor:pointer}.nav-toggle-bars{position:relative;display:block;width:1.4rem;height:8px}.nav-toggle-bars:before,.nav-toggle-bars:after{content:"";position:absolute;left:0;top:50%;width:100%;height:1px;margin-top:-.5px;background:currentColor;transform-origin:50% 50%;transition:transform .42s var(--ease-out-expo)}.nav-toggle-bars:before{transform:translateY(-3.5px) rotate(0)}.nav-toggle-bars:after{transform:translateY(3.5px) rotate(0)}.nav-toggle[aria-expanded=true] .nav-toggle-bars:before{transform:translateY(0) rotate(45deg)}.nav-toggle[aria-expanded=true] .nav-toggle-bars:after{transform:translateY(0) rotate(-45deg)}.site-header.is-nav-compact .wordmark,.site-header.is-nav-compact .nav-toggle{position:relative;z-index:2}.site-header.is-nav-compact .nav-toggle{display:flex;align-items:center}.site-header.is-nav-compact nav{display:flex;position:fixed;inset:70px 0 0;z-index:1;flex-direction:column;align-items:stretch;justify-content:center;justify-content:safe center;gap:.15rem;padding:2rem var(--gutter);overflow-y:auto;overscroll-behavior:none;background:var(--bg);color:var(--ink);font-size:var(--text-heading);line-height:var(--leading-heading);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(16px);transition:opacity 1s var(--ease-out-expo),transform 1s var(--ease-out-expo),visibility 0s 1s}.site-header.is-nav-compact.is-nav-open nav{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);transition:opacity .72s var(--ease-out-expo),transform .72s var(--ease-out-expo),visibility 0s}.site-header.is-nav-open{position:fixed;top:0;left:0;right:0;width:100%}body.is-nav-locked:not(.home) #main{margin-top:70px}.site-header.is-nav-compact nav a:not(.button){padding:.55rem 0 .55rem 1rem;color:var(--muted);box-shadow:none}.site-header.is-nav-compact nav a:not(.button):hover{color:var(--ink)}.site-header.is-nav-compact nav a[aria-current=page]:not(.button),.home .site-header.is-nav-compact.is-nav-open nav a[aria-current=page]:not(.button){color:var(--ink);box-shadow:inset 1px 0 0 var(--ink)}.site-header.is-nav-compact nav .button{align-self:start;margin-top:1.1rem;margin-left:1rem;font-size:var(--text-body);padding:.88rem 1.35rem}body.is-route-locked{position:fixed;left:0;right:0;width:100%;overflow:hidden}html.is-nav-locked,body.is-nav-locked{overflow:hidden;overscroll-behavior:none}.button{appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;justify-content:center;position:relative;overflow:hidden;cursor:pointer;background:var(--primary);color:var(--on-primary);padding:.88rem 1.35rem;border:1px solid var(--primary);border-radius:2px;font-family:var(--font-ui);font-size:var(--text-small);letter-spacing:.01em;line-height:1.2;text-decoration:none;transition:background var(--duration) var(--ease-out-expo),border-color var(--duration) var(--ease-out-expo),color var(--duration) var(--ease-out-expo)}@media(hover:hover){.button:hover{background:var(--primary-deep);border-color:var(--primary-deep);color:var(--on-primary)}.button-ghost:hover{background:color-mix(in srgb,var(--flint-ink) 12%,transparent);border-color:var(--flint-ink);color:var(--flint-ink)}}.button-small{padding:.62rem .95rem}.button-ghost{background:transparent;color:var(--flint-ink);border-color:color-mix(in srgb,var(--flint-ink) 55%,transparent)}.button-ghost:active,.button-ghost:focus{background:transparent;color:var(--flint-ink);border-color:var(--flint-ink)}.hero-actions .button+.button{margin-left:.75rem}.label-swap{position:relative;align-self:stretch;display:flex;align-items:center;justify-content:center}.label-swap-copy{display:block;transform:translateY(0)}.label-swap-copy+.label-swap-copy{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transform:translateY(1em);opacity:0}@media(hover:hover){.button:hover .label-swap-copy:first-child,.site-header:not(.is-nav-compact) nav a:hover .label-swap-copy:first-child{transform:translateY(-1em);opacity:0;transition:transform .37s var(--ease-out-expo),opacity .27s var(--ease-out-expo)}.button:hover .label-swap-copy+.label-swap-copy,.site-header:not(.is-nav-compact) nav a:hover .label-swap-copy+.label-swap-copy{transform:translateY(0);opacity:1;transition:transform .37s var(--ease-out-expo) .15s,opacity .37s var(--ease-out-expo) .15s}}.button-reverse,.hero .hero-actions .button:not(.button-ghost),.home .site-header:not(.is-nav-open) nav .button{background:var(--c-linen);color:var(--ink);border-color:var(--c-linen)}.home .site-header.is-nav-open nav .button.button-reverse{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}@media(hover:hover){.button-reverse:hover,.hero .hero-actions .button:not(.button-ghost):hover,.home .site-header:not(.is-nav-open) nav .button:hover{background:var(--c-parchment);border-color:var(--c-parchment);color:var(--ink)}.home .site-header.is-nav-open nav .button.button-reverse:hover{background:var(--primary-deep);border-color:var(--primary-deep);color:var(--on-primary)}}.hero{position:relative;min-height:100svh;display:grid;align-items:end;color:var(--flint-ink);overflow:hidden}.hero-media{position:absolute;inset:0}.kb-zoom{transform:scale(var(--kb-scale, 1));transform-origin:center}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 62%}.hero-slide{opacity:0;transform:scale(1.2);transform-origin:center;animation:hero-slide-fade 55s infinite}@keyframes hero-slide-fade{0%{opacity:0;transform:scale(1.2);animation-timing-function:cubic-bezier(.65,0,.35,1)}3.6364%{opacity:1;transform:scale(1)}9.0909%{opacity:1;transform:scale(1);animation-timing-function:cubic-bezier(.65,0,.35,1)}12.7273%{opacity:0;transform:scale(1.2)}to{opacity:0;transform:scale(1.2)}}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,var(--hero-scrim-bottom) 0%,var(--hero-scrim-mid) 42%,var(--hero-scrim-top) 70%);pointer-events:none}.hero-copy{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(12rem,.6fr);gap:var(--space-lg);align-items:end;padding:0 var(--gutter) clamp(2rem,6vh,4.25rem)}.hero-lead{display:flex;flex-direction:column;align-items:flex-start;gap:0}.hero-lead .lede{margin-bottom:1.6rem}.hero-actions{display:block;margin-top:.4rem}.hero h1,.courses h2,.cta-band h2,.page-mast h1,.faq h2{font-family:var(--font-display);font-weight:var(--display-weight, 400);font-synthesis:none}.hero h1,.page-mast h1{font-size:var(--text-display);line-height:var(--leading-display);letter-spacing:-.02em;margin:0 0 var(--space-block);max-width:16ch;text-wrap:balance}.courses h2,.cta-band h2,.faq h2{line-height:var(--leading-heading)}.lede{max-width:var(--measure);margin:0 0 var(--space-block);line-height:1.5}.hero .lede{color:color-mix(in srgb,var(--flint-ink) 92%,transparent)}.figure-break{max-width:1600px;margin:0 auto}.figure-break .image-placeholder{width:100%;height:min(78vh,820px)}.figure-break .figure-photo-frame{width:100%;height:min(78vh,820px);overflow:hidden}.figure-break .figure-photo{width:100%;height:100%;object-fit:cover}.figure-break figcaption{padding:.85rem var(--gutter) 0;font-size:var(--text-small);color:var(--muted)}.image-only,.half-bleed-image{width:100%}.image-only--1600,.half-bleed-image--1600{max-width:1600px;margin-inline:auto}.image-only--1000,.half-bleed-image--1000{max-width:1000px;margin-inline:auto}.image-only{height:var(--image-only-height);overflow:hidden}.image-only>img,.image-only>.image-placeholder,.half-bleed-image-media>img,.half-bleed-image-media>.image-placeholder{width:100%;height:100%;object-fit:cover}.half-bleed-image{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-height:var(--half-bleed-image-height)}.half-bleed-image-media{min-height:var(--half-bleed-image-height);overflow:hidden}.half-bleed-image--right .half-bleed-image-media{order:2}.courses{padding:var(--section) 0}.courses h2{padding:0 var(--gutter);font-size:var(--text-heading);margin:0 0 var(--space-block);text-wrap:balance}.courses>p,.courses>.reveal-block>p{padding:0 var(--gutter);max-width:var(--measure);color:var(--muted);margin:0 0 2.75rem}.course-list{display:grid;margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}.course-list li{display:grid;grid-template-columns:1fr;gap:.75rem;padding:1.5rem 0 1.6rem;border-bottom:1px solid var(--line)}.course-list li>div{padding:0 var(--gutter)}.course-list h3{margin:0;font-family:var(--font-body);font-size:var(--text-body)}.course-list p{margin:.2rem 0 0;max-width:52ch;color:var(--muted)}.cta-band{margin:var(--section) 0;padding:clamp(2.75rem,7vw,5rem) var(--gutter) clamp(3.25rem,8vw,5.75rem);background:var(--flint);color:var(--flint-ink)}.cta-band h2{font-size:var(--text-heading);margin:0 0 var(--space-block);max-width:calc(var(--measure) * .75);text-wrap:balance}.cta-band p{margin:0 0 var(--space-block);max-width:var(--measure)}.cta-band .link-arrow{color:var(--flint-ink)}.cta-band .link-arrow:hover{color:var(--accent-warm)}.cta-band>div>:last-child{margin-bottom:1.6rem}.cta-band>.button{display:inline-flex;margin-top:.4rem}.cta-band .button{background:var(--bg);color:var(--ink);border-color:var(--bg)}@media(hover:hover){.cta-band .button:hover{background:var(--c-linen);border-color:var(--c-linen);color:var(--ink)}}.page-mast{padding:clamp(5.5rem,14vw,8.5rem) 0}.page-mast h1{padding:0 var(--gutter);margin:0 0 1.1rem;max-width:14ch}.page-mast .lede{padding:0 var(--gutter);color:var(--muted)}.faq{padding:0 var(--gutter) var(--section);max-width:1000px;margin:0 auto}.faq h2{font-size:var(--text-heading);margin:0 0 1.25rem;text-wrap:balance}.faq h2:not(:first-child),.faq>.reveal-block:not(:first-child)>h2{margin-top:var(--space-2xl)}.faq details{padding:1.15rem 0;border-top:1px solid var(--line)}.faq details:last-of-type{border-bottom:1px solid var(--line)}.faq summary{display:flex;align-items:flex-start;justify-content:space-between;gap:1.25rem;cursor:pointer;list-style:none;font-family:var(--font-body);font-size:var(--text-body);line-height:1.35}.faq summary::-webkit-details-marker,.faq summary::marker{display:none;content:none}.faq-question{min-width:0;flex:1}.faq-icon{position:relative;flex-shrink:0;width:var(--arrow-size);height:var(--arrow-size);margin-top:.2em}.faq-icon:before,.faq-icon:after{content:"";position:absolute;background:currentColor;transition:transform var(--duration) var(--ease-out-expo),opacity var(--duration) var(--ease-out-expo)}.faq-icon:before{top:50%;left:0;width:100%;height:1px;transform:translateY(-50%)}.faq-icon:after{top:0;left:50%;width:1px;height:100%;transform:translate(-50%)}.faq details.is-open .faq-icon:after,.faq details[open]:not([data-faq-ready]) .faq-icon:after{transform:translate(-50%) rotate(90deg);opacity:0}.faq-panel{height:0;opacity:0;overflow:hidden;transition:height var(--duration) var(--ease-out-expo),opacity calc(var(--duration) * 1.15) var(--ease-out-expo)}.faq details.is-open .faq-panel,.faq details[open]:not([data-faq-ready]) .faq-panel{opacity:1}.faq-panel-inner{overflow:hidden;min-height:0}.faq-panel-inner p{margin:.85rem 0 0;max-width:var(--measure);color:var(--muted)}@media(prefers-reduced-motion:reduce){.faq-icon:before,.faq-icon:after,.faq-panel{transition:none}}.contact-shell{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2rem,5vw,4rem);max-width:1600px;margin:0 auto;padding:var(--space-2xl) 0}.contact-form{display:grid;grid-template-columns:minmax(0,1fr);gap:1.1rem;padding:0 0 0 var(--gutter);min-width:0}.field{display:grid;grid-template-columns:minmax(0,1fr);gap:.4rem;border:none;padding:0;margin:0;min-width:0}.field input,.field textarea{width:100%;box-sizing:border-box}.field-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.field label,.field legend{font-family:var(--font-ui);font-size:var(--text-body);letter-spacing:.01em;color:var(--muted);padding:0}.field-label{display:block}.required-marker{display:inline-block;margin-left:.12rem;color:#b42318;font-size:1em;line-height:1;transform:translateY(-.12em)}.field input,.field textarea{font:inherit;padding:.7rem .85rem;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:2px;max-width:100%}.field input:not(.file-upload-input),.field textarea{transition:border-color .1s ease,background-color .1s ease}.field input:not(.file-upload-input):hover,.field textarea:hover{border-color:var(--primary-deep)}.field input:not(.file-upload-input):focus,.field textarea:focus{background:#fff}.field input:not(.file-upload-input):focus-visible,.field textarea:focus-visible{outline:none}.field-checkboxes{display:grid;gap:.5rem}.field-checkboxes legend{margin:0 0 .35rem}.field-checkboxes label{display:flex;align-items:center;font-weight:400;font-family:var(--font-body)}.form-note,.form-status{margin:0;font-size:var(--text-small);color:var(--muted)}.form-status.is-error{color:#b42318}.contact-direct{padding:0 var(--gutter) 0 0;align-self:start}.contact-direct h2{font-family:var(--font-display);font-size:var(--text-heading);line-height:var(--leading-heading);margin:0 0 var(--space-block)}.contact-direct p{margin:0 0 .5rem;color:var(--muted)}.contact-direct a{color:var(--ink)}.service-detail,.about-body{padding:var(--space-2xl) var(--gutter);max-width:1000px;margin:0 auto}.service-detail [id]{scroll-margin-top:calc(70px + 1.5rem)}.service-detail h2,.about-body h2{font-family:var(--font-display);font-weight:var(--display-weight, 400);font-size:var(--text-heading);line-height:var(--leading-heading);margin:2.2rem 0 var(--space-block)}.service-detail>h2:first-child,.about-body>h2:first-child,.service-detail>.reveal-block:first-child>h2:first-child,.about-body>.reveal-block:first-child>h2:first-child{margin-top:0}.service-detail p,.service-detail li,.about-body p,.about-body li{max-width:var(--measure);color:var(--muted);margin:0 0 var(--space-block)}.service-detail ul,.about-body ul{margin:0 0 1rem;padding-left:1.2rem}.related-services{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;padding:var(--space-lg) var(--gutter) var(--section)}.related-services a{color:var(--ink);font-size:var(--text-small)}.trust-strip{padding:var(--space-lg) 0}.trust-strip ul{display:flex;flex-wrap:wrap;gap:.6rem 2rem;margin:0;padding:1.2rem var(--gutter);list-style:none;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);font-size:var(--text-small)}.areas-served{display:flex;flex-direction:column;justify-content:center;padding:var(--space-lg) 0;max-width:62rem}.areas-served h2{padding:0 var(--gutter);font-family:var(--font-display);font-size:var(--text-heading);line-height:var(--leading-heading);margin:0 0 var(--space-block)}.areas-served p{padding:0 var(--gutter);max-width:var(--measure);margin:0;color:var(--muted)}.positioning-intro{padding:clamp(3rem,6vw,4.5rem) 0;max-width:62rem}.positioning-intro p{padding:0 var(--gutter);margin:0 0 var(--space-block);max-width:var(--measure);color:var(--muted)}.service-rows{max-width:1600px;margin:0 auto;display:flex;flex-direction:column;gap:clamp(3rem,8vw,var(--section));padding:var(--section) 0}.service-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(3.5rem,8vw,6rem);align-items:center}.service-row-text{padding:0 0 0 var(--gutter)}.service-row-media{overflow:hidden}.service-row:nth-child(2n) .service-row-media,.service-row--flip .service-row-media{order:-1}.service-row:nth-child(2n) .service-row-text,.service-row--flip .service-row-text{padding:0 var(--gutter) 0 0}.number-mark{display:block;font-family:var(--font-display);font-weight:var(--display-weight, 400);font-size:var(--text-number);line-height:1;color:transparent;-webkit-text-stroke:1px var(--accent-warm);margin:0 0 var(--space-block)}.service-row h2{font-family:var(--font-display);font-weight:var(--display-weight, 400);font-size:var(--text-heading);letter-spacing:-.015em;line-height:var(--leading-heading);margin:0 0 var(--space-block);max-width:16ch;text-wrap:balance}.service-row h2 a,.course-list h3 a{color:inherit}.service-row p{color:var(--muted);max-width:var(--measure);margin:0 0 var(--space-block)}.service-row-media .image-placeholder{width:100%;height:clamp(360px,40vw,520px)}.service-row-photo{width:100%;height:clamp(360px,40vw,520px);object-fit:cover}.case-study-teaser{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;align-items:stretch;max-width:1600px;margin:var(--space-lg) auto;background:var(--surface);color:inherit;text-decoration:none}.case-study-teaser-text{padding:clamp(2.75rem,6.5vw,4.25rem) clamp(2rem,5vw,4rem) clamp(2.75rem,6.5vw,4.25rem) var(--gutter);display:flex;flex-direction:column;justify-content:center}.case-study-teaser .image-placeholder{width:100%;height:100%;min-height:clamp(220px,32vw,320px);background:var(--c-dove)}.case-study-teaser-photo-wrap{position:relative;min-height:clamp(350px,calc(32vw + 130px),470px);max-height:600px;overflow:hidden}.case-study-teaser-photo{width:100%;height:100%;min-height:clamp(350px,calc(32vw + 130px),470px);max-height:600px;object-fit:cover}.case-study-teaser-photo-wrap:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,color-mix(in srgb,var(--c-ink) 55%,transparent) 0%,color-mix(in srgb,var(--c-ink) 15%,transparent) 50%,transparent 100%);pointer-events:none}.case-study-teaser-badge{position:absolute;top:1.25rem;right:1.25rem;z-index:1;padding:.4rem .85rem;border:1px solid color-mix(in srgb,white 60%,transparent);border-radius:999px;font-family:var(--font-ui, sans-serif);font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase;color:#fff}.case-study-teaser h2{font-family:var(--font-display);font-weight:var(--display-weight, 400);font-size:var(--text-heading);line-height:var(--leading-heading);margin:0 0 var(--space-block);text-wrap:balance}.case-study-teaser p{color:var(--muted);margin:0 0 var(--space-block);max-width:var(--measure)}.link-arrow{color:var(--ink)}.link-arrow:after{content:"";display:inline-block;width:var(--arrow-size);height:var(--arrow-size);font-size:var(--arrow-size);margin-left:.3em;margin-right:.42em;vertical-align:-.12em;background-color:currentColor;transform:translate(.12em,-.12em);--arrow-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6 1h9v9M1 15 15 1' fill='none' stroke='white' stroke-width='1' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E");-webkit-mask:var(--arrow-glyph) center / contain no-repeat;mask:var(--arrow-glyph) center / contain no-repeat}.related-services .link-arrow:after{width:var(--arrow-size-sm);height:var(--arrow-size-sm);font-size:var(--arrow-size-sm);vertical-align:-.1em;--arrow-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M6 1h7v7M1 13 13 1' fill='none' stroke='white' stroke-width='1' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E")}:is(h1,h2,h3) .link-arrow:after{width:var(--arrow-size-lg);height:var(--arrow-size-lg);font-size:var(--arrow-size-lg);vertical-align:-.12em;--arrow-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M7 1h12v12M1 19 19 1' fill='none' stroke='white' stroke-width='1' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E")}.course-list .link-arrow:after{width:var(--arrow-size);height:var(--arrow-size);font-size:var(--arrow-size);vertical-align:-.12em;--arrow-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6 1h9v9M1 15 15 1' fill='none' stroke='white' stroke-width='1' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E")}.link-arrow.has-arrow-swap:after{content:none}.arrow-swap{position:relative;display:inline-block;width:var(--arrow-size);height:var(--arrow-size);font-size:var(--arrow-size);margin-left:.3em;margin-right:.42em;vertical-align:-.12em;transform:translate(.12em,-.12em)}.related-services .arrow-swap{width:var(--arrow-size-sm);height:var(--arrow-size-sm);font-size:var(--arrow-size-sm);vertical-align:-.1em}:is(h1,h2,h3) .arrow-swap{width:var(--arrow-size-lg);height:var(--arrow-size-lg);font-size:var(--arrow-size-lg);vertical-align:-.12em}.course-list .arrow-swap{width:var(--arrow-size);height:var(--arrow-size);font-size:var(--arrow-size);vertical-align:-.12em}.arrow-swap-copy{position:absolute;inset:0;display:block;background-color:currentColor;--arrow-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6 1h9v9M1 15 15 1' fill='none' stroke='white' stroke-width='1' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E");-webkit-mask:var(--arrow-glyph) center / contain no-repeat;mask:var(--arrow-glyph) center / contain no-repeat;transform:translate(0);opacity:1}.related-services .arrow-swap-copy{--arrow-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M6 1h7v7M1 13 13 1' fill='none' stroke='white' stroke-width='1' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E")}:is(h1,h2,h3) .arrow-swap-copy{--arrow-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M7 1h12v12M1 19 19 1' fill='none' stroke='white' stroke-width='1' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E")}.arrow-swap-copy+.arrow-swap-copy{transform:translate(-.75em,.75em);opacity:0}@media(hover:hover){a:hover .arrow-swap-copy:first-child,.link-arrow:hover .arrow-swap-copy:first-child{transform:translate(.75em,-.75em);opacity:0;transition:transform .18s ease-in-out,opacity .18s ease-in-out}a:hover .arrow-swap-copy+.arrow-swap-copy,.link-arrow:hover .arrow-swap-copy+.arrow-swap-copy{transform:translate(0);opacity:1;transition:transform .18s ease-in-out .18s,opacity .18s ease-in-out .18s}}.case-study-teaser .link-arrow{color:var(--ink)}.photo-band{position:relative;display:grid;place-items:center;min-height:clamp(320px,44vw,520px);overflow:hidden;color:var(--flint-ink)}.photo-band-image{position:absolute;inset:0;width:100%;height:100%}.photo-band:after{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--c-ink) 42%,transparent);pointer-events:none}.photo-band-copy{position:relative;z-index:1;padding:0 var(--gutter);max-width:34rem;text-align:center}.photo-band-copy h2{font-family:var(--font-display);font-weight:var(--display-weight, 400);font-size:var(--text-heading);line-height:var(--leading-heading);margin:0 0 var(--space-block);text-wrap:balance}.photo-band-copy p{margin:0 auto;max-width:var(--measure)}.split-square{display:grid;grid-template-columns:1fr 1fr}.split-square-text,.split-square-image{aspect-ratio:1 / 1}.split-square-text{display:flex;flex-direction:column;justify-content:center;padding:clamp(2rem,5vw,3rem) var(--gutter);background:var(--flint);color:var(--flint-ink)}.split-square-text h2{font-family:var(--font-display);font-weight:var(--display-weight, 400);font-size:var(--text-heading);line-height:var(--leading-heading);margin:0 0 var(--space-block);text-wrap:balance}.split-square-text p{margin:0;max-width:var(--measure)}.split-square-image{width:100%;height:100%}.split-square-reverse .split-square-text{order:2}.split-square-reverse .split-square-image{order:1}.square-mosaic{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}.square-mosaic-col{display:grid;gap:1px;min-width:0}.square-mosaic-cell{aspect-ratio:1 / 1}.square-mosaic-text{display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(1.25rem,3vw,2rem);background:var(--flint);color:var(--flint-ink)}.square-mosaic-text h3{font-family:var(--font-display);font-weight:var(--display-weight, 400);font-size:var(--text-heading);line-height:var(--leading-heading);margin:0 0 var(--space-block);text-wrap:balance}.square-mosaic-text p{margin:0}.square-mosaic-photo{width:100%;height:100%}.gapped-mosaic{display:grid;grid-template-columns:1fr 2fr 1fr 2fr 1fr 2fr 1fr}.gapped-mosaic-col{display:grid;grid-template-columns:minmax(0,1fr);gap:1px;background:var(--line);min-width:0}.gapped-mosaic-col:nth-child(1){grid-column:2}.gapped-mosaic-col:nth-child(2){grid-column:4}.gapped-mosaic-col:nth-child(3){grid-column:6}.gapped-mosaic .square-mosaic-text p{font-size:var(--text-small)}.case-study-intro{max-width:1000px;margin:0 auto;padding:var(--space-2xl) var(--gutter) 0}.case-study-intro p{margin:0 0 var(--space-block);max-width:var(--measure);color:var(--muted)}.case-study-part{max-width:1000px;margin:0 auto;padding:var(--section) 0;border-top:1px solid var(--line)}.case-study-part-text{padding:0 var(--gutter)}.case-study-part-number{display:block;font-family:var(--font-display);font-weight:var(--display-weight, 400);font-size:var(--text-number);color:transparent;-webkit-text-stroke:1px var(--accent-warm);line-height:1;margin:0 0 var(--space-block)}.case-study-part h2{font-family:var(--font-display);font-weight:var(--display-weight, 400);font-size:var(--text-heading);letter-spacing:-.015em;line-height:var(--leading-heading);margin:0 0 var(--space-block);max-width:20ch;text-wrap:balance}.case-study-part p{max-width:var(--measure);color:var(--muted);margin:0 0 var(--space-block)}.case-study-part figure{margin:clamp(2rem,5vw,3rem) 0 0}.case-study-part figure .image-placeholder{width:100%;height:min(70vh,680px)}.case-study-part figure .part-photo-frame{width:100%;height:min(70vh,680px);overflow:hidden}.case-study-part figure .part-photo{width:100%;height:100%;object-fit:cover}.case-study-part figcaption{padding:.85rem var(--gutter) 0;font-size:var(--text-small);color:var(--muted)}.case-study-close{max-width:1000px;margin:0 auto;padding:var(--section) var(--gutter)}.case-study-close h2{font-family:var(--font-display);font-weight:var(--display-weight, 400);font-size:var(--text-heading);line-height:var(--leading-heading);margin:0 0 var(--space-block);text-wrap:balance}.case-study-close p{max-width:var(--measure);margin:0;color:var(--muted)}.case-study-gallery{--case-study-gallery-gap: clamp(.75rem, 2vw, 1.5rem);max-width:1000px;margin:0 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:1fr;gap:var(--case-study-gallery-gap);aspect-ratio:3 / 2;overflow:hidden}.case-study-gallery-door{height:100%;overflow:hidden}.case-study-gallery-stack{height:100%;min-height:0;display:flex;flex-direction:column;gap:var(--case-study-gallery-gap)}.case-study-gallery-item{flex:1;min-height:0;overflow:hidden}.case-study-gallery-door img,.case-study-gallery-item img{width:100%;height:100%;object-fit:cover}.services-gallery{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.75rem,2vw,1.5rem)}.services-gallery-item{aspect-ratio:3 / 4;overflow:hidden}.services-gallery-item img{width:100%;height:100%;object-fit:cover}.panoramic-break{max-width:1600px;margin:0 auto;height:300px;overflow:hidden}.panoramic-break img{width:100%;height:100%;object-fit:cover}.site-footer{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-lg);padding:1.5rem var(--gutter) 1.75rem;border-top:1px solid var(--line);font-size:var(--text-small);color:var(--muted)}.site-footer-main{display:flex;justify-content:space-between;align-items:end;gap:var(--space-lg);width:100%}.site-footer a{color:var(--ink);text-decoration:none}.credits{margin:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes hero-settle{0%{transform:scale(1.06)}to{transform:scale(1)}}@media(max-width:1180px){html:not(.has-nav-fit) .site-header{flex-wrap:wrap;align-items:center;gap:.85rem 1rem}html:not(.has-nav-fit) .wordmark{flex:1 1 auto}html:not(.has-nav-fit) .site-header nav{flex:1 0 100%;width:100%;flex-wrap:wrap;justify-content:flex-start;gap:.75rem 1.1rem;max-width:none}html:not(.has-nav-fit) .site-header .button-small{padding:.55rem .85rem}}@media(max-width:820px){.hero-copy,.course-list li,.service-row,.case-study-teaser,.contact-shell,.split-square,.square-mosaic,.gapped-mosaic{grid-template-columns:1fr}.figure-break .image-placeholder,.figure-break .figure-photo-frame{height:100vw}.case-study-gallery{grid-template-columns:1fr;grid-template-rows:auto;aspect-ratio:auto;overflow:visible}.case-study-gallery-door{aspect-ratio:3 / 4;height:auto}.case-study-gallery-stack{height:auto}.case-study-gallery-item{flex:none;height:clamp(200px,45vw,300px)}.case-study-teaser-text,.case-study-teaser-photo-wrap,.case-study-teaser-photo{height:clamp(280px,70vw,360px);min-height:0;max-height:none}.case-study-teaser-photo-wrap{order:-1}.services-gallery{grid-template-columns:1fr}.services-gallery-item{aspect-ratio:1 / 1}.gapped-mosaic{gap:var(--space-xl)}.gapped-mosaic-col:nth-child(1),.gapped-mosaic-col:nth-child(2),.gapped-mosaic-col:nth-child(3){grid-column:1}.contact-shell{grid-template-columns:minmax(0,1fr)}.contact-direct{margin-top:1.5rem;padding:0 var(--gutter)}.contact-form{padding:0 var(--gutter)}.service-row{gap:0}.service-row:nth-child(2n) .service-row-media,.service-row--flip .service-row-media{order:0}.service-row-text,.service-row:nth-child(2n) .service-row-text,.service-row--flip .service-row-text{padding:0 var(--gutter)}.case-study-teaser-text{padding:clamp(2.75rem,6.5vw,4.25rem) var(--gutter)}.hero{min-height:92svh}.case-study-part figure .image-placeholder,.case-study-part figure .part-photo-frame{height:260px}.site-footer-main{flex-direction:column;align-items:flex-start}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero-photo{transform:none}.hero-slide{opacity:0;transform:none}.hero-slide:first-of-type{opacity:1}}.reveal-block{display:flow-root}.lab-intro{padding-bottom:var(--space-2xl)}.lab-index{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8rem}.lab-index a{color:var(--muted);text-decoration:none}.lab-index a:hover{color:var(--primary);text-decoration:underline}.lab-entry{scroll-margin-top:1.5rem}.lab-label{padding:1rem var(--gutter);background:#fff;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.85rem;color:var(--ink)}.lab-index-num{display:inline-block;min-width:1.75rem;font-weight:700;color:var(--primary)}.lab-desc{color:var(--muted);font-weight:400}.lab-label code{font-family:ui-monospace,SF Mono,Menlo,monospace;background:color-mix(in srgb,var(--ink) 8%,transparent);padding:.1rem .35rem;border-radius:2px}.width-variants{display:grid;gap:2.5rem;padding-top:2.5rem;border-top:1px dashed var(--line)}.width-variant-label{padding:0 var(--gutter);margin:0 0 .85rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.75rem;color:var(--muted)}.width-frame{margin:0 auto;outline:1px dashed color-mix(in srgb,var(--ink) 30%,transparent);outline-offset:-1px}.width-frame-1600{max-width:1600px}.width-frame-1000{max-width:1000px}.type-demo{padding:50px var(--gutter)}.type-sample{margin:0;max-width:46ch}.type-sample-display{font-family:var(--font-display);font-weight:var(--display-weight, 400);line-height:1.1}.type-sample-body{font-family:var(--font-body);font-weight:var(--body-weight, 300);line-height:var(--body-leading, 1.55)}.type-families{padding:50px var(--gutter);display:grid;gap:clamp(2.5rem,6vw,4rem)}.type-family-name{margin:0 0 1.25rem;font-family:var(--font-ui);font-size:var(--text-small);text-transform:uppercase;letter-spacing:.06em}.type-family-sample{margin:0 0 50px;font-size:var(--text-heading)}.type-family-sample:last-child{margin-bottom:0}#reveal-band-overlay{position:fixed;inset:0;z-index:10000;pointer-events:none}.reveal-band-line{position:absolute;left:0;right:0;border-top:1px solid #e22}.reveal-band-line--gone{border-top-style:dashed}.reveal-band-line span{position:absolute;left:.75rem;top:.2rem;font-family:var(--font-ui, sans-serif);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:#e22;background:color-mix(in srgb,var(--bg, #fff) 85%,transparent);padding:.1rem .35rem}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}
