@charset "UTF-8";
@font-face{font-family:Caveat;font-style:normal;font-weight:400;font-display:swap;src:url('assets/caveat-400.ttf') format('truetype')}
:root{--paper:#e7edf2;--ink:#26313b;--muted:#5f6c77;--line:#cdd6de;--white:#f8fafb;--sans:'Segoe UI',Arial,sans-serif;--hand:Caveat,cursive}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:28px}
body{margin:0;background:radial-gradient(ellipse 90% 700px at 50% 0,#fbfdfe 0,#e7edf2 75%);background-color:var(--paper);color:var(--ink);font:400 1rem/1.75 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
button{font:inherit}
a,button,summary{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid #476681;outline-offset:5px}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3,p,strong{overflow-wrap:break-word}
h2{font-size:clamp(2.2rem,3.7vw,3.6rem);font-weight:400;line-height:1.15;letter-spacing:-.055em;text-wrap:balance}
h3{font-size:1.15rem;font-weight:500;line-height:1.4;letter-spacing:-.025em}
p+p{margin-top:1rem}
section[id]{scroll-margin-top:28px}
.skip-link{position:fixed;top:-100px;left:20px;z-index:100;padding:12px;background:var(--white)}
.skip-link:focus{top:15px}
.eyebrow{font-size:.69rem;line-height:1.6;font-weight:500;letter-spacing:.19em;text-transform:uppercase;color:var(--muted)}
.site-header{position:relative;z-index:10;display:flex;flex-direction:column;align-items:center;gap:22px;padding:30px 24px 0}
.brand{position:relative;display:block;width:216px;max-width:100%;aspect-ratio:1280/304;overflow:hidden;flex-shrink:0}
.brand img{position:absolute;top:0;left:0;width:100%;height:auto;filter:grayscale(1) brightness(.52)}
.site-header nav{display:flex;align-items:center;justify-content:center;gap:6px;padding:5px;border-radius:99px;border:1px solid #ffffffa8;background:#ffffff52;box-shadow:inset 0 1px 1px #fff,0 3px 12px #4b647207;font-size:.8rem}
.site-header nav a{padding:7px 19px;white-space:nowrap;border-radius:99px;transition:background .2s,color .2s}
.site-header nav a:hover{background:#fff;color:#111b23}
.site-header nav a:last-child{background:#dce4eb}
.site-header nav a:last-child span{padding-left:5px}
.menu-toggle{display:none}
.hero{padding:32px 0 60px}
.hero-copy{padding:0 24px;width:100%;max-width:1200px;margin:0 auto;text-align:center}
.hero h1{font-family:var(--hand);font-size:clamp(2.6rem,4.5vw,3.5rem);line-height:1.17;font-weight:400;letter-spacing:-.02em;margin:12px auto 15px;max-width:100%;text-wrap:balance}
.hero-description{max-width:640px;margin:0 auto;font-size:.96rem;line-height:1.8;color:var(--muted)}
.hero-description br{display:none}
.hero-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:22px 30px;margin-top:23px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;max-width:100%;padding:12px 23px;border:1px solid #26313b;border-radius:99px;background:#26313b;color:#f5f8fa;font-size:.8125rem;font-weight:400;box-shadow:0 5px 12px #27394b15;transition:background .2s,transform .2s}
.button:hover{background:#405262;transform:translateY(-2px)}
.button span{font-size:1.1rem;line-height:1}
.text-link{display:inline-flex;align-items:center;gap:15px;padding:5px 0;border-bottom:1px solid #a3b0bc;font-size:.8125rem;max-width:100%;transition:color .2s}
.text-link:hover{color:#102b41;border-color:currentColor}
.hero-stage{position:relative;width:calc(100% - 104px);max-width:1152px;margin:35px auto 0;padding-right:116px}
.hero-visual{height:280px;border-radius:36px;overflow:hidden;background:#716f64;box-shadow:0 2px 1px #ffffffb3,0 17px 45px -24px #354a5e55}
.hero-visual img{width:100%;height:100%;object-fit:cover;object-position:50% 57%}
.social-capsule{position:absolute;right:0;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:12px;padding:17px 12px;border-radius:999px;border:1px solid #aab8c680;background:linear-gradient(100deg,#fbfdff 0,#e3eaf0 32%,#d7e0e9 78%,#bfcbd7 100%);box-shadow:inset 2px 1px 2px #fff,inset -2px -1px 3px #a2b2c263,5px 9px 15px #677e972e,0 1px 2px #637b9159}
.social-capsule a{position:relative;display:grid;place-items:center;flex:none;width:54px;height:54px;border-radius:50%;color:#3d4a58;background:linear-gradient(145deg,#f7fafd,#ced8e2);border:1px solid #b5c2cf;box-shadow:inset 0 1px 2px #fff,0 2px 3px #667c922b;transition:background .2s,color .2s,transform .2s}
.social-capsule a:hover,.social-capsule a:focus-visible{background:#354453;color:#f7f9fb;transform:translateY(-1px)}
.social-capsule svg{width:22px;height:22px;fill:currentColor}
.social-capsule a:nth-child(2) svg{width:19px;height:21px}
.social-tooltip{position:absolute;right:calc(100% + 19px);top:50%;transform:translate(4px,-50%);padding:5px 11px;border-radius:9px;background:#26313b;color:#f5f8fa;box-shadow:0 3px 15px #23354925;font-size:.75rem;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s}
.social-capsule a:hover .social-tooltip,.social-capsule a:focus-visible .social-tooltip{opacity:1;transform:translate(0,-50%)}
.section-pad{padding:94px max(8%,calc((100% - 1152px)/2))}
.section-heading{margin-bottom:38px}
.section-heading .eyebrow{margin-bottom:17px}
.services{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.6fr);gap:7%;border-top:1px solid #c9d4de99}
.services .section-heading{margin-bottom:0}
.services h2{max-width:8em}
.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 34px}
.service{min-width:0;border-top:1px solid #b8c6d1;padding:22px 0 28px}
.service h3{font-size:1.06rem;margin-bottom:8px}
.service p{font-size:.875rem;color:var(--muted);line-height:1.7}
.work{background:#f6f8fa;border-radius:48px 48px 0 0}
.work-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px}
.work-heading>p{font-size:.875rem;color:var(--muted);padding-bottom:4px}
.project-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.project-pair figure{position:relative;overflow:hidden;border-radius:24px;background:#d6dfe5;aspect-ratio:1.35}
.project-pair img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.project-pair figure:hover img{transform:scale(1.02)}
.project-pair figcaption{position:absolute;bottom:16px;left:16px;background:#f5f8f0eb;color:#26313b;border:1px solid #ffffff8c;border-radius:99px;padding:4px 13px;font-size:.69rem;letter-spacing:.025em}
.project-label{display:flex;justify-content:space-between;align-items:baseline;padding:17px 4px 0;gap:16px}
.project-label h3{font-size:1.15rem}
.project-label>span{font-size:.75rem;color:var(--muted)}
.secondary-projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;margin-top:42px}
.secondary-projects .project-pair{gap:12px}
.secondary-projects .project-pair figure{aspect-ratio:.95;border-radius:18px}
.secondary-projects .project-label{display:block}
.secondary-projects .project-label h3{font-size:1.06rem}
.secondary-projects .project-label>span{display:block;margin-top:3px}
.more-work{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:42px}
.more-work summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 4px;font-size:.875rem}
.more-work summary::-webkit-details-marker{display:none}
.details-sign{font-size:1.4rem;line-height:1;transition:transform .2s}
.more-work[open] .details-sign{transform:rotate(45deg)}
.extra-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding-bottom:30px}
.extra-gallery figure{align-self:start;min-width:0}
.extra-gallery img{width:100%;aspect-ratio:1.2;object-fit:cover;border-radius:18px}
.extra-gallery figcaption{font-size:.75rem;color:var(--muted);padding:7px 0}
.about{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:7%;align-items:center;background:#f6f8fa;padding-top:35px}
.portrait,.about-copy{min-width:0}
.portrait img{width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;border-radius:26px}
.portrait figcaption{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:.68rem;padding:13px 3px;color:var(--muted)}
.about-copy h2{margin:15px 0 23px}
.about-intro{font-size:1.05rem;line-height:1.6;margin-bottom:17px}
.about-copy>p:not(.eyebrow):not(.about-intro){font-size:.9375rem;color:var(--muted)}
.about-copy .text-link{margin-top:22px}
.contact{background:linear-gradient(120deg,#d4e0ea,#eef3f7 63%,#dae4ec);border-top:1px solid #d5dfe7;border-bottom:1px solid #cdd8e2;box-shadow:inset 0 1px #fff;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12%;border-radius:40px 40px 0 0;margin-top:-1px}
.contact h2{margin:18px 0 26px;max-width:8em}
.contact-heading>p:last-child{color:var(--muted);font-size:.875rem}
.contact-links{min-width:0}
.contact-links>a{position:relative;display:flex;flex-direction:column;gap:6px;padding:21px 30px 21px 0;border-bottom:1px solid #acbdcc}
.contact-links>a:first-child{padding-top:0}
.contact-links>a>span:first-child{font-size:.75rem;color:var(--muted)}
.contact-links strong{font-weight:400;font-size:clamp(1.3rem,2.1vw,1.8rem);line-height:1.3;letter-spacing:-.025em;overflow-wrap:anywhere}
.contact-arrow{position:absolute;right:0;bottom:24px;font-size:1.25rem;color:#536e82}
.contact-links>a:hover strong{text-decoration:underline;text-underline-offset:5px}
.landline{padding-top:23px;font-size:.8125rem;color:var(--muted)}
.landline a{margin-left:12px}
.site-footer{padding:35px 8%;display:flex;align-items:center;justify-content:space-between;gap:40px}
.footer-original-logo{display:block;flex:0 1 225px;max-width:100%;min-width:0}
.footer-original-logo img{width:100%;height:auto;filter:grayscale(1) brightness(.6)}
.footer-links{display:flex;flex-wrap:wrap;gap:20px;font-size:.75rem;color:var(--muted);min-width:0}
.footer-links a:hover{text-decoration:underline}
@media(min-width:1600px){.hero{padding-top:70px}.hero-stage{margin-top:55px}.hero-visual{height:355px}}
@media(max-width:1000px){
 .section-pad{padding:74px 6%}.hero-stage{width:88%;padding-right:100px}.hero-visual{height:285px}.hero{padding-top:44px;padding-bottom:55px}
 .services{grid-template-columns:1fr;gap:36px}.services h2{max-width:none}.service-grid{gap:0 38px}
 .about{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:5%;padding-top:20px}.about h2{font-size:2.5rem}
 .project-label{display:block}.project-label>span{display:block;margin-top:4px}.work-heading{flex-wrap:wrap}.contact{gap:8%}
 .footer-links{justify-content:flex-end;max-width:260px}
}
@media(max-width:700px){
 .site-header{padding:25px 20px 0;gap:19px}.brand{width:190px}
 .menu-toggle{display:flex;align-items:center;gap:10px;cursor:pointer;background:#ffffff70;border:1px solid #c5d1dc;border-radius:99px;padding:7px 16px;font-size:.8125rem;color:var(--ink)}
 .menu-toggle svg{stroke:currentColor;fill:none;stroke-width:1.25}
 .site-header nav{display:none;width:min(100%,300px);padding:8px;gap:3px;flex-direction:column;border-radius:22px;background:#f7fafd}
 .site-header nav.is-open{display:flex}.site-header nav a{padding:10px 16px;min-width:160px;text-align:center}
 .hero{padding:38px 0 44px}.hero-copy{padding:0 22px}.hero h1{font-size:clamp(2.4rem,8.3vw,3.2rem);line-height:1.05;letter-spacing:-.02em;margin:16px auto 18px;max-width:12em}.hero-description{font-size:.875rem;max-width:310px;line-height:1.75}
 .hero-actions{gap:18px 23px;margin-top:23px}.button{padding:12px 19px;font-size:.75rem}.hero .text-link{font-size:.75rem}
 .hero-stage{width:calc(100% - 40px);padding-right:76px;margin-top:33px}.hero-visual{height:240px;border-radius:26px}.hero-visual img{object-position:54% 50%}
 .social-capsule{gap:9px;padding:12px 8px}.social-capsule a{width:44px;height:44px}.social-capsule svg{width:20px;height:20px}.social-capsule a:nth-child(2) svg{width:17px;height:19px}.social-tooltip{right:calc(100% + 14px)}
 .section-pad{padding:58px 24px}.section-heading{margin-bottom:28px}h2{font-size:2.5rem}
 .services{gap:30px}.service-grid{gap:0 24px}.service{padding:18px 0 24px}.service h3{font-size:1.025rem;hyphens:auto}.service p{font-size:.8125rem}
 .work{border-radius:30px 30px 0 0}.work-heading{display:block}.work-heading>p{margin-top:14px}.project-pair{gap:9px}.project-pair figure{aspect-ratio:.87;border-radius:17px}
 .project-pair figcaption{font-size:.65rem;padding:3px 10px;left:8px;bottom:8px}.project-label{padding-top:13px}.project-label h3{font-size:1.05rem}
 .secondary-projects{grid-template-columns:1fr;gap:28px;margin-top:30px}.secondary-projects .project-pair{gap:9px}.secondary-projects .project-pair figure{aspect-ratio:1.05}
 .more-work{margin-top:28px}.extra-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.extra-gallery img{aspect-ratio:.9}.extra-gallery figcaption{font-size:.7rem}
 .about{grid-template-columns:1fr;gap:28px;padding-top:15px}.portrait img{border-radius:20px}.portrait figcaption{gap:4px 14px}.about-copy h2{font-size:2.5rem;margin:14px 0 20px}
 .contact{grid-template-columns:1fr;gap:34px;border-radius:30px 30px 0 0}.contact h2{max-width:none;margin-bottom:22px}.contact-links strong{font-size:1.5rem}
 .site-footer{padding:30px 24px;display:block}.footer-original-logo{width:min(100%,225px);margin:0 auto}.footer-links{justify-content:center;max-width:none;margin-top:24px;gap:15px 22px}
}
@media(max-width:360px){.service-grid{grid-template-columns:1fr}.hero-actions{flex-direction:column;gap:13px}.hero-stage{width:calc(100% - 32px);padding-right:70px}.hero-visual{height:225px}.section-pad{padding-right:21px;padding-left:21px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
/* User project photographs */
.portfolio-intro{max-width:620px;margin-bottom:38px}
.portfolio-intro .eyebrow{margin-bottom:16px}
.portfolio-intro>p:last-child{margin-top:18px;color:var(--muted);font-size:1rem}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:42px 26px;align-items:start}
.portfolio-card{min-width:0}
.project-cover{display:block;position:relative;overflow:hidden;border-radius:24px;background:#e3e9ee;aspect-ratio:3/4}
.project-cover img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.project-cover:hover img{transform:scale(1.015)}
.photo-open{position:absolute;right:12px;bottom:12px;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#f5f8faed;color:#26313b;font-size:1.2rem;box-shadow:0 2px 8px #192a3c20}
.portfolio-card h3{font-size:1.2rem;font-weight:500;margin:18px 0 7px}
.portfolio-card>p{font-size:1rem;line-height:1.6;color:var(--muted);margin-bottom:17px}
.project-details,.project-photo-link{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.project-details summary,.project-photo-link,.earlier-work>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:48px;font-size:.875rem;padding:12px 0}
.project-photo-link{min-height:50px}
.project-photo-link:hover{color:var(--ink)}
.project-details summary::-webkit-details-marker,.earlier-work>summary::-webkit-details-marker{display:none}
.project-details[open]>summary .details-sign,.earlier-work[open]>summary .details-sign{transform:rotate(45deg)}
.project-views{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px;padding:3px 0 20px}
.project-views figure{min-width:0}
.project-views a{display:flex;align-items:center;justify-content:center;background:#e7edf2;border-radius:12px;overflow:hidden;aspect-ratio:3/4}
.project-views img{width:100%;height:100%;object-fit:contain}
.project-views figcaption{font-size:.8125rem;line-height:1.5;color:var(--muted);padding:8px 2px 0}
.earlier-work{margin-top:58px;border-top:1px solid #bdcbd6;border-bottom:1px solid #bdcbd6}
.earlier-work>summary{padding:22px 0;font-size:1rem}
.earlier-projects{padding:12px 0 30px}
.earlier-projects>h3{font-size:1.5rem;font-weight:400;margin-bottom:24px}
@media(max-width:1000px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 24px}}
@media(max-width:520px){.portfolio-grid{grid-template-columns:1fr;gap:36px}.project-cover{border-radius:22px}.portfolio-intro{margin-bottom:30px}.portfolio-card h3{font-size:1.3rem}.project-views{gap:20px 14px}.project-views figcaption{font-size:.875rem}.earlier-work{margin-top:40px}}
/* Shared tracks align titles, descriptions and photo actions within each row. */
@supports(grid-template-rows:subgrid){
 @media(min-width:521px){
  .portfolio-card{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:subgrid;grid-row:span 4;row-gap:0;align-self:stretch}
  .portfolio-card>.project-details,.portfolio-card>.project-photo-link{align-self:start}
 }
}
