*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:#54595f;font-family:Roboto,Arial,sans-serif;font-size:16px;line-height:1.6}a{color:#222222;text-decoration:none}a:hover{color:#666666}button,input,textarea{font:inherit}button,a,input,textarea,summary{-webkit-tap-highlight-color:transparent}button,a,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid #333333;outline-offset:5px}.wrap{width:min(1150px,calc(100% - 40px));margin-inline:auto}.site-header{display:flex;align-items:center;justify-content:space-between;gap:25px;padding-block:19px 23px}.brand{font-family:system-ui,sans-serif;font-size:38px;font-weight:600;line-height:1.2;letter-spacing:-.8px;color:#222222}.site-header nav{display:flex;gap:31px;align-items:center;padding-right:13px}.site-header nav a{font-family:system-ui,sans-serif;font-size:23px;font-weight:400;color:#222222}.site-header nav a[aria-current=page]{text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:1px}.menu-toggle{display:none}.portfolio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px}.project-card{margin:0;min-width:0}.project-card>a{position:relative;display:block;aspect-ratio:1/.66;overflow:hidden;background:#f2f2f2}.project-card img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.project-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:25px;color:white;background:#02020296;opacity:0;transition:opacity .25s ease}.project-overlay h2{font-size:24px;font-weight:600;line-height:1.35;margin:0 0 12px;text-wrap:balance;color:inherit}.project-overlay span{font-size:13px;letter-spacing:.03em}.project-card a:hover .project-overlay,.project-card a:focus-visible .project-overlay{opacity:1}.project-card a:hover img{transform:scale(1.025)}h1{font-family:system-ui,sans-serif;font-size:38px;line-height:1.2;font-weight:600;color:#30343a;margin:7px 0 37px;letter-spacing:-.7px;text-wrap:balance}footer{padding-top:47px;padding-bottom:16px;text-align:right;color:#54595f;font-size:14px}footer p{margin:0}.project-gallery{display:grid;gap:25px}.gallery-item{position:relative;display:block;background:#f3f3f3;cursor:zoom-in}.gallery-item img{display:block;width:100%;height:auto}.zoom-label{position:absolute;right:15px;bottom:15px;padding:5px 13px;background:rgba(255,255,255,.92);color:#34383c;font-size:13px;opacity:0;transition:opacity .2s}.gallery-item:hover .zoom-label,.gallery-item:focus-visible .zoom-label{opacity:1}.project-details{display:grid;grid-template-columns:1fr 1.6fr;gap:48px;margin-top:37px;color:#54595f}.project-details dl{margin:0;font-weight:500}.project-details dl>div{display:flex;flex-wrap:wrap;gap:0 6px;margin-bottom:12px}.project-details dt::after{content:':'}.project-details dd{margin:0}.project-description{font-family:'Roboto Slab',Georgia,serif;line-height:1.8}.project-description p{margin:0 0 20px}.project-navigation{display:flex;justify-content:space-between;gap:25px;border-top:1px solid #e9e9e9;margin-top:37px;padding-top:25px}.project-navigation a:last-child{text-align:right}.services{max-width:950px}.prose p{margin:0 0 17px}.prose h2{font-size:24px;font-weight:500;color:#54595f;margin:30px 0 15px}.prose h2:first-child{margin-top:0}.prose ul,.prose ol{padding-left:25px;margin:12px 0 23px}.prose li{margin-bottom:7px}.services strong{font-weight:600}.contact-cta{display:inline-block;border-bottom:1px solid currentColor;padding-block:8px;margin-top:16px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:95px;align-items:start}.contact-bio{color:#70777c}.contact-bio img{float:left;width:194px;height:194px;object-fit:cover;border-radius:50%;margin:0 20px 24px 0}.contact-bio p:has(strong){clear:both;margin-top:23px}.contact-bio p:first-of-type{margin-top:0}.contact-bio p:has(img){clear:none;margin:0}.contact-bio p:has(img)+p{clear:none;padding-top:3px}.contact-bio p{overflow-wrap:anywhere}.contact-bio p:has(strong):not(:first-child){font-weight:600}.contact-bio p:has(img)~p:nth-child(-n+5){clear:none}.contact-bio strong{font-weight:600}#contact-form{max-width:460px;padding-top:0}#contact-form label{display:block;color:#353a3e;margin-bottom:5px}#contact-form label span{color:#70777c}input,textarea{width:100%;border:1px solid #9a9a9a;border-radius:2px;background:#fff;color:#353a3e;padding:10px 12px;margin:0 0 17px;line-height:1.4}input{min-height:44px}textarea{resize:vertical;min-height:220px}.submit-button{display:block;width:100%;padding:13px 20px;border:1px solid #333333;background:#fff;color:#333333;cursor:pointer;font-weight:500;transition:background .2s,color .2s}.submit-button:hover{background:#333333;color:#fff}.form-help{font-size:13px;line-height:1.5;margin:12px 0 0;color:#737373}#form-result{border-top:1px solid #ddd;margin-top:28px;padding-top:20px}#form-result h2{font-size:22px;margin:0 0 12px}#form-result p{margin:0 0 15px}#form-result details{margin-top:18px}#form-result summary{cursor:pointer;font-size:14px}#draft-text{margin-top:14px;min-height:180px}#copy-draft{padding:7px 13px;background:white;border:1px solid #aaa;cursor:pointer}.visually-hidden,.skip-link:not(:focus){position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link:focus{position:fixed;top:10px;left:10px;z-index:1000;background:white;padding:10px}.lightbox{position:fixed;inset:0;width:100%;height:100dvh;max-width:none;max-height:none;border:0;margin:0;padding:16px 22px;background:#151515;color:#fff;overflow:hidden}.lightbox::backdrop{background:#151515}.lightbox[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}.lightbox-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px}.lightbox button{color:white;border:0;background:transparent;cursor:pointer;min-width:48px;min-height:48px;font-size:40px;line-height:1}.lightbox-count{margin:0;font-size:14px}.lightbox-stage{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:15px;min-height:0}.lightbox-stage img{display:block;max-width:100%;max-height:calc(100dvh - 150px);width:auto;height:auto;margin:auto;object-fit:contain}.lightbox-caption{text-align:center;font-size:14px;margin:15px 0 0}.lightbox button:hover{background:#ffffff18}.no-scroll{overflow:hidden}@media(hover:none){.project-overlay{opacity:1;inset:auto 0 0;padding:15px 12px;background:linear-gradient(transparent,#000b);min-height:90px;justify-content:flex-end}.project-overlay h2{font-size:20px;margin:0}.project-overlay span{display:none}}@media(max-width:900px){.brand{font-size:32px}.site-header nav a{font-size:19px}.contact-grid{gap:35px}.contact-bio img{width:130px;height:130px}.project-details{gap:28px;grid-template-columns:1fr 1.4fr}}@media(max-width:640px){.wrap{width:calc(100% - 32px)}.site-header{position:relative;flex-wrap:wrap;gap:0;padding-block:22px}.brand{font-size:30px;letter-spacing:-.5px}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;border:0;background:transparent;padding:10px;cursor:pointer}.menu-toggle span{display:block;height:2px;width:24px;background:#333333}.site-header nav{display:none;width:100%;gap:25px;justify-content:flex-start;padding:22px 0 0}.site-header nav.is-open{display:flex}.site-header nav a{font-size:18px;padding-block:5px}.portfolio-grid{grid-template-columns:1fr;gap:18px}.project-card>a{aspect-ratio:1/.66}.project-overlay h2{font-size:21px}h1{font-size:29px;margin:3px 0 25px}.project-gallery{gap:16px}.project-details,.contact-grid{grid-template-columns:1fr;gap:28px}.project-details{margin-top:28px}.project-navigation{font-size:14px;gap:15px}.project-navigation a{max-width:52%}.contact-grid{gap:42px}#contact-form{max-width:none}.contact-bio img{width:145px;height:145px}.lightbox{padding:10px}.lightbox-stage{grid-template-columns:32px minmax(0,1fr) 32px;gap:4px}.lightbox button{min-width:32px;font-size:32px}.lightbox-caption{font-size:12px}footer{padding-top:36px;font-size:12px}.services h2{font-size:22px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
