:root{--periwinkle:#6861f3;--pink:#f2c5fc;--lime:#def344;--blue:#2923ae;--salmon:#fc5863;--navy:#1f2a44;--muted:#5b6478;--white:#fbfbfb;--ground:#fffaf1;--font-display:"Rondey", "Figtree", system-ui, sans-serif;--font-body:"Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;--weight-display:400;--step--1:clamp(.83rem, .8rem + .15vw, .9rem);--step-0:clamp(1rem, .96rem + .2vw, 1.1rem);--step-1:clamp(1.2rem, 1.1rem + .5vw, 1.45rem);--step-2:clamp(1.5rem, 1.3rem + 1vw, 2.1rem);--step-3:clamp(2rem, 1.6rem + 2vw, 3.2rem);--space-2xs:.25rem;--space-xs:.5rem;--space-s:1rem;--space-m:1.5rem;--space-l:2.5rem;--space-xl:4rem;--space-2xl:6rem;--radius-s:.75rem;--radius-m:1.25rem;--radius-lg:2rem;--scallop:clamp(1.5rem, 4vw, 3.7rem);--shadow-soft:0 10px 30px -12px #1f2a4440;--container:72rem}@font-face{font-family:Rondey;src:url(/assets/Rondey-Regular-Bn4tT7vA.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Figtree;src:url(/assets/figtree-latin-CEHu_veL.woff2)format("woff2");font-weight:300 900;font-style:normal;font-display:swap}@font-face{font-family:Figtree;src:url(/assets/figtree-latin-italic-D-K1-OIr.woff2)format("woff2");font-weight:300 900;font-style:italic;font-display:swap}@view-transition{navigation:auto}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--ground);color:var(--navy);font-family:var(--font-body);font-size:var(--step-0);margin:0;line-height:1.6;overflow-x:clip}h1,h2,h3{font-family:var(--font-display);font-weight:var(--weight-display);margin:0;line-height:1.1}p{margin:0 0 1em}a{color:var(--blue);text-underline-offset:.2em}img{max-width:100%;height:auto;display:block}button{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:4px}#work,#about,#contact{scroll-margin-top:var(--space-l)}.container{width:min(100% - 2 * max(1rem, 4vw), var(--container));margin-inline:auto}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{left:var(--space-s);z-index:10;padding:var(--space-xs) var(--space-s);background:var(--navy);color:var(--white);border-radius:var(--radius-s);position:absolute;top:-4rem}.skip-link:focus{top:var(--space-s)}.site-footer{--band:var(--salmon);color:var(--white);padding-block:var(--space-l) var(--space-xl)}.footer-top,.footer-bottom{justify-content:space-between;align-items:center;gap:var(--space-s);flex-wrap:wrap;display:flex}.footer-top{align-items:end}.footer-title{font-size:clamp(2.5rem,1.5rem + 3vw,3.75rem);line-height:1}.footer-email{color:var(--white);word-break:break-word;font-size:clamp(1.25rem,1rem + 1vw,1.75rem);font-weight:500}.footer-rule{border:0;border-top:1px solid var(--white);margin:35px 0 20px}.footer-small{color:var(--white);margin:0;font-size:.9rem}.footer-links{gap:28px;margin:0;padding:0;list-style:none;display:flex}.footer-links a{place-items:center;min-width:44px;min-height:44px;display:grid}.site-footer :focus-visible{outline-color:var(--white)}.band{background:var(--band,var(--periwinkle));padding-block:var(--space-xl);position:relative}.band--top{margin-top:var(--scallop)}.band--bottom{margin-bottom:var(--scallop)}.site-footer.band--top{margin-top:calc(var(--space-2xl) + var(--scallop))}.band--top:before,.band--bottom:after{content:"";height:calc(var(--scallop) + 1px);background:radial-gradient(circle at 50% var(--y), var(--band,var(--periwinkle)) var(--scallop), transparent calc(var(--scallop) + 1px)) 0 0 / calc(2 * var(--scallop)) calc(var(--scallop) + 1px) repeat-x;position:absolute;left:0;right:0}.band--top:before{--y:100%;bottom:calc(100% - var(--scallop) / 10)}.band--bottom:after{--y:0;top:calc(100% - var(--scallop) / 10)}.hero{--band:var(--periwinkle);color:var(--white);text-align:center;padding-block:var(--space-2xl) var(--space-xl);overflow-x:clip}.hero-title{letter-spacing:.015em;text-transform:uppercase;text-wrap:balance;width:fit-content;margin-inline:auto;font-size:clamp(2rem,1rem + 4.5vw,4.375rem);line-height:1.2;position:relative}.hl{color:var(--pink)}.pill-cta{border-radius:999px;align-items:center;text-decoration:none;display:inline-flex}.pill-cta span{background:var(--lime);min-height:44px;color:var(--blue);border-radius:999px;align-items:center;padding:.6rem 1.75rem;font-size:1.125rem;font-weight:600;display:inline-flex}.hero .pill-cta{margin-top:var(--space-l)}.hero .pill-cta:focus-visible{outline-color:var(--white)}.pill-cta--back{margin-block:var(--space-l) var(--space-m)}.pill-cta--back img{rotate:180deg}.doodle{pointer-events:none;height:auto;position:absolute}.doodle--hero-left{width:.64em;top:-.3em;left:-.6em;rotate:106deg}.doodle--hero-right{width:1.36em;top:-1.16em;left:calc(100% + .56em);rotate:-85deg}.doodle--hero-flower{width:1.55em;top:2.33em;left:-2em;rotate:4deg}.home-body{position:relative}.doodle--about-burst{width:104px;top:-101px;left:calc(100% - 9px);rotate:46deg}@media (width<=79.99rem){.doodle--hero-left,.doodle--hero-right,.doodle--hero-flower{display:none}}@media (width<=84.99rem){.doodle--about-burst{display:none}}.facts{--rule:1px solid #1f2a442e;color:var(--navy);padding-block:var(--space-m);margin-block:calc(.9 * var(--scallop) + 1px + var(--space-xl)) var(--space-xl)}.facts-grid{text-align:center;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.facts-grid>div{padding:var(--space-s) var(--space-xs);flex-direction:column;display:flex}.facts-grid>div:nth-child(2n){border-left:var(--rule)}.facts-grid>div:nth-child(n+3){border-top:var(--rule)}@media (width>=50rem){.facts-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.facts-grid>div:nth-child(n){border:0}.facts-grid>div:nth-child(n+2){border-left:var(--rule)}}.facts-grid dd{font-family:var(--font-display);font-weight:var(--weight-display);order:-1;margin:0;font-size:2rem;line-height:.8}.facts-grid dt{max-width:15rem;margin:var(--space-s) auto 0;padding:0 1rem;font-weight:500;line-height:1.2}.section-head{justify-content:space-between;align-items:end;gap:var(--space-s);margin-bottom:var(--space-l);flex-wrap:wrap;display:flex}.section-title{font-size:1.5rem}.filters{flex-wrap:wrap;gap:12px;margin:0;padding:0;list-style:none;display:flex}.filters a{min-height:44px;color:var(--blue);background:var(--lime);border-radius:999px;align-items:center;padding:.4rem 1.2rem;font-weight:600;text-decoration:none;display:inline-flex;box-shadow:0 1px #1f2a440f}.filters a[aria-current=true]{background:var(--blue);color:var(--lime)}.project-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));gap:40px 20px;margin:0;padding:0;list-style:none;display:grid}.card{background:var(--white);border-radius:14px;height:100%;padding:16px 12px;position:relative;box-shadow:-4px 2px 3px #1f2a440f}.card-media{aspect-ratio:4/3;background:var(--pink);border-radius:13.6px;overflow:hidden}.card-media img{object-fit:cover;width:100%;height:100%}.card-body{padding:16px 0 0}.card-client{font-family:var(--font-body);font-size:1rem;font-weight:600;line-height:1.1}.card-client a{color:inherit;text-decoration:none}.card-client a:after{content:"";border-radius:inherit;position:absolute;inset:0}.card:focus-within{outline:3px solid var(--blue);outline-offset:3px}.card-client a:focus-visible{outline:none}.card-title{color:var(--muted);margin:8px 0 0;font-size:1rem;line-height:1.3}.about-panel{margin-block:var(--space-xl) var(--space-2xl);border-radius:32px;display:grid;overflow:hidden}.about-block{--panel:var(--pink);--seam:36px;z-index:1;background:var(--panel);color:var(--navy);flex-direction:column;justify-content:center;padding:clamp(1.75rem,4vw,3rem);display:flex;position:relative}.about-title{color:var(--blue);margin-bottom:var(--space-m);font-size:clamp(2.5rem,1.5rem + 3vw,3.75rem);line-height:1.2}.about-block .prose{max-width:28rem;font-size:1.1rem;line-height:1.4}.about-block .prose p:last-child{margin-bottom:0}.about-media{aspect-ratio:4/3}.about-media picture,.about-media img{object-fit:cover;object-position:50% 52%;width:100%;height:100%;display:block}.about-block:after{content:"";height:var(--seam);background:radial-gradient(circle at 50% 0, var(--panel) calc(var(--seam) - 1px), transparent var(--seam)) 0 0 / calc(2 * var(--seam)) var(--seam) repeat-x;position:absolute;top:100%;left:0;right:0}@media (width>=64rem){.about-panel{grid-template-columns:45fr 55fr;min-height:27rem}.about-media{aspect-ratio:auto;position:relative}.about-media picture{position:absolute;inset:0}.about-block:after{width:var(--seam);background:radial-gradient(circle at 0 50%, var(--panel) calc(var(--seam) - 1px), transparent var(--seam)) 0 0 / var(--seam) calc(2 * var(--seam)) repeat-y;height:auto;inset:0 auto 0 100%}}.project-title{margin-bottom:var(--space-m);font-size:clamp(1.75rem,1.2rem + 1.6vw,2.5rem)}.mosaic{margin-bottom:var(--space-xl);gap:32px;display:grid}.mosaic .zoom{border-radius:20px}@media (width>=48rem){.mosaic .zoom,.mosaic picture,.mosaic img{width:100%;height:100%;display:block}.mosaic img{object-fit:cover}.mosaic--3{grid-template-rows:265px 265px;grid-template-columns:709fr 411fr}.mosaic--3>:first-child{grid-row:span 2;padding:42px}.mosaic--3>:first-child img{object-fit:contain}.mosaic--2{grid-template-columns:1fr 1fr}.mosaic--2 .zoom{aspect-ratio:4/3}.mosaic--1 img{max-height:min(75vh,44rem)}}.project-body{gap:var(--space-l);margin-bottom:var(--space-xl);display:grid}@media (width>=55rem){.project-body{grid-template-columns:1fr 2fr}}.project-body .label{font-size:var(--step-2)}.project-body .prose{font-size:1.25rem;line-height:1.45}.prose{max-width:65ch;font-size:var(--step-1);line-height:1.55}.gallery{columns:2 22rem;column-gap:var(--space-m);margin:0;padding:0;list-style:none}.gallery li{break-inside:avoid;margin-bottom:var(--space-m)}.zoom{background:var(--white);border-radius:var(--radius-m);cursor:zoom-in;border:0;width:100%;padding:0;display:block;overflow:hidden}.zoom img{width:100%}.gallery figcaption,.before-after figcaption{font-size:var(--step--1);color:var(--muted);margin-top:var(--space-xs)}.before-after{margin:0 0 var(--space-xl)}.before-after-grid{gap:var(--space-m);display:grid}@media (width>=40rem){.before-after-grid{grid-template-columns:1fr 1fr}}.before-after .ba-label{font-family:var(--font-display);font-weight:var(--weight-display);text-transform:uppercase;font-size:var(--step-0);color:var(--navy);margin-top:var(--space-xs);display:inline-block}.lightbox{background:0 0;border:0;max-width:min(96vw,1600px);max-height:94vh;padding:0;overflow:visible}.lightbox::backdrop{background:#1f2a44d9}.lightbox img{border-radius:var(--radius-s);width:auto;max-height:86vh;margin-inline:auto}.lightbox p{color:var(--white);text-align:center;margin:var(--space-xs) 0 0}.lightbox-close{background:var(--white);width:2.6rem;height:2.6rem;color:var(--navy);cursor:pointer;box-shadow:var(--shadow-soft);border:0;border-radius:50%;font-size:1.5rem;line-height:1;position:absolute;top:-.9rem;right:-.9rem}.not-found{text-align:center;padding-block:var(--space-2xl)}.not-found .sparkle{width:3rem;margin:0 auto var(--space-m);color:var(--periwinkle)}.not-found h1{font-size:var(--step-3);margin-bottom:var(--space-s)}@media (prefers-reduced-motion:no-preference){::view-transition-old(root){animation-duration:.25s;animation-timing-function:ease}::view-transition-new(root){animation-duration:.25s;animation-timing-function:ease}::view-transition-group(*){animation-duration:.38s;animation-timing-function:cubic-bezier(.2,.8,.2,1)}@supports (animation-timeline:view()){.reveal{animation:linear both rise;animation-timeline:view();animation-range:entry entry 35%}}@keyframes rise{0%{opacity:0;translate:0 28px}}@keyframes pop{0%{opacity:0;translate:0 12px;scale:.96}}.card,.zoom{transition:translate .22s,box-shadow .22s}.card img,.zoom img{transition:scale .3s}.card:hover,.card:focus-within{box-shadow:var(--shadow-soft);translate:0 -4px}.card:hover img,.card:focus-within img,.zoom:hover img{scale:1.03}.sparkle{animation:3.2s ease-in-out infinite twinkle}@keyframes twinkle{50%{opacity:.75;rotate:12deg;scale:.82}}.lightbox[open]{animation:.26s cubic-bezier(.2,.8,.2,1) pop}.lightbox[open]::backdrop{animation:.26s fade}@keyframes fade{0%{opacity:0}}}
