@font-face{font-family:Brown;src:url(/assets/Brown-Regular-CNL6Oapy.otf) format("opentype");font-weight:400;font-display:swap}@font-face{font-family:Brown;src:url(/assets/Brown-Bold-CYu8oor8.otf) format("opentype");font-weight:700;font-display:swap}@property --accent{syntax: "<color>"; inherits: true; initial-value: #e7c960;}:root{--ink: #24383f;--paper: #f1f1f4;--soft: #acc6c9;--yellow: #e7c960;--accent: var(--yellow);--soft-text: #d3dfe0;--line-on-dark: rgba(172, 198, 201, .36);--muted: #5e7076;--gutter: clamp(24px, 6vw, 96px);--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--green: #264c59;--white: #f7f7f5;color:var(--ink);background:var(--paper);font-family:Brown,Helvetica Neue,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;transition:--accent .45s ease}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--paper)}body,button,a{color:var(--ink)}a{text-decoration:none}:focus-visible{outline:3px solid currentColor;outline-offset:4px}.skip-link{position:fixed;top:12px;left:12px;z-index:100;padding:12px 16px;color:var(--ink);background:var(--accent);transform:translateY(-200%)}.skip-link:focus-visible{transform:translateY(0)}img{display:block;width:100%}p,h1,h2,h3,figure{margin:0}::selection{color:var(--ink);background:var(--accent)}.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1)}.reveal.is-visible{opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important}}.accent{color:var(--accent)}.nav-links a,.text-link,.contact-links a,footer a{transition:opacity .18s ease}.nav-links a:hover,.text-link:hover,.contact-links a:hover,footer a:hover{opacity:.85}.arrow{display:inline-block;transition:transform .22s cubic-bezier(.22,1,.36,1)}.text-link:hover .arrow,.text-link:focus-visible .arrow,.project:hover .arrow,.project:focus-visible .arrow,.archive-list a:hover .arrow,.archive-list a:focus-visible .arrow,.contact-links a:hover .arrow,.contact-links a:focus-visible .arrow{transform:translate(3px,-3px)}.work:before,.contact:before{content:"";position:absolute;z-index:-1;inset:0;background:var(--white);opacity:.07;mask-image:url(/img/new/pattern.webp);mask-repeat:repeat;mask-size:1400px;-webkit-mask-image:url(/img/new/pattern.webp);-webkit-mask-repeat:repeat;-webkit-mask-size:1400px;pointer-events:none}.section-label,.project-meta{font-size:.74rem;letter-spacing:.15em;text-transform:uppercase}.text-link{display:inline-flex;align-items:center;justify-content:space-between;width:fit-content;min-width:190px;margin-top:clamp(44px,4.6vw,68px);padding-bottom:8px;border-bottom:1px solid currentColor;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase}.hero-portrait picture,.personal picture{display:contents}.about,.archive{position:relative;display:grid;grid-template-columns:1fr 2.25fr;gap:clamp(40px,7vw,120px);padding:clamp(112px,14vw,220px) var(--gutter)}.about>.section-label,.teaching>.section-label{grid-column:1;grid-row:1}.section-label{padding-top:.45em}.about h2,.work-heading h2,.archive h2{max-width:1080px;font-size:clamp(2.6rem,5.6vw,6rem);font-weight:400;letter-spacing:-.035em;line-height:.98}@media(max-width:900px),(pointer:coarse){.text-link{padding-top:12px}}.site-nav{position:fixed;top:0;left:0;z-index:10;display:flex;align-items:center;justify-content:space-between;width:100%;min-height:76px;padding:16px var(--gutter);color:var(--white);background:#264c59f5;border-bottom:1px solid var(--line-on-dark);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}#about,#teaching,#work,#contact{scroll-margin-top:76px}.wordmark{display:block;width:38px;height:38px;overflow:hidden;border-radius:50%;flex:0 0 auto}.wordmark img{width:100%;height:100%}.brand-lockup{display:inline-flex;align-items:center;gap:12px;color:var(--white);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase}.nav-links{display:flex;gap:clamp(18px,3vw,42px)}.nav-links a{position:relative;padding:8px 0;color:inherit;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase}.nav-links a:after{content:"";position:absolute;right:0;bottom:1px;left:0;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .18s ease}.nav-links a:hover:after,.nav-links a:focus-visible:after,.nav-links a.is-active:after{transform:scaleX(1)}.nav-links a.is-active{color:var(--white)}footer{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:26px var(--gutter);color:var(--soft);background:var(--green);border-top:1px solid var(--line-on-dark);font-size:.76rem;letter-spacing:.12em;text-transform:uppercase}footer a{color:var(--white)}@media(max-width:560px){.site-nav{padding-top:20px}.nav-links{gap:clamp(9px,3vw,14px)}.nav-links a{padding:14px 0;font-size:clamp(.62rem,2.9vw,.72rem);letter-spacing:.1em}.nav-links a:after{bottom:7px}.brand-lockup>span:last-child{display:none}.footer-brand>span:last-child{display:inline}footer{flex-direction:column;gap:10px;padding-right:24px;padding-left:24px}}@media(max-width:900px),(pointer:coarse){.nav-links a{padding:14px 0}.nav-links a:after{bottom:7px}footer a{padding:12px 0}}.code-panel{width:min(560px,100%);border-radius:14px;overflow:hidden;background:#1b2b30;border:1px solid rgba(255,255,255,.08);box-shadow:0 40px 90px #00000059;animation:heroFadeUp .8s cubic-bezier(.22,1,.36,1) .56s both}.code-panel-bar{display:flex;align-items:center;gap:10px;padding:14px 16px;background:#162327;border-bottom:1px solid rgba(255,255,255,.06)}.code-dot{width:11px;height:11px;border-radius:50%}.code-dot--red{background:#e5675f}.code-dot--yellow{background:var(--yellow)}.code-dot--green{background:#6bbf8a}.code-filename{margin-left:6px;font-family:var(--mono);font-size:.76rem;color:#9fb2b6}.code-body{margin:0;padding:26px 28px 32px;font-family:var(--mono);font-size:clamp(.86rem,1.4vw,1.02rem);line-height:1.85;color:#d9e2e3}.code-line{overflow:hidden;white-space:pre;clip-path:inset(0 100% 0 0);animation:codeType .64s steps(28,end) forwards;animation-delay:calc(var(--i) * .26s + 1s)}@keyframes codeType{to{clip-path:inset(0 0 0 0)}}.code-cursor{display:inline-block;width:9px;height:1.15em;background:var(--accent);vertical-align:text-bottom;opacity:0;animation:codeCursorIn 1ms forwards,codeBlink 1s step-end infinite;animation-delay:calc(var(--i) * .26s + 1s),calc(var(--i) * .26s + 1s)}@keyframes codeCursorIn{to{opacity:1}}@keyframes codeBlink{50%{opacity:0}}.code-body .kw{color:#7fb8c9}.code-body .prop{color:var(--white)}.code-body .str{color:var(--accent)}.code-body .punc{color:#6c8288}.code-body .com{color:#8aa0a5}.code-body .fn{color:#7fb8c9}.code-body .num{color:var(--accent)}.code-live{display:inline-flex;align-items:center;gap:7px;margin-left:auto;color:var(--accent);font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase}.code-live:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);animation:livePulse 1.8s ease-in-out infinite}@keyframes livePulse{50%{opacity:.25}}.code-control{margin:0;padding:0 7px;border:0;border-radius:5px;color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,transparent);font:inherit;line-height:1.5;cursor:pointer;transition:background .16s ease,color .16s ease}.code-control:hover{background:color-mix(in srgb,var(--accent) 32%,transparent)}.code-control:focus-visible{outline:2px solid var(--white);outline-offset:-2px}.code-control[aria-pressed=true]:focus-visible{outline-color:#1b2b30}.code-control[aria-pressed=true]{color:#1b2b30;background:var(--accent)}.code-control:disabled{opacity:.35;cursor:default}.code-swatch{display:inline-block;width:.68em;height:.68em;margin-right:7px;border-radius:50%;background:var(--accent)}.code-stepper{display:inline-flex;align-items:center;gap:8px}.code-stepper .code-control{min-width:26px;text-align:center}.code-stepper .num{min-width:2ch;text-align:center}@media(max-width:560px){.code-body{padding:20px 18px 24px}}@media(max-width:900px),(pointer:coarse){.code-control{padding:6px 11px}.code-stepper .code-control{min-width:38px}}.glyph-mark{grid-column:1;grid-row:1;align-self:end;justify-self:start;padding:0;border:0;color:var(--ink);background:none;font:inherit;text-align:left;cursor:pointer}.glyph-letters{display:grid;grid-template-columns:repeat(2,1em);grid-auto-rows:1em;gap:.06em;font-size:clamp(5rem,8.6vw,9rem);font-weight:700;line-height:1}.glyph-letter{--x: 0%;--y: 0%;--rotate: 0deg;display:grid;place-items:center;transform:translate(var(--x),var(--y)) rotate(var(--rotate));transition:transform .7s cubic-bezier(.34,1.56,.64,1),color .3s ease,-webkit-text-stroke-color .3s ease}.glyph-letter--accent{color:var(--accent)}.glyph-letter--green{color:var(--green)}.glyph-letter--soft{color:var(--soft)}.glyph-letter--outline{color:transparent;-webkit-text-stroke:2px var(--ink)}.glyph-mark:hover .glyph-letter:nth-child(odd){transform:translate(var(--x),var(--y)) rotate(calc(var(--rotate) + 8deg))}.glyph-mark:hover .glyph-letter:nth-child(2n){transform:translate(var(--x),var(--y)) rotate(calc(var(--rotate) - 8deg))}.glyph-mark--roles .glyph-letters{grid-template-columns:repeat(3,.82em);font-size:clamp(4.6rem,7.6vw,8rem)}.glyph-letter--pop{animation:glyphPop .52s cubic-bezier(.34,1.56,.64,1) both}.glyph-hint--pop{animation:hintIn .42s cubic-bezier(.22,1,.36,1) both}@keyframes hintIn{0%{opacity:0;transform:translateY(6px)}}@keyframes glyphPop{0%{opacity:0;transform:scale(.3) rotate(-40deg)}}.glyph-hint{display:block;margin-top:18px;color:var(--muted);font-family:var(--mono);font-size:.74rem}@media(max-width:900px){.glyph-mark{grid-row:auto;order:1}.glyph-letters{grid-template-columns:repeat(4,1em);font-size:clamp(4.2rem,19vw,7rem)}}.hero{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr);min-height:100svh;overflow:hidden;color:var(--white);background:var(--green)}.glyph-field{position:relative;grid-column:1;grid-row:1;min-width:0;min-height:0;overflow:hidden}.glyph-field canvas{position:absolute;inset:0;display:block;width:100%;height:100%}.hero-copy{position:relative;z-index:1;grid-column:1;grid-row:1;display:flex;flex-direction:column;justify-content:flex-end;padding:138px var(--gutter) clamp(48px,6vw,88px)}.hero h1{max-width:920px;font-size:clamp(4rem,8.3vw,9rem);font-weight:400;letter-spacing:-.045em;line-height:.88}.hero-roles{display:flex;flex-wrap:wrap;gap:6px 0;margin:clamp(22px,2.4vw,34px) 0 0;padding:0;font-size:clamp(1.2rem,1.9vw,1.75rem);letter-spacing:-.01em;line-height:1.25;list-style:none}.hero-roles li+li:before{content:"·";margin:0 .55em;color:var(--accent)}.hero .text-link{color:var(--white)}.hero-links{display:flex;flex-wrap:wrap;gap:0 28px}.hero-media{position:relative;grid-column:2;grid-row:1;min-height:620px;overflow:hidden}.hero-portrait{position:relative;height:100%;min-height:620px;overflow:hidden;background:var(--soft)}.hero-portrait img{height:100%;width:100%;object-fit:cover;object-position:53% center;animation:heroZoom 20s ease-in-out infinite alternate}@keyframes heroZoom{0%{transform:scale(1)}to{transform:scale(1.06)}}.hero-media:after{content:"";position:absolute;inset:auto 0 0;z-index:1;height:58%;background:linear-gradient(180deg,#14242900,#142429a6);pointer-events:none}.hero-code-float{position:absolute;z-index:2;left:28px;right:28px;bottom:28px}.hero-code-float .code-panel{width:100%;max-width:460px}.hero-copy>*{animation:heroFadeUp .8s cubic-bezier(.22,1,.36,1) both}.hero-copy>*:nth-child(1){animation-delay:80ms}.hero-copy>*:nth-child(2){animation-delay:.2s}.hero-copy>*:nth-child(3){animation-delay:.34s}.hero-copy>*:nth-child(4){animation-delay:.46s}@keyframes heroFadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.hero{grid-template-columns:1fr}.hero-copy{padding-bottom:clamp(40px,6vw,64px)}.hero-media{grid-column:1;grid-row:2;display:flex;flex-direction:column;min-height:0}.hero-media:after{display:none}.hero-portrait{height:72svh;min-height:440px}.hero-code-float{position:static;order:-1;padding:0 var(--gutter) clamp(40px,6vw,64px);background:var(--green)}.hero-portrait{min-height:0}}@media(max-width:560px){.hero-code-float{padding-right:16px;padding-left:16px}.hero-copy{padding-top:110px}.hero-roles{flex-direction:column;gap:4px}.hero-roles li+li:before{content:none}.hero h1{font-size:clamp(3.2rem,17vw,5.8rem)}}@media(min-width:901px)and (max-height:820px){.hero-portrait img{object-position:53% 12%}.hero-code-float{bottom:20px}.hero .code-panel-bar{padding:10px 14px}.hero .code-body{padding:14px 22px 16px;font-size:.8rem;line-height:1.6}.hero .code-cursor{display:none}}@media(max-width:900px),(pointer:coarse){.hero .code-body{line-height:2.5}}@media(max-width:360px){.hero .code-body{font-size:.7rem}}.about-details{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(240px,.8fr);gap:clamp(40px,7vw,110px);align-items:start;margin-top:clamp(60px,8vw,112px)}.about-copy{max-width:680px;font-size:clamp(1.06rem,1.55vw,1.38rem);line-height:1.68}.about-facts{margin:0;border-top:1px solid var(--ink)}.about-facts div{display:grid;grid-template-columns:104px 1fr;gap:20px;padding:22px 0 20px;border-bottom:1px solid var(--ink)}.about-facts dt,.about-facts dd{margin:0;font-size:.82rem;line-height:1.4}.about-facts dt{padding-top:.1em;color:var(--muted);font-size:.74rem;letter-spacing:.15em;text-transform:uppercase}.personal{display:grid;grid-template-columns:1fr 1fr;min-height:760px;background:var(--soft)}.personal figure{overflow:hidden}.personal img{height:100%;object-fit:cover;object-position:50% center}.personal>div{display:flex;flex-direction:column;justify-content:center;padding:clamp(64px,9vw,150px)}.personal h2{margin-top:clamp(42px,6vw,80px);font-size:clamp(2.4rem,4.5vw,5rem);font-weight:400;letter-spacing:-.035em;line-height:1}.personal-copy{max-width:520px;margin-top:56px}.personal-copy p{font-size:1.05rem;line-height:1.72}.personal-copy p+p{margin-top:18px}.personal-links{display:flex;flex-wrap:wrap;gap:12px 28px}.personal-links .text-link{min-width:140px}@media(max-width:900px){.about,.about-details,.personal{grid-template-columns:1fr}.personal figure{height:74vw;min-height:520px}}@media(max-width:560px){.about{padding-right:24px;padding-left:24px}.personal figure{height:105vw;min-height:460px}.personal>div{padding-right:24px;padding-left:24px}}.repo-filters button:focus-visible,.repo-card:focus-visible,.repo-more:focus-visible{outline-color:var(--ink)}.teaching{position:relative;overflow-x:clip;display:grid;grid-template-columns:1fr 2.25fr;gap:clamp(40px,7vw,120px);padding:clamp(112px,14vw,220px) var(--gutter) clamp(72px,9vw,130px)}.teaching-body{max-width:1040px}.teaching-body h2{max-width:880px;text-wrap:balance;font-size:clamp(2.6rem,5.6vw,6rem);font-weight:400;letter-spacing:-.035em;line-height:.98}.teaching-lead{max-width:680px;margin-top:clamp(60px,8vw,112px);font-size:clamp(1.06rem,1.55vw,1.38rem);line-height:1.68}.teaching-copy{font-size:1.05rem;line-height:1.72}.teaching-copy p+p{margin-top:26px}.teaching-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(364px,.95fr);gap:clamp(40px,4.5vw,64px);align-items:start;margin-top:clamp(40px,5vw,64px)}.teaching-split .teaching-copy{margin-top:0}.lesson-loop .code-panel{width:100%;box-shadow:0 30px 60px #14242938;animation:none}.lesson-loop .code-body{overflow-x:auto;font-size:.84rem}.lesson-loop figcaption{margin-top:16px;color:var(--muted);font-size:.84rem;line-height:1.5}.loop-line{margin:0 -10px;padding:0 10px;border-radius:6px;white-space:pre}.loop-line--step{animation:loopStep 4.5s linear infinite;animation-delay:calc(var(--i) * 1.5s)}@keyframes loopStep{0%,32%{background:color-mix(in srgb,var(--accent) 20%,transparent)}33.3%,to{background:transparent}}.resources{padding:0 var(--gutter) clamp(112px,14vw,220px);background:var(--paper)}.resources-intro{display:grid;grid-template-columns:1fr 2.25fr;column-gap:clamp(40px,7vw,120px);padding-top:clamp(72px,9vw,130px);border-top:1px solid rgba(36,56,63,.16)}.resources-intro>.section-label{grid-column:1;grid-row:1 / span 2}.resources-intro>h2,.resources-intro>p:last-child{grid-column:2}.repo-browser{scroll-margin-top:110px;margin-top:clamp(64px,8vw,120px)}.repo-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 24px;padding-bottom:32px;border-bottom:1px solid var(--ink)}.repo-filters{display:flex;flex-wrap:wrap;gap:8px}.repo-filters button{padding:11px 17px 10px;border:1px solid var(--ink);border-radius:999px;color:var(--ink);background:transparent;font:inherit;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:background .16s ease,color .16s ease}.repo-filters button:hover{background:#24383f1a}.repo-filters button[aria-pressed=true]{border-color:var(--green);color:var(--white);background:var(--green)}.repo-count{color:var(--muted);font-family:var(--mono);font-size:.78rem}.repo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));gap:clamp(20px,2.4vw,36px);margin:clamp(32px,4vw,56px) 0 0;padding:0;list-style:none}.repo-grid li{animation:repoIn .48s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--i) * 40ms)}@keyframes repoIn{0%{opacity:0;transform:translateY(14px)}}.repo-card{display:flex;flex-direction:column;height:100%;min-height:240px;padding:28px 28px 26px;border-top:3px solid var(--green);background:var(--white);transition:background .2s ease,color .2s ease,border-color .2s ease,transform .3s cubic-bezier(.22,1,.36,1)}.repo-topic{color:var(--green);font-size:.74rem;letter-spacing:.15em;text-transform:uppercase}.repo-name{margin-top:24px;font-size:1.55rem;letter-spacing:-.02em;line-height:1.05}.repo-detail{margin-top:14px;color:var(--muted);font-size:.92rem;line-height:1.45}.repo-path{display:flex;justify-content:space-between;gap:12px;margin-top:auto;padding-top:32px;color:var(--muted);font-family:var(--mono);font-size:.72rem;overflow-wrap:anywhere}.repo-more{display:block;min-width:260px;margin:clamp(32px,4vw,56px) auto 0;padding:18px 20px 16px;border:1px solid var(--ink);border-radius:999px;color:var(--ink);background:transparent;font:inherit;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:background .16s ease,color .16s ease}.repo-more:hover{color:var(--white);background:var(--green);border-color:var(--green)}.repo-topic,.repo-detail,.repo-path{transition:color .2s ease}.repo-card:hover,.repo-card:focus-visible,.repo-card--all{border-top-color:var(--accent);color:var(--white);background:var(--green)}.repo-card:hover,.repo-card:focus-visible{transform:translateY(-4px)}.repo-card:hover .repo-topic,.repo-card:focus-visible .repo-topic,.repo-card--all .repo-topic{color:var(--accent)}.repo-card:hover .repo-detail,.repo-card:hover .repo-path,.repo-card:focus-visible .repo-detail,.repo-card:focus-visible .repo-path,.repo-card--all .repo-path{color:var(--soft-text)}.repo-card:hover .arrow,.repo-card:focus-visible .arrow{transform:translate(3px,-3px)}.repo-card--all:hover,.repo-card--all:focus-visible{border-top-color:var(--ink);color:var(--ink);background:var(--accent)}.repo-card--all:hover .repo-topic,.repo-card--all:hover .repo-path,.repo-card--all:focus-visible .repo-topic,.repo-card--all:focus-visible .repo-path{color:var(--ink)}.resources-intro h2{max-width:760px;font-size:clamp(2.5rem,4.8vw,5.2rem);font-weight:400;letter-spacing:-.035em;line-height:.98}.resources-intro>p:last-child{max-width:590px;margin-top:48px;font-size:1.05rem;line-height:1.72}@media(max-width:1180px){.teaching-split{grid-template-columns:minmax(0,1fr)}.lesson-loop{max-width:480px}}@media(max-width:900px){.resources-intro{grid-template-columns:1fr}.resources-intro>.section-label,.resources-intro>h2,.resources-intro>p:last-child{grid-column:1;grid-row:auto}.resources-intro>h2{margin-top:28px}.teaching{grid-template-columns:1fr}}@media(max-width:560px){.teaching,.resources{padding-right:24px;padding-left:24px}.repo-more{width:100%;margin-top:20px}}@media(max-width:374px){.lesson-loop .code-body{font-size:.74rem}}.project-meta p{line-height:1.5}.work-banner{height:clamp(320px,44vw,760px);overflow:hidden;background:var(--soft)}.work-banner img{height:100%;object-fit:cover;object-position:center}.work{position:relative;isolation:isolate;overflow:hidden;padding:clamp(100px,14vw,210px) 0 0;color:var(--white);background:var(--green)}.work-heading{display:block;width:100%;max-width:none;margin:0 auto clamp(90px,12vw,180px);padding:0 var(--gutter)}.work-heading .section-label{position:relative;z-index:1;color:var(--accent)}.work-heading h2{max-width:none;margin-top:clamp(42px,6vw,88px);font-size:clamp(7rem,15vw,16rem);font-weight:700;letter-spacing:-.015em;line-height:.68;text-transform:uppercase}.work-heading h2 span{display:block;width:fit-content;white-space:nowrap}.work-heading h2 span:first-child{transform:translate(clamp(0px,7vw,120px))}.work-heading h2 span:last-child{position:relative;margin-top:-.16em;color:var(--accent);transform:translate(clamp(44px,34vw,680px))}.project-list{--project-cut: clamp(28px, 3.5vw, 64px);display:grid}.project{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,920px) minmax(280px,440px);gap:clamp(40px,6vw,104px);justify-content:center;padding:clamp(96px,12vw,180px) var(--gutter);color:var(--white)}.project:focus-visible{outline-offset:-6px}.project:nth-child(odd){color:var(--ink);background:transparent}.project:nth-child(odd):before{position:absolute;inset:0;z-index:-1;content:"";background:var(--soft);clip-path:polygon(0 var(--project-cut),100% 0,100% calc(100% - var(--project-cut)),0 100%)}.project:nth-child(4n+3):before{clip-path:polygon(0 0,100% var(--project-cut),100% 100%,0 calc(100% - var(--project-cut)))}.project:nth-child(odd):last-child:before{bottom:-1px;clip-path:polygon(0 var(--project-cut),100% 0,100% 100%,0 100%)}.project:nth-child(4n+3):last-child:before{clip-path:polygon(0 0,100% var(--project-cut),100% 100%,0 100%)}.project:nth-child(odd) .project-meta{color:var(--green);border-color:#24383f61}.project:nth-child(odd) .project-role{color:var(--green)}.project:nth-child(odd) .project-copy>p:last-child{color:#3b5159}.project:nth-child(2n){grid-template-columns:minmax(280px,440px) minmax(0,920px);background:var(--green)}.project:nth-child(2n) figure{order:2}.project-figure{min-height:0;transition:transform .35s cubic-bezier(.22,1,.36,1)}.project-figure img{height:auto;transition:transform .5s cubic-bezier(.22,1,.36,1)}.project:hover figure,.project:focus-visible figure{transform:translateY(-3px)}.project:hover img,.project:focus-visible img{transform:scale(1.03)}.project-copy{display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:clamp(24px,2vw,36px)}.project-meta{display:flex;justify-content:space-between;gap:20px;padding-bottom:18px;border-bottom:1px solid var(--line-on-dark);color:var(--soft)}.project-copy h3{display:flex;justify-content:space-between;gap:20px;margin-top:30px;font-size:clamp(2.15rem,4vw,4.6rem);font-weight:400;letter-spacing:-.03em;line-height:.98}.project-role{margin-top:32px;color:var(--accent);font-size:.74rem;letter-spacing:.15em;line-height:1.4;text-transform:uppercase}.project-copy>p:last-child{max-width:520px;margin-top:36px;color:var(--soft-text);font-size:1.05rem;line-height:1.72}.project--static:hover figure,.project--static:hover img{transform:none}@media(max-width:900px){.project,.project:nth-child(2n){grid-template-columns:1fr;gap:clamp(30px,5vw,44px)}.project:nth-child(2n) figure{order:initial}.project-copy{padding-bottom:0}}@media(max-width:560px){.work-heading h2{margin-top:36px;font-size:clamp(4.5rem,20vw,7rem);line-height:.72}.work-heading h2 span:first-child{transform:none}.work-heading h2 span:last-child{transform:translate(clamp(32px,18vw,90px))}.project{padding:64px 24px}.work-banner{height:clamp(260px,64vw,380px)}}.archive-list a.reveal:nth-child(2){transition-delay:70ms}.archive-list a.reveal:nth-child(3){transition-delay:.14s}.archive-list a.reveal:nth-child(4){transition-delay:.21s}.archive{background:var(--soft)}.archive h2{margin-top:28px;font-size:clamp(2.5rem,4.8vw,5.2rem)}.archive-list{align-self:end;border-top:1px solid var(--ink)}.archive-list a{display:grid;grid-template-columns:1fr 1fr auto;gap:24px;padding:32px 0 29px;border-bottom:1px solid var(--ink);transition:padding .18s ease,background .18s ease}.archive-list a:hover{padding-right:14px;padding-left:14px;background:#ffffff4d}.archive-list span:nth-child(2){color:var(--green)}.archive-content{display:grid;gap:clamp(56px,7vw,100px);align-self:end}.archive-features{display:grid;gap:36px}.archive-feature{display:grid;grid-template-columns:minmax(170px,220px) 1fr;overflow:hidden;background:#f7f7f580}.archive-feature figure{min-height:220px;background:#96c7c8}.archive-feature img{height:100%;object-fit:cover}.archive-feature>div{align-self:center;padding:clamp(32px,5vw,68px)}.archive-feature .project-role{margin-top:0;color:var(--green)}.archive-feature h3{margin-top:14px;font-size:clamp(2rem,3vw,3.2rem);font-weight:400;letter-spacing:-.03em;line-height:1}.archive-feature div>p:last-child{max-width:580px;margin-top:26px;font-size:1.05rem;line-height:1.72}@media(max-width:900px){.archive{grid-template-columns:1fr}}@media(max-width:560px){.archive{padding-right:24px;padding-left:24px}.archive-list a{grid-template-columns:1fr auto}.archive-list span:nth-child(2){display:none}.archive-feature{grid-template-columns:1fr}.archive-feature figure{height:min(86vw,420px)}}.contact-links a.reveal:nth-child(2){transition-delay:70ms}.contact-links a.reveal:nth-child(3){transition-delay:.14s}.contact-links a.reveal:nth-child(4){transition-delay:.21s}.contact .section-label{color:var(--accent)}.contact{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:space-between;min-height:calc(100svh - 168px);overflow:hidden;padding:clamp(44px,8vh,110px) var(--gutter) clamp(32px,5vh,72px);color:var(--white);background:var(--green)}.contact h2{margin-top:clamp(20px,4vh,56px);font-size:clamp(3.4rem,min(10.5vw,16vh),11rem);font-weight:400;letter-spacing:-.045em;line-height:.84}.contact-bottom{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:end;margin-top:clamp(32px,5vh,72px)}.contact-bottom>p{max-width:530px;color:var(--soft-text);font-size:1.05rem;line-height:1.6}.contact-links{display:grid;border-top:1px solid var(--line-on-dark)}.contact-links a{display:flex;justify-content:space-between;padding:clamp(13px,2.2vh,24px) 0 clamp(11px,2vh,22px);border-bottom:1px solid var(--line-on-dark);color:var(--white)}@media(max-width:900px){.contact-bottom{grid-template-columns:1fr}}@media(max-width:560px){.contact{padding-right:24px;padding-left:24px}.contact h2{font-size:20vw}.contact-break{display:none}}.links{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100svh;padding:44px 20px;color:var(--white);text-align:center;background:var(--green)}.links figure{width:150px;height:150px;overflow:hidden;border-radius:50%}.links-brand{margin-bottom:28px}.links figure img{height:100%;object-fit:cover}.links h1{margin-top:24px;font-size:2rem;font-weight:400;letter-spacing:-.025em}.links header p{margin:8px 0 28px;color:var(--soft-text)}.link-tree{display:grid;width:min(100%,420px)}.link-tree a{display:flex;align-items:center;justify-content:center;padding:15px;border-bottom:1px solid var(--line-on-dark);color:var(--white)}.link-tree a:first-child{border-top:1px solid var(--line-on-dark)}.link-tree i{margin-right:10px}@media(max-width:560px){.links-brand>span:last-child{display:inline}}
