@font-face{font-family:Alte Haas Grotesk;src:url(/assets/AlteHaasGroteskRegular-B25r_GJK.ttf) format("truetype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Alte Haas Grotesk;src:url(/assets/AlteHaasGroteskBold-DCuBJgsO.ttf) format("truetype");font-style:normal;font-weight:700;font-display:swap}:root{color:#101010;background:#fff8f2;color-scheme:light;font-family:Alte Haas Grotesk,Helvetica Neue,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--paper: #fff8f2;--ink: #101010;--muted: #5b5a55;--accent: #ff4b11;--cobalt: #0b43e6;--rule: rgba(16, 16, 16, .28);--rule-soft: rgba(16, 16, 16, .13);--page-gutter: clamp(1rem, 2.5vw, 2.5rem);--section-space: clamp(5rem, 10vw, 10rem);--ease-out: cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden;background:var(--paper)}::selection{background:var(--cobalt);color:#fff}body,button,input,textarea,select{font-family:inherit}a{color:inherit;text-decoration:none}button{color:inherit}img{display:block;max-width:100%}button,summary,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:100;top:.75rem;left:.75rem;transform:translateY(-180%);padding:.7rem 1rem;border:1px solid var(--ink);background:var(--paper);color:var(--ink)}.skip-link:focus{transform:translateY(0)}.site-shell{width:100%;min-height:100vh}.site-content{width:min(100%,1920px);margin:0 auto;padding:0 var(--page-gutter)}.site-shell--home{min-height:100svh}.home-stage{display:grid;grid-template-rows:clamp(3.5rem,7vh,4.75rem) minmax(0,1fr) clamp(3.5rem,7vh,4.75rem) auto;height:calc(100svh - 1px);overflow:hidden;background:var(--paper)}.home-navigation{display:flex;gap:clamp(1.5rem,4vw,4.5rem);align-items:center;justify-content:flex-end;margin:0 var(--page-gutter);border-bottom:1px solid var(--rule);font-size:clamp(.9rem,1.25vw,1.05rem)}.home-navigation a,.desktop-navigation a,.mobile-navigation nav a,.text-link{position:relative;width:fit-content}.home-navigation a:after,.desktop-navigation a:after,.mobile-navigation nav a:after,.text-link:after{position:absolute;right:0;bottom:-.25rem;left:0;height:1px;background:currentColor;content:"";transform:scaleX(0);transform-origin:right;transition:transform .18s ease}.home-navigation a:hover:after,.desktop-navigation a:hover:after,.mobile-navigation nav a:hover:after,.text-link:hover:after{transform:scaleX(1);transform-origin:left}.home-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(16rem,.72fr);gap:clamp(2rem,6vw,8rem);align-items:end;min-height:0;padding:clamp(1.25rem,3vh,2.5rem) var(--page-gutter) clamp(1.25rem,3vh,2.25rem)}.home-title{align-self:center;margin:0;font-size:clamp(6rem,min(13.5vw,22vh),13.5rem);font-weight:700;letter-spacing:-.075em;line-height:.73}.home-title span{display:block;animation:title-reveal .62s var(--ease-out) both}.home-title span+span{animation-delay:80ms}.home-projects-heading{display:flex;align-items:center;justify-content:space-between;padding:0 var(--page-gutter);background:var(--cobalt);color:#fff;font-size:clamp(1.1rem,2vw,2rem);letter-spacing:-.04em;text-transform:uppercase}.home-projects-heading__arrow{font-size:1.65em;line-height:1;animation:arrow-arrive .5s .32s var(--ease-out) both}.home-projects{display:grid;grid-template-rows:repeat(6,minmax(0,1fr));min-height:0;padding:0 var(--page-gutter)}.home-project-row{display:grid;grid-template-columns:clamp(2.25rem,5vw,5rem) minmax(0,1.4fr) minmax(8rem,.65fr) 4rem clamp(2rem,4vw,4.5rem);gap:clamp(.75rem,2vw,2rem);align-items:center;min-height:clamp(2.75rem,6.5vh,4.5rem);border-bottom:1px solid var(--rule);animation:row-arrive .46s var(--ease-out) both;transition:background .18s ease,color .18s ease}.home-project-row:nth-child(2){animation-delay:45ms}.home-project-row:nth-child(3){animation-delay:90ms}.home-project-row:nth-child(4){animation-delay:135ms}.home-project-row:nth-child(5){animation-delay:.18s}.home-project-row:nth-child(6){animation-delay:225ms}.home-project-row:hover{background:var(--ink);color:var(--paper)}.home-project-row__number{color:var(--accent);font-size:clamp(1.25rem,2.5vw,2.25rem)}.home-project-row__title{overflow:hidden;font-size:clamp(1.4rem,3vw,3.25rem);letter-spacing:-.055em;line-height:.92;text-overflow:ellipsis;transition:transform .18s ease;white-space:nowrap}.home-project-row:hover .home-project-row__title{transform:translate(.35rem)}.home-project-row__category,.home-project-row__year{color:inherit;font-size:clamp(.72rem,1vw,.95rem)}.home-project-row__arrow{font-size:clamp(1.5rem,2.5vw,2.5rem);text-align:right;transition:transform .18s ease}.home-project-row:hover .home-project-row__arrow{transform:translate(.35rem)}@keyframes title-reveal{0%{opacity:0;transform:translateY(.18em)}to{opacity:1;transform:translateY(0)}}@keyframes mark-reveal{0%{opacity:0;transform:rotate(-8deg) scale(.82)}to{opacity:1;transform:rotate(0) scale(1)}}@keyframes arrow-arrive{0%{opacity:0;transform:translate(-.5rem)}to{opacity:1;transform:translate(0)}}@keyframes row-arrive{0%{opacity:0;transform:translateY(.6rem)}to{opacity:1;transform:translateY(0)}}.site-header{position:sticky;z-index:20;top:0;display:grid;grid-template-columns:auto 1fr;gap:2rem;align-items:center;min-height:64px;padding-inline:max(var(--page-gutter),calc((100% - 1920px) / 2 + var(--page-gutter)));border-bottom:1px solid var(--rule);background:color-mix(in srgb,var(--paper) 94%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.wordmark{position:relative;font-size:1rem;font-weight:400;letter-spacing:-.035em}.wordmark:before{display:inline-block;width:.45rem;height:.45rem;margin-right:.55rem;background:var(--accent);content:"";transition:transform .22s var(--ease-out)}.wordmark:hover:before{transform:rotate(45deg)}.desktop-navigation{display:flex;gap:clamp(1.5rem,3vw,3.5rem);justify-content:flex-end;font-size:.95rem;font-weight:400}.desktop-navigation a[aria-current=page]{color:var(--accent)}.desktop-navigation a[aria-current=page]:after,.mobile-navigation a[aria-current=page]:after{transform:scaleX(1)}.mobile-navigation{display:none}.projects-page{padding:0 0 var(--section-space);animation:page-enter .28s ease-out both}.projects-page__header{position:relative;display:flex;overflow:hidden;min-height:clamp(13rem,32vw,27rem);align-items:flex-end;margin:0 calc(var(--page-gutter) * -1) clamp(3rem,7vw,7rem);padding:clamp(2rem,5vw,5rem) var(--page-gutter);background:var(--cobalt);color:#fff}.projects-page__header:after{position:absolute;top:clamp(1rem,3vw,2.5rem);right:var(--page-gutter);width:clamp(2rem,5vw,4rem);aspect-ratio:1;border:1px solid rgba(255,255,255,.8);content:"";transform:rotate(45deg);animation:mark-reveal .7s .12s var(--ease-out) both}.projects-page__header h1{margin:0;font-size:clamp(5.5rem,15vw,15rem);font-weight:400;letter-spacing:-.075em;line-height:.72}.projects-index{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(3rem,5vw,5rem) clamp(1rem,2vw,1.75rem);width:min(100%,76rem);margin:0 auto}.project-index-card{display:grid;align-content:start;min-width:0;animation:card-arrive .56s var(--ease-out) both}.project-index-card:nth-child(2){animation-delay:70ms}.project-index-card:nth-child(3){animation-delay:.14s}.project-index-card:nth-child(4){animation-delay:.21s}.project-index-card:nth-child(5){animation-delay:.28s}.project-index-card:nth-child(6){animation-delay:.35s}.project-index-card__visual{position:relative;overflow:hidden;aspect-ratio:16 / 10;border:1px solid var(--rule);background:#f7f7f4}.project-index-card__visual:after{position:absolute;right:0;bottom:0;left:0;height:4px;background:var(--accent);content:"";transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.project-index-card__visual img{width:100%;height:100%;object-fit:cover;object-position:top left;transition:transform .5s cubic-bezier(.2,.75,.18,1)}.project-index-card:hover .project-index-card__visual:after{transform:scaleX(1)}.project-index-card:hover .project-index-card__visual img{transform:scale(1.012)}.project-index-card__meta{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto auto;gap:clamp(.75rem,2vw,2rem);align-items:baseline;padding:.9rem 0;border-bottom:1px solid var(--rule);transition:padding-inline .22s var(--ease-out)}.project-index-card:hover .project-index-card__meta{padding-inline:.5rem}.project-index-card__meta h2,.project-index-card__meta p{margin:0}.project-index-card__meta h2{font-size:clamp(1.4rem,1.8vw,2rem);font-weight:400;letter-spacing:-.04em;transition:color .18s ease;white-space:nowrap}.project-index-card:hover .project-index-card__meta h2{color:var(--cobalt)}.project-index-card__number{color:var(--accent);font-size:1.1rem}.project-index-card__meta p{color:var(--muted);font-size:.82rem;text-transform:uppercase}.project-index-card__arrow{color:var(--accent);transition:transform .18s ease}.project-index-card:hover .project-index-card__arrow{transform:translate(.2rem,-.2rem)}@keyframes card-arrive{0%{opacity:0;transform:translateY(1.5rem)}to{opacity:1;transform:translateY(0)}}.project-page,.about-section,.not-found{animation:page-enter .28s ease-out both}.case-study{padding:clamp(3rem,6vw,6rem) 0 0}.case-study__header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:clamp(1rem,3vw,3rem);align-items:start;margin-bottom:clamp(3rem,7vw,7rem);padding-bottom:clamp(2rem,5vw,5rem);border-bottom:clamp(.55rem,1.1vw,1rem) solid var(--cobalt);animation:case-header-arrive .6s var(--ease-out) both}.case-study__header--with-actions{margin-bottom:clamp(1rem,2vw,2rem)}.case-study__number,.eyebrow,.case-media__eyebrow,.case-media figcaption em,.story-chapter>span,.case-study__why span,.feature-section span,.resume-block h3,.project-pagination span{font-size:.76rem;font-weight:400;letter-spacing:.04em;text-transform:uppercase}.case-study__number{display:grid;width:2.5rem;aspect-ratio:1;place-items:center;border:1px solid var(--rule);color:var(--accent)}.eyebrow{margin:0 0 .9rem;color:var(--accent)}.case-study__header h1{max-width:10ch;margin:0;font-size:clamp(4.5rem,12vw,12rem);font-weight:400;letter-spacing:-.075em;line-height:.72}.case-study__top{display:grid;width:2.5rem;height:2.5rem;place-items:center;border:1px solid var(--ink);border-radius:0;transition:background .18s ease,color .18s ease,transform .22s var(--ease-out)}.case-study__top:hover{background:var(--ink);color:var(--paper);transform:translate(-.2rem)}.case-study__why{display:grid;grid-template-columns:minmax(12rem,.42fr) minmax(22rem,1fr) auto;gap:clamp(2rem,5vw,6rem);align-items:start;padding:1.25rem 0 clamp(3rem,7vw,7rem);border-top:1px solid var(--ink)}.case-study__why>div:first-child,.feature-section>div{display:grid;grid-template-columns:2rem 1fr;gap:.75rem;align-items:baseline}.case-study__why span,.feature-section span,.story-chapter>span{color:var(--accent)}.case-study__why h2,.feature-section h2{margin:0;font-size:clamp(1.6rem,2.5vw,2.7rem);font-weight:400;letter-spacing:-.04em}.case-study__why>p{max-width:44rem;margin:0;font-size:clamp(1.35rem,2.2vw,2.25rem);line-height:1.25}.fog-strategy-story{display:grid;gap:clamp(2.5rem,6vw,6rem);padding-top:1.25rem;border-top:1px solid var(--ink)}.fog-strategy-story>p{max-width:52rem;margin:0;font-size:clamp(1.35rem,2.2vw,2.25rem);line-height:1.25}.project-links{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.project-links a{padding:.7rem .85rem;border:1px solid var(--ink);font-size:.82rem;font-weight:400;transition:background .18s ease,color .18s ease,transform .18s ease}.project-links a:hover{background:var(--ink);color:var(--paper);transform:translateY(-.15rem)}.project-links--title{justify-content:flex-start;margin-top:clamp(1.25rem,3vw,2.5rem)}.case-study__actions{justify-content:flex-start;margin-bottom:clamp(1.5rem,3vw,3rem)}.tsa-story{margin-top:clamp(1rem,3vw,3rem)}.tsa-story__intro,.tsa-story__section{display:grid;grid-template-columns:minmax(13rem,.35fr) minmax(22rem,1fr);gap:clamp(2rem,7vw,8rem);padding:clamp(2rem,5vw,5rem) 0;border-top:1px solid var(--ink)}.tsa-story__heading{display:grid;grid-template-columns:2rem minmax(0,1fr);gap:.75rem;align-content:start;align-items:baseline}.tsa-story__heading span{color:var(--accent);font-size:.76rem;letter-spacing:.04em;text-transform:uppercase}.tsa-story__heading h2{margin:0;font-size:clamp(2rem,4vw,4.5rem);font-weight:400;letter-spacing:-.055em;line-height:.95}.tsa-story__intro>p,.tsa-story__copy>p{max-width:56rem;margin:0;color:var(--muted);font-size:1rem;line-height:1.7}.tsa-story__intro>p{color:var(--ink);font-size:clamp(1.3rem,2.15vw,2rem);line-height:1.35}.tsa-story__copy>p+p{margin-top:1.5rem}.tsa-story__metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:clamp(2rem,4vw,4rem) 0 0;padding:0;border-top:1px solid var(--rule);list-style:none}.tsa-story__metrics li{display:grid;gap:.35rem;padding:1rem 0;border-bottom:1px solid var(--rule)}.tsa-story__metrics li+li{padding-left:1rem;border-left:1px solid var(--rule)}.tsa-story__metrics strong{font-size:clamp(1.35rem,2.5vw,2.25rem);font-weight:400;letter-spacing:-.05em}.tsa-story__metrics span,.tsa-story__note{color:var(--muted);font-size:.86rem;line-height:1.5}.tsa-story__note{margin-top:1.25rem!important}.tsa-story__gallery{margin-top:clamp(1rem,3vw,3rem)}.image-frame,.case-media__image{overflow:hidden;border:1px solid var(--rule);background:#f8f8f5;transition:border-color .18s ease}.case-media:hover .case-media__image{border-color:var(--ink)}.case-media{margin:0}.case-media--featured{width:min(100%,76rem);margin:0 auto}.case-media--featured .case-media__image{aspect-ratio:16 / 9}.case-media__image img{width:100%;height:100%;object-fit:contain}.case-media figcaption{display:grid;grid-template-columns:minmax(8rem,.25fr) minmax(0,1fr) auto;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--rule-soft);color:var(--muted);font-size:.86rem;line-height:1.4}.case-media figcaption em{color:var(--accent);font-style:normal}.academic-story{margin-top:clamp(1rem,3vw,3rem)}.academic-story__section{display:grid;grid-template-columns:minmax(13rem,.35fr) minmax(22rem,1fr);gap:clamp(2rem,7vw,8rem);padding:clamp(2rem,5vw,5rem) 0;border-top:1px solid var(--ink)}.academic-story__heading{display:grid;grid-template-columns:2rem minmax(0,1fr);gap:.75rem;align-content:start;align-items:baseline}.academic-story__heading span,.academic-story__list>li>span{color:var(--accent);font-size:.76rem;letter-spacing:.04em;text-transform:uppercase}.academic-story__heading h2{margin:0;font-size:clamp(2rem,4vw,4.5rem);font-weight:400;letter-spacing:-.055em;line-height:.95}.academic-story__copy{max-width:56rem}.academic-story__copy>p{margin:0;color:var(--muted);font-size:1rem;line-height:1.7}.academic-story__copy>p+p{margin-top:1.5rem}.academic-story__copy .academic-story__lead{color:var(--ink);font-size:clamp(1.3rem,2.15vw,2rem);line-height:1.35}.academic-story__screenshots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:clamp(2rem,5vw,5rem) 0 clamp(4rem,9vw,9rem)}.academic-story__screenshots .case-media--featured{width:auto;margin:0}.academic-story__screenshots .case-media__image,.academic-story__screenshots .case-media--featured .case-media__image{aspect-ratio:16 / 9}.academic-story__list,.academic-story__features{margin:clamp(2rem,4vw,4rem) 0 0;padding:0;border-top:1px solid var(--rule);list-style:none}.academic-story__list li{display:grid;grid-template-columns:2rem minmax(0,1fr);gap:1rem;padding:1.25rem 0;border-bottom:1px solid var(--rule);transition:padding-inline .22s var(--ease-out)}.academic-story__list li:hover{padding-inline:.75rem}.academic-story__list h3{margin:0;font-size:clamp(1.25rem,2vw,1.8rem);font-weight:400;letter-spacing:-.035em}.academic-story__list p{max-width:44rem;margin:.5rem 0 0;color:var(--muted);font-size:.95rem;line-height:1.6}.academic-story__features{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.academic-story__features li{padding:.9rem 0;border-bottom:1px solid var(--rule);font-size:.95rem}.academic-story__features li:nth-child(odd){padding-right:1rem}.academic-story__features li:nth-child(2n){padding-left:1rem;border-left:1px solid var(--rule)}.story-flow{margin:clamp(5rem,10vw,10rem) 0;border-top:1px solid var(--ink)}.story-chapter{display:grid;grid-template-columns:2rem minmax(12rem,.42fr) minmax(20rem,.9fr);gap:clamp(1rem,4vw,5rem);padding:clamp(1.5rem,3vw,3rem) 0;border-bottom:1px solid var(--rule);transition:padding-inline .22s var(--ease-out)}.story-chapter:hover{padding-inline:.75rem}.story-chapter h2,.story-chapter p{margin:0}.story-chapter h2{font-size:clamp(1.8rem,3.4vw,3.8rem);font-weight:400;letter-spacing:-.05em;line-height:.95}.story-chapter p{max-width:49rem;color:var(--muted);font-size:1rem;line-height:1.65}.feature-section{display:grid;grid-template-columns:minmax(15rem,.45fr) minmax(22rem,1fr);gap:clamp(2rem,7vw,9rem);margin-bottom:clamp(5rem,9vw,9rem);padding-top:1.25rem;border-top:1px solid var(--ink)}.feature-section ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;padding:0;border-top:1px solid var(--rule);list-style:none}.feature-section li{padding:.9rem 0;border-bottom:1px solid var(--rule);font-size:.95rem}.feature-section li:nth-child(odd){padding-right:1rem}.feature-section li:nth-child(2n){padding-left:1rem;border-left:1px solid var(--rule)}.case-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(3rem,7vw,7rem) 1rem}.case-gallery .case-media__image{aspect-ratio:16 / 10}.case-gallery .case-media:nth-child(3n){grid-column:1 / -1}.case-media--crop-left .case-media__image img{object-fit:cover;object-position:left center}.case-media--crop-center .case-media__image img{object-fit:cover;object-position:center}.case-media--crop-bottom .case-media__image img{object-fit:cover;object-position:center bottom}.case-study__stack{margin-top:clamp(5rem,9vw,9rem);padding:1.25rem 0 clamp(5rem,9vw,9rem);border-top:1px solid var(--ink)}.stack-list{display:flex;flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none}.stack-list li{padding:.5rem .65rem;border:1px solid var(--rule);font-size:.78rem;transition:background .18s ease,border-color .18s ease,color .18s ease}.stack-list li:hover{border-color:var(--cobalt);background:var(--cobalt);color:#fff}.project-pagination{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:clamp(3rem,7vw,7rem);border:0;background:var(--ink);color:var(--paper)}.project-pagination a{display:grid;gap:.35rem;min-height:9rem;align-content:center;padding:1rem 0;font-size:clamp(1.7rem,3.5vw,4rem);font-weight:400;letter-spacing:-.045em;transition:background .18s ease,color .18s ease,padding .22s var(--ease-out)}.project-pagination a:first-child{padding-right:1rem}.project-pagination a:last-child{padding-left:1rem;border-left:1px solid rgba(239,237,229,.35);text-align:right}.project-pagination a:hover{background:var(--cobalt);color:#fff}.project-pagination a:first-child:hover{padding-left:1rem}.project-pagination a:last-child:hover{padding-right:1rem}.project-pagination span{color:var(--muted)}.about-section{display:grid;grid-template-columns:minmax(18rem,.65fr) minmax(0,1fr);gap:clamp(2rem,5vw,6rem);height:calc(100svh - 64px);min-height:0}.about-heading{position:relative;display:flex;align-items:flex-end;margin-left:calc(var(--page-gutter) * -1);padding:clamp(2rem,5vh,4rem) var(--page-gutter);background:var(--cobalt);color:#fff}.about-heading:after{position:absolute;top:clamp(1rem,3vw,2.5rem);right:clamp(1rem,3vw,2.5rem);width:clamp(2rem,4vw,3.5rem);aspect-ratio:1;border:1px solid rgba(255,255,255,.75);content:"";transform:rotate(45deg)}.about-heading h1{margin:0;font-size:clamp(4.5rem,min(10vw,18vh),10rem);font-weight:400;letter-spacing:-.075em;line-height:.72;animation:title-reveal .62s var(--ease-out) both}.about-body{align-self:center;padding:clamp(1rem,3vh,2rem) 0;max-width:52rem;animation:body-arrive .62s 80ms var(--ease-out) both}.about-lead{max-width:35ch;margin:0;font-size:clamp(1.75rem,min(3.1vw,5.2vh),3.2rem);font-weight:400;letter-spacing:-.045em;line-height:1.02}.resume-block{margin-top:clamp(1.5rem,4vh,3rem);border-top:1px solid var(--ink)}.resume-block__heading,.resume-row{display:grid;grid-template-columns:minmax(9rem,.35fr) 1fr;gap:2rem;padding:clamp(.55rem,1.2vh,.8rem) 0;border-bottom:1px solid var(--rule)}.resume-block h2,.resume-row h3,.resume-row p{margin:0}.resume-block h2{font-size:.76rem;font-weight:400;letter-spacing:.04em;text-transform:uppercase}.resume-row h3{font-size:.95rem;font-weight:400}.resume-row{transition:padding-inline .22s var(--ease-out)}.resume-row:hover{padding-inline:.5rem}.resume-row p{color:var(--muted);font-size:.95rem;line-height:1.45}.about-links{display:flex;flex-wrap:wrap;gap:2rem;margin-top:clamp(1rem,2.5vh,1.75rem)}.text-link{font-size:.9rem;font-weight:400}.button-link{display:inline-flex;gap:1rem;align-items:center;padding:.85rem 1rem;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-size:.86rem;transition:background .18s ease,border-color .18s ease,transform .18s ease}.button-link:hover{border-color:var(--cobalt);background:var(--cobalt);transform:translateY(-.15rem)}.not-found{position:relative;display:grid;min-height:calc(100svh - 64px);align-content:center;justify-items:start;padding:4rem 0;overflow:hidden}.not-found:after{position:absolute;z-index:-1;right:0;width:min(35vw,28rem);aspect-ratio:1;border:clamp(1rem,3vw,3rem) solid var(--cobalt);background:var(--accent);content:"";transform:rotate(8deg) translate(18%)}.not-found h1{max-width:11ch;margin:0 0 2.5rem;font-size:clamp(3.5rem,8vw,8rem);font-weight:400;letter-spacing:-.065em;line-height:.82}@keyframes page-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes case-header-arrive{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}@keyframes body-arrive{0%{opacity:0;transform:translate(1rem)}to{opacity:1;transform:translate(0)}}@media(max-width:1000px){.home-title{font-size:clamp(5.5rem,min(15vw,21vh),9rem)}.case-study__why{grid-template-columns:minmax(12rem,.45fr) 1fr}.case-study__why .project-links{grid-column:2;justify-content:flex-start}.about-heading h1{font-size:clamp(4.5rem,min(12vw,18vh),8rem)}}@media(max-width:760px){.home-stage{grid-template-rows:3.25rem minmax(0,1fr) 3.25rem auto}.home-navigation{gap:clamp(1rem,6vw,2rem);justify-content:space-between;font-size:.86rem}.home-hero{grid-template-columns:minmax(0,1.15fr) minmax(7.5rem,.7fr);gap:1rem;padding-top:1rem;padding-bottom:1rem}.home-title{font-size:clamp(4.6rem,min(21vw,18vh),7.25rem)}.home-projects-heading{font-size:1rem}.home-project-row{grid-template-columns:2.2rem minmax(0,1fr) 2.8rem 2rem;gap:.65rem;min-height:clamp(2.6rem,7vh,3.5rem)}.home-project-row__category{display:none}.home-project-row__number{font-size:clamp(1rem,5vw,1.5rem)}.home-project-row__title{font-size:clamp(1.1rem,5.7vw,1.8rem)}.home-project-row__year{font-size:.68rem}.home-project-row__arrow{font-size:1.35rem}.desktop-navigation{display:none}.site-header{grid-template-columns:auto 1fr}.mobile-navigation{position:relative;display:block;justify-self:end}.mobile-navigation summary{display:flex;gap:.5rem;align-items:center;cursor:pointer;font-size:.84rem;font-weight:400;list-style:none;text-transform:uppercase}.mobile-navigation summary:after{display:grid;width:1.2rem;height:1.2rem;place-items:center;border:1px solid var(--ink);content:"+";line-height:1}.mobile-navigation[open] summary:after{content:"−"}.mobile-navigation summary::-webkit-details-marker{display:none}.mobile-navigation nav{position:absolute;top:calc(100% + 1.4rem);right:0;display:grid;min-width:min(16rem,calc(100vw - 2rem));padding:.75rem 1rem;border:1px solid var(--ink);background:var(--paper);box-shadow:.4rem .4rem 0 var(--cobalt)}.mobile-navigation nav a{display:flex;justify-content:space-between;padding:.8rem 0;border-bottom:1px solid var(--rule-soft);font-weight:400}.mobile-navigation nav a:last-child{border-bottom:0}.projects-index{grid-template-columns:1fr}.project-index-card__meta{grid-template-columns:auto minmax(0,1fr) auto auto}.project-index-card__meta p:first-of-type{grid-row:2;grid-column:2 / 4}.project-index-card__arrow{grid-column:4;grid-row:1}.case-study__header{grid-template-columns:2rem minmax(0,1fr) auto}.case-study__why,.feature-section{grid-template-columns:1fr}.case-study__why .project-links{grid-column:auto}.academic-story__section,.tsa-story__intro,.tsa-story__section,.academic-story__screenshots{grid-template-columns:1fr}.story-chapter{grid-template-columns:2rem 1fr}.story-chapter p{grid-column:2}.case-gallery{grid-template-columns:1fr}.case-gallery .case-media:nth-child(3n){grid-column:auto}.resume-block__heading,.resume-row{grid-template-columns:minmax(7rem,.45fr) 1fr;gap:.75rem}.about-section{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:0}.about-heading{align-items:center;margin-right:calc(var(--page-gutter) * -1);padding:clamp(.9rem,2.5vh,1.5rem) var(--page-gutter)}.about-heading h1{font-size:clamp(3.5rem,min(18vw,14vh),6rem)}.about-body{display:flex;flex-direction:column;align-self:stretch;justify-content:center;padding:clamp(.75rem,2vh,1.25rem) 0}.about-lead{max-width:none;font-size:clamp(1.05rem,min(4.8vw,3.4vh),1.5rem);line-height:1.05}.resume-block{margin-top:clamp(.75rem,2vh,1.25rem)}.resume-block__heading,.resume-row{padding:clamp(.35rem,1vh,.6rem) 0}.resume-block h2,.resume-row h3,.resume-row p,.about-links,.text-link{font-size:clamp(.7rem,2.5vw,.85rem)}.about-links{margin-top:clamp(.65rem,1.5vh,1rem)}}@media(max-width:520px){:root{--page-gutter: 1rem}.home-title{font-size:clamp(4.25rem,min(23vw,18vh),6rem)}.projects-page__header h1{font-size:clamp(4.5rem,24vw,8rem)}.project-index-card__meta h2{font-size:1.45rem}.case-study__header h1{font-size:clamp(3.5rem,20vw,6rem)}.case-study__number,.case-study__top{width:2rem;height:2rem}.case-media figcaption{grid-template-columns:1fr;gap:.4rem}.feature-section ul,.academic-story__features,.project-pagination{grid-template-columns:1fr}.feature-section li:nth-child(odd),.feature-section li:nth-child(2n),.academic-story__features li:nth-child(odd),.academic-story__features li:nth-child(2n){padding-right:0;padding-left:0;border-left:0}.project-pagination a:first-child,.project-pagination a:last-child{padding:1rem 0;border-left:0;text-align:left}.project-pagination a:last-child{border-top:1px solid var(--ink)}.not-found:after{top:1rem;width:9rem;opacity:.2}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}}
