:root{--paper:#f6f5f0;--ink:#22251f;--blue:#2444d8;--blue-soft:#edf0fc;--blue-line:#cbd3f1;--muted:#62655d;--line:#d5d7ce;--citron:#e9edb9;--display:var(--font-manrope);--body:var(--font-dm-sans);--ease:cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-color:#aeb4a4 var(--paper);scroll-padding-top:32px}body{background:var(--paper);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;font-size:17px;line-height:1.6}body,button,input,textarea,select{font-family:var(--body)}::selection{background:var(--citron);color:var(--ink)}:focus-visible{outline:3px solid var(--blue);outline-offset:6px}a{color:inherit;text-underline-offset:5px;text-decoration:none}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}img{max-width:100%;height:auto;display:block}svg{vertical-align:middle;flex-shrink:0}button svg{pointer-events:none}figure,h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--display);text-wrap:balance;font-weight:600}h1{letter-spacing:-.04em;font-size:clamp(3rem,5.5vw,5rem);line-height:1.1}h2{letter-spacing:-.035em;font-size:clamp(2rem,3.2vw,3rem);line-height:1.2}h3{letter-spacing:-.025em;font-size:1.4rem;line-height:1.3}p{max-width:70ch}p+p{margin-top:1em}[hidden]{display:none!important}.wrap{width:min(1320px,100% - 112px);margin-inline:auto}.section{padding-block:96px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:30;background:var(--blue);color:#fff;padding:10px 20px;position:fixed;top:-90px;left:20px}.skip-link:focus{top:16px}.button{background:var(--blue);border:1px solid var(--blue);color:#fff;border-radius:2px;justify-content:center;align-items:center;gap:20px;min-height:54px;padding:16px 24px;font-size:15px;font-weight:500;line-height:1.4;transition:background .2s;display:inline-flex}.button:hover{background:#1732b6}.text-link{text-underline-offset:6px;min-height:44px;color:var(--blue);background:0 0;border:0;border-radius:0;align-items:center;gap:12px;padding-block:8px;font-size:15px;font-weight:500;line-height:1.5;text-decoration:underline 1px;display:inline-flex}.text-link:hover{color:#1732b6}.site-header{padding-block:20px}.header-inner{justify-content:space-between;align-items:center;gap:24px;min-height:44px;display:flex}.wordmark{font-family:var(--display);letter-spacing:-.04em;align-items:center;min-height:44px;font-size:32px;font-weight:800;line-height:1;display:inline-flex}.wordmark span{color:var(--blue)}.site-nav{align-items:center;gap:32px;font-size:14px;display:flex}.site-nav a{align-items:center;min-height:44px;display:inline-flex;position:relative}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--blue)}.site-nav a[aria-current=page]{text-decoration:underline}.site-nav .nav-contact{text-underline-offset:6px;margin-left:18px;text-decoration:underline}.menu-toggle{border:1px solid var(--line);color:var(--ink);background:0 0;border-radius:2px;min-width:46px;min-height:46px;padding:10px;display:none}.project-grid{grid-template-columns:1fr 1fr;align-items:start;gap:56px 40px;display:grid}.project-image-link{display:block}.project-image{aspect-ratio:4/3;background:#e5e5e0;justify-content:center;align-items:center;display:flex;overflow:hidden}.project-image img{object-fit:contain;width:100%;height:100%;transition:transform .65s var(--ease)}.project-image-link:hover img{transform:scale(1.025)}.project-caption{margin-top:18px}.project-caption h3{font-size:24px}.project-caption h3 a{align-items:center;min-height:44px;display:inline-flex}.project-caption h3 a:hover{color:var(--blue)}.project-category{color:var(--blue);margin-top:2px;font-size:13px}.project-summary{color:var(--muted);max-width:50ch;margin-top:10px;font-size:15px;line-height:1.65}.site-footer{padding-block:40px 20px}.footer-top{justify-content:space-between;align-items:center;gap:32px;padding-bottom:32px;display:flex}.footer-top p{color:var(--muted);font-size:13px}.footer-top .wordmark{font-size:27px}.footer-bottom{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:24px;padding-top:12px;font-size:12px;display:flex}.footer-bottom a{align-items:center;min-height:44px;display:inline-flex}.footer-bottom a:hover{color:var(--blue)}@media (width<=1100px){.wrap{width:calc(100% - 72px)}.site-nav{gap:24px}.site-nav .nav-contact{margin-left:0}.section{padding-block:72px}}@media (width<=760px){.wrap{width:calc(100% - 40px)}.site-header{padding-block:16px}.wordmark{font-size:28px}.header-inner{position:relative}.menu-toggle{display:inline-flex}.site-nav{z-index:15;background:var(--paper);border:1px solid var(--line);flex-direction:column;align-items:stretch;gap:6px;padding:18px 22px;display:none;position:absolute;top:58px;left:0;right:0;box-shadow:0 15px 24px #22251f0d}.site-nav.is-open{display:flex}.site-nav>a{padding-block:10px}.site-nav .nav-contact{margin-top:4px}.section{padding-block:56px}.project-grid{grid-template-columns:1fr;gap:36px}.project-caption{margin-top:12px}.project-caption h3{font-size:22px}.project-summary{font-size:14px}.project-category{font-size:12px}.site-footer{padding-top:30px}.footer-top{grid-template-columns:1fr 1fr;gap:20px;padding-bottom:20px;display:grid}.footer-top .text-link{grid-column:1/-1;justify-self:start}.footer-top p{font-size:12px}.footer-bottom{flex-wrap:wrap;gap:8px 20px;font-size:11px}.footer-bottom>span{flex-basis:100%}html:not(.js) .header-inner{flex-wrap:wrap}html:not(.js) .menu-toggle{display:none}html:not(.js) .site-nav{box-shadow:none;border:0;flex-basis:100%;padding:15px 0;display:flex;position:static}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.project-image-link:hover img{transform:none}}.page-intro{padding-block:72px 45px}.page-intro h1,.about-hero h1{color:var(--blue)}.page-intro>p{max-width:620px;color:var(--muted);margin-top:30px;font-size:19px}.portfolio-section{padding-top:35px}.project-heading{padding-block:40px 50px}.back-link{color:var(--muted);margin-bottom:38px;font-size:13px}.project-heading h1{color:var(--blue);font-size:clamp(3rem,6.2vw,6rem)}.project-heading-bottom{justify-content:space-between;align-items:center;gap:40px;margin-top:25px;display:flex}.project-heading-bottom>p{max-width:650px;font-size:20px}.project-heading-bottom>span{color:var(--blue);text-align:right;flex-shrink:0;font-size:13px}.project-cover{background:#e8e9e0;justify-content:center;padding:clamp(20px,4vw,60px);display:flex}.project-cover img{object-fit:contain;width:100%;max-height:660px}.project-body{grid-template-columns:1fr 1.65fr;gap:110px;display:grid}.project-body aside{background:var(--blue-soft);align-self:start;padding:28px}.project-body aside h2{color:var(--blue);font-size:21px;line-height:1.4}.scope-list{margin:25px 0;padding:0;list-style:none}.scope-list li{border-bottom:1px solid var(--blue-line);padding-block:10px;font-size:14px}.scope-list li:last-child{border-bottom:0}.prose{color:#4d5148;font-size:17px}.prose h2{color:var(--blue);margin-block:0 22px;font-size:31px}.prose h2:not(:first-child){margin-top:45px}.prose h3{color:var(--ink);margin-block:28px 12px}.prose ul{padding-left:22px}.prose p{margin-top:0;margin-bottom:18px}.prose a{color:var(--blue);text-decoration:underline}.project-gallery{grid-template-columns:1fr 1fr;gap:35px;display:grid}.gallery-wide{grid-column:1/-1}.gallery-image{background:#e9eae3;justify-content:center;align-items:center;min-height:200px;padding:25px;display:flex}.gallery-image img{object-fit:contain;width:100%;max-height:660px}.gallery-wide .gallery-image{padding:35px}.project-gallery figcaption{color:var(--muted);margin-top:12px;font-size:13px}.next-project{padding-block:90px 100px}.next-project>span{color:var(--muted);font-size:14px}.next-project>a{border-bottom:1px solid var(--line);font:500 clamp(2rem,4vw,3.5rem)/1.2 var(--display);letter-spacing:-.03em;color:var(--blue);justify-content:space-between;align-items:center;gap:30px;padding-block:18px;display:flex}.next-project>a:hover{color:#1732b6}.project-video{padding-bottom:70px}.project-video h2{margin-bottom:25px}.project-video video{background:var(--ink);max-width:100%;max-height:650px}.service-jump{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:24px;margin-top:5px;padding-bottom:45px;display:flex}.service-jump>a{align-items:center;gap:15px;font-size:14px;display:inline-flex}.service-jump>a:hover{color:var(--blue)}.service-detail{border-bottom:1px solid var(--line);grid-template-columns:1fr 1.2fr;gap:80px;padding-block:70px;scroll-margin-top:25px;display:grid}.service-detail:last-child{border:0}.service-detail h2{font-size:39px}.service-detail p{color:var(--muted);font-size:16px}.service-detail ul{gap:12px;margin-block:28px;padding:0;list-style:none;display:grid}.service-detail li{align-items:center;gap:12px;font-size:15px;display:flex}.process-section{background:var(--citron)}.process-grid{grid-template-columns:repeat(4,1fr);gap:36px;margin:60px 0 0;padding:0;list-style:none;display:grid}.process-grid li{border-top:1px solid #aeb879;padding-top:20px}.process-grid li>span{color:#53602a;font-size:16px}.process-grid h3{margin-top:32px;font-size:22px}.process-grid p{color:#515a35;margin-top:16px;font-size:14px}.faq-section{grid-template-columns:1fr 1.2fr;gap:80px;display:grid}.faq-list details{border-bottom:1px solid var(--line);padding-block:22px}.faq-list details:first-child{padding-top:0}.faq-list summary{cursor:pointer;justify-content:space-between;align-items:center;gap:20px;font-size:17px;font-weight:500;list-style:none;display:flex}.faq-list summary::-webkit-details-marker{display:none}.faq-list details p{color:var(--muted);padding-top:20px;padding-right:30px;font-size:15px}.faq-list details[open] summary svg{transform:rotate(45deg)}.about-hero{grid-template-columns:1.2fr .8fr;align-items:center;gap:100px;padding-block:70px 85px;display:grid}.about-hero .lead{color:var(--ink);margin-top:30px;font-size:21px}.about-hero p{color:var(--muted);max-width:530px;font-size:17px}.about-hero .button{margin-top:30px}.about-hero figure>img{aspect-ratio:4/5;object-fit:cover;width:100%}.about-hero figcaption{justify-content:space-between;align-items:center;padding-top:17px;font-size:13px;display:flex}.about-story{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:100px;display:grid}.about-story p{color:var(--muted);font-size:17px}.education-section{background:#eceee5}.education-layout{grid-template-columns:1fr 1fr;gap:100px;display:grid}.education-row{border-bottom:1px solid #bdc3b3;align-items:start;gap:35px;padding-block:25px;display:flex}.education-row:first-child{padding-top:0}.education-row>span{color:#5b6052;font-size:14px}.education-row p{color:#5b6052;margin-top:8px;font-size:14px}.education-row h3{font-size:23px}.contact-layout{grid-template-columns:1fr 1fr;gap:100px;padding-top:40px;display:grid}.contact-details{padding-top:30px}.contact-details h2{margin-bottom:35px;font-size:31px}.contact-email{letter-spacing:-.02em;word-break:break-word;align-items:center;gap:15px;font-size:clamp(16px,1.6vw,23px);display:flex}.contact-email:hover,.contact-phone:hover{color:var(--blue)}.contact-phone{margin-top:15px;font-size:19px;display:block}.copy-email{margin-top:30px;font-size:13px}.copy-status{color:var(--blue);min-height:24px;margin-top:10px;font-size:13px}.contact-form{background:var(--blue-soft);padding:40px}.contact-form h2{margin-bottom:32px;font-size:25px}.field{margin-bottom:24px}.field label{margin-bottom:10px;font-size:13px;font-weight:500;display:block}.field label span{color:#5b6052;font-weight:400}.field input,.field textarea,.field select{width:100%;color:var(--ink);caret-color:var(--blue);background:0 0;border:0;border-bottom:1px solid #929b83;border-radius:0;padding:12px 0;font-size:15px;display:block}.field select{padding:12px 25px 12px 0}.field input::placeholder,.field textarea::placeholder{color:#62695a;opacity:1}.field textarea{resize:vertical;min-height:100px}.field input:focus,.field textarea:focus,.field select:focus{outline-offset:5px}.form-help{color:#5b6052;margin-bottom:22px;font-size:12px;line-height:1.65}.form-status{color:#334f9c;margin-top:18px;font-size:13px}.contact-form .button{gap:16px;font-size:14px}.not-found{padding-block:100px}.not-found>p{margin-block:25px;font-size:18px}.not-found>.button{margin-top:15px}.print-selection{border-top:1px solid var(--line)}.print-grid{grid-template-columns:repeat(3,1fr);gap:30px;margin-top:40px;display:grid}.print-grid img{aspect-ratio:1.2;object-fit:contain;background:#e8e9e0;width:100%;padding:15px}.print-grid figcaption{margin-top:15px;font-size:15px}.print-grid figcaption span{color:var(--muted);margin-top:5px;font-size:12px;display:block}@media (width<=1100px){.about-hero,.project-body,.service-detail,.faq-section,.education-layout,.about-story,.contact-layout{gap:55px}.contact-form{padding:30px}.contact-email{font-size:17px}.process-grid{gap:24px}.process-grid h3{font-size:19px}.page-intro{padding-top:45px}}@media (width<=760px){.page-intro{padding-block:35px 30px}.page-intro h1{font-size:clamp(2.25rem,10.3vw,4.5rem)}.page-intro>p{margin-top:25px;font-size:16px}.portfolio-section{padding-top:12px}.project-heading{padding-block:20px 30px}.back-link{margin-bottom:28px}.project-heading h1{overflow-wrap:anywhere;font-size:clamp(2.7rem,10vw,4rem)}.project-heading-bottom{margin-top:20px;display:block}.project-heading-bottom p{margin-bottom:12px;font-size:17px}.project-heading-bottom span{text-align:left;font-size:12px}.project-cover{padding:16px}.project-cover img{max-height:480px}.project-body{grid-template-columns:1fr;gap:38px}.project-body aside{padding:22px}.project-body aside h2{font-size:20px}.scope-list{grid-template-columns:1fr 1fr;column-gap:20px;margin-block:15px;display:grid}.scope-list li{font-size:12px}.prose{font-size:16px}.prose h2{font-size:27px}.project-gallery{grid-template-columns:1fr;gap:26px}.gallery-wide{grid-column:auto}.gallery-image,.gallery-wide .gallery-image{min-height:0;padding:14px}.project-gallery figcaption{font-size:12px}.next-project{padding-block:55px 60px}.next-project>a{font-size:30px}.service-jump{gap:16px;padding-bottom:30px}.service-jump>a{gap:8px;font-size:12px}.service-detail{grid-template-columns:1fr;gap:25px;padding-block:45px}.service-detail h2{font-size:32px}.service-detail p{font-size:15px}.service-detail li{align-items:flex-start;font-size:14px}.service-detail .text-link{font-size:13px}.process-grid{grid-template-columns:1fr 1fr;gap:35px 22px;margin-top:35px}.process-grid h3{margin-top:18px;font-size:19px}.process-grid p{font-size:13px}.faq-section{grid-template-columns:1fr;gap:35px}.faq-list summary{font-size:16px}.about-hero{grid-template-columns:1fr;gap:40px;padding-block:30px 60px}.about-hero h1{font-size:clamp(3.4rem,12vw,5rem)}.about-hero .lead{font-size:19px}.about-hero p{font-size:16px}.about-hero figure{max-width:390px}.about-story,.education-layout{grid-template-columns:1fr;gap:35px}.about-story h2,.education-layout h2{font-size:31px}.about-story p{font-size:16px}.education-row{gap:25px;padding-block:20px}.education-row h3{font-size:21px}.education-row p{font-size:13px}.contact-layout{grid-template-columns:1fr;gap:35px;padding-top:10px}.contact-details{padding-top:0}.contact-details h2{margin-bottom:25px;font-size:26px}.contact-email{gap:10px;font-size:19px}.contact-phone{font-size:17px}.copy-status{min-height:0}.copy-email{margin-top:20px}.contact-form{padding:25px 20px}.contact-form h2{font-size:23px}.contact-form .button{gap:12px;width:100%;padding-inline:16px;font-size:13px}.not-found{padding-block:50px 65px}.not-found h1{font-size:45px}.print-grid{grid-template-columns:1fr;gap:28px}.print-grid img{max-height:330px}.print-grid figcaption{font-size:16px}}.print-description{color:var(--muted);margin-top:24px;font-size:16px}.gallery-image{height:clamp(300px,42vw,660px)}.gallery-image img{object-fit:contain;width:100%;height:100%}.project-cover:not(.project-cover-portrait){height:clamp(300px,50vw,720px)}.project-cover:not(.project-cover-portrait) img{height:100%}@media (width<=760px){.gallery-image,.gallery-wide .gallery-image{height:340px}}.gallery-viewer[data-astro-cid-ctzvhhbu]{border:1px solid var(--line);width:min(1440px,100vw - 48px);max-width:none;height:calc(100dvh - 48px);max-height:none;color:var(--ink);background:var(--paper);margin:auto;padding:0;overflow:hidden}.gallery-viewer[data-astro-cid-ctzvhhbu][open]{flex-direction:column;display:flex}.gallery-viewer[data-astro-cid-ctzvhhbu]::backdrop{background:#111524d1}.gallery-toolbar[data-astro-cid-ctzvhhbu]{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:10px 20px;display:flex}.gallery-count[data-astro-cid-ctzvhhbu]{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14px}.gallery-actions[data-astro-cid-ctzvhhbu]{align-items:center;gap:12px;display:flex}.gallery-actions[data-astro-cid-ctzvhhbu] form[data-astro-cid-ctzvhhbu]{margin:0}.gallery-control[data-astro-cid-ctzvhhbu]{border:1px solid var(--line);min-width:44px;min-height:44px;color:var(--ink);background:0 0;border-radius:2px;justify-content:center;align-items:center;gap:10px;padding:10px 12px;font-size:13px;line-height:1.3;display:inline-flex}.gallery-control[data-astro-cid-ctzvhhbu]:hover:not(:disabled){color:var(--blue);border-color:var(--blue)}.gallery-control[data-astro-cid-ctzvhhbu]:focus-visible,.gallery-original[data-astro-cid-ctzvhhbu]:focus-visible{outline-offset:3px}.gallery-zoom[data-astro-cid-ctzvhhbu]{color:var(--blue)}.gallery-stage[data-astro-cid-ctzvhhbu]{overscroll-behavior:contain;scrollbar-color:var(--blue) var(--paper);touch-action:pan-x pan-y pinch-zoom;flex:1;min-height:0;position:relative;overflow:auto}.gallery-stage[data-astro-cid-ctzvhhbu]:focus-visible{outline-offset:-4px}.gallery-canvas[data-astro-cid-ctzvhhbu]{justify-content:center;align-items:center;width:100%;height:100%;padding:24px;display:flex}.gallery-full-image[data-astro-cid-ctzvhhbu]{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:100%}.gallery-full-image[data-astro-cid-ctzvhhbu][hidden],.gallery-loading[data-astro-cid-ctzvhhbu][hidden],.gallery-error[data-astro-cid-ctzvhhbu][hidden]{display:none}.is-zoomed[data-astro-cid-ctzvhhbu] .gallery-canvas[data-astro-cid-ctzvhhbu]{width:max-content;min-width:100%;height:max-content;min-height:100%}.is-zoomed[data-astro-cid-ctzvhhbu] .gallery-full-image[data-astro-cid-ctzvhhbu]{flex:none;max-width:none;max-height:none}.gallery-loading[data-astro-cid-ctzvhhbu],.gallery-error[data-astro-cid-ctzvhhbu]{text-align:center;color:var(--muted);margin:0 auto;font-size:14px;position:absolute;inset:24px 20px auto}.gallery-footer[data-astro-cid-ctzvhhbu]{border-top:1px solid var(--line);flex-shrink:0;grid-template-columns:44px minmax(0,1fr) 44px;align-items:start;gap:20px;padding:14px 20px;display:grid}.gallery-previous[data-astro-cid-ctzvhhbu] svg{transform:rotate(180deg)}.gallery-description[data-astro-cid-ctzvhhbu]{text-align:center;min-width:0}.gallery-description[data-astro-cid-ctzvhhbu] p[data-astro-cid-ctzvhhbu]{margin-inline:auto;font-size:14px;line-height:1.45}.gallery-original[data-astro-cid-ctzvhhbu]{min-height:44px;color:var(--blue);align-items:center;font-size:12px;text-decoration:underline;display:inline-flex}@media (width<=760px){.gallery-viewer[data-astro-cid-ctzvhhbu]{border:0;width:100vw;height:100dvh}.gallery-toolbar[data-astro-cid-ctzvhhbu]{padding:max(8px, env(safe-area-inset-top)) 12px 8px;gap:10px}.gallery-actions[data-astro-cid-ctzvhhbu]{gap:8px}.gallery-close[data-astro-cid-ctzvhhbu] span[data-astro-cid-ctzvhhbu]{display:none}.gallery-control[data-astro-cid-ctzvhhbu]{font-size:12px}.gallery-canvas[data-astro-cid-ctzvhhbu]{padding:12px}.gallery-footer[data-astro-cid-ctzvhhbu]{padding:12px 12px max(8px, env(safe-area-inset-bottom));gap:10px}.gallery-description[data-astro-cid-ctzvhhbu] p[data-astro-cid-ctzvhhbu]{font-size:12px}.gallery-original[data-astro-cid-ctzvhhbu]{font-size:11px}}@media (prefers-reduced-motion:reduce){.gallery-stage[data-astro-cid-ctzvhhbu]{scroll-behavior:auto}}
