@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.390ncx5urfkfu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.31988l_ccedte.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0r6juujl39pe6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
@font-face{font-family:PPNeueMontreal;src:url(/fonts/PPNeueMontreal-Regular.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:PPNeueMontreal;src:url(/fonts/PPNeueMontreal-Italic.otf)format("opentype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:PPNeueMontreal;src:url(/fonts/PPNeueMontreal-Semibold.otf)format("opentype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:PPNeueMontreal;src:url(/fonts/PPNeueMontreal-SemiboldItalic.otf)format("opentype");font-weight:600;font-style:italic;font-display:swap}@font-face{font-family:PPNeueMontreal;src:url(/fonts/PPNeueMontreal-Extrabold.otf)format("opentype");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:PPNeueMontreal;src:url(/fonts/PPNeueMontreal-ExtraboldItalic.otf)format("opentype");font-weight:800;font-style:italic;font-display:swap}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:focus{outline:none}a:focus{opacity:1}:root{--color-paper:#f5f5f0;--color-ink:#1f1f3b;--color-muted:#7b7988;--text-display:16cqi;--text-title:clamp(2.25rem, 7vw, 5rem);--text-heading:clamp(2.25rem, 5vw, 2.75rem);--text-subhead:clamp(1.2rem, 2.5vw, 1.6rem);--text-body:1rem;--text-caption:.8rem;--weight-regular:400;--weight-medium:600;--weight-bold:800;--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2rem;--space-5:3rem;--space-6:4rem;--space-7:6rem;--space-8:8rem;--gutter:var(--space-3)}@media (max-width:767px){:root{--gutter:var(--space-2)}}html{scroll-behavior:smooth}body{background-color:var(--color-paper);color:var(--color-ink);font-family:PPNeueMontreal,sans-serif}.t-display{font-size:var(--text-display);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:-.04em;line-height:.9}.t-title{font-size:var(--text-title);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:-.035em;line-height:.9}.t-heading{font-size:var(--text-heading);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:-.03em;line-height:1}.t-subhead{font-size:var(--text-subhead);font-weight:var(--weight-bold);text-transform:uppercase;line-height:1}.t-label{font-size:var(--text-body);font-weight:var(--weight-medium)}.t-body{font-size:var(--text-body);color:var(--color-muted);letter-spacing:.05em;line-height:1.8}.t-caption{font-size:var(--text-caption);color:var(--color-muted);letter-spacing:.04em;line-height:1.6}.nav{z-index:100;padding:var(--space-2) var(--gutter);justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.nav-logo{font-weight:var(--weight-bold);color:var(--color-ink);letter-spacing:.08em;text-decoration:none}.nav-link{color:var(--color-ink);text-decoration:none}.hero{text-align:center;padding:var(--gutter);flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.hero-logomark{z-index:0;height:31.25rem}@media (max-width:500px){.hero-logomark{z-index:0;height:18.75rem}}.hero-content{z-index:1;justify-content:flex-end;align-self:stretch;align-items:center;gap:var(--space-4);flex-direction:column;width:100%;display:flex;position:relative;container-type:inline-size}.hero-name-container{justify-content:center;align-items:center;gap:var(--space-1);flex-direction:column;width:100%;display:flex}.hero-skills{column-gap:var(--space-2);flex-wrap:wrap;justify-content:center;list-style:none;display:flex}.carousel-nav{gap:var(--space-1);flex-wrap:wrap;justify-content:center;display:flex}.carousel-nav-btn{cursor:pointer;letter-spacing:-.02em;font-family:inherit;font-size:clamp(1.4rem,6cqi,2.75rem);font-weight:var(--weight-bold);text-transform:uppercase;color:var(--color-ink);opacity:.5;background:0 0;border:none;border-radius:.05em;padding:.2em .25em;line-height:1;transition:all .15s ease-out}.carousel-nav-btn:hover{opacity:1;background-color:var(--color-ink);color:var(--color-paper)}.carousel-nav-btn:focus{background-color:var(--color-ink);color:var(--color-paper)}.carousel-nav-btn.active{opacity:1}.showcase{padding:var(--space-6) 0;margin:0 auto}@media (max-width:767px){.showcase{padding:var(--space-4) 0}}.footer{background-color:var(--color-ink);color:var(--color-paper);padding:var(--space-3) var(--gutter);padding-top:var(--space-6);flex-direction:column;display:flex}.footer-links{column-gap:var(--space-4);flex-flow:wrap;list-style:none;display:flex}.footer-link{text-transform:uppercase;color:var(--color-paper);font-size:min(5vw,3.75rem);font-weight:var(--weight-bold);letter-spacing:-.03em;line-height:1;text-decoration:none}.footer-links li:first-child{flex-basis:100%}.footer-link:hover,.footer-link:focus{color:#d5d5d0}.footer-email{cursor:pointer;font-size:min(5vw,3.75rem);font-weight:var(--weight-bold);letter-spacing:-.03em;background:0 0;border:none;padding:0;line-height:1}.footer-copyright{margin-top:var(--space-2);font-size:var(--text-caption);opacity:.7}@media (max-width:767px){.footer{background-color:var(--color-ink);color:var(--color-paper);padding:var(--space-3) var(--gutter);padding-top:var(--space-4)}}.cc-container{--cc-clip-scale:1;width:100%;min-height:20rem;position:relative;overflow-x:clip}.cc-container canvas{display:block}.cc-card{transform-origin:50% calc(-2.375rem * var(--cc-clip-scale));will-change:transform;touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:grab;box-sizing:border-box;font-family:inherit;position:absolute;top:0;left:0;overflow:visible}.cc-card--narrow{width:12vw}.cc-card--regular{width:40vw}.cc-card--wide{width:45vw}@media (max-width:767px){.cc-card--narrow{width:20vw}.cc-card--regular,.cc-card--wide{width:72vw}}@media (min-width:768px) and (max-width:1023px){.cc-card--narrow{width:16vw}.cc-card--regular{width:44vw}.cc-card--wide{width:60vw}}@media (min-width:1440px){.cc-card--narrow{width:9vw}.cc-card--regular{width:28vw}.cc-card--wide{width:38vw}}.cc-clip{--s:var(--cc-clip-scale);top:calc(-3.5rem * var(--s));width:calc(3.75rem * var(--s));height:calc(5.25rem * var(--s));background:var(--accent,var(--color-ink));padding:calc(1rem * var(--s)) calc(.5rem * var(--s)) calc(.75rem * var(--s));box-sizing:border-box;z-index:1;border-radius:.25rem;flex-direction:column;justify-content:space-between;align-items:center;display:flex;position:absolute;left:50%;transform:translate(-50%)}.cc-clip-hole{width:calc(1.375rem * var(--cc-clip-scale));height:calc(1.375rem * var(--cc-clip-scale));background:var(--color-paper);border-radius:50%}.cc-clip-stitch{border:none;border-top:.125rem dashed #ffffff4d;width:100%;margin:0}.cc-card-body{--border-animation-offset:.875rem;--border-animation-width:.1875rem;--border-animation-color:var(--accent);background:var(--color-paper);border-top:.25rem solid var(--accent,var(--color-ink));border-bottom:.25rem solid var(--accent,var(--color-ink));box-sizing:border-box;gap:var(--space-4);transform-origin:50% 0;border-left:.0625rem solid #e0e0e0;border-right:.0625rem solid #e0e0e0;border-radius:.25rem;flex-direction:column;padding:2.375rem 1.5rem 1.5rem;transition:transform .15s ease-out,box-shadow .15s ease-out;display:flex;box-shadow:0 .125rem .25rem #1f1f3b0f,0 .375rem .75rem #1f1f3b14,0 1rem 2rem #1f1f3b1a}.cc-card--grabbed .cc-card-body{transform:scale(1.03);box-shadow:0 .25rem .5rem #1f1f3b14,0 .75rem 1.5rem #1f1f3b1f,0 1.5rem 3rem #1f1f3b29}@media (hover:none){.cc-card .border-animation-overlay{display:none}}.cc-card-body:has(.cr-image-card){padding:0}.cc-card-body:has(.cr-category-card){border:.25rem solid var(--accent,var(--color-ink));padding:2.375rem 0}:is(.cc-card-body:has(.cr-programs-card),.cc-card-body:has(.cr-text-card),.cc-card-body:has(.cr-experience-card)){padding:3.375rem 1.5rem 2rem}.cr-separator{border:none;border-top:.125rem dashed #e0e0e0;margin:0}.cr-heading{font-size:var(--text-heading);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:-.02em;line-height:.9}.cr-heading+.cr-paragraph{margin-top:var(--space-3)}.cr-project-card{gap:var(--space-4);flex-direction:column;min-height:21.875rem;display:flex}.cr-project-body{flex-direction:column;flex:1;display:flex}.cr-top-row{justify-content:space-between;align-items:flex-start;display:flex}.cr-logo{align-items:center;height:3.125rem;display:flex}.cr-logo img{width:8.75rem;height:100%}.cr-date{font-size:var(--text-caption);color:var(--color-muted);letter-spacing:.05em;margin-top:var(--space-1)}.cr-title{font-size:var(--text-heading);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:-.02em;line-height:.9}.cr-description{font-size:var(--text-body);color:var(--color-muted);margin-top:var(--space-1);letter-spacing:.05em;line-height:1.6}.cr-cta{font-size:var(--text-caption);font-weight:var(--weight-medium);text-transform:uppercase;letter-spacing:.04em;text-align:center;border:.125rem solid var(--accent);width:100%;color:var(--accent);border-radius:.125rem;padding:1em;text-decoration:none;transition:all .15s ease-out}.cr-cta:hover,.cr-cta:focus{background:var(--accent);color:#fff}.cr-programs-card{gap:var(--space-3);flex-direction:column;display:flex}.cr-program-list{gap:var(--space-3);flex-direction:column;list-style:none;display:flex}.cr-program-item{padding-top:var(--space-3);border-top:.125rem dashed #e0e0e0}.cr-program-logo{flex-shrink:0;align-items:center;height:2.5rem;margin-bottom:.8rem;display:flex}.cr-program-logo img{width:6.25rem;height:100%}.cr-program-name{font-size:var(--text-body);font-weight:var(--weight-bold);text-transform:uppercase;line-height:.9}.cr-program-description{font-size:var(--text-caption);color:var(--color-muted);letter-spacing:.04em;margin-top:.4rem;line-height:1.5}.cr-program-description p:has(strong){border-left:.125rem dashed #e0e0e0;padding-left:.8rem}.cr-program-description p+p,.cr-program-description p+ul,.cr-program-description p+ol,.cr-program-description ul+p,.cr-program-description ol+p{margin-top:.5rem}.cr-program-description ul,.cr-program-description ol{padding-left:1.25em}.cr-program-description ul{list-style:outside}.cr-program-description ol{list-style:decimal}.cr-program-description li+li{margin-top:.125rem}.cr-category-card{justify-content:center;align-items:center;width:100%;min-height:21.875rem;display:flex}.cr-category-label{font-size:var(--text-heading);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:-.02em;writing-mode:vertical-rl;line-height:.9;transform:rotate(180deg)}.cr-image-card{flex-direction:column;display:flex}.cr-image-wrapper{overflow:hidden}@media (max-width:767px){.cr-image-wrapper img{aspect-ratio:2/3;object-fit:cover}}.cr-caption{font-size:var(--text-caption);color:var(--color-muted);padding-top:var(--space-1)}.cr-text-card{flex-direction:column;display:flex}.cr-paragraph{font-size:var(--text-body);color:#7b7988;letter-spacing:.04em;line-height:1.8}.cr-paragraph+.cr-paragraph{margin-top:var(--space-2)}.cr-experience-card{gap:var(--space-3);flex-direction:column;display:flex}.cr-experience-list{gap:var(--space-4);flex-direction:column;list-style:none;display:flex}.cr-experience-item{flex-direction:column;display:flex}.cr-experience-item:not(:first-child){padding-top:var(--space-4);border-top:.125rem dashed #e0e0e0}.cr-experience-company{font-size:var(--text-body);font-weight:var(--weight-bold);color:var(--color-ink)}.cr-experience-company--link{text-underline-offset:.1875rem;width:fit-content;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:.125rem;transition:text-decoration-color .15s ease-out}.cr-experience-company--link:hover{-webkit-text-decoration-color:var(--color-ink);text-decoration-color:var(--color-ink)}.cr-experience-role{font-size:var(--text-subhead);font-weight:var(--weight-bold);text-transform:none;color:var(--color-ink);margin-top:.25rem;line-height:1.2}.cr-experience-role+.cr-date{margin-top:var(--space-1)}@media (max-width:767px){.cc-container{--cc-clip-scale:.7}.cc-card{--text-heading:1.8125rem;--text-subhead:1.125rem;--text-body:.875rem;--space-2:.75rem;--space-3:1rem;--space-4:1.25rem}.cc-card-body{padding:1.75rem 1rem 1rem}.cc-card-body:has(.cr-category-card){padding:1.5rem 0}:is(.cc-card-body:has(.cr-programs-card),.cc-card-body:has(.cr-text-card),.cc-card-body:has(.cr-experience-card)){padding:2.25rem 1rem 1.25rem}.cr-project-card,.cr-category-card{min-height:15rem}.cr-logo{height:1.875rem}.cr-logo img{width:5.25rem}.cr-program-logo{height:2rem}.cr-program-logo img{width:5.5rem}}.work-card{cursor:pointer}.work-card-image{aspect-ratio:4/3;background-color:var(--color-muted);margin-bottom:var(--space-2)}.work-card-info{padding:0 var(--space-1)}.work-card-info h3{margin-bottom:var(--space-1)}.project-hero{padding:var(--space-4) var(--gutter) var(--gutter);flex-direction:column;margin:0 auto;display:flex;position:relative}.project-hero-line{z-index:101;height:.25rem;position:fixed;top:0;left:0;right:0}.project-hero-back{align-items:center;gap:var(--space-1);color:var(--color-ink);font-size:1.25rem;font-weight:var(--weight-medium);text-transform:uppercase;width:fit-content;padding:var(--space-1);border-radius:.125rem;line-height:.9;text-decoration:none;transition:all .15s ease-out;display:flex}.project-hero-back svg path{transition:all .15s ease-out}.project-hero-back:hover,.project-hero-back:focus{background-color:var(--color-ink);color:var(--color-paper)}:is(.project-hero-back:hover,.project-hero-back:focus) svg path{fill:var(--color-paper)}.project-hero-cta{align-items:center;gap:var(--space-1);color:var(--color-ink);font-size:clamp(1rem,3vw,1.25rem);font-weight:var(--weight-medium);text-transform:uppercase;width:fit-content;margin-top:var(--space-3);border:.125rem solid var(--color-ink);border-radius:.125rem;padding:1em;line-height:.9;text-decoration:none;transition:all .15s ease-out;display:flex}.project-hero-cta svg{margin-top:-.5em;transition:transform .2s ease-out}.project-hero-cta svg path{transition:all .15s ease-out}.project-hero-cta:hover,.project-hero-cta:focus{background-color:var(--color-ink);color:var(--color-paper)}:is(.project-hero-cta:hover,.project-hero-cta:focus) svg{transform-origin:0 100%;transform:scale(1.2)}:is(.project-hero-cta:hover,.project-hero-cta:focus) svg path{fill:var(--color-paper)}.project-hero-divider{margin:var(--space-4) 0;border:none;border-top:.125rem dashed #e0e0e0}.project-hero-meta{gap:var(--space-7);row-gap:var(--space-3);flex-wrap:wrap;display:flex}.project-hero-meta-item{flex-direction:column;gap:.125rem;display:flex}.project-hero-meta-label{font-size:var(--text-body);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.01em;color:var(--color-ink)}.project-hero-meta-value{font-size:var(--text-body);color:var(--color-muted);letter-spacing:.02em}.project-hero-media{aspect-ratio:16/8;width:100%;margin-top:var(--space-3);border-radius:.3em;position:relative;overflow:clip}@media (max-width:767px){.project-hero-media{aspect-ratio:16/10}}.project-hero-media video{object-fit:cover;width:100%;height:100%;display:block}.project-hero-video-controls{bottom:var(--space-2);right:var(--space-2);gap:var(--space-1);display:flex;position:absolute}.project-hero-video-btn{width:2.25em;height:2.25em;color:var(--color-paper);cursor:pointer;background-color:#1f1f3b99;border:none;border-radius:50%;justify-content:center;align-items:center;transition:background-color .15s ease-out;display:flex}.project-hero-video-btn:hover,.project-hero-video-btn:focus-visible{background-color:var(--color-ink)}.project-hero-youtube-iframe{border:none;width:100%;height:100%;display:block}.project-intro{gap:var(--space-3);margin-top:var(--space-2);flex-direction:column;display:flex}.project-body{gap:var(--space-4);padding:var(--space-5) var(--gutter);background:#fff;border-top-left-radius:1em;border-top-right-radius:1em;grid-template-columns:1fr 4fr;display:grid;position:relative}.project-nav{gap:var(--space-3);top:var(--space-4);flex-direction:column;min-width:14.375rem;height:min-content;display:flex;position:sticky}.project-nav-back{align-items:center;gap:var(--space-1);color:var(--color-ink);font-size:1.25rem;font-weight:var(--weight-medium);text-transform:uppercase;width:fit-content;padding:var(--space-1);border-radius:.125rem;line-height:.9;text-decoration:none;transition:all .15s ease-out;display:flex}.project-nav-back svg path{transition:all .15s ease-out}.project-nav-back:hover,.project-nav-back:focus{background-color:var(--color-ink);color:var(--color-paper)}:is(.project-nav-back:hover,.project-nav-back:focus) svg path{fill:var(--color-paper)}.project-nav-toggle{justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);font:inherit;font-weight:var(--weight-medium);text-transform:uppercase;color:var(--color-ink);cursor:pointer;background:0 0;border:.0625rem solid #e0e0e0;border-radius:.25rem;display:none}.project-nav-toggle svg{flex-shrink:0;transition:transform .2s ease-out;transform:rotate(-90deg)}.project-nav-toggle svg path{transition:all .15s ease-out}.project-nav--open .project-nav-toggle svg{transform:rotate(90deg)}.project-nav-list{gap:var(--space-1);flex-direction:column;list-style:none;display:flex}.project-nav-list li{display:flex}.project-nav-link{--border-animation-offset:0;--border-animation-width:.125rem;--border-animation-color:var(--color-ink);color:var(--color-ink);padding:var(--space-2);box-sizing:content-box;opacity:.5;border-radius:.125rem;width:100%;text-decoration:none}.project-nav-link:focus-visible{opacity:1}.project-nav-link:hover,.project-nav-link--active{color:var(--color-ink);opacity:1}@media (max-width:767px){.project-body{grid-template-columns:1fr}.project-nav{top:var(--gutter);z-index:20;background:var(--color-paper);min-width:0}.project-nav-back{display:none}.project-nav-toggle{display:flex}.project-nav-list{margin-top:var(--space-1);background:var(--color-paper);padding:var(--space-1);opacity:0;pointer-events:none;border:.0625rem solid #e0e0e0;border-radius:.375rem;max-height:0;transition:max-height .25s ease-out,opacity .2s ease-out;position:absolute;top:100%;left:0;right:0;overflow:hidden;box-shadow:0 .75rem 1.5rem #1f1f3b1f}.project-nav--open .project-nav-list{opacity:1;pointer-events:auto;max-height:60vh;overflow-y:auto}}.project-content{gap:var(--space-7);flex-direction:column;flex:1;min-width:0;max-width:56.25rem;display:flex}.project-section{scroll-margin-top:var(--space-3);flex-direction:column;display:flex}.project-section-headline{font-size:clamp(1.8rem,5vw,4rem)}.project-section-subheading{color:var(--color-ink);font-weight:var(--weight-medium);text-transform:none;margin-top:var(--space-6);line-height:1.2}.project-section-subheading:first-of-type{margin-top:var(--space-2)}.project-section-subheading+.project-section-paragraphs{margin-top:var(--space-1)}.project-section-paragraphs{margin-top:var(--space-2)}.project-section-image{margin-top:var(--space-3)}.project-section-image img{border-radius:.5rem}.project-section-image-caption{padding-top:var(--space-1)}.project-section-images{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.project-section-images .project-section-image-caption{grid-column:1/-1}.project-image-group{align-items:center;gap:var(--space-2);padding:var(--space-4);margin-top:var(--space-3);background-color:#f5f5f0;border-radius:.375rem;flex-direction:column;display:flex}.project-image-group img{border-radius:.5rem}@media (max-width:767px){.project-image-group{gap:var(--space-2);padding:var(--space-2) var(--space-2)}}.project-stats{gap:var(--space-4);margin-top:var(--space-4);grid-template-columns:repeat(3,1fr);display:flex}.project-stat{height:min-content;padding-left:var(--space-4);border-left:.125rem dashed #e0e0e0;flex-direction:column;display:flex}.project-stat-value{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:var(--weight-bold);letter-spacing:-.02em;line-height:1}.project-stat-label{font-size:var(--text-body);font-weight:var(--weight-bold);line-height:1.4}.project-stat-label+.t-caption{margin-top:var(--space-1)}.project-stat-citation{letter-spacing:.06em;width:fit-content;margin-top:var(--space-1);text-underline-offset:.1875rem;opacity:.7;text-decoration:underline}.project-stat-citation:hover{opacity:1}@media (max-width:767px){.project-stats{flex-direction:column}}.project-card-grid{gap:var(--space-2);margin-top:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(13.75rem,1fr));display:grid}.project-card{--border-animation-offset:0;--border-animation-width:.125rem;--border-animation-color:var(--color-ink);gap:var(--space-1);padding:var(--space-3);border:.125rem dashed #e0e0e0;border-radius:.375rem;flex-direction:column;display:flex}.project-card.border-animation:hover .border-animation-overlay{opacity:.5}.project-card--spotlight .border-animation-overlay{opacity:1}.project-card--spotlight .border-animation-overlay rect{animation:.6s linear infinite border-animation-dash}.project-card-heading{font-weight:var(--weight-bold);color:var(--color-ink);letter-spacing:.02em}.project-link-cards{gap:var(--space-3);margin-top:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(16.25rem,1fr));display:grid}.project-link-card{gap:var(--space-1);padding:var(--space-3);border:.125rem solid #e0e0e0;border-radius:.1875rem;flex-direction:column;display:flex}.project-link-card-heading{font-size:var(--text-subhead);font-weight:var(--weight-bold);color:var(--color-ink);text-transform:none;line-height:1.2}.project-link-card-body{line-height:1.6}.project-link-card-link{align-items:center;gap:var(--space-1);color:var(--color-ink);font-size:var(--text-body);font-weight:var(--weight-medium);text-transform:uppercase;width:fit-content;margin-top:auto;margin-top:var(--space-2);background:#ececec;border-radius:.125rem;padding:.75em;line-height:1.2;text-decoration:none;transition:all .15s ease-out;display:flex}.project-link-card-link svg{transform:rotate(-90deg)}.project-link-card-link svg path{transition:all .15s ease-out}.project-link-card-link:hover{background-color:var(--color-ink);color:var(--color-paper)}.project-link-card-link:hover svg path{fill:var(--color-paper)}.project-comparison{margin-top:var(--space-3);border:.125rem solid #e0e0e0;border-radius:.1875rem;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.project-comparison-card{gap:var(--space-3);padding:var(--space-4);color:var(--color-ink);flex-direction:column;display:flex}.project-comparison-card--inverted{background:var(--color-ink);color:var(--color-paper)}.project-comparison-label{font-size:var(--text-caption);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.05em}.project-comparison-list{gap:var(--space-2);font-size:var(--text-body);flex-direction:column;line-height:1.5;list-style:none;display:flex}.project-comparison-list li{align-items:flex-start;gap:var(--space-2);display:flex}.project-comparison-list li:before{content:"";background:currentColor;border-radius:.0938rem;flex-shrink:0;width:.375rem;height:.375rem;margin-top:.5em}@media (max-width:767px){.project-comparison{grid-template-columns:1fr}}.project-personas{gap:var(--space-3);margin-top:var(--space-3);flex-direction:column;display:flex}.project-persona-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(13.75rem,1fr));display:grid}.project-persona{--border-animation-offset:.5rem;--border-animation-width:.125rem;--border-animation-color:var(--persona-color,var(--color-ink));font:inherit;text-align:left;color:inherit;cursor:pointer;outline-offset:.375rem;-webkit-user-select:text;user-select:text;background:0 0;border:.0625rem solid #e0e0e0;border-radius:.1875rem;outline:.125rem solid #fff0;flex-direction:column;padding:0;transition:outline .2s ease-out;display:flex}.project-persona-photo{aspect-ratio:1;border-top-left-radius:.1875rem;border-top-right-radius:.1875rem;width:100%;position:relative;overflow:hidden}.project-persona-body{gap:var(--space-1);padding:var(--space-2);flex-direction:column;display:flex}.project-persona-name{color:var(--persona-color,var(--color-ink));text-transform:uppercase;font-size:clamp(1.75rem,4vw,2.5rem);font-weight:var(--weight-bold)}.project-persona-line{font-size:var(--text-caption);letter-spacing:.04em;line-height:1.4}.project-persona-line strong{font-weight:var(--weight-bold)}.project-persona-line--muted{color:var(--color-muted)}.project-persona-expanded{border-left:.25rem solid var(--persona-color,var(--color-ink));padding:var(--space-1) var(--space-3);font-size:var(--text-body);color:var(--color-ink);line-height:1.5}@media (max-width:767px){.project-persona-photo{aspect-ratio:4/3}}.project-concept-grid{gap:var(--space-3);margin-top:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(16.25rem,1fr));display:grid}.project-concept-card{gap:var(--space-2);padding:var(--space-3);border:.125rem solid var(--concept-color,var(--color-ink));border-radius:.1875rem;flex-direction:column;display:flex}.project-concept-card--featured{border-style:solid}.project-concept-icon{width:1.75rem;height:1.75rem;display:block}.project-concept-icon img{object-fit:contain;width:100%;height:100%}.project-concept-title{font-weight:var(--weight-bold);text-transform:uppercase;color:var(--concept-color,var(--color-ink))}.project-concept-list{gap:var(--space-1);font-size:var(--text-body);flex-direction:column;list-style:none;display:flex}.project-concept-list li{align-items:flex-start;gap:var(--space-2);display:flex}.project-concept-list li:before{content:"";background:currentColor;border-radius:.0938rem;flex-shrink:0;width:.375rem;height:.375rem;margin-top:.4em}.project-concept-body{font-size:var(--text-caption);color:var(--color-muted)}.project-concept-highlight{color:var(--concept-color,var(--color-ink));font-weight:var(--weight-medium)}.project-features{gap:var(--space-3);margin-top:var(--space-4);flex-direction:column;display:flex}.project-feature{border:.0625rem solid #e0e0e0;border-radius:.1875rem;grid-template-columns:1fr 1.4fr;display:grid;overflow:hidden}.project-feature-text{justify-content:flex-end;gap:var(--space-1);padding:var(--space-3);flex-direction:column;display:flex}.project-feature-label{font-size:var(--text-caption);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.02em;flex:1;font-style:italic}.project-feature-heading{font-size:var(--text-subhead);font-weight:var(--weight-bold)}.project-feature-media{border-left:.0625rem solid #e0e0e0}.project-feature-media video{width:100%;height:auto;display:block}@media (max-width:767px){.project-feature{grid-template-columns:1fr}.project-feature-media{border-top:.0625rem solid #e0e0e0;border-left:none}}.next-project{padding:var(--space-3) var(--gutter);border-top:.25rem solid var(--accent,var(--color-ink));background-color:var(--color-paper);color:var(--color-ink);flex-direction:column;text-decoration:none;display:flex}.next-project-label{font-size:clamp(1.4rem,2.5vw,1.75rem);font-weight:var(--weight-bold);text-transform:uppercase;color:#dcdcd7;align-items:center;gap:4px;line-height:1;transition:color .1s ease-out;display:flex}.next-project:hover .next-project-label,.next-project:focus-visible .next-project-label{color:var(--accent,var(--color-ink))}.next-project-arrow{transition:transform .3s ease-out}.next-project-arrow--bouncing{animation:.7s ease-in-out infinite next-project-arrow-bounce}@keyframes next-project-arrow-bounce{0%,to{transform:translate(0)}50%{transform:translate(.3em)}}@media (prefers-reduced-motion:reduce){.next-project-arrow--bouncing{animation:none}}.next-project-divider{margin:var(--space-3) 0 var(--space-3);border:none;border-top:.125rem dashed #e0e0e0}.next-project-title{font-size:clamp(2.25rem,5vw,3rem);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:-.03em;line-height:.9}.next-project-description{max-width:30rem;margin-top:var(--space-1);font-size:var(--text-body);font-weight:var(--weight-medium);color:var(--color-muted);letter-spacing:.02em;line-height:1.5}.border-animation{position:relative}.border-animation-overlay{pointer-events:none;opacity:0;transition:opacity .1s ease-out;position:absolute}.border-animation:hover .border-animation-overlay,.border-animation:focus-visible .border-animation-overlay{opacity:1}.border-animation:has(:focus-visible) .border-animation-overlay{opacity:1}.border-animation[class*=--active] .border-animation-overlay{opacity:1}.border-animation[class*=--active] .border-animation-overlay rect{stroke-dasharray:none}.border-animation-overlay rect{fill:none;stroke:var(--border-animation-color);stroke-width:var(--border-animation-width);stroke-dasharray:.5rem .25rem}.border-animation:hover .border-animation-overlay rect,.border-animation:focus-visible .border-animation-overlay rect{animation:.6s linear infinite border-animation-dash}.border-animation:has(:focus-visible) .border-animation-overlay rect{animation:.6s linear infinite border-animation-dash}@keyframes border-animation-dash{0%{stroke-dashoffset:0}to{stroke-dashoffset:-1.5rem}}.page-wipe{z-index:1000;background-color:var(--wipe-color,var(--color-ink));visibility:hidden;pointer-events:none;position:fixed;inset:0;transform:translateY(-100%)}.page-wipe:not([data-phase=idle]){visibility:visible;pointer-events:auto}.page-wipe[data-phase=covering],.page-wipe[data-phase=covered]{transform:translateY(0)}.page-wipe[data-phase=revealing]{transform:translateY(100%)}.page-wipe[data-phase=covering],.page-wipe[data-phase=revealing]{transition:transform var(--wipe-duration) cubic-bezier(.76, 0, .24, 1)}
