:root{--ink:#152522;--muted:#596662;--brand:#0ba8aa;--brand-dark:#087a7c;--pale:#e6f6f4;--line:#dce3e0;--white:#fff;--max:1280px;--header:108px;color-scheme:light}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + 20px)}
body{margin:0;background:var(--white);color:var(--ink);font-family:"Inter","Helvetica Neue",Arial,sans-serif;font-size:1rem;line-height:1.65;-webkit-font-smoothing:antialiased}
body.modal-open{overflow:hidden}
img{display:block;max-width:100%;height:auto}
button,input,textarea{font:inherit}
a{color:inherit;text-decoration:none}
button{color:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
figure,p,h1,h2,h3{margin:0}
::selection{background:var(--brand);color:var(--ink)}
:focus-visible{outline:3px solid var(--brand-dark);outline-offset:6px}
.container{width:min(var(--max),calc(100% - 104px));margin-inline:auto}
.skip-link{position:fixed;top:10px;left:10px;transform:translateY(-160%);background:var(--ink);color:white;padding:12px 18px;z-index:100}
.skip-link:focus{transform:translateY(0)}
.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);border-bottom:1px solid transparent;transition:border-color .2s,box-shadow .2s;backdrop-filter:blur(16px)}
.site-header.is-scrolled{border-bottom-color:var(--line);box-shadow:0 3px 20px #15252206}
.header-inner{min-height:var(--header);display:flex;align-items:center;justify-content:space-between;gap:40px}
.brand{display:block;flex:none;width:154px;margin-left:-8px}
.brand img{width:100%;aspect-ratio:1530/1028;object-fit:contain}
nav{display:flex;align-items:center;gap:35px}
.nav-link{font-size:.9375rem;font-weight:600;position:relative;padding:10px 0}
.nav-link::after{content:"";position:absolute;left:0;bottom:5px;width:100%;height:2px;background:var(--brand);transform:scaleX(0);transform-origin:left;transition:transform .2s}
.nav-link:hover::after,.nav-link[aria-current]::after{transform:scaleX(1)}
.nav-contact{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:9px 22px;border:1px solid var(--ink);font-weight:600;font-size:.9375rem;transition:background .2s,color .2s}
.nav-contact:hover{background:var(--ink);color:white}
.menu-toggle{display:none}
.hero{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;padding-top:35px;padding-bottom:64px;align-items:center}
.hero-copy{padding-block:30px}
.eyebrow{display:flex;align-items:center;gap:12px;color:var(--brand-dark);font-size:.875rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;line-height:1.5;margin-bottom:24px}
.small-rule{height:2px;width:28px;background:var(--brand)}
h1{font-size:clamp(3.25rem,5.35vw,5.1rem);font-weight:600;line-height:1.04;letter-spacing:-.06em;margin-bottom:28px}
h1 span{color:var(--brand-dark)}
.hero-description{font-size:1.125rem;line-height:1.75;color:var(--muted);max-width:490px}
.hero-actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-top:32px}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:14px 25px;font-size:.9375rem;line-height:1.4;font-weight:600;text-align:center;border:1px solid transparent;transition:background .2s,transform .2s,color .2s}
.button:hover{transform:translateY(-2px)}
.button-dark{background:var(--ink);color:white}
.button-dark:hover{background:var(--brand-dark)}
.button-teal{background:var(--brand);color:#071e1e}
.button-teal:hover{background:#54c3c3}
.text-link{font-size:.9375rem;font-weight:600;border-bottom:1px solid var(--ink);padding-bottom:3px;transition:color .2s,border-color .2s}
.text-link:hover{color:var(--brand-dark);border-color:var(--brand-dark)}
.hero-note{display:flex;align-items:center;gap:18px;margin-top:57px;max-width:350px;padding-top:21px;border-top:1px solid var(--line)}
.note-number{font-size:1.1rem;font-weight:600;color:var(--brand-dark);align-self:flex-start}
.hero-note p{font-size:.875rem;line-height:1.55;color:var(--muted)}
.hero-photo{position:relative;height:575px;overflow:hidden;background:#e9eeee}
.hero-photo>img{width:100%;height:100%;object-fit:cover;object-position:50% 54%}
.hero-photo::after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#081612a3);pointer-events:none}
.hero-photo figcaption{position:absolute;bottom:31px;left:32px;z-index:1;color:white}
.hero-photo figcaption span{display:block;font-size:.8125rem;letter-spacing:.03em;margin-bottom:4px}
.hero-photo figcaption strong{font-size:1.3125rem;font-weight:500;letter-spacing:-.02em}
.photo-index{position:absolute;right:21px;top:21px;background:rgba(255,255,255,.92);font-size:.75rem;font-weight:600;letter-spacing:.08em;padding:6px 11px;line-height:1.5}
.discipline-band{background:var(--pale);border-block:1px solid #cae4e1}
.discipline-inner{display:flex;justify-content:space-between;align-items:center;gap:25px;padding-block:26px;font-size:clamp(1.1rem,1.65vw,1.5rem);font-weight:500;letter-spacing:-.02em}
.band-divider{color:var(--brand);font-weight:400}
.section-space{padding-top:112px;padding-bottom:108px}
.section-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:100px;align-items:end;margin-bottom:45px}
.section-heading .eyebrow{margin-bottom:16px}
h2{font-size:clamp(2.2rem,3.3vw,3.25rem);font-weight:500;line-height:1.13;letter-spacing:-.045em}
.section-heading>p{color:var(--muted);max-width:400px;line-height:1.8;padding-bottom:4px}
.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:30px;row-gap:47px}
.service-card{min-width:0}
.image-button{display:block;width:100%;padding:0;border:0;position:relative;overflow:hidden;background:#e6ece9;text-align:left}
.image-button img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1),filter .4s}
.image-button:hover img{transform:scale(1.045)}
.service-card .image-button{height:320px}
.service-card:nth-child(2) img{object-position:50% 30%}
.service-card:nth-child(3) img{object-position:50% 42%}
.service-card:nth-child(4) img{object-position:50% 53%}
.image-label{position:absolute;left:16px;bottom:16px;max-width:calc(100% - 76px);background:white;font-size:.8125rem;font-weight:600;line-height:1.4;padding:8px 12px}
.image-enlarge{position:absolute;right:16px;bottom:16px;display:flex;align-items:center;justify-content:center;width:34px;height:34px;background:var(--ink);color:white;font-size:1.5rem;line-height:1;font-weight:400;transition:background .2s}
.image-button:hover .image-enlarge{background:var(--brand-dark)}
.service-copy{position:relative;padding-top:23px;padding-right:20px}
.service-number{font-size:.8125rem;line-height:1.4;color:var(--brand-dark);font-weight:600;display:block;margin-bottom:8px}
h3{font-size:1.3125rem;font-weight:600;line-height:1.3;letter-spacing:-.025em;margin-bottom:11px;overflow-wrap:anywhere}
.service-copy p{color:var(--muted);font-size:1rem;line-height:1.75}
.about{background:var(--ink);color:white;overflow:hidden}
.about-grid{position:relative;display:grid;grid-template-columns:1.1fr 1fr;gap:100px;align-items:center;padding-top:90px;padding-bottom:92px}
.about .eyebrow{color:#68d3d0;margin-bottom:20px}
.about-copy{position:relative;z-index:1;max-width:515px}
.about-copy h2{margin-bottom:27px}
.about-copy>p:not(.eyebrow){color:#c8d5d1;margin-bottom:19px;font-size:1rem;line-height:1.85}
.about-copy .button{margin-top:13px}
.about-photo{position:relative;height:480px;z-index:1}
.about-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.about-photo figcaption{position:absolute;bottom:18px;left:18px;background:var(--ink);color:white;padding:6px 12px;font-size:.8125rem}
.about-signature{position:absolute;left:42%;bottom:-30px;font-weight:800;font-size:7.5rem;line-height:1;letter-spacing:-.08em;color:#29403b;white-space:nowrap;pointer-events:none}
.about-signature span{color:#345852}
.work-grid{display:grid;grid-template-columns:1.08fr 1fr;gap:32px}
.work-large{grid-row:span 2}
.work-large .image-button{height:650px}
.work-small .image-button{height:263px}
.work-small:nth-child(2) img{object-position:50% 32%}
.work-small:nth-child(3) img{object-position:50% 46%}
.work-grid figcaption{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding-top:14px}
.work-grid figcaption>span{color:var(--brand-dark);font-size:.8125rem}
.work-grid figcaption>strong{font-size:1rem;font-weight:500}
.contact{background:var(--pale);border-top:1px solid #cae4e1}
.contact-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:100px;padding-block:90px}
.contact-intro h2{font-size:clamp(3rem,5vw,4.75rem);line-height:1.07;margin-bottom:25px}
.contact-intro>p:last-child{color:#455c54;max-width:370px}
.contact-details{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:0}
.contact-label{font-size:.875rem;margin-bottom:12px;color:#455c54}
.contact-email{font-size:clamp(1.5rem,2.1vw,2rem);font-weight:500;letter-spacing:-.035em;border-bottom:1px solid #95bdb6;padding-bottom:5px;margin-bottom:25px;max-width:100%;overflow-wrap:anywhere;transition:color .2s}
.contact-email:hover{color:var(--brand-dark)}
address{font-size:.9375rem;font-style:normal;margin-top:31px;line-height:1.8;color:#455c54}
address strong{font-weight:500;color:var(--ink)}
.footer-top{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-block:35px}
.footer-brand{width:128px;flex:none;margin-left:-6px}
.footer-top p{font-size:.875rem;color:var(--muted);margin-right:auto}
.footer-top>.text-link{font-size:.875rem}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-block:21px;font-size:.8125rem;color:var(--muted)}
.photo-dialog{border:0;background:var(--ink);color:white;padding:60px 22px 20px;max-width:min(95vw,1000px);max-height:95dvh;width:fit-content;overflow:auto}
.photo-dialog::backdrop{background:#071513e8;backdrop-filter:blur(8px)}
.dialog-image{width:auto;height:auto;max-height:calc(92dvh - 125px);max-width:100%;margin:auto;object-fit:contain}
.photo-close{position:absolute;right:15px;top:12px;border:1px solid #667b74;background:var(--ink);color:white;font-size:.875rem;padding:5px 12px;display:flex;gap:16px;align-items:center;min-height:38px}
.photo-close:hover{background:#30493f}
.photo-close span{font-size:1.625rem;line-height:1}
#photo-caption{padding-top:15px;font-size:.9375rem;text-align:center;line-height:1.5;max-width:650px;margin:auto}
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.js .reveal.is-visible{opacity:1;transform:none}

@media(min-width:1550px){.hero{gap:76px}.hero-photo{height:620px}}
@media(max-width:1150px){.container{width:calc(100% - 72px)}.hero{gap:35px;grid-template-columns:1fr 1fr}.hero-photo{height:540px}h1{font-size:clamp(3rem,5.2vw,4.4rem)}.hero-actions{gap:20px}.hero-description{font-size:1.0625rem}.section-heading{gap:55px}.service-grid{gap:36px 23px}.service-card .image-button{height:290px}.about-grid,.contact-grid{gap:60px}.work-large .image-button{height:610px}.work-small .image-button{height:243px}}
@media(max-width:900px){:root{--header:90px}.container{width:calc(100% - 48px)}.brand{width:131px}nav{gap:23px}.nav-link{font-size:.875rem}.nav-contact{padding-inline:16px;font-size:.875rem}.hero{gap:25px;padding-top:25px}.hero-photo{height:515px}.hero-copy{padding-top:10px}.hero-note{margin-top:30px}.hero-actions{margin-top:27px;align-items:flex-start;gap:18px;flex-direction:column}.section-space{padding-block:80px}.section-heading{gap:35px}.section-heading>p{font-size:.9375rem}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:38px 26px}.service-card .image-button{height:330px}.about-grid{gap:36px;padding-block:70px}.about-photo{height:440px}.about-signature{font-size:6rem}.work-grid{gap:26px}.work-large .image-button{height:565px}.work-small .image-button{height:222px}.contact-grid{gap:40px;padding-block:70px}.footer-top p{max-width:270px}}
@media(max-width:700px){:root{--header:78px}.container{width:calc(100% - 40px)}.header-inner{gap:20px;min-height:78px}.brand{width:116px;margin-left:-5px}.menu-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;width:46px;height:44px;padding:10px;border:1px solid var(--line);background:white;z-index:21}.menu-toggle span{width:20px;height:2px;background:var(--ink);transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4.5px) rotate(-45deg)}.js nav{display:none;position:absolute;left:0;top:100%;width:100%;padding:20px;background:white;box-shadow:0 14px 20px #15252212;border-top:1px solid var(--line);flex-direction:column;align-items:stretch;gap:10px}.js nav.is-open{display:flex}.js nav a{padding:12px 10px;text-align:center}.nav-link::after{display:none}nav .nav-contact{margin-top:8px}.hero{grid-template-columns:1fr;gap:35px;padding-top:30px;padding-bottom:40px}.hero-copy{padding:0}.eyebrow{font-size:.8125rem;margin-bottom:20px}h1{font-size:clamp(3.05rem,9.2vw,4.5rem);line-height:1.04;margin-bottom:24px}.hero-description{max-width:520px;font-size:1rem}.hero-actions{flex-direction:row;align-items:center;gap:20px;margin-top:25px}.button{font-size:.875rem;padding:13px 20px;min-height:50px}.text-link{font-size:.875rem}.hero-note{display:none}.hero-photo{height:430px;max-height:125vw}.hero-photo figcaption{bottom:24px;left:23px}.hero-photo figcaption strong{font-size:1.25rem}.discipline-inner{gap:12px;padding-block:22px;font-size:.9375rem}.band-divider{font-size:1rem}.section-space{padding-block:66px}.section-heading{grid-template-columns:1fr;gap:20px;margin-bottom:32px}.section-heading>p{max-width:100%;font-size:1rem;line-height:1.75}.section-heading .eyebrow{margin-bottom:14px}h2{font-size:2.2rem}.service-grid{gap:30px 20px}.service-card .image-button{height:260px}.service-copy{padding-top:17px;padding-right:0}h3{font-size:1.125rem;line-height:1.3;margin-bottom:8px}.service-copy p{font-size:1rem;line-height:1.7}.image-label{font-size:.75rem;left:10px;bottom:10px;padding:6px 8px;max-width:calc(100% - 56px)}.image-enlarge{width:30px;height:30px;right:10px;bottom:10px}.service-number{margin-bottom:6px}.about-grid{grid-template-columns:1fr;gap:34px;padding-block:60px}.about-copy{max-width:100%}.about-photo{height:400px;max-width:100%}.about-photo img{object-position:50% 42%}.about-signature{font-size:4.5rem;bottom:-18px;left:15%}.work-grid{grid-template-columns:1fr 1fr;gap:25px 20px}.work-large{grid-row:auto;grid-column:span 2}.work-large .image-button{height:460px}.work-small .image-button{height:250px}.work-grid figcaption strong{font-size:.9375rem}.work-grid figcaption{line-height:1.5}.contact-grid{grid-template-columns:1fr;gap:35px;padding-block:60px}.contact-intro h2{font-size:3.25rem}.contact-intro>p:last-child{max-width:100%}.contact-details{border-top:1px solid #b7d8d2;padding-top:30px}.contact-email{font-size:1.75rem}.footer-top{padding-block:25px;flex-wrap:wrap;gap:16px 22px}.footer-brand{width:106px}.footer-top p{font-size:.8125rem;flex:1;max-width:none}.footer-top>.text-link{margin-left:auto}.footer-bottom{align-items:flex-start;flex-direction:column;gap:4px;font-size:.75rem}.photo-dialog{padding:60px 12px 16px;max-width:96vw}.dialog-image{max-height:calc(92dvh - 140px)}}
@media(max-width:430px){.hero-actions{align-items:flex-start;flex-direction:column;gap:18px}.service-grid{grid-template-columns:1fr;gap:32px}.service-card .image-button{height:345px}.image-label{font-size:.8125rem;padding:7px 10px}.image-enlarge{width:34px;height:34px}h3{font-size:1.3125rem}.work-grid{grid-template-columns:1fr;gap:27px}.work-large{grid-column:auto}.work-large .image-button{height:420px}.work-small .image-button{height:280px}.discipline-inner{font-size:.8125rem;gap:8px}.footer-top>.text-link{margin-left:0}.footer-top{gap:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.js .reveal{opacity:1;transform:none}.image-button:hover img,.button:hover{transform:none}}
@media(scripting:none) and (max-width:700px){.header-inner{flex-wrap:wrap;gap:0;padding-bottom:15px}nav{flex-wrap:wrap;justify-content:center;width:100%;gap:10px 20px}.nav-contact{min-height:40px}.brand{margin-inline:auto}}
