@font-face{font-family:Geist Variable;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.woff2)format("woff2")}:root{color-scheme:light;--surface:#eeeff0;--headline:#000;--ink:#000;--muted:var(--ink);--link:var(--ink);--line:#ced0d3;--portrait:#dbdde0}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:36px}body{background:var(--surface);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Geist Variable,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.7}::selection{background:var(--line);color:var(--ink)}a{color:inherit;text-underline-offset:3px;text-decoration:none}a:focus-visible{outline:2px solid var(--ink);outline-offset:6px}a:hover,a:active{text-decoration:underline}h1,h2,h3,p,figure{margin:0}.name,h1,h2,h3{font-weight:600}.name,h1{color:var(--headline)}.page-layout{grid-template-columns:240px minmax(0,1fr);align-items:start;gap:96px;width:min(1000px,100% - 96px);margin-inline:auto;padding-block:72px;display:grid}.profile{will-change:transform;flex-direction:column;align-items:flex-start;display:flex;position:sticky;top:72px}.name{letter-spacing:-.025em;margin-top:24px;font-size:24px;line-height:32px}.portrait{aspect-ratio:4/5;background:var(--portrait);width:100%;overflow:hidden}.portrait img{object-fit:cover;object-position:50% center;width:100%;height:100%;display:block}.bio{color:var(--muted);margin-top:12px;font-size:14px;line-height:19px}.section-nav{flex-direction:column;align-items:flex-start;gap:0;margin-top:24px;line-height:20px;display:flex}.profile a{font-weight:500}.profile a.name{font-weight:600}.section-nav a[aria-current=location],.section-nav a[aria-current=page]{font-weight:700}html:not(.has-scoping) .scoping-link{display:none}.scoping-link{align-items:center;gap:5px;display:inline-flex}.lock-icon{fill:currentColor;flex:none;width:.8em;height:.8em}.contact-links{flex-direction:column;align-items:flex-start;gap:0;margin-top:24px;display:flex}.contact-link{color:var(--link);font-size:14px;line-height:20px}.page-footer{flex-wrap:wrap;justify-content:space-between;gap:12px 24px;margin-top:96px;font-size:12px;line-height:18px;display:flex}.local-time{white-space:nowrap;font-variant-numeric:tabular-nums}.main-content{min-width:0}.mobile-header{display:none}h1,#projects-heading{letter-spacing:-.035em;font-size:40px;line-height:1.12}h2{letter-spacing:-.04em;font-size:30px;line-height:36px}.experience-list{margin:48px 0 0;padding:0;list-style:none}.experience-row{border-top:1px solid var(--line);padding:25px 0 29px}.experience-row:first-child{border-top:0}h3,.company-name{letter-spacing:-.025em;font-size:24px;line-height:32px}.role,.description,.years{color:var(--muted)}.role{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 24px;margin-top:6px;font-size:14px;line-height:22px;display:flex}.description{margin-top:14px;font-size:14px;line-height:24px}.experience .description{font-size:17px}.years{white-space:nowrap;margin-left:auto}.projects,.about{margin-top:72px}.about-copy{margin-top:24px;font-size:17px;line-height:24px}.about-copy p+p{margin-top:20px}.projects-table{border-collapse:collapse;table-layout:fixed;width:100%;margin-top:40px;font-size:14px;line-height:22px}.project-name-column{width:20%}.project-started-column{width:64px}.project-status-column{width:76px}.projects-table th:nth-child(3),.projects-table td.project-started{text-align:right;font-variant-numeric:tabular-nums}.projects-table th,.projects-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);overflow-wrap:break-word;padding:16px 12px 16px 0}.projects-table th{font-weight:600}.projects-table th:last-child,.projects-table td:last-child{text-align:right;padding-right:0}.project-name-text{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.project-description-text{display:block}.projects-table.is-enhanced .project-description-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.projects-table.is-enhanced .is-expanded .project-description-text{white-space:normal;overflow:visible}.project-description-toggle{width:100%;min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:block}.projects-table .is-expandable{cursor:pointer}.project-description-toggle:hover{text-underline-offset:3px;text-decoration-line:underline;text-decoration-style:dashed;text-decoration-thickness:1px}.project-description-toggle:focus-visible{outline:2px solid var(--ink);outline-offset:4px}.project-link:hover{text-underline-offset:5px;text-decoration:underline}.scoping-section{border-top:1px solid var(--line);margin-top:64px;padding-top:56px}.section-title{letter-spacing:-.03em;font-size:30px;line-height:36px}.scoping-text,.mark-list,.loop-list{font-size:17px;line-height:24px}.scoping-text{margin-top:24px}.scoping-text+.scoping-text{margin-top:16px}.text-link{text-decoration:underline}.mark{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:square;flex:none;width:16px;height:16px;margin-top:4px}.mark-list{gap:16px;margin:24px 0 0;padding:0;list-style:none;display:grid}.mark-list li{gap:14px;display:flex}.mark-list+.scoping-text{margin-top:32px}.loop-list{counter-reset:loop;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin:20px 0 0;padding:0;list-style:none;display:grid}.loop-list li{counter-increment:loop;font-size:15px;line-height:22px}.loop-list li:before{content:counter(loop);margin-bottom:8px;font-size:17px;font-weight:600;line-height:24px;display:block}.loop-list strong{margin-bottom:2px;font-size:17px;line-height:24px;display:block}.phase{grid-template-columns:96px minmax(0,1fr);gap:24px;margin-top:56px;display:grid;position:relative}.phase:not(:last-child):before{content:"";border-left:1px dashed var(--line);position:absolute;top:40px;bottom:-48px;left:8px}.scoping-text+.phase{margin-top:40px}.phase-week{font-size:17px;font-weight:600;line-height:32px}.phase-title{letter-spacing:-.025em;font-size:24px;line-height:32px}.phase-title+.scoping-text{margin-top:12px}.hero-shots{grid-template-columns:2fr 1fr;gap:8px;display:grid}.hero-shots .hero-shot-main{aspect-ratio:auto;grid-row:1/span 2}.shot-more{color:#fff;letter-spacing:-.03em;background:#0009;justify-content:center;align-items:center;font-size:30px;font-weight:600;line-height:36px;display:flex;position:absolute;inset:0}.shot:hover .shot-more{background:#000000b3}.gallery{color:#fff;background:0 0;border:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:56px 16px 24px;font-size:14px;line-height:20px}.gallery[open]{justify-content:center;align-items:center;display:flex}.gallery::backdrop{background:#000000d1}.gallery button{color:#fff;cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid}.gallery button:focus-visible{outline-offset:2px;outline:2px solid #fff}.gallery svg{fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:square;width:20px;height:20px}.gallery-close{width:44px;height:44px;position:absolute;top:8px;right:8px}.gallery-figure{flex-direction:column;align-items:center;gap:20px;max-width:100%;max-height:100%;margin:0;display:flex}.gallery-stage{min-height:0;position:relative}.gallery-image{object-fit:contain;border:3px solid var(--ink);background:#fff;max-width:min(100vw - 136px,1280px);max-height:calc(100dvh - 120px);display:block;box-shadow:8px 8px #000000b3}.gallery-arrow{opacity:.75;width:44px;height:44px;position:absolute;top:50%;transform:translateY(-50%)}.gallery-arrow:hover{opacity:1}.gallery-prev{right:calc(100% + 8px)}.gallery-next{left:calc(100% + 8px)}.gallery-caption{text-align:center}.gallery-count{font-variant-numeric:tabular-nums}.shot-panel{background:var(--ink);margin:32px 0 0;padding:8px}.phase .shot-panel{margin-top:24px}.shot-figcaption{color:#fff;margin:8px 0 0;padding:0 4px;font-size:12px;font-weight:500;line-height:16px}.loop-list+.scoping-text{margin-top:24px}.loop-repeat{font-weight:600}.shot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.shot{aspect-ratio:4/3;background:#fff;flex-direction:column;display:flex;position:relative;overflow:hidden}.shot:hover{text-decoration:none}.shot-image{flex:1;min-height:0;position:relative;overflow:hidden}.shot img{object-fit:cover;object-position:left top;width:100%;height:100%;transition:opacity .15s;display:block;position:absolute;inset:0}.shot:hover img{opacity:.85}.shot:focus-visible{outline-offset:2px;outline:2px solid #fff}.terms-row{grid-template-columns:120px minmax(0,1fr);gap:24px;margin-top:40px;display:grid}.terms-row+.terms-row{margin-top:32px}.terms-label{font-size:17px;font-weight:600;line-height:24px}.terms-row .mark-list{margin-top:0}.guarantee-title{margin-top:48px}.guarantee-title+.scoping-text{margin-top:8px}.sr-only,.skip-link:not(:focus){clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link:focus{background:var(--surface);color:var(--ink);padding:16px 32px;display:block}@media (width>=768px) and (width<=1023px){.page-layout{grid-template-columns:208px minmax(0,1fr);gap:40px;width:calc(100% - 64px);padding-block:48px}.profile{top:48px}h1,#projects-heading{font-size:36px}}@media (width<=767px){html{scroll-padding-top:88px}.mobile-header{z-index:10;background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:0 20px;min-height:64px;padding:8px 20px;display:flex;position:sticky;top:0}.mobile-name{letter-spacing:-.025em;align-items:center;min-height:44px;font-size:18px;font-weight:600;display:inline-flex}.mobile-menu-toggle{width:44px;height:44px;color:inherit;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:10px;display:none}.mobile-menu-toggle:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.menu-lines{flex-direction:column;gap:5px;width:22px;display:flex}.menu-lines span{background:currentColor;width:100%;height:1px}.mobile-menu{align-items:center;gap:28px;display:flex}.mobile-section-links,.mobile-contact-links{align-items:center;gap:16px;display:flex}.mobile-menu a{white-space:nowrap;align-items:center;min-height:44px;font-weight:500;display:inline-flex}.mobile-section-links a[aria-current=location],.mobile-section-links a[aria-current=page]{font-weight:700}.profile .name,.profile .section-nav,.profile .contact-links{display:none}.page-layout{grid-template-columns:minmax(0,1fr);gap:40px;width:calc(100% - 40px);padding-block:24px 32px}.profile{will-change:auto;position:static}.portrait{aspect-ratio:1.4;width:100%;max-width:480px}.name{margin-top:20px}.bio{font-size:16px;line-height:22px}.section-nav,.contact-links{flex-flow:wrap;gap:0 24px}.section-nav{margin-top:16px}.contact-links{margin-top:4px}.profile a{align-items:center;min-height:44px;display:inline-flex}h1,#projects-heading{font-size:clamp(30px,8.2vw,36px);line-height:1.15}.experience-list{margin-top:28px}.experience-row{padding-block:20px 24px}.role{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;display:grid}.years{text-align:right}.projects,.about{margin-top:56px}.scoping-section{margin-top:48px;padding-top:40px}.section-title{font-size:26px;line-height:32px}.shot-grid,.loop-list{grid-template-columns:minmax(0,1fr)}.loop-list{gap:20px}.phase{grid-template-columns:minmax(0,1fr);gap:0;margin-top:48px}.scoping-text+.phase{margin-top:32px}.phase-week{line-height:24px}.phase:not(:last-child):before{display:none}.terms-row{grid-template-columns:minmax(0,1fr);gap:12px}.hero-shots{grid-template-rows:auto;grid-template-columns:repeat(2,minmax(0,1fr))}.hero-shots .hero-shot-main{aspect-ratio:4/3;grid-area:auto/1/auto/-1}.projects-table{margin-top:28px;display:block}.projects-table colgroup{display:none}.projects-table thead{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.projects-table tbody{display:block}.projects-table tbody tr{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,max-content) max-content max-content minmax(0,1fr);gap:2px 12px;padding-block:18px;display:grid}.projects-table tbody tr:first-child{border-top:1px solid var(--line)}.projects-table tbody th,.projects-table tbody td{border:0;min-width:0;padding:0}.project-name-text{white-space:normal;text-overflow:clip;overflow:visible}.projects-table tbody th{grid-area:1/1;font-size:14px;line-height:24px}.projects-table tbody td.project-started{text-align:left;grid-area:1/2;line-height:24px}.projects-table tbody td:last-child{text-align:left;grid-area:1/3;line-height:24px}.projects-table .project-description{grid-area:2/1/auto/-1;font-size:14px;line-height:20px}.projects-table.is-enhanced .project-description-text{white-space:normal;text-overflow:clip;overflow:visible}.about-copy{margin-top:20px;line-height:26px}.page-footer{flex-direction:column;align-items:flex-start;gap:8px;margin-top:64px}}@media (width<=639px){.mobile-menu{flex-direction:column;align-items:flex-start;gap:8px;width:100%;padding-block:8px 12px}.mobile-section-links{flex-direction:column;align-items:stretch;gap:0;width:100%}.mobile-section-links a{letter-spacing:-.025em;min-height:56px;font-size:24px;line-height:32px}.mobile-contact-links{gap:24px;margin-top:16px}.mobile-header.is-enhanced .mobile-menu-toggle{display:inline-flex}.mobile-header.is-enhanced .mobile-menu{background:var(--surface);border-bottom:1px solid var(--line);max-height:calc(100dvh - 64px);padding:12px 20px 20px;display:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.mobile-header.is-open .mobile-menu{display:flex}}@media (width>=768px) and (height<=760px){.profile{will-change:auto;position:static}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important}}
