:root{--ink:#151615;--paper:#fafaf7;--paper-2:#f0f1ed;--muted:#686b67;--line:#15161526;--quiet:#88958e;--quiet-light:#e1e6e2;--max:1600px}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--ink)}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{font:inherit}::selection{background:var(--quiet-light);color:var(--ink)}.skip-link{z-index:999;background:var(--ink);color:#fff;padding:.8rem 1rem;position:fixed;top:-5rem;left:1rem}.skip-link:focus{top:1rem}.eyebrow{letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:.68rem;font-weight:700;line-height:1.4}.site-nav{z-index:100;border-bottom:1px solid var(--line);height:64px;color:var(--ink);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fafaf7e6;justify-content:space-between;align-items:center;padding:0 2rem;display:flex;position:fixed;top:0;left:0;right:0}.brand{letter-spacing:.03em;align-items:center;gap:.75rem;font-size:.78rem;font-weight:700;display:inline-flex}.brand-mark{background:var(--quiet-light);width:30px;height:30px;color:var(--ink);letter-spacing:-.03em;border-radius:50%;place-items:center;font-size:.68rem;display:grid}.brand-name{white-space:nowrap}.nav-links{letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:2rem;font-size:.72rem;display:flex}.nav-links a{position:relative}.nav-links a:after{content:"";background:var(--quiet);height:1px;transition:right .25s;position:absolute;bottom:-.35rem;left:0;right:100%}.nav-links a:hover:after,.nav-links a:focus-visible:after{right:0}.menu-button{background:0 0;border:0;padding:.5rem;display:none}.menu-button span{background:var(--ink);width:22px;height:1px;margin:5px 0;display:block}.hero{background:var(--paper);min-height:88svh;color:var(--ink);padding-top:64px;position:relative;overflow:hidden}.hero-copy{z-index:2;min-height:calc(88svh - 64px);max-width:var(--max);flex-direction:column;justify-content:center;margin:auto;padding:7rem 2rem 9rem;display:flex;position:relative}.hero-kicker{color:var(--quiet);margin-bottom:2rem}.hero h1{letter-spacing:-.075em;max-width:1450px;margin:0;font-size:clamp(4rem,8.4vw,10rem);font-weight:560;line-height:.88}.hero h1 span{color:var(--quiet)}.hero-lede{max-width:42rem;color:var(--muted);margin:2.5rem 0 0;font-size:clamp(1rem,1.4vw,1.35rem);line-height:1.55}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:2.5rem;display:flex}.button{letter-spacing:.12em;text-transform:uppercase;border:1px solid;justify-content:center;align-items:center;min-height:48px;padding:0 1.25rem;font-size:.7rem;font-weight:700;transition:background .2s,color .2s,transform .2s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button-solid{border-color:var(--ink);background:var(--ink);color:#fff}.hero-foot{z-index:3;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;font-size:.6rem;display:flex;position:absolute;bottom:1rem;left:2rem;right:2rem}.statement-band{padding:clamp(6rem, 12vw, 13rem) max(2rem, calc((100vw - var(--max))/2 + 2rem));border-bottom:1px solid var(--line)}.statement-band p{letter-spacing:-.055em;max-width:1300px;margin:0;font-size:clamp(2.6rem,5.3vw,6.8rem);font-weight:500;line-height:.98}.statement-band em{color:var(--quiet);font-style:normal}.work-section{max-width:var(--max);margin:auto;padding:8rem 2rem 10rem}.section-heading{grid-template-columns:1.4fr .6fr;align-items:end;gap:4rem;margin-bottom:4rem;display:grid}.section-heading h2{letter-spacing:-.065em;margin:.75rem 0 0;font-size:clamp(3rem,5.4vw,6.5rem);font-weight:500;line-height:.93}.section-heading>p{max-width:31rem;color:var(--muted);margin:0 0 .6rem auto;font-size:1rem;line-height:1.55}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:4.5rem 1rem;display:grid}.project-card{min-width:0;display:block}.project-media{aspect-ratio:1;border:1px solid var(--line);background:#deded9;position:relative;overflow:hidden}.project-media:after{content:"";opacity:0;background:linear-gradient(#0000 60%,#00000026);transition:opacity .45s;position:absolute;inset:0}.project-media img{object-fit:cover;background:#ecece8;width:100%;height:100%;padding:0;transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .5s}.project-card:hover .project-media img{filter:saturate(1.08);transform:scale(1.045)}.project-card:hover .project-media:after{opacity:1}.project-card-apple-camera-hardware .project-media{background:#000}.project-card-apple-camera-hardware .project-media img{object-fit:cover;background:#000;padding:0;transform:translateY(19%)scale(1.22)}.project-card-apple-camera-hardware:hover .project-media img{transform:translateY(19%)scale(1.27)}.project-card-safe-sentinel .project-media,.project-card-safe-sentinel .project-media img,.project-card-enano-tracker .project-media,.project-card-enano-tracker .project-media img,.project-card-rapid-scanbox .project-media,.project-card-rapid-scanbox .project-media img,.project-card-taflab-vawt .project-media,.project-card-taflab-vawt .project-media img{background:#fff}.project-card-enano-tracker .project-media img,.project-card-rapid-scanbox .project-media img,.project-card-taflab-vawt .project-media img{padding:0}.project-card-rapid-scanbox .project-media img{object-fit:cover}.project-card-elbow-rehab .project-media img{object-fit:cover;padding:0;transform:rotate(-90deg)}.project-card-elbow-rehab:hover .project-media img{transform:rotate(-90deg)scale(1.045)}.project-index,.project-arrow{z-index:2;background:var(--ink);color:#fff;place-items:center;min-width:32px;height:32px;font-size:.65rem;display:grid;position:absolute;top:1rem}.project-index{left:1rem}.project-arrow{background:var(--quiet-light);color:var(--ink);transition:transform .35s;right:1rem;transform:translateY(-50px)}.project-card:hover .project-arrow{transform:none}.project-meta{border-top:1px solid var(--ink);grid-template-columns:1fr;gap:1rem;padding-top:1.25rem;display:grid}.project-meta h3{letter-spacing:-.045em;margin:.5rem 0 0;font-size:clamp(1.55rem,2.5vw,2.65rem);line-height:1}.project-meta>p{color:var(--muted);margin:0;font-size:.85rem;line-height:1.5}.work-archive-link{justify-content:center;padding-top:5rem;display:flex}.work-archive-link .button{gap:.75rem}.projects-page{background:var(--paper);padding-top:64px}.projects-hero{min-height:82svh;padding:7rem max(2rem, calc((100vw - var(--max))/2 + 2rem)) 3rem;background:var(--paper);color:var(--ink);border-bottom:1px solid var(--line);flex-direction:column;justify-content:flex-end;scroll-margin-top:64px;display:flex}.projects-hero-grid{width:100%;max-width:var(--max);grid-template-columns:minmax(0,1fr) minmax(360px,.88fr);align-items:start;gap:clamp(3rem,7vw,8rem);margin:auto;display:grid}.projects-hero-name{align-self:start}.projects-hero .eyebrow{color:var(--quiet)}.projects-hero h1{letter-spacing:-.08em;margin:0;font-size:clamp(4.5rem,8.6vw,10.5rem);font-weight:540;line-height:.8}.projects-hero h1 span{color:var(--quiet)}.projects-identity{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin:2.5rem 0 0;font-size:.8rem;font-weight:700}.projects-about-copy{letter-spacing:-.015em;max-width:38rem;margin:1.4rem 0 0;font-size:clamp(1.05rem,1.45vw,1.32rem);line-height:1.55}.projects-about-links{flex-wrap:wrap;gap:1.5rem;margin-top:1.5rem;display:flex}.projects-about-links a{border-bottom:1px solid var(--ink);letter-spacing:.1em;text-transform:uppercase;padding-bottom:.25rem;font-size:.68rem;font-weight:700}.mini-timeline{width:100%;max-width:var(--max);overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:var(--quiet) transparent;grid-auto-columns:minmax(230px,1fr);grid-auto-flow:column;margin:4rem auto 0;padding:0 0 1rem;list-style:none;display:grid;overflow-x:auto}.mini-timeline>li{scroll-snap-align:start;border-top:2px solid #1516154d;min-height:180px;padding:1.75rem 1.5rem 0 0;position:relative}.mini-timeline>li+li{padding-left:1.5rem}.mini-timeline>li:before{content:"";background:var(--ink);width:11px;height:11px;box-shadow:0 0 0 5px var(--paper);border-radius:50%;position:absolute;top:-6px;left:0}.mini-timeline>li+li:before{left:1.5rem}.mini-timeline>li>span{color:var(--ink);letter-spacing:.09em;text-transform:uppercase;margin-bottom:1rem;font-size:.72rem;font-weight:800;display:block}.mini-timeline ul{margin:0;padding:0;list-style:none}.mini-timeline>li>ul>li{color:var(--muted);padding-left:1rem;font-size:.78rem;font-weight:600;line-height:1.45;position:relative}.mini-timeline>li>ul>li+li{margin-top:.45rem}.mini-timeline>li>ul>li:before{content:"";background:var(--ink);border-radius:50%;width:5px;height:5px;position:absolute;top:.58em;left:0}.mini-timeline .timeline-subitems{border-left:1px solid var(--line);margin:.4rem 0 0 .15rem;padding-left:.8rem}.mini-timeline .timeline-subitems li{color:var(--quiet);font-size:.72rem;font-weight:500;line-height:1.4}.projects-section-label{width:100%;max-width:var(--max);border-top:1px solid var(--line);letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;margin:3rem auto 0;padding-top:1.25rem;font-size:.72rem;font-weight:700;display:flex}.projects-hero-note{padding-bottom:.7rem}.projects-hero-note>p{color:var(--muted);margin:0;font-size:1rem;line-height:1.65}.projects-hero-stats{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:3rem;padding-top:1.5rem;display:grid}.projects-hero-stats span{color:var(--muted);letter-spacing:.09em;text-transform:uppercase;font-size:.65rem;line-height:1.4}.projects-hero-stats strong{color:var(--ink);letter-spacing:-.04em;margin-bottom:.4rem;font-size:2rem;display:block}.projects-archive{max-width:var(--max);margin:auto;padding:5rem 2rem 10rem;scroll-margin-top:64px}.project-filters{border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap;display:flex}.project-filters button{border:0;border-right:1px solid var(--line);min-height:58px;color:var(--muted);cursor:pointer;letter-spacing:.1em;text-transform:uppercase;background:0 0;align-items:center;gap:.65rem;padding:0 1.25rem;font-size:.68rem;font-weight:700;transition:background .2s,color .2s;display:inline-flex}.project-filters button:hover,.project-filters button[aria-pressed=true]{background:var(--ink);color:#fff}.project-filters small{border:1px solid;border-radius:50%;place-items:center;min-width:22px;height:22px;font-size:.58rem;display:grid}.project-result-count{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin:1.2rem 0 3rem;font-size:.68rem}.project-archive-grid .project-meta>p{min-height:4.5em}.experience-section{background:var(--ink);color:#fff;padding:9rem max(2rem, calc((100vw - var(--max))/2 + 2rem))}.section-heading-dark{align-items:start}.section-heading-dark .eyebrow{color:var(--quiet-light)}.text-link{text-transform:uppercase;letter-spacing:.13em;border-bottom:1px solid #ffffff80;justify-self:end;margin-top:1rem;padding-bottom:.4rem;font-size:.72rem}.experience-list{border-top:1px solid #ffffff3b}.experience-row{border-bottom:1px solid #ffffff2b;grid-template-columns:55px 1fr 1.25fr 120px;align-items:start;gap:2rem;padding:2rem 0;display:grid}.experience-number,.experience-period{color:#ffffff7a;letter-spacing:.1em;text-transform:uppercase;font-size:.65rem}.experience-row h3{letter-spacing:-.03em;margin:0;font-size:1.45rem}.experience-row div p,.experience-note{color:#ffffff94;margin:.4rem 0 0;font-size:.8rem;line-height:1.55}.experience-note{max-width:34rem;margin:0}.experience-period{text-align:right}.site-footer{background:var(--ink);color:#fff;padding:8rem max(2rem, calc((100vw - var(--max))/2 + 2rem)) 2rem}.footer-prompt{padding-bottom:7rem}.footer-prompt .eyebrow{color:var(--quiet-light)}.footer-prompt>a{letter-spacing:-.06em;border-bottom:2px solid #fff;justify-content:space-between;align-items:center;margin-top:1.5rem;padding-bottom:1rem;font-size:clamp(2rem,5vw,6rem);display:flex}.footer-prompt>a span{font-size:.6em}.footer-bottom{border-top:1px solid #ffffff4d;grid-template-columns:1fr 1fr 1fr;align-items:end;padding-top:2rem;font-size:.68rem;display:grid}.footer-bottom p{text-align:center;text-transform:uppercase;letter-spacing:.09em;opacity:.7;margin:0}.footer-bottom>a:last-child{text-transform:uppercase;letter-spacing:.09em;justify-self:end}.reveal{opacity:0;transition:opacity .75s,transform .75s cubic-bezier(.2,.7,.2,1);transform:translateY(24px)}.reveal.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transition:none;transform:none}*{transition-duration:.01ms!important;animation:none!important}}.case-study{background:#fbfaf4}.case-study .reveal{opacity:1;transform:none}.case-header{border-bottom:1px solid var(--line);max-width:1120px;margin:auto;padding:9rem 2rem 3.5rem}.case-breadcrumb{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;gap:.8rem;margin-bottom:4rem;font-size:.65rem;display:flex}.case-header>.eyebrow{color:var(--quiet)}.case-header h1{letter-spacing:-.065em;max-width:980px;margin:.9rem 0 0;font-size:clamp(3.2rem,6.8vw,7.4rem);font-weight:560;line-height:.9}.case-subtitle{max-width:48rem;color:var(--muted);margin:1.5rem 0 1rem;font-size:clamp(1.05rem,1.6vw,1.35rem);line-height:1.5}.case-reading{color:var(--muted);letter-spacing:.05em;margin:0;font-size:.72rem}.case-framework{border-bottom:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));max-width:1120px;margin:auto;padding:3.5rem 2rem;display:grid}.case-framework article{border-left:1px solid var(--line);min-width:0;padding:0 2rem}.case-framework article:first-child{border-left:0;padding-left:0}.case-framework article:last-child{padding-right:0}.case-framework-label{color:var(--quiet);align-items:center;gap:.7rem;display:flex}.case-framework-label>span{letter-spacing:.1em;font-size:.62rem;font-weight:700}.case-framework h2{letter-spacing:-.02em;margin:1.15rem 0 .7rem;font-size:clamp(1rem,1.35vw,1.25rem);font-weight:700;line-height:1.2}.case-framework article>p:last-child{color:var(--muted);margin:0;font-size:.92rem;line-height:1.65}.case-evidence{border-bottom:1px solid var(--line);max-width:1120px;margin:auto;padding:2.5rem 2rem 3.5rem}.case-evidence>.eyebrow{color:var(--quiet)}.case-intro{border-bottom:1px solid var(--line);grid-template-columns:190px 1fr;gap:4rem;max-width:1120px;margin:auto;padding:3.5rem 2rem;display:grid}.case-intro-label>p:last-child{color:var(--muted);margin:.8rem 0 0;font-size:.75rem;font-style:italic;line-height:1.6}.case-intro-content{min-width:0}.case-summary{letter-spacing:-.035em;max-width:760px;margin:0;font-size:clamp(1.35rem,2.3vw,2.2rem);line-height:1.2}.case-study-apple-camera-hardware .case-cover{background:#000}.case-study-apple-camera-hardware .case-cover img{object-fit:contain;object-position:center;mix-blend-mode:normal;background:#000;padding:0;transform:translateY(19%)scale(1.22)}.case-study-elbow-rehab .case-cover img{transform:rotate(-90deg)}.metric-grid{border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);margin-top:2rem;display:grid}.metric-grid div{border-right:1px solid var(--line);padding:1.2rem 1rem 0 0}.metric-grid div+div{padding-left:1rem}.metric-grid div:last-child{border-right:0}.metric-grid span{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:.65rem;font-size:.62rem;display:block}.metric-grid strong{letter-spacing:-.025em;font-size:clamp(1.05rem,1.6vw,1.5rem)}.case-tools{flex-wrap:wrap;gap:.45rem;margin-top:2rem;display:flex}.case-tools span{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:.45rem .7rem;font-size:.65rem}.case-cover{aspect-ratio:16/9;border:1px solid var(--line);background:#fff;width:calc(100% - 4rem);max-width:960px;margin:3rem auto 5rem;overflow:hidden}.case-cover img{object-fit:contain;mix-blend-mode:multiply;width:100%;height:100%;padding:2%}.case-sections{max-width:1120px;margin:auto}.case-section{border-top:1px solid var(--line);padding:4rem 2rem}.case-section-copy{grid-template-columns:52px minmax(210px,290px) minmax(0,1fr);align-items:start;gap:1.25rem;display:grid}.case-section-copy .eyebrow{color:var(--quiet)}.case-section-copy h2{letter-spacing:-.045em;margin:0;font-size:clamp(1.7rem,2.7vw,2.8rem);font-weight:560;line-height:1.05}.case-section-copy>p:last-child{max-width:42rem;color:var(--muted);margin:0;font-size:1.08rem;line-height:1.75}.case-figure{width:min(760px,100% - 342px);margin:2.5rem 0 0 342px}.case-study-apple-camera-hardware .case-figure{width:min(760px,100%);margin-left:auto;margin-right:auto}.case-figure img{object-fit:contain;border:1px solid var(--line);background:#fff;width:100%;max-height:520px;padding:1.5%}.case-figure p{color:var(--muted);letter-spacing:.04em;margin:.8rem 0 0;font-size:.75rem;line-height:1.5}.gallery-section{border-top:1px solid var(--line);max-width:1120px;margin:auto;padding:4rem 2rem}.case-gallery{grid-template-columns:repeat(12,1fr);gap:1rem;margin-top:2rem;display:grid}.case-gallery img{object-fit:contain;border:1px solid var(--line);background:#fff;grid-column:span 4;width:100%;height:260px;padding:2%}.case-gallery img:first-child{grid-column:span 8}.next-project{background:var(--quiet-light);color:var(--ink);grid-template-columns:150px 1fr auto;align-items:center;gap:2rem;margin-top:3rem;padding:3.5rem max(2rem,50vw - 560px + 2rem);display:grid}.next-project span{letter-spacing:.13em;text-transform:uppercase;font-size:.7rem}.next-project strong{letter-spacing:-.055em;font-size:clamp(2rem,4vw,4.5rem);line-height:.95}.next-project i{font-size:2rem;font-style:normal;transition:transform .25s}.next-project:hover i{transform:translate(6px,-6px)}.about-page,.resume-page{padding-top:64px}.about-hero{background:var(--paper);color:var(--ink);padding:10rem max(2rem, calc((100vw - var(--max))/2 + 2rem)) 8rem;border-bottom:1px solid var(--line)}.about-hero .eyebrow{color:var(--quiet)}.about-hero h1,.resume-page header h1{letter-spacing:-.075em;max-width:1200px;margin:1.2rem 0 5rem;font-size:clamp(4rem,8vw,10rem);font-weight:520;line-height:.86}.about-intro-grid{grid-template-columns:.7fr 1.3fr;align-items:start;gap:clamp(3rem,8vw,9rem);display:grid}.about-identity{border-top:1px solid var(--line);margin:0}.about-identity div{border-bottom:1px solid var(--line);grid-template-columns:90px 1fr;gap:1rem;padding:1rem 0;display:grid}.about-identity dt{color:var(--quiet);letter-spacing:.13em;text-transform:uppercase;font-size:.62rem}.about-identity dd{color:var(--muted);margin:0;font-size:.83rem;line-height:1.5}.about-story{max-width:850px}.about-story p{color:var(--muted);margin:0;font-size:1rem;line-height:1.75}.about-story .about-story-lede{color:var(--ink);letter-spacing:-.04em;margin-bottom:2rem;font-size:clamp(1.65rem,3vw,3.4rem);line-height:1.12}.about-timeline,.about-capabilities{max-width:var(--max);margin:auto;padding:9rem 2rem}.about-capabilities{border-top:1px solid var(--line)}.about-section-heading{grid-template-columns:.7fr 1.3fr;gap:clamp(3rem,8vw,9rem);margin-bottom:4rem;display:grid}.about-section-heading h2{letter-spacing:-.065em;max-width:900px;margin:0;font-size:clamp(2.8rem,5.5vw,6.5rem);font-weight:500;line-height:.92}.about-section-heading.compact h2{font-size:clamp(2.7rem,4.4vw,5rem)}.timeline-list{overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:var(--quiet) transparent;grid-auto-columns:minmax(230px,1fr);grid-auto-flow:column;margin:0;padding:0 0 1.25rem;list-style:none;display:grid;overflow-x:auto}.timeline-list:focus-visible{outline:1px solid var(--quiet);outline-offset:.75rem}.timeline-list>li{scroll-snap-align:start;border-top:2px solid #1516154d;min-height:290px;padding:2.5rem 2rem 0 0;position:relative}.timeline-list>li+li{padding-left:1.5rem}.timeline-list>li:before{content:"";background:var(--ink);width:11px;height:11px;box-shadow:0 0 0 5px var(--paper);border-radius:50%;position:absolute;top:-6px;left:0}.timeline-list>li+li:before{left:1.5rem}.timeline-list>li>span{color:var(--ink);letter-spacing:.09em;text-transform:uppercase;margin-bottom:1.5rem;font-size:.86rem;font-weight:800;display:block}.timeline-list ul{margin:0;padding:0;list-style:none}.timeline-list ul li{padding-left:1.2rem;font-size:.95rem;font-weight:600;line-height:1.5;position:relative}.timeline-list ul li+li{color:var(--ink);margin-top:.6rem}.timeline-list ul li:before{content:"";background:var(--ink);border-radius:50%;width:6px;height:6px;position:absolute;top:.62em;left:0}.capability-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(4,1fr);gap:1px;display:grid}.capability-grid article{background:var(--paper);min-height:390px;padding:1.5rem}.capability-grid article>span{background:var(--ink);color:#fff;border-radius:50%;place-items:center;width:34px;height:34px;font-size:.62rem;display:grid}.capability-grid h3{letter-spacing:-.05em;margin:5rem 0 1.5rem;font-size:clamp(1.8rem,2.5vw,3rem)}.capability-grid ul{margin:0;padding:0;list-style:none}.capability-grid li{border-top:1px solid var(--line);color:var(--muted);padding:.75rem 0;font-size:.8rem;line-height:1.4}.software-band{border-top:1px solid var(--line);grid-template-columns:.7fr 1.3fr;gap:clamp(3rem,8vw,9rem);margin-top:4rem;padding-top:2rem;display:grid}.software-band>p:last-child{letter-spacing:-.035em;margin:0;font-size:clamp(1.3rem,2.2vw,2.5rem);line-height:1.45}.software-band span{color:var(--quiet)}.about-experience{padding:8rem max(2rem, calc((100vw - var(--max))/2 + 2rem));border-top:1px solid var(--line)}.about-job{border-bottom:1px solid var(--line);grid-template-columns:1fr 1.2fr 1.5fr 130px;align-items:start;gap:2rem;padding:2rem 0;display:grid}.about-job:first-of-type{border-top:1px solid var(--line);margin-top:2.5rem}.about-job h2,.about-job p{margin:0}.about-job p,.about-job span{color:var(--muted);font-size:.82rem;line-height:1.5}.about-job span{text-align:right}.about-personal{background:var(--quiet-light);padding:7rem max(2rem, calc((100vw - var(--max))/2 + 2rem));grid-template-columns:.7fr 1.3fr;gap:clamp(3rem,8vw,9rem);display:grid}.about-personal>div>p{letter-spacing:-.06em;max-width:1000px;margin:0;font-size:clamp(2.5rem,5vw,6rem);line-height:.96}.about-links{flex-wrap:wrap;gap:.75rem;margin-top:3rem;display:flex}.resume-simple-hero{padding:7rem max(2rem, calc((100vw - var(--max))/2 + 2rem)) 4rem;border-bottom:1px solid var(--line);grid-template-columns:1.15fr .85fr;align-items:start;gap:clamp(3rem,8vw,9rem);display:grid}.resume-simple-hero h1{letter-spacing:-.07em;margin:1.2rem 0 0;font-size:clamp(3.8rem,7vw,8rem);font-weight:520;line-height:.86}.resume-top-contact{border-top:1px solid var(--line);margin:1.6rem 0 0}.resume-top-contact div{border-bottom:1px solid var(--line);grid-template-columns:90px 1fr;gap:1rem;padding:1rem 0;display:grid}.resume-top-contact dt{color:var(--quiet);letter-spacing:.12em;text-transform:uppercase;font-size:.62rem;font-weight:700}.resume-top-contact dd{color:var(--muted);overflow-wrap:anywhere;margin:0;font-size:.84rem;line-height:1.45}.resume-top-contact a{color:var(--ink)}.resume-downloads{max-width:var(--max);margin:auto;padding:4rem 2rem 5rem}.resume-downloads a{border-top:1px solid var(--ink);letter-spacing:-.025em;justify-content:space-between;align-items:center;gap:2rem;padding:1.4rem 0;font-size:clamp(1.15rem,2vw,1.7rem);display:flex}.resume-downloads a:last-child{border-bottom:1px solid var(--ink)}.resume-downloads a span:last-child{letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;font-size:.68rem;font-weight:700}.resume-preview{padding:5rem max(2rem, calc((100vw - var(--max))/2 + 2rem)) 7rem;border-top:1px solid var(--line)}.resume-preview-heading{justify-content:space-between;align-items:center;gap:2rem;max-width:760px;margin:0 auto 1.5rem;display:flex}.resume-preview-heading a{letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid var(--ink);padding-bottom:.25rem;font-size:.68rem;font-weight:700}.resume-preview-frame{background:#d7d7d2;width:min(760px,100%);margin:auto;padding:1rem}.resume-preview-frame iframe{aspect-ratio:8.5/11;background:#fff;border:0;width:100%;display:block;box-shadow:0 16px 40px #00000024}.not-found{min-height:80svh;padding:8rem max(2rem, calc((100vw - var(--max))/2 + 2rem));flex-direction:column;justify-content:center;align-items:flex-start;display:flex}.not-found h1{letter-spacing:-.07em;max-width:900px;font-size:clamp(4rem,8vw,9rem);line-height:.85}@media (max-width:980px){.hero{min-height:82svh}.hero-copy{min-height:calc(82svh - 64px);padding:7rem 1.25rem 8rem}.section-heading{grid-template-columns:1fr;gap:2rem}.section-heading>p{margin-left:0}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.projects-hero{min-height:auto}.projects-hero-grid{grid-template-columns:1fr;gap:4rem}.projects-about{max-width:720px}.experience-row{grid-template-columns:40px 1fr 110px}.experience-note{grid-column:2/4}.case-section-copy{grid-template-columns:42px 220px minmax(0,1fr);gap:1rem}.case-figure{width:min(720px,100% - 282px);margin-left:282px}.case-gallery img,.case-gallery img:first-child{grid-column:span 6}.about-job{grid-template-columns:1fr 1fr}.about-job span{text-align:left}.capability-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:700px){.site-nav{padding:0 1rem}.brand-name{display:none}.menu-button{display:block}.nav-links{background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0;display:none;position:absolute;top:64px;left:0;right:0}.nav-links.is-open{display:flex}.nav-links a{border-top:1px solid var(--line);padding:1.2rem}.hero h1{font-size:17vw}.hero-foot span:nth-child(2){display:none}.statement-band,.work-section,.case-intro,.case-framework,.case-evidence,.case-section,.gallery-section{padding-left:1.25rem;padding-right:1.25rem}.project-grid{display:block}.project-card{margin-bottom:4rem}.project-meta{grid-template-columns:1fr;gap:1rem}.experience-row{grid-template-columns:32px 1fr;gap:1rem}.experience-note,.experience-period{text-align:left;grid-column:2}.footer-prompt>a{font-size:7.8vw}.footer-bottom{grid-template-columns:1fr auto;gap:2rem}.footer-bottom p{display:none}.case-header{padding-left:1.25rem;padding-right:1.25rem}.case-header h1{font-size:clamp(3rem,13vw,5.5rem)}.case-cover{aspect-ratio:4/3;width:calc(100% - 2.5rem);margin-top:2rem;margin-bottom:3rem}.case-intro{grid-template-columns:1fr;gap:2rem}.case-framework{grid-template-columns:1fr;padding-top:1rem;padding-bottom:1rem}.case-framework article,.case-framework article:first-child,.case-framework article:last-child{border-left:0;border-top:1px solid var(--line);padding:2rem 0}.case-framework article:first-child{border-top:0}.metric-grid{grid-template-columns:1fr}.metric-grid div{border-right:0;border-bottom:1px solid var(--line);padding:1.25rem 0}.metric-grid div+div,.metric-grid div:last-child{padding-left:0}.case-section-copy{grid-template-columns:1fr;gap:1rem}.case-section-copy>p:last-child{max-width:none}.case-figure{width:100%;margin:2rem 0 0}.case-gallery{display:block}.case-gallery img{height:auto;margin-bottom:1rem}.next-project,.about-personal{grid-template-columns:1fr}.next-project{gap:1rem}.projects-hero{padding-left:1.25rem;padding-right:1.25rem}.projects-hero h1{font-size:17vw}.projects-about-copy{font-size:1rem}.projects-about-links{gap:1rem}.mini-timeline{grid-auto-columns:minmax(78vw,1fr)}.mini-timeline>li{min-height:185px}.projects-section-label{margin-top:3.5rem}.projects-archive{padding-left:1.25rem;padding-right:1.25rem}.project-filters{grid-template-columns:1fr 1fr;display:grid}.project-filters button{border-bottom:1px solid var(--line);justify-content:space-between}.project-filters button:first-child{grid-column:1/-1}.about-intro-grid,.about-section-heading,.software-band{grid-template-columns:1fr;gap:2.5rem}.timeline-list{grid-auto-columns:minmax(78vw,1fr)}.timeline-list>li{min-height:250px}.capability-grid{grid-template-columns:1fr}.capability-grid article{min-height:320px}.about-job{grid-template-columns:1fr}.resume-simple-hero{padding-left:1.25rem;padding-right:1.25rem}.resume-simple-hero h1{font-size:17vw}.resume-simple-hero{grid-template-columns:1fr;gap:2.5rem}.resume-downloads{padding:3rem 1.25rem 4rem}.resume-downloads a{align-items:flex-end}.resume-preview{padding:3.5rem 1.25rem 5rem}.resume-preview-frame{padding:.6rem}}
