@font-face{font-family:'DM Sans';src:url('/assets/fonts/dm-sans-regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:'DM Sans';src:url('/assets/fonts/dm-sans-medium.ttf') format('truetype');font-weight:500 700;font-display:swap}
@font-face{font-family:Manrope;src:url('/assets/fonts/manrope-medium.ttf') format('truetype');font-weight:500 700;font-display:swap}
@font-face{font-family:'Inter Tight';src:url('/assets/fonts/inter-tight-medium.ttf') format('truetype');font-weight:500;font-display:swap}
:root{--paper:#f4f1eb;--ink:#050d18;--slate:#171d24;--bronze:#ad9777;--muted:#4f575d;--line:#cfcac2;--light-muted:#c4c9cc;--dark-line:#41474c;--sans:'DM Sans',Arial,sans-serif;--display:Manrope,Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:0}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,summary{cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--bronze);outline-offset:5px}
h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3{font-family:var(--display);font-weight:500;line-height:1.2;letter-spacing:-.045em}h1{font-size:clamp(2.25rem,3.4vw,3.3rem)}h2{font-size:clamp(2rem,3.2vw,3rem)}h1 em,h2 em{font-style:normal;color:var(--muted)}h3{font-size:1.35rem;letter-spacing:-.025em}p{color:var(--muted)}img{display:block;max-width:100%}
.shell{width:min(1160px,calc(100% - 96px));margin-inline:auto}.section{padding:88px 0}.eyebrow{font-size:.78rem;letter-spacing:.08em;font-weight:500;margin-bottom:24px;text-transform:uppercase}.text-link{display:inline-flex;align-items:center;gap:12px;border-bottom:1px solid currentColor;padding:5px 0;font-size:.92rem}.text-link:hover{color:#776449}.button{display:inline-flex;align-items:center;justify-content:center;gap:15px;min-height:50px;padding:14px 23px;border:1px solid transparent;font-size:.94rem;font-weight:500;transition:background .2s}.button-dark{background:var(--ink);color:var(--paper)}.button-dark:hover{background:#34404c}.button-white{background:var(--paper);color:var(--ink)}.button-white:hover{background:#ded6ca}.skip{position:absolute;top:-100px;left:20px;padding:10px;background:var(--ink);color:var(--paper);z-index:50}.skip:focus{top:10px}
.site-header{position:sticky;top:0;z-index:40;border-bottom:1px solid var(--line);background:var(--paper)}.header-inner{min-height:96px;display:flex;justify-content:space-between;align-items:center;gap:24px}.brand{display:flex;flex-direction:column;gap:7px}.wordmark{font-family:'Inter Tight',Arial,sans-serif;font-size:1.4rem;line-height:1.1;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}.brand-descriptor{font-size:.53rem;line-height:1.4;letter-spacing:.2em;text-transform:uppercase;color:#aab6c5}.site-header nav{display:flex;align-items:center;gap:24px;font-size:.86rem}.site-header nav a{padding-block:10px}.site-header nav a:hover{text-decoration:underline;text-underline-offset:5px}.site-header .nav-contact{padding:10px 17px;border:1px solid var(--ink)}.menu-button{display:none}
.hero{padding:62px 0 66px}.hero-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.9fr);gap:70px;align-items:center}.hero .eyebrow{margin-bottom:18px}.hero-description{margin-top:26px;max-width:570px;font-size:1.05rem;line-height:1.75}.hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:28px}.hero-proof{padding-top:22px;margin-top:30px;border-top:1px solid var(--line);font-size:.84rem;max-width:520px}.portrait{width:100%;max-width:370px;justify-self:end}.portrait img{width:100%;height:auto;aspect-ratio:1;object-fit:cover}.portrait figcaption{display:flex;justify-content:space-between;gap:15px;font-size:.77rem;color:var(--muted);padding-top:15px}.portrait figcaption span:first-child{color:var(--ink);font-weight:500}
.experience{background:var(--slate);color:var(--paper)}.experience .eyebrow,.experience p{color:var(--light-muted)}.experience h2 em{color:var(--bronze)}.experience-grid{display:grid;grid-template-columns:1fr 1fr;gap:85px}.experience-intro>p{margin-top:24px;max-width:490px}.experience-intro>.text-link{margin-top:26px}.experience .text-link:hover{color:var(--bronze)}.experience-evidence article{padding:24px 0;border-top:1px solid var(--dark-line)}.experience-evidence article:first-child{padding-top:0;border-top:0}.experience-evidence h3{font-size:1.22rem;margin-bottom:12px}.experience-evidence p{font-size:.97rem;line-height:1.75}.formation{display:flex;align-items:baseline;gap:32px;margin-top:42px;padding-top:24px;border-top:1px solid var(--dark-line);font-size:.87rem}.formation>span{color:var(--bronze);flex:none}
.section-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:85px;align-items:end;margin-bottom:44px}.section-heading>p{max-width:440px}.section-heading .eyebrow{margin-bottom:18px}.service-list{border-top:1px solid var(--line)}.service{border-bottom:1px solid var(--line);scroll-margin-top:24px}.service summary{display:grid;grid-template-columns:240px minmax(0,1fr) 26px;gap:26px;align-items:center;padding:28px 0;list-style:none}.service summary::-webkit-details-marker{display:none}.service-label{font-size:.78rem;line-height:1.6;color:var(--muted)}.service summary h3{font-size:clamp(1.12rem,1.6vw,1.4rem);line-height:1.4}.expand-symbol{width:22px;height:22px;position:relative}.expand-symbol:before,.expand-symbol:after{content:'';position:absolute;left:3px;top:10px;width:16px;height:1px;background:currentColor}.expand-symbol:after{transform:rotate(90deg)}.service[open] .expand-symbol:after{display:none}.service summary:hover h3{color:#776449}.service-content{margin-left:266px;max-width:690px;padding:0 48px 30px 0}.service-content>p{line-height:1.75}.service-delivery{margin-top:22px;border-left:2px solid var(--bronze);padding-left:20px}.service-delivery h4{font-size:.86rem;font-weight:500;margin-bottom:5px}.service-delivery p{font-size:.94rem}.service-content>.text-link{margin-top:24px}.scope-note{max-width:720px;margin-top:28px;font-size:.92rem}
.method{background:#e9e4dc}.method-steps{padding:0;margin:0;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}.step-number{display:block;color:#776449;font-size:.85rem;margin-bottom:15px;border-top:1px solid #c2bbb0;padding-top:18px}.method-steps h3{font-size:1.15rem;margin-bottom:14px}.method-steps p{font-size:.97rem;line-height:1.75}
.contact{background:var(--ink);color:var(--paper)}.contact h2 em{color:var(--bronze)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:85px;align-items:start}.contact-copy>p{color:var(--light-muted);margin-bottom:24px}.contact-copy>h2{margin-bottom:26px}.contact-copy>.button{margin-top:8px}.contact-email{display:block;width:fit-content;max-width:100%;overflow-wrap:anywhere;border-bottom:1px solid var(--dark-line);font-size:.92rem;margin-top:25px;padding-bottom:4px}.contact-copy>.contact-alternative{font-size:.87rem;margin-top:28px}.contact-form{position:relative;scroll-margin-top:30px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-field{min-width:0;margin-bottom:20px}.form-field label{display:block;font-size:.82rem;margin-bottom:8px;color:var(--paper)}.form-field label span{color:var(--light-muted)}.form-field input,.form-field select,.form-field textarea{display:block;width:100%;min-height:48px;padding:12px 14px;color:var(--paper);background:var(--slate);border:1px solid #58616b;border-radius:0;line-height:1.5;font-size:1rem;color-scheme:dark}.form-field textarea{resize:vertical;min-height:140px}.form-field input::placeholder,.form-field textarea::placeholder{color:#b0b8bd;opacity:1}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:2px solid var(--bronze);outline-offset:3px}.form-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.form-note{color:var(--light-muted);font-size:.76rem;line-height:1.7;margin:10px 0 20px}.form-status{color:var(--paper);font-size:.87rem;margin-top:15px}.form-status:empty{display:none}.form-error-alternative{font-size:.82rem;color:var(--light-muted);margin-top:18px}.form-error-alternative a{text-decoration:underline;text-underline-offset:3px}#contact-description{font-size:.82rem;line-height:1.6;color:var(--light-muted);margin:-9px 0 20px}.form-submit:disabled{opacity:.7;cursor:wait}
footer{background:var(--ink);color:var(--paper);border-top:1px solid var(--dark-line)}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:32px}.footer-inner>.wordmark{font-size:1.1rem}.footer-inner>span{font-size:.75rem;color:var(--light-muted)}.footer-inner>div{display:flex;gap:22px;font-size:.84rem}.footer-inner a:hover{text-decoration:underline;text-underline-offset:5px}
@media(max-width:1000px){.shell{width:calc(100% - 64px)}.hero-grid{gap:38px;grid-template-columns:minmax(0,1.4fr) minmax(0,.9fr)}.experience-grid,.section-heading,.contact-grid{gap:45px}.site-header nav{gap:17px;font-size:.8rem}.brand-descriptor{font-size:.5rem}.wordmark{font-size:1.2rem}.service summary{grid-template-columns:190px minmax(0,1fr) 22px;gap:24px}.service-content{margin-left:214px}.hero h1{font-size:2.5rem}.hero-actions{gap:14px}.hero-actions .text-link{font-size:.85rem}}
@media(max-width:760px){.shell{width:calc(100% - 40px)}.header-inner{min-height:82px}.brand-descriptor{font-size:.5rem}.menu-button{display:block;padding:10px 14px;border:1px solid var(--line);background:transparent;color:var(--ink);font-size:.85rem}.site-header nav{display:none;position:absolute;top:100%;left:0;right:0;padding:15px 20px 22px;background:var(--paper);border-bottom:1px solid var(--line);z-index:20;align-items:stretch;gap:2px;font-size:.94rem}.site-header nav.is-open{display:flex;flex-direction:column}.site-header nav a{padding:12px}.site-header .nav-contact{margin-top:7px}.hero{padding:38px 0 45px}.hero-grid{grid-template-columns:1fr;gap:32px}.hero h1{font-size:clamp(2.15rem,7.2vw,3rem);line-height:1.23}.hero-description{font-size:1rem;margin-top:22px}.hero-actions{gap:18px}.hero-proof{margin-top:25px;font-size:.82rem}.portrait{justify-self:start;max-width:320px}.portrait figcaption{padding-top:10px}.section{padding:56px 0}.eyebrow{margin-bottom:20px}.experience-grid,.section-heading,.contact-grid{grid-template-columns:1fr;gap:30px}h2{font-size:2.15rem}.experience-intro>p{margin-top:20px}.experience-evidence{border-top:1px solid var(--dark-line);padding-top:28px}.experience-evidence article:last-child{padding-bottom:0}.formation{display:block;margin-top:30px;padding-top:20px}.formation p{margin-top:10px}.section-heading{margin-bottom:30px;gap:20px}.service summary{grid-template-columns:minmax(0,1fr) 22px;gap:9px 18px;padding:24px 0}.service-label{grid-column:1;font-size:.76rem}.service summary h3{grid-column:1;font-size:1.2rem}.expand-symbol{grid-column:2;grid-row:1/3}.service-content{margin-left:0;padding:0 0 26px}.service-content>p{font-size:.98rem}.method-steps{grid-template-columns:1fr;gap:28px}.step-number{margin-bottom:12px}.method-steps h3{font-size:1.2rem}.contact-grid{gap:38px}.contact-copy>.contact-alternative{margin-bottom:0}.footer-inner{flex-wrap:wrap;gap:22px;padding-block:28px}.footer-inner>span{margin-left:auto}.footer-inner>div{width:100%;flex-wrap:wrap;gap:20px}.form-row{grid-template-columns:1fr;gap:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Dark palette retained across the main page and technical detail. */
:root{--muted:#c4c9cc;--line:#3b4856}
body{background:var(--ink);color:var(--paper)}
.site-header,.site-header nav{background:var(--ink)}
.site-header .nav-contact{border-color:var(--bronze)}
.button-dark{background:var(--paper);color:var(--ink)}
.button-dark:hover{background:#ded6ca}
.text-link:hover,.service summary:hover h3{color:var(--bronze)}
.portrait figcaption span:first-child{color:var(--paper)}
.menu-button{color:var(--paper)}
.method{background:var(--slate)}
.step-number{color:var(--bronze);border-color:var(--dark-line)}
.experience-gallery{margin-top:42px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.experience-gallery img{width:100%;height:auto;aspect-ratio:1;object-fit:cover}
.experience-gallery figure:nth-child(1) img{object-position:68% 50%}
.experience-gallery figure:nth-child(4) img{object-position:50% 20%}
.experience-gallery figcaption{font-size:.78rem;line-height:1.5;color:var(--light-muted);padding-top:12px}
.photo-treatment{display:block;position:relative;isolation:isolate;overflow:hidden;background:var(--slate)}
.photo-treatment img{filter:saturate(var(--photo-saturation,.72)) contrast(var(--photo-contrast,1.04)) brightness(var(--photo-brightness,1));}
.photo-treatment:after{content:'';position:absolute;inset:0;background:#b8ad9a;mix-blend-mode:color;opacity:.15;pointer-events:none}
.experience-gallery figure:nth-child(1){--photo-saturation:.65;--photo-contrast:1.05;--photo-brightness:.94}
.experience-gallery figure:nth-child(2){--photo-saturation:.70;--photo-contrast:1.05;--photo-brightness:1}
.experience-gallery figure:nth-child(3){--photo-saturation:.78;--photo-contrast:1.04;--photo-brightness:1.13}
.experience-gallery figure:nth-child(4){--photo-saturation:.69;--photo-contrast:1.03;--photo-brightness:1.09}
.services-invitation{border-bottom:1px solid var(--line)}
.services-invitation .section-heading{margin:0;align-items:start}
.services-invitation .invitation-copy p{margin-bottom:24px}
.method-more{display:flex;justify-content:space-between;align-items:center;gap:30px;border-top:1px solid var(--dark-line);margin-top:40px;padding-top:28px}
.method-more p{max-width:550px;font-size:.94rem}.method-more a{flex:none}
.technical-hero{padding:55px 0 62px;border-bottom:1px solid var(--line)}
.breadcrumb{font-size:.82rem;color:var(--light-muted);margin-bottom:36px}
.breadcrumb a{text-decoration:underline;text-underline-offset:4px}
.technical-hero h1{max-width:800px;font-size:clamp(2.5rem,4.3vw,4rem)}
.technical-hero .technical-lead{max-width:740px;font-size:1.1rem;line-height:1.8;margin-top:24px}
.technical-intro{display:grid;grid-template-columns:1.05fr 1fr;gap:80px;align-items:start}
.technical-intro>p{max-width:520px}.technical-steps{margin-top:40px}
.technical-steps h3{font-size:1.2rem}.technical-steps .method-result{display:block;color:var(--bronze);font-size:.8rem;line-height:1.6;margin-top:18px}
.technical-tools{background:var(--slate)}.technical-tools .section-heading{align-items:start}
.engineering-tool{border-top:1px solid var(--dark-line)}.engineering-tool:last-child{border-bottom:1px solid var(--dark-line)}
.engineering-tool summary{display:grid;grid-template-columns:26px minmax(0,.95fr) minmax(0,1.1fr) 24px;align-items:center;gap:24px;padding:27px 0;list-style:none}
.engineering-tool summary::-webkit-details-marker{display:none}.tool-index{font-size:.8rem;color:var(--bronze)}.tool-name{font-family:var(--display);font-size:1.1rem;font-weight:500;line-height:1.4}.tool-purpose{font-size:.93rem;line-height:1.6;color:var(--light-muted)}.tool-toggle{font-size:1.4rem;font-weight:400;line-height:1;transition:transform .2s}.engineering-tool[open] .tool-toggle{transform:rotate(45deg)}
.tool-detail{display:grid;grid-template-columns:1.15fr 1fr;gap:45px;margin-left:50px;padding:0 48px 28px 0}.tool-detail h4{font-size:.83rem;color:var(--bronze);font-weight:500;margin-bottom:9px}.tool-detail p{font-size:.96rem;line-height:1.8}
.technical-closing{display:grid;grid-template-columns:1.2fr 1fr;gap:70px;align-items:start}.technical-closing h2{margin-bottom:22px}.technical-closing p{margin-bottom:24px}.technical-closing .scope-list{margin:0;padding-left:20px;color:var(--light-muted)}.scope-list li{margin-bottom:12px}
@media(max-width:1000px){.technical-intro,.technical-closing{gap:45px}.engineering-tool summary{gap:18px}.tool-detail{margin-left:44px;gap:30px}.method-more{align-items:flex-start}.method-more a{flex-shrink:1}}
@media(max-width:760px){.experience-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px;margin-top:30px}.experience-gallery figcaption{font-size:.74rem;padding-top:8px}.method-more{display:block;margin-top:30px;padding-top:24px}.method-more a{margin-top:18px}.technical-hero{padding:34px 0 42px}.breadcrumb{margin-bottom:27px}.technical-hero .technical-lead{font-size:1rem}.technical-intro,.technical-closing{grid-template-columns:1fr;gap:24px}.technical-steps{margin-top:30px}.engineering-tool summary{grid-template-columns:24px minmax(0,1fr) 22px;gap:8px 14px;padding:23px 0}.tool-index{grid-column:1;grid-row:1/3;align-self:start}.tool-name{grid-column:2;grid-row:1;font-size:1.05rem}.tool-purpose{grid-column:2;grid-row:2;font-size:.86rem}.tool-toggle{grid-column:3;grid-row:1/3}.tool-detail{grid-template-columns:1fr;margin-left:38px;padding:0 0 24px;gap:20px}.tool-detail p{font-size:.93rem}}

/* Header and reading progress, shared by all three pages. */
.site-header:after{content:'';position:absolute;left:0;bottom:-1px;width:100%;height:2px;background:var(--bronze);transform:scaleX(var(--page-progress,0));transform-origin:left center;pointer-events:none}
.site-header .wordmark{font-size:1.6rem;font-weight:500;letter-spacing:.12em}
main [id]{scroll-margin-top:116px}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:85px;align-items:start;padding-bottom:48px;border-bottom:1px solid var(--dark-line)}
.about-intro>p:not(.eyebrow),.about-perspective>p:not(.eyebrow){margin-top:22px;max-width:510px}
.about-perspective{padding-left:28px;border-left:2px solid var(--bronze)}
.about-perspective .eyebrow{color:var(--bronze)}
.about-perspective h3{font-size:1.6rem;line-height:1.4;max-width:420px}
.experience-heading{padding-top:44px}
.technical-sections{display:flex;flex-wrap:wrap;gap:18px 32px;margin-top:28px}
@media(max-width:1000px){.about-grid{gap:45px}.site-header .wordmark{font-size:1.35rem}}
@media(max-width:760px){html{scroll-padding-top:0}main [id]{scroll-margin-top:102px}.about-grid{grid-template-columns:1fr;gap:32px;padding-bottom:32px}.about-perspective{padding-left:20px}.about-perspective h3{font-size:1.45rem}.experience-heading{padding-top:32px}.site-header .wordmark{font-size:1.35rem}.technical-sections{gap:16px 24px}}

.page-top{display:block;height:0}
