html{min-width:320px;position:relative}body,html{min-height:100%}body{margin:0}#root{min-height:100vh}button,input,select,textarea{font:inherit}body.portfolio-route-active{background:#f5f4ef;margin:0}body.portfolio-menu-open{overflow:hidden}body[data-theme=dark].portfolio-route-active{background:#151516}html:has(body.portfolio-route-active){scroll-behavior:smooth}.portfolio-page{--canvas:#f5f4ef;--surface:#fcfbf8;--surface-muted:#ebeae4;--surface-accent:#e7ecf5;--ink:#171719;--ink-muted:#57575b;--line:#d4d2ca;--line-strong:#8c8b86;--accent:#2457a6;--accent-hover:#193f7b;--accent-ink:#fff;--stage:#171719;--stage-ink:#f5f4ef;--chrome:#ececea;--chrome-ink:#28282b;--shadow:0 18px 46px #17171929;--page-gutter:clamp(24px,5vw,80px);--content-max:1240px;--reading-max:680px;--window-max:960px;--layout-edge:max(var(--page-gutter),calc((100vw - var(--content-max))/2));-webkit-font-smoothing:antialiased;background:var(--canvas);color:var(--ink);font-family:Atkinson Hyperlegible Next,Avenir Next,Segoe UI,sans-serif;font-size:1rem;line-height:1.55;min-height:100vh;min-width:0;text-rendering:optimizeLegibility;transition:background-color .16s ease,color .16s ease}body[data-theme=dark] .portfolio-page{--canvas:#151516;--surface:#1e1e20;--surface-muted:#272729;--surface-accent:#1d2635;--ink:#f5f4ef;--ink-muted:#b8b7b1;--line:#39393b;--line-strong:#707075;--accent:#8eb4f0;--accent-hover:#b4cef6;--accent-ink:#171719;--stage:#0f0f10;--stage-ink:#f5f4ef;--chrome:#2b2b2d;--chrome-ink:#f5f4ef;--shadow:0 20px 54px #0000006b}.portfolio-page,.portfolio-page *,.portfolio-page :after,.portfolio-page :before{box-sizing:border-box}.portfolio-page :where(h1,h2,h3,h4,p,figure,dl,dd){margin:0}.portfolio-page :where(img){display:block;max-width:100%}.portfolio-page :where(a){color:inherit;text-decoration:none}.portfolio-page :where(button){color:inherit;font:inherit}.portfolio-page :where(button,a){-webkit-tap-highlight-color:transparent}.portfolio-page :where(h1,h2,h3,h4){text-wrap:balance;font-family:Archivo,Arial Narrow,Arial,sans-serif;letter-spacing:-.03em;overflow-wrap:normal;word-break:normal}.portfolio-page :where(a,button,[tabindex]):focus-visible{outline:3px solid var(--accent);outline-offset:4px}.portfolio-page :where(section[id],article[id]){scroll-margin-top:80px}.skip-link{background:var(--surface);border:1px solid var(--ink);color:var(--ink);font-weight:700;left:12px;padding:.7rem 1rem;position:fixed;top:12px;transform:translateY(-180%);transition:transform .14s ease;z-index:1000}.skip-link:focus{transform:translateY(0)}.portfolio-header{align-items:center;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:var(--canvas);background:color-mix(in srgb,var(--canvas) 94%,#0000);border-bottom:1px solid var(--line);color:var(--ink);display:grid;grid-template-columns:auto 1fr auto;inset:0 0 auto;min-height:64px;padding:env(safe-area-inset-top) var(--layout-edge) 0;position:fixed;transition:background-color .16s ease,color .16s ease;z-index:100}.portfolio-brand{align-items:center;display:inline-flex;font-family:Archivo,sans-serif;font-weight:750;gap:.7rem;min-height:44px}.portfolio-brand__mark{background:var(--accent);border-radius:9px;display:grid;height:34px;overflow:hidden;place-items:center;width:34px}.portfolio-brand__mark img{display:block;height:100%;object-fit:cover;width:100%}.portfolio-brand__name{font-size:.9rem}.portfolio-nav{align-items:stretch;align-self:stretch;display:flex;justify-self:center}.portfolio-nav__link{color:var(--ink-muted);display:grid;font-size:.82rem;font-weight:700;min-height:44px;min-width:84px;padding-inline:.8rem;place-items:center;position:relative}.portfolio-nav__link:after{background:var(--accent);bottom:0;content:"";height:2px;left:.8rem;position:absolute;right:.8rem;transform:scaleX(0);transform-origin:left;transition:transform .16s ease}.portfolio-nav__link:hover,.portfolio-nav__link[aria-current=location]{color:var(--ink)}.portfolio-nav__link:hover:after,.portfolio-nav__link[aria-current=location]:after{transform:scaleX(1)}.display-mode-control,.portfolio-menu-button{align-items:center;background:#0000;border:0;cursor:pointer;display:inline-flex;font-size:.82rem;font-weight:700;gap:.5rem;justify-content:center;min-height:44px;min-width:84px}.display-mode-control:hover,.portfolio-menu-button:hover{color:var(--accent)}.portfolio-menu-button{display:none}.portfolio-mobile-menu{background:var(--canvas);color:var(--ink);inset:calc(64px + env(safe-area-inset-top)) 0 0;overflow-y:auto;overscroll-behavior:contain;padding:clamp(32px,8vh,72px) var(--page-gutter) calc(32px + env(safe-area-inset-bottom));position:fixed;z-index:90}.portfolio-mobile-menu nav{border-top:1px solid var(--line);margin-inline:auto;width:min(100%,680px)}.portfolio-mobile-menu a,.portfolio-mobile-menu button{align-items:center;background:#0000;border:0;border-bottom:1px solid var(--line);color:inherit;cursor:pointer;display:grid;font-family:Archivo,sans-serif;font-size:clamp(1.25rem,7vw,2.4rem);font-weight:750;grid-template-columns:1fr;letter-spacing:-.03em;min-height:72px;padding:0;text-align:left;width:100%}.portfolio-hero{grid-gap:48px clamp(48px,6vw,96px);display:grid;gap:48px clamp(48px,6vw,96px);grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr);grid-template-rows:1fr auto;isolation:isolate;min-height:min(860px,100svh);overflow:hidden;padding:clamp(144px,18vh,184px) var(--layout-edge) clamp(88px,11vh,120px);position:relative}.portfolio-hero__blue-field{background:var(--surface-accent);border:1px solid var(--line);bottom:72px;position:absolute;right:var(--layout-edge);top:104px;width:min(39vw,520px);z-index:-2}.portfolio-hero__identity{align-self:center;min-width:0;z-index:2}.portfolio-hero__role{color:var(--accent);font-size:.9rem;font-weight:750;letter-spacing:.02em;margin-bottom:1.25rem}.portfolio-hero h1{font-size:clamp(4rem,8.2vw,6rem);font-weight:800;line-height:.88;max-width:9ch}.portfolio-hero__name-line{display:block;overflow:hidden;padding-bottom:.08em}.portfolio-hero__name-line>span{display:block}.portfolio-hero__artifact{align-self:center;aspect-ratio:1;color:var(--ink);justify-self:end;position:relative;width:min(100%,500px);z-index:1}.portfolio-hero__artifact-static{align-items:flex-end;border-bottom:1px solid var(--line-strong);color:var(--ink-muted);display:flex;font-size:.75rem;inset:8%;justify-content:space-between;position:absolute;z-index:2}.portfolio-hero__artifact-static strong{font-weight:700}.portfolio-hero__monogram{border-radius:24%;display:block;height:auto;inset:50% auto auto 50%;opacity:.9;position:absolute;transform:translate(-50%,-52%);transition:opacity .18s ease;width:clamp(88px,12vw,128px)}.portfolio-hero__artifact--scene .portfolio-hero__monogram{opacity:0}.hero-scene,.hero-scene canvas{height:100%!important;width:100%!important}.hero-scene{inset:0;position:absolute;z-index:1}.portfolio-hero__statement{align-self:end;width:min(100%,var(--reading-max));z-index:2}.portfolio-hero__statement p{color:var(--ink-muted);font-size:clamp(1.15rem,1.7vw,1.4rem);line-height:1.45;margin-bottom:1.5rem;max-width:38ch}.portfolio-hero__statement a{align-items:center;border-bottom:2px solid var(--accent);color:var(--accent);display:inline-flex;font-weight:750;gap:.65rem;min-height:44px}.portfolio-hero__statement a:hover{color:var(--accent-hover)}.portfolio-hero__curtain{background:var(--canvas);inset:0;pointer-events:none;position:absolute;transform-origin:top;z-index:20}.work-section{border-top:1px solid var(--line)}.work-section__intro{margin-inline:auto;padding-block:clamp(96px,10vw,144px) clamp(80px,8vw,112px);width:min(calc(100% - var(--page-gutter)*2),var(--content-max))}.work-section__intro h2{font-size:clamp(3rem,6vw,5.5rem);font-weight:780;line-height:.98;max-width:11ch}.work-section__intro p{color:var(--ink-muted);font-size:clamp(1.05rem,1.5vw,1.25rem);margin-top:1.75rem;max-width:50ch}.project-chapter{background:var(--canvas);border-top:1px solid var(--line);padding-block:clamp(88px,9vw,128px)}.project-chapter__overview,.project-facts,.project-story{margin-inline:auto;width:min(calc(100% - var(--page-gutter)*2),var(--content-max))}.project-chapter__overview{grid-gap:48px;align-items:end;display:grid;gap:48px;grid-template-columns:minmax(0,1fr) minmax(180px,.28fr)}.project-chapter__title-block{max-width:760px}.project-chapter__label{color:var(--accent);font-size:.86rem;font-weight:750;margin-bottom:.9rem}.project-chapter h3{font-size:clamp(2.8rem,5vw,4.8rem);font-weight:780;line-height:.95}.project-chapter__summary{color:var(--ink-muted);font-size:clamp(1.05rem,1.4vw,1.22rem);margin-top:1.5rem;max-width:64ch}.project-chapter__repository,.project-chapter__repository-note{align-items:center;border-bottom:1px solid var(--line-strong);display:flex;font-size:.86rem;gap:.75rem;justify-content:space-between;min-height:44px}.project-chapter__repository{color:var(--accent);font-weight:750}.project-chapter__repository:hover{border-color:var(--accent);color:var(--accent-hover)}.project-chapter__repository-note{color:var(--ink-muted);display:grid;grid-template-columns:auto 1fr}.project-chapter__repository-note span{color:var(--ink);font-weight:750}.project-facts{grid-gap:0;border-block:1px solid var(--line);display:grid;gap:0;grid-template-columns:1fr 1fr 1.3fr;margin-top:48px}.project-facts>div{border-right:1px solid var(--line);min-width:0;padding:20px 28px}.project-facts>div:first-child{padding-left:0}.project-facts>div:last-child{border-right:0;padding-right:0}.project-facts dt{color:var(--ink-muted);font-size:.76rem;font-weight:700;margin-bottom:.35rem}.project-facts dd{font-size:.92rem;font-weight:650;overflow-wrap:anywhere}.project-gallery{margin:clamp(56px,6vw,80px) auto 0;width:min(calc(100% - var(--page-gutter)*2),var(--window-max))}.project-gallery__window{background:var(--surface);border:1px solid var(--line-strong);border-radius:12px;box-shadow:var(--shadow);color:var(--ink);overflow:hidden;position:relative}.project-gallery__window:focus-within{border-color:color-mix(in srgb,var(--accent) 48%,var(--line-strong))}.project-gallery__titlebar{align-items:center;background:var(--chrome);border-bottom:1px solid #17171929;color:var(--chrome-ink);display:grid;grid-template-columns:132px minmax(0,1fr) 132px;min-height:48px;padding-inline:10px;-webkit-user-select:none;user-select:none}.project-gallery__window-controls{align-items:center;display:flex;gap:0;justify-self:start}.project-gallery__window-control{background:#0000;border:0;border-radius:7px;cursor:pointer;display:grid;height:36px;padding:0;place-items:center;position:relative;width:36px}.project-gallery__window-control:before{background:#9c9c9c;border:1px solid #0000002e;border-radius:50%;content:"";display:block;height:12px;width:12px}.project-gallery__window-control--close:before{background:#ff5f57}.project-gallery__window-control--minimize:before{background:#febc2e}.project-gallery__window-control--fullscreen:before{background:#28c840}.project-gallery__window-control span{color:#000000a8;display:grid;font-family:Arial,sans-serif;font-size:9px;font-weight:800;height:12px;line-height:1;opacity:0;place-items:center;position:absolute;width:12px;z-index:1}.project-gallery__window-control span:before{display:block}.project-gallery__window-control--close span:before{content:"×"}.project-gallery__window-control--minimize span:before{content:"−"}.project-gallery__window-control--fullscreen span:before{content:"↗"}.project-gallery__window-control:focus-visible span,.project-gallery__window-controls:hover .project-gallery__window-control span{opacity:1}.project-gallery__titlebar-title{font-size:.8rem;font-weight:700;min-width:0;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.project-gallery__titlebar-count{font-feature-settings:"tnum";color:color-mix(in srgb,var(--chrome-ink) 70%,#0000);font-size:.74rem;font-variant-numeric:tabular-nums;justify-self:end}.project-gallery__stage{background:var(--stage);color:var(--stage-ink);display:grid;min-height:clamp(380px,42vw,540px);outline:none;overflow:hidden;padding:clamp(24px,4vw,48px);place-items:center;position:relative}.project-gallery__stage:focus-visible{outline:3px solid var(--stage-ink);outline-offset:-6px}.project-gallery__slide{display:grid;height:100%;place-items:center;width:100%}.project-gallery__image{box-shadow:0 10px 26px #0000004d;max-height:460px;max-width:88%;object-fit:contain;width:auto}.project-gallery--portrait .project-gallery__image{max-height:470px;max-width:min(72%,560px)}.project-gallery__status{grid-gap:20px;align-items:center;background:var(--surface);border-top:1px solid var(--line);display:grid;gap:20px;grid-template-columns:minmax(0,1fr) auto;min-height:64px;padding:12px 16px 12px 20px}.project-gallery__status-copy{align-items:baseline;color:var(--ink-muted);display:flex;font-size:.84rem;gap:10px;min-width:0;overflow-wrap:anywhere}.project-gallery__status-count{font-feature-settings:"tnum";color:var(--ink);font-variant-numeric:tabular-nums;font-weight:750;white-space:nowrap}.project-gallery__status-caption{min-width:0}.project-gallery__status-actions{align-items:center;display:flex;gap:4px}.project-gallery__open-original,.project-gallery__status-button{align-items:center;background:#0000;border:1px solid #0000;border-radius:8px;color:var(--ink-muted);cursor:pointer;display:inline-flex;font-size:.78rem;font-weight:700;gap:.4rem;justify-content:center;min-height:40px;min-width:40px;padding-inline:10px}.project-gallery__open-original:hover,.project-gallery__status-button:hover{background:var(--surface-muted);border-color:var(--line);color:var(--ink)}.project-gallery__pager{align-items:center;background:var(--surface);display:flex;gap:4px;justify-content:center;min-height:42px;padding:6px 12px 8px}.project-gallery__pager button{font-feature-settings:"tnum";background:#0000;border:0;border-radius:7px;color:var(--ink-muted);cursor:pointer;display:grid;font-size:.72rem;font-variant-numeric:tabular-nums;height:28px;padding:0;place-items:center;width:36px}.project-gallery__pager button:hover{background:var(--surface-muted);color:var(--ink)}.project-gallery__pager button[aria-current=true]{background:var(--surface-accent);color:var(--accent)}.project-gallery__pager-dot{background:#0000;border:1px solid var(--line-strong);border-radius:50%;display:block;height:7px;width:7px}.project-gallery__pager button[aria-current=true] .project-gallery__pager-dot{background:var(--accent);border-color:var(--accent)}.project-gallery__launcher{align-items:center;background:var(--surface);border:1px solid var(--line-strong);border-radius:12px;color:var(--ink);display:flex;gap:16px;justify-content:space-between;min-height:56px;padding:8px 10px 8px 20px}.project-gallery__launcher-copy{display:flex;flex-direction:column;font-size:.82rem;font-weight:700;min-width:0;overflow-wrap:anywhere}.project-gallery__launcher-copy>span{color:var(--ink-muted);font-weight:500}.project-gallery__launcher button,.project-gallery__launcher-button{background:#0000;border:1px solid var(--line-strong);border-radius:8px;color:var(--accent);cursor:pointer;font-weight:750;min-height:40px;padding-inline:14px}.project-gallery__launcher button:hover,.project-gallery__launcher-button:hover{background:var(--surface-accent);border-color:var(--accent)}.project-gallery--minimized .project-gallery__titlebar{border-bottom:0}.project-gallery__window--expanded,.project-gallery__window[data-expanded=true]{background:var(--surface);display:flex;flex-direction:column;inset:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));max-width:none;position:fixed;width:auto;z-index:500}.project-gallery__window:-webkit-full-screen .project-gallery__stage{flex:1 1;min-height:0}.project-gallery__window--expanded .project-gallery__stage,.project-gallery__window:fullscreen .project-gallery__stage,.project-gallery__window[data-expanded=true] .project-gallery__stage{flex:1 1;min-height:0}.project-gallery__window:-webkit-full-screen .project-gallery__image{max-height:calc(100dvh - 180px);max-width:min(92%,1500px)}.project-gallery__window--expanded .project-gallery__image,.project-gallery__window:fullscreen .project-gallery__image,.project-gallery__window[data-expanded=true] .project-gallery__image{max-height:calc(100dvh - 180px);max-width:min(92%,1500px)}.project-gallery__window:-webkit-full-screen{background:var(--surface);border:0;border-radius:0;display:flex;flex-direction:column;height:100%;width:100%}.project-gallery__window:fullscreen{background:var(--surface);border:0;border-radius:0;display:flex;flex-direction:column;height:100%;width:100%}.project-story{margin-top:clamp(64px,7vw,96px);max-width:960px}.project-story section{grid-gap:8px 32px;border-top:1px solid var(--line);display:grid;gap:8px 32px;grid-template-columns:160px minmax(0,1fr);padding-block:32px}.project-story section:last-child{border-bottom:1px solid var(--line)}.project-story section>p{color:var(--accent);font-size:.82rem;font-weight:750;grid-row:1/span 2}.project-story h4{font-size:clamp(1.35rem,2.2vw,1.8rem);font-weight:740;line-height:1.15;max-width:24ch}.project-story span{color:var(--ink-muted);display:block;max-width:64ch}.experience-section{background:var(--surface-muted);border-top:1px solid var(--line);padding:clamp(104px,11vw,144px) var(--layout-edge)}.experience-section__header{grid-gap:48px;align-items:end;display:grid;gap:48px;grid-template-columns:.36fr 1fr;margin-inline:auto;max-width:var(--content-max)}.experience-section__header>p{color:var(--accent);font-size:.86rem;font-weight:750}.experience-section h2{font-size:clamp(3rem,5.5vw,5rem);font-weight:780;line-height:.98;max-width:12ch}.experience-list{border-top:1px solid var(--line-strong);margin:clamp(56px,7vw,80px) auto 0;max-width:var(--content-max)}.experience-row{grid-gap:28px;align-items:start;border-bottom:1px solid var(--line);display:grid;gap:28px;grid-template-columns:.36fr 1.15fr .45fr 1.3fr;padding-block:28px}.experience-row__dates,.experience-row__year{font-feature-settings:"tnum";color:var(--ink-muted);font-size:.82rem;font-variant-numeric:tabular-nums}.experience-row__role h3{font-size:clamp(1.2rem,2vw,1.55rem);font-weight:740;line-height:1.2}.experience-row__role p{color:var(--ink-muted);font-size:.86rem;margin-top:.35rem}.experience-row__description{color:var(--ink-muted);font-size:.94rem;max-width:48ch}.about-section{grid-gap:clamp(56px,8vw,112px);align-items:start;background:var(--canvas);border-top:1px solid var(--line);display:grid;gap:clamp(56px,8vw,112px);grid-template-columns:minmax(190px,240px) minmax(0,680px);justify-content:center;padding:clamp(104px,11vw,144px) var(--layout-edge)}.about-section__image{align-self:start;position:relative}.about-section__image img{aspect-ratio:4/5;filter:saturate(.82);height:auto;object-fit:cover;object-position:center 18%;width:100%}.about-section__image span{color:var(--ink-muted);display:block;font-size:.72rem;padding-top:.75rem}.about-section__copy>p:first-child{color:var(--accent);font-size:.86rem;font-weight:750;margin-bottom:.9rem}.about-section h2{font-size:clamp(2.8rem,5vw,4.6rem);font-weight:780;line-height:.98;max-width:12ch}.about-section__copy>p:not(:first-child){color:var(--ink-muted);font-size:1.03rem;margin-top:1.5rem;max-width:64ch}.about-section__practice{border-top:1px solid var(--line);margin-top:40px}.about-section__practice>div{grid-gap:24px;border-bottom:1px solid var(--line);display:grid;gap:24px;grid-template-columns:.9fr 1.1fr;padding-block:15px}.about-section__practice dt{font-weight:700}.about-section__practice dd{color:var(--ink-muted)}.contact-section{background:var(--surface);border-top:1px solid var(--line);padding:clamp(96px,10vw,128px) var(--layout-edge) max(32px,env(safe-area-inset-bottom))}.contact-section__lead,.contact-section__links,.portfolio-footer{margin-inline:auto;max-width:var(--content-max)}.contact-section__lead>p{color:var(--ink-muted);margin-bottom:1rem}.contact-section h2{font-size:clamp(3rem,6vw,5.5rem);font-weight:780;line-height:.98}.contact-section h2 a{align-items:center;color:var(--accent);display:inline-flex;gap:.45em}.contact-section h2 a:hover{color:var(--accent-hover)}.contact-section h2 svg{height:.66em;width:.66em}.contact-section__links{border-top:1px solid var(--line-strong);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:clamp(56px,7vw,80px)}.contact-section__links>a{grid-gap:16px;align-items:center;border-bottom:1px solid var(--line);border-right:1px solid var(--line);display:grid;gap:16px;grid-template-columns:auto minmax(0,1fr) auto;min-height:112px;min-width:0;padding:20px 24px}.contact-section__links>a:first-child{padding-left:0}.contact-section__links>a:last-child{border-right:0;padding-right:0}.contact-section__links>a:hover{color:var(--accent)}.contact-section__links span{min-width:0}.contact-section__links small,.contact-section__links strong{display:block}.contact-section__links small{color:var(--ink-muted);font-size:.76rem;margin-bottom:.3rem}.contact-section__links strong{font-size:.9rem;overflow-wrap:anywhere}.portfolio-footer{align-items:center;border-top:1px solid var(--line);color:var(--ink-muted);display:flex;font-size:.82rem;justify-content:space-between;margin-top:56px;padding-top:24px}.portfolio-footer a{align-items:center;color:var(--ink);display:inline-flex;font-weight:700;min-height:44px}.portfolio-footer a:hover{color:var(--accent)}.route-fallback{background:#f5f4ef;color:#171719;display:grid;font:700 1rem/1.5 Atkinson Hyperlegible Next,sans-serif;min-height:100vh;place-items:center}@media (max-width:1024px){.portfolio-page{--page-gutter:clamp(24px,4vw,48px)}.portfolio-header{grid-template-columns:auto 1fr auto}.portfolio-brand__name{display:none}.portfolio-nav__link{min-width:76px;padding-inline:.6rem}.portfolio-hero{gap:36px;grid-template-columns:minmax(0,1fr) minmax(300px,.78fr)}.project-chapter__overview{grid-template-columns:minmax(0,1fr) minmax(170px,.34fr)}.project-facts>div{padding-inline:20px}.experience-row{grid-template-columns:.3fr 1fr .45fr}.experience-row__description{grid-column:2/-1}.contact-section__links{grid-template-columns:1fr}.contact-section__links>a,.contact-section__links>a:first-child,.contact-section__links>a:last-child{border-right:0;min-height:84px;padding-inline:0}}@media (max-width:760px){.portfolio-page{--page-gutter:24px}.portfolio-header{grid-template-columns:auto 1fr auto;min-height:64px}.display-mode-control,.portfolio-nav{display:none}.portfolio-menu-button{display:inline-flex;grid-column:3;justify-self:end}.portfolio-hero{gap:40px;grid-template-columns:1fr;grid-template-rows:auto auto auto;min-height:auto;padding:calc(112px + env(safe-area-inset-top)) var(--page-gutter) 80px}.portfolio-hero__blue-field{display:none}.portfolio-hero h1{font-size:clamp(3.4rem,18vw,5.3rem)}.portfolio-hero__artifact{background:var(--surface-accent);border:1px solid var(--line);grid-row:2;justify-self:end;width:min(78vw,320px)}.portfolio-hero__statement{grid-row:3}.work-section__intro{padding-block:80px 64px}.work-section__intro h2{font-size:clamp(2.8rem,13vw,4.4rem)}.project-chapter{padding-block:72px}.project-chapter__overview{gap:28px;grid-template-columns:1fr}.project-chapter__repository,.project-chapter__repository-note{max-width:320px}.project-facts{grid-template-columns:1fr;margin-top:36px}.project-facts>div,.project-facts>div:first-child,.project-facts>div:last-child{border-bottom:1px solid var(--line);border-right:0;padding:16px 0}.project-facts>div:last-child{border-bottom:0}.project-gallery{margin-top:48px}.project-gallery__titlebar{grid-template-columns:116px minmax(0,1fr) 48px;min-height:48px;padding-inline:6px 10px}.project-gallery__window-control{height:40px;width:36px}.project-gallery__titlebar-count{font-size:.7rem}.project-gallery__stage{aspect-ratio:4/3;min-height:0;padding:16px}.project-gallery--portrait .project-gallery__image,.project-gallery__image{max-height:calc(58vw - 27.84px);max-width:88%}.project-gallery__status{gap:8px;grid-template-columns:1fr;min-height:0;padding:12px}.project-gallery__status-actions{justify-content:space-between}.project-gallery__open-original span,.project-gallery__status-button span{display:none}.project-gallery__pager{justify-content:flex-start;overflow-x:auto}.project-story{margin-top:56px}.project-story section{gap:8px;grid-template-columns:1fr;padding-block:26px}.project-story section>p{grid-row:auto}.about-section,.contact-section,.experience-section{padding-inline:var(--page-gutter)}.experience-section{padding-block:88px}.experience-section__header{gap:16px;grid-template-columns:1fr}.experience-row{gap:8px 16px;grid-template-columns:1fr auto;padding-block:24px}.experience-row__role{grid-column:1/-1}.experience-row__dates{grid-column:2;grid-row:1}.experience-row__description{grid-column:1/-1;margin-top:8px}.about-section{gap:40px;grid-template-columns:minmax(0,200px) minmax(0,1fr);padding-block:88px}.about-section__copy{grid-column:1/-1}.contact-section{padding-block:88px 32px}.portfolio-footer{align-items:flex-start;flex-direction:column;gap:12px}}@media (max-width:420px){.portfolio-page{--page-gutter:20px}.portfolio-brand__mark{height:32px;width:32px}.portfolio-menu-button{min-width:72px}.portfolio-hero{padding-top:calc(104px + env(safe-area-inset-top))}.portfolio-hero h1{font-size:min(17vw,4.5rem)}.work-section__intro h2{font-size:min(14vw,4rem)}.project-chapter h3{font-size:min(13.5vw,3.7rem)}.about-section h2,.experience-section h2{font-size:min(13vw,4rem)}.project-gallery__titlebar{grid-template-columns:108px minmax(0,1fr)}.project-gallery__titlebar-count{display:none}.project-gallery__status-copy{font-size:.78rem}.about-section{grid-template-columns:minmax(0,180px) 1fr}.about-section__practice>div{gap:.25rem;grid-template-columns:1fr}.contact-section h2{font-size:min(14vw,4rem)}}@media (hover:none),(pointer:coarse){.project-gallery__window-control span{opacity:1}}@media (prefers-reduced-motion:reduce){html:has(body.portfolio-route-active){scroll-behavior:auto}.portfolio-header,.portfolio-hero__artifact,.portfolio-nav__link:after,.portfolio-page,.portfolio-page svg{transition-duration:.01ms!important}}@media (forced-colors:active){.portfolio-page :where(a,button,[tabindex]):focus-visible{outline:3px solid Highlight}.portfolio-brand__mark,.portfolio-hero__blue-field,.project-gallery__window{border:1px solid CanvasText}.project-gallery__window-control:before{background:ButtonFace;border:1px solid ButtonText}}