@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/32687112bd2dd8db-s.1gepa_7fcx9fm.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/28868e710e86be81-s.2eksvhm1z0jwa.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/32687112bd2dd8db-s.1gepa_7fcx9fm.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/28868e710e86be81-s.2eksvhm1z0jwa.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk Fallback;src:local(Arial);ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.0%;size-adjust:109.69%}.space_grotesk_9c0d0068-module__Au4UiW__className{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.space_grotesk_9c0d0068-module__Au4UiW__variable{--font-display:"Space Grotesk", "Space Grotesk Fallback"}
@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.390ncx5urfkfu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.31988l_ccedte.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0r6juujl39pe6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
.portfolio{color:var(--ink);background:var(--surface);font-size:17px;line-height:1.6}.portfolio-container{width:min(1320px,100% - 112px);margin-inline:auto}.portfolio a:focus-visible,.portfolio button:focus-visible{outline:2px solid var(--signal);outline-offset:5px}.portfolio button,.portfolio a{-webkit-tap-highlight-color:transparent}.portfolio h1,.portfolio h2,.portfolio h3{font-family:var(--font-display), var(--font-geist-sans), sans-serif;letter-spacing:-.04em;text-wrap:initial;font-weight:400}.portfolio h2{max-width:none;font-size:clamp(40px,4.5vw,64px);line-height:1.08}.portfolio h3{font-size:clamp(30px,3.1vw,44px);line-height:1.1}.portfolio p{margin:0}.portfolio-skip{background:var(--ink);color:var(--surface);z-index:10;padding:10px 20px;position:fixed;top:12px;left:12px;transform:translateY(-150%)}.portfolio-skip:focus{transform:translateY(0)}.portfolio-header{justify-content:space-between;align-items:center;height:106px;display:flex}.portfolio-wordmark{letter-spacing:-.035em;align-items:center;gap:24px;font-size:16px;font-weight:500;display:flex}.portfolio-wordmark>.portfolio-role{color:var(--muted);letter-spacing:0;font-size:13px;font-weight:400}.portfolio-header nav{align-items:center;gap:36px;font-size:14px;display:flex}.portfolio-header nav a{align-items:center;min-width:44px;min-height:44px;display:inline-flex}.portfolio-header nav a:hover{text-underline-offset:5px;text-decoration:underline}.portfolio-header .nav-contact{gap:12px;margin-left:14px}.arrow-icon{flex-shrink:0;width:21px;height:21px}.portfolio-hero{grid-template-columns:1.04fr 1fr;align-items:center;gap:14px;min-height:576px;padding-bottom:32px;display:grid}.portfolio-hero-copy{z-index:1;padding:34px 0 44px;position:relative}.portfolio-hero h1{max-width:none;margin:0 0 30px;font-size:clamp(64px,7.3vw,104px);line-height:.99}.portfolio-hero h1 span{font:inherit;letter-spacing:inherit;color:inherit;white-space:nowrap;max-width:none;margin:0;display:block}.portfolio-hero-description{max-width:360px;color:var(--muted);font-size:18px;line-height:1.65}.portfolio-primary-link{background:var(--ink);color:var(--surface);border-radius:100px;justify-content:space-between;align-items:center;gap:32px;margin-top:30px;padding:14px 22px;font-size:14px;transition:background .18s,transform .18s;display:inline-flex}.portfolio-primary-link:hover{background:color-mix(in srgb, var(--ink), var(--surface) 15%);transform:translateY(-2px)}.portfolio-intro-line{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;padding-block:23px;font-size:12px;display:flex}.portfolio-section{padding-block:112px;scroll-margin-top:24px}.portfolio-section-heading{grid-template-columns:1.1fr 1fr;align-items:start;gap:80px;margin-bottom:62px;display:grid}.portfolio-section-heading>p{max-width:39ch;color:var(--muted);margin-left:auto;line-height:1.7}.portfolio-project-list{gap:86px;display:grid}.portfolio-project{grid-template-columns:1.13fr 1fr;align-items:center;gap:68px;display:grid}.portfolio-project:nth-child(2){grid-template-columns:1fr 1.13fr}.portfolio-project:nth-child(2) .project-visual{order:2}.portfolio-project:nth-child(2) .portfolio-project-copy{order:1;padding-right:10px}.project-category{color:var(--muted);font-size:13px;margin-bottom:18px!important}.portfolio-project-copy h3{max-width:15ch;margin-bottom:20px}.project-description{color:var(--muted);max-width:47ch;font-size:16px;line-height:1.7}.project-stack{color:var(--muted);font-size:12px;line-height:1.8;margin-top:18px!important}.portfolio-source-link{border-bottom:1px solid #aeb5a7;align-items:center;gap:24px;min-height:44px;margin-top:26px;padding-block:10px;font-size:14px;display:inline-flex}.portfolio-source-link:hover{border-color:var(--ink)}.portfolio-source-link .arrow-icon{width:18px;height:18px}.project-visual{color:#20221f;border-radius:4px;min-height:360px;position:relative;overflow:hidden}.project-visual-auth{background:#d9ded3}.auth-diagram{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.auth-orbit{border:1px solid #bcc5b3;border-radius:50%;width:270px;height:270px;position:absolute}.auth-orbit:before,.auth-orbit:after{content:"";border:1px solid #bcc5b3;border-radius:50%;position:absolute;inset:27px}.auth-orbit:after{inset:54px}.auth-core{color:#e9ede3;background:#394b3b;border-radius:24px;place-items:center;width:94px;height:100px;margin-top:-10px;display:grid;transform:rotate(-9deg);box-shadow:11px 12px #b6c3ad}.auth-core svg{fill:none;stroke:currentColor;stroke-width:1.3px;width:53px;transform:rotate(9deg)}.auth-flow{justify-content:space-around;gap:20px;width:87%;margin-top:35px;font-size:13px;display:flex;position:relative}.auth-flow:before{content:"";background:#9aa890;width:85%;height:1px;position:absolute;top:50%;left:7.5%}.auth-flow span{z-index:1;background:#e8ede2;border:1px solid #aebba4;border-radius:4px;padding:9px 15px}.auth-annotations{color:#4f5d49;width:94%;font-family:var(--font-geist-mono), monospace;justify-content:space-around;font-size:12px;display:flex;position:absolute;bottom:26px}.project-visual-ledger{background:#dfd7cd}.ledger-diagram{width:70%;max-width:350px;height:240px;position:absolute;top:46px;left:14%;transform:rotate(-9deg)}.ledger-sheet{width:100%;height:147px;top:calc(var(--sheet-index) * 37px);left:calc(var(--sheet-index) * 6px);background:#f1eee7;border:1px solid #bbb3a6;padding:18px;font-size:12px;position:absolute;box-shadow:0 3px #cbc3b6}.ledger-sheet:last-child{color:#f1eee7;background:#535e51;border-color:#535e51}.ledger-lines{gap:13px;width:76%;margin-top:21px;display:grid}.ledger-lines i{opacity:.22;background:currentColor;height:1px;display:block}.ledger-sheet b{font-size:50px;font-weight:300;line-height:1;position:absolute;bottom:9px;right:20px}.project-visual-study{background:#dedfe6}.study-diagram{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.study-cards{width:180px;height:205px;margin-top:-25px;position:relative}.study-card{transform:translateX(calc((var(--card-index) - 1) * 53px)) rotate(calc((var(--card-index) - 1) * 13deg));background:#eeedf1;border:1px solid #a6a8b2;border-radius:7px;padding:18px;font-size:14px;position:absolute;inset:0}.study-card:last-child{color:#edebf2;background:#5a5670}.study-card svg{fill:none;stroke:currentColor;stroke-width:1px;opacity:.8;width:110px;height:110px;margin:12px auto 0;display:block}.study-diagram>p{font-family:var(--font-geist-mono), monospace;color:#575364;font-size:12px;position:absolute;bottom:24px}.portfolio-results{border-top:1px solid var(--line)}.portfolio-outcomes{grid-template-columns:1.25fr 1fr 1fr;gap:48px;padding:12px 0 66px;display:grid}.portfolio-outcome strong{font-family:var(--font-geist-mono), monospace;letter-spacing:-.065em;white-space:nowrap;font-size:clamp(26px,3vw,43px);font-weight:400;line-height:1.2;display:block}.portfolio-outcome>p{color:var(--muted);max-width:30ch;margin-top:20px;font-size:14px;line-height:1.65}.portfolio-experience{border-top:1px solid var(--line)}.portfolio-experience article{border-bottom:1px solid var(--line);grid-template-columns:1fr 1.25fr 1.75fr;gap:28px;padding-block:35px;display:grid}.experience-period{color:var(--muted);font-size:12px}.experience-role h3{letter-spacing:-.025em;font-size:23px}.experience-role>p{color:var(--muted);margin-top:9px;font-size:13px}.experience-detail{color:var(--muted);font-size:15px;line-height:1.7}.portfolio-about{grid-template-columns:1.1fr 1fr;gap:80px;padding-top:22px;padding-bottom:130px;display:grid}.portfolio-about h2{white-space:pre-line;max-width:14ch}.portfolio-about p{color:var(--muted);font-size:17px;line-height:1.8}.portfolio-about p+p{margin-top:24px}.portfolio-contact{background:var(--surface-raised);padding-block:90px 68px}.portfolio-contact h2{white-space:pre-line;letter-spacing:-.04em;font-size:clamp(48px,6.7vw,92px);line-height:1.05}.portfolio-contact-bottom{justify-content:space-between;align-items:end;gap:30px;margin-top:54px;display:flex}.portfolio-contact-bottom>p{color:var(--muted);font-size:18px}.portfolio-contact-bottom>a{letter-spacing:-.03em;border-bottom:1px solid #98a08e;align-items:center;gap:36px;padding-block:14px;font-size:clamp(18px,2vw,27px);display:flex}.portfolio-contact-bottom>a .arrow-icon{width:30px;height:30px}.portfolio-footer{font-family:var(--font-geist-sans), sans-serif;letter-spacing:0;text-transform:none;color:var(--muted);border:0;justify-content:space-between;align-items:center;gap:20px;padding-block:28px;font-size:12px;display:flex}.portfolio-footer>div{gap:28px;display:flex}.portfolio-footer a{align-items:center;gap:7px;min-height:44px;display:flex}.portfolio-footer .arrow-icon{width:13px;height:13px}.portfolio-footer a:hover{color:var(--ink);text-underline-offset:5px;text-decoration:underline}.portfolio-version{font-family:var(--font-geist-mono), monospace}@media (min-width:1500px){.portfolio-hero{min-height:680px}}@media (max-width:1050px){.portfolio-container{width:calc(100% - 64px)}.portfolio-wordmark>.portfolio-role{display:none}.portfolio-header nav{gap:24px}.portfolio-hero{gap:0;min-height:540px}.portfolio-hero h1{font-size:7.5vw}.portfolio-project{gap:38px}.portfolio-section-heading,.portfolio-about{gap:44px}.project-visual{min-height:335px}.auth-flow{gap:8px;font-size:12px}.auth-flow span{padding-inline:9px}.auth-annotations{font-size:12px}}@media (max-width:700px){.portfolio-container{width:calc(100% - 44px)}.portfolio-header{height:84px}.portfolio-wordmark{font-size:14px}.portfolio-header nav{gap:21px;font-size:13px}.portfolio-header .nav-contact{display:none}.portfolio-hero{flex-direction:column;align-items:stretch;gap:0;padding-bottom:27px;display:flex}.portfolio-hero-copy{padding:41px 0 4px}.portfolio-hero h1{margin-bottom:25px;font-size:clamp(47px,12.7vw,76px);line-height:1.02}.portfolio-hero-description{max-width:34ch;font-size:17px;line-height:1.65}.portfolio-primary-link{margin-top:25px;padding-block:13px}.portfolio-intro-line{align-items:start;gap:20px;padding-block:20px;font-size:12px}.portfolio-intro-line>span:last-child{display:none}.portfolio-section{padding-block:76px}.portfolio h2{font-size:40px;line-height:1.08}.portfolio-section-heading{grid-template-columns:1fr;gap:24px;margin-bottom:36px}.portfolio-section-heading>p{max-width:39ch;margin:0;font-size:16px}.portfolio-project-list{gap:58px}.portfolio-project,.portfolio-project:nth-child(2){grid-template-columns:1fr;gap:27px}.portfolio-project:nth-child(2) .project-visual,.portfolio-project:nth-child(2) .portfolio-project-copy{order:initial;padding:0}.project-visual{min-height:310px}.portfolio-project-copy h3{max-width:18ch;margin-bottom:16px;font-size:34px}.project-category{font-size:12px;margin-bottom:12px!important}.project-description{font-size:16px}.project-stack{font-size:12px;margin-top:14px!important}.portfolio-source-link{margin-top:17px}.auth-orbit{width:235px;height:235px}.auth-flow{font-size:12px}.auth-annotations{font-size:12px;bottom:21px}.ledger-diagram{width:72%;top:30px;left:11%;transform:rotate(-8deg)scale(.95)}.study-cards{transform:scale(.91)}.portfolio-outcomes{grid-template-columns:1fr;gap:32px;padding-top:0;padding-bottom:40px}.portfolio-outcome{grid-template-columns:1fr;gap:0;display:grid}.portfolio-outcome strong{font-size:37px}.portfolio-outcome>p{max-width:33ch;margin-top:12px}.portfolio-experience article{grid-template-columns:1fr;gap:17px;padding-block:29px}.experience-detail{font-size:15px}.portfolio-about{grid-template-columns:1fr;gap:28px;padding-top:0;padding-bottom:80px}.portfolio-about h2{max-width:17ch}.portfolio-about p{font-size:16px}.portfolio-contact{padding-block:65px 48px}.portfolio-contact h2{font-size:clamp(40px,10.2vw,60px)}.portfolio-contact-bottom{flex-direction:column;align-items:start;gap:24px;margin-top:32px}.portfolio-contact-bottom>a{justify-content:space-between;gap:10px;width:100%;font-size:clamp(15px,4.5vw,23px)}.portfolio-contact-bottom>a .arrow-icon{width:24px;height:24px}.portfolio-footer{flex-flow:wrap;gap:8px;padding-block:24px}.portfolio-footer>span:first-child{width:100%}.portfolio-footer>div{gap:24px}}@media (prefers-reduced-motion:reduce){.portfolio-primary-link:hover{transform:none}}.portfolio-wordmark{gap:12px}.portfolio-wordmark .portfolio-name{color:var(--ink)}.portfolio-wordmark .portfolio-role{margin-left:12px}.portfolio-logo{width:36px;height:36px}.portfolio-story{grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);align-items:start;column-gap:40px;display:grid;overflow:visible}.portfolio-narrative{grid-area:1/1;min-width:0}.portfolio-room{grid-area:1/2;min-width:0;height:calc(100svh - 106px);position:sticky;top:32px}.workspace{flex-direction:column;height:100%;margin:0;display:flex}.workspace-stage{flex:1;min-height:0;position:relative}.workspace-stage canvas,.workspace-fallback{width:100%;height:100%;position:absolute;inset:0}.workspace-stage canvas{opacity:0;transition:opacity .25s}.workspace-ready canvas{opacity:1}.workspace-ready .workspace-fallback{visibility:hidden}.workspace-caption{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:12px 0 22px;font-size:12px;display:flex}.workspace-location{align-items:center;gap:8px;display:flex}.workspace-light{background:#b65934;border-radius:50%;width:6px;height:6px}.workspace-controls{gap:6px;display:flex}.workspace-controls button{border:1px solid var(--line);min-height:44px;color:var(--ink);background:var(--surface);font:inherit;cursor:pointer;border-radius:24px;justify-content:center;align-items:center;gap:5px;padding:0 12px;display:inline-flex}.workspace-controls button svg{width:18px;height:18px}.workspace-controls button[aria-pressed=true]{background:var(--surface-raised);border-color:var(--line)}.workspace-controls button:hover{border-color:var(--muted)}.workspace-controls button:disabled{cursor:default;color:var(--muted)}.workspace-status{color:var(--muted);padding-bottom:12px;font-size:12px}.portfolio-story .portfolio-hero{align-items:center;min-height:calc(100svh - 106px);padding-bottom:0;display:flex}.portfolio-story .portfolio-hero h1{font-size:clamp(48px,5.3vw,78px)}.portfolio-story .portfolio-hero-copy{padding-block:60px 80px}.portfolio-story .portfolio-intro-line{padding-block:22px}.portfolio-story .portfolio-intro-line>span:last-child{display:none}.portfolio-story .portfolio-section{padding-block:90px}.portfolio-story .portfolio-section-heading{grid-template-columns:1fr;gap:24px;margin-bottom:44px}.portfolio-story .portfolio-section-heading>p{max-width:42ch;margin:0}.portfolio-story h2{font-size:clamp(36px,3.6vw,52px)}.portfolio-story .portfolio-project-list{gap:90px}.portfolio-story .portfolio-project,.portfolio-story .portfolio-project:nth-child(2){grid-template-columns:1fr;gap:24px}.portfolio-story .portfolio-project:nth-child(2) .project-visual,.portfolio-story .portfolio-project:nth-child(2) .portfolio-project-copy{order:initial;padding:0}.portfolio-story .project-visual{min-height:280px}.portfolio-story .portfolio-project-copy h3{max-width:22ch;font-size:32px}.portfolio-story .portfolio-outcomes{grid-template-columns:1fr;gap:30px;padding-bottom:42px}.portfolio-story .portfolio-outcome{grid-template-columns:1fr;display:grid}.portfolio-story .portfolio-outcome strong{font-size:35px}.portfolio-story .portfolio-outcome>p{max-width:42ch;margin-top:10px}.portfolio-story .portfolio-experience article{grid-template-columns:1fr;gap:14px}.portfolio-story .portfolio-about{grid-template-columns:1fr;gap:28px}.portfolio-story .portfolio-about h2{max-width:17ch}.portfolio-story .portfolio-contact{border-top:1px solid var(--line);background:0 0;min-height:70svh;padding-block:90px 110px}.portfolio-story .portfolio-contact h2{font-size:clamp(40px,4.3vw,62px)}.portfolio-story .portfolio-contact-bottom{flex-direction:column;align-items:start;gap:25px;margin-top:32px;display:flex}.portfolio-story .portfolio-contact-bottom>a{gap:20px;font-size:clamp(18px,1.9vw,25px)}@media (min-width:1600px){.portfolio-story .portfolio-hero h1{font-size:78px}}@media (max-width:1050px) and (min-width:901px){.portfolio-story{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}.workspace-caption{justify-content:center}.portfolio-story .portfolio-hero h1{font-size:5vw}}@media (max-width:900px){.portfolio-wordmark .portfolio-role{display:none}.portfolio-story{flex-direction:column;display:flex}.portfolio-room{z-index:3;background:var(--surface);border-bottom:1px solid var(--line);flex-shrink:0;width:calc(100% + 44px);height:clamp(200px,36svh,300px);margin-left:-22px;top:0}.workspace-caption{flex-wrap:nowrap;gap:6px;min-height:52px;padding:0 22px 8px}.workspace-location{max-width:34%;font-size:12px;line-height:1.3}.workspace-controls{gap:5px}.workspace-controls button{padding-inline:9px;font-size:12px}.workspace-controls button svg{width:15px;height:15px}.portfolio-narrative{width:100%}.portfolio-story .portfolio-hero{min-height:min(540px,64svh)}.portfolio-story .portfolio-hero-copy{padding-block:42px 56px}.portfolio-story .portfolio-hero h1{font-size:clamp(46px,10.5vw,76px)}.portfolio-story .portfolio-hero-description{max-width:43ch}.portfolio-story .portfolio-section{padding-block:65px}.portfolio-story h2{font-size:40px}.portfolio-story .portfolio-project-list{gap:65px}.portfolio-story .project-visual{min-height:310px}.portfolio-story .portfolio-contact{min-height:64svh;padding-block:64px 80px}.portfolio-story [id],.portfolio-story [data-room-progress]{scroll-margin-top:calc(clamp(200px,36svh,300px) + 24px)}}@media (max-width:380px){.portfolio-wordmark{gap:8px;font-size:13px}.portfolio-logo{width:30px;height:30px}.portfolio-header nav{gap:14px;font-size:12px}.workspace-location{display:none}.workspace-caption{justify-content:center}}.workspace-window{fill:#9ec8dc}html[data-theme=dark] .workspace-window{fill:#172631}.portfolio-main{overflow:visible}.theme-switch{border:1px solid var(--line);background:var(--surface);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;border-radius:24px;justify-content:center;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.theme-switch svg{width:18px;height:18px}.workspace-journey{--journey-distance:1000svh;position:relative}.journey-enhanced{height:calc(var(--journey-distance) + 100svh)}.journey-enhanced .journey-stage{height:100svh;position:sticky;top:0;overflow:hidden}.journey-enhanced .workspace-stage{height:100%;position:absolute;inset:0}.journey-anchor{pointer-events:none;width:1px;height:1px;position:absolute;left:0}.journey-contact-anchor{top:var(--journey-distance)}.journey-intro h1{max-width:none;font-size:clamp(46px,5.5vw,82px);line-height:1}.journey-intro h1 span{font:inherit;color:inherit;white-space:nowrap;margin:0}.journey-intro .portfolio-hero-description{margin-top:30px}.journey-hint{color:var(--muted);max-width:34ch;font-size:12px;margin-top:22px!important}.journey-enhanced .journey-intro{width:39%;position:absolute;top:39%;left:max(40px,50vw - 660px);transform:translateY(-50%)}.journey-enhanced .journey-outro{visibility:hidden;width:40%;position:absolute;top:45%;left:max(40px,50vw - 660px);transform:translateY(-50%)}.journey-outro h2{white-space:pre-line;margin-bottom:28px;font-size:clamp(40px,4.7vw,72px)}.journey-outro>p{color:var(--muted)}.journey-email{gap:12px;font-size:clamp(16px,1.8vw,25px)}.journey-controls{justify-content:space-between;align-items:center;gap:20px;font-size:12px;display:flex}.journey-enhanced .journey-controls{z-index:5;position:absolute;bottom:16px;left:32px;right:32px}.journey-chapters,.journey-options{align-items:center;gap:8px;display:flex}.journey-controls a,.journey-options>button{border:1px solid var(--line);background:var(--surface);min-width:44px;min-height:44px;color:var(--ink);font:inherit;cursor:pointer;border-radius:24px;justify-content:center;align-items:center;padding:0 15px;display:inline-flex}.journey-controls a:hover,.journey-options button:hover{border-color:var(--muted)}.journey-options button:disabled{cursor:default}.journey-surface{color:var(--ink);background:var(--surface);container-type:inline-size}.journey-enhanced .journey-surface{visibility:hidden;opacity:0;position:absolute;overflow:hidden}.surface-toolbar{background:var(--surface-raised);color:var(--muted);border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;min-height:42px;padding:12px 24px;font-size:12px;display:flex}.journey-enhanced .surface-viewport{height:calc(100% - 43px);overflow:hidden}.surface-content{padding:36px}.screen-heading{margin-bottom:32px}.portfolio .screen-heading h2{margin-bottom:18px;font-size:clamp(30px,4cqi,46px);line-height:1.08}.screen-heading>p{color:var(--muted);max-width:58ch;font-size:16px}.screen-project-list{gap:44px;display:grid}.screen-project{border-top:1px solid var(--line);grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center;gap:30px;padding-top:32px;display:grid}.screen-project .project-visual{min-height:265px}.portfolio .screen-project h3{margin-bottom:14px;font-size:28px}.screen-project .project-category{margin-bottom:12px!important}.screen-project .project-description{font-size:15px}.surface-ending{color:var(--muted);border-top:1px solid var(--line);padding-top:25px;font-size:13px;margin-top:42px!important}.screen-experience .portfolio-outcomes{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding-bottom:42px}.screen-experience .portfolio-outcome strong{font-size:clamp(25px,4cqi,40px)}.screen-experience .portfolio-experience article{grid-template-columns:1fr 2fr;gap:20px}.screen-experience .experience-detail{grid-column:2}.surface-notebook{--ink:#34382f;--muted:#59624f;--surface:#e8dfc9;--surface-raised:#dfd5bd;--line:#c3baa3;--signal:#84542f}.notebook-content h2{margin-bottom:26px;font-size:40px}.notebook-content>p{margin-top:22px;font-size:17px;line-height:1.85}.notebook-writing{border-top:1px solid var(--line);margin-top:45px;padding-top:30px}.notebook-writing h3{margin-bottom:20px;font-size:29px}.notebook-writing p{font-size:16px}.journey-reading .journey-stage{flex-direction:column;width:min(100% - 44px,1040px);margin:auto;display:flex}.journey-reading .journey-intro{order:0;padding-block:65px 35px}.journey-reading .workspace-stage{flex:none;order:1;height:430px;position:relative}.journey-reading .journey-controls{flex-wrap:wrap;order:2;margin-block:25px 55px}.journey-reading .journey-surface{order:3;margin-bottom:80px;scroll-margin-top:24px}.journey-reading .journey-outro{order:4;padding-block:40px 90px}@container (max-width:750px){.surface-toolbar{padding-inline:18px;font-size:12px}.surface-toolbar>span:last-child{display:none}.surface-content,.surface-notebook .surface-content{padding:24px 20px}.screen-project{grid-template-columns:1fr;gap:22px}.screen-project .project-visual{min-height:230px}.screen-project .auth-annotations{font-size:11px}.screen-experience .portfolio-outcomes{grid-template-columns:1fr;gap:28px}.screen-experience .portfolio-experience article{grid-template-columns:1fr;gap:14px}.screen-experience .experience-detail{grid-column:auto}.portfolio .notebook-content h2{font-size:30px}.notebook-content>p{font-size:16px}}@media (max-width:900px){.journey-enhanced .journey-intro{width:calc(100% - 44px);top:45%;left:22px;transform:none}.journey-intro h1{font-size:clamp(40px,7.8vw,62px)}.journey-intro .portfolio-hero-description{max-width:42ch;margin-top:20px;font-size:16px}.journey-intro .portfolio-primary-link{margin-top:22px}.journey-hint{margin-top:14px!important}.journey-enhanced .journey-outro{width:calc(100% - 44px);top:47%;left:22px;transform:none}.journey-outro h2{font-size:38px}.journey-enhanced .journey-controls{flex-wrap:wrap;justify-content:center;gap:6px;bottom:10px;left:12px;right:12px}.journey-controls a,.journey-options>button{padding-inline:10px;font-size:12px}.journey-chapters,.journey-options{gap:5px}.journey-options .theme-switch{padding-inline:10px;font-size:12px}.portfolio-header nav{gap:15px}.portfolio-header nav .theme-switch{padding-inline:8px;font-size:12px}.portfolio-header nav .theme-switch svg{width:16px}}@media (max-width:420px){.portfolio-header nav>a:nth-child(2){display:none}.journey-options .theme-switch{width:44px;padding:0;font-size:0;display:inline-flex}.journey-controls .journey-chapters a{padding-inline:8px}.journey-enhanced .surface-content{padding:20px 16px}}.surface-computer{--surface:#132127;--surface-raised:#1e3038;--ink:#e1ebeb;--muted:#acbec1;--line:#3a5159;--signal:#edbc92}.surface-computer .surface-content,.surface-television .surface-content{padding:0}.surface-computer .surface-toolbar{font-family:var(--font-geist-mono), monospace}.editor-tab{border-bottom:1px solid var(--line);font:13px var(--font-geist-mono), monospace;align-items:center;gap:12px;padding:14px 30px;display:flex}.editor-tab>span:first-child{color:#a1d7ee;font-weight:600}.editor-tab-dot{background:#a7c5b0;border-radius:50%;width:7px;height:7px}.editor-heading{padding:36px 42px 20px}.editor-heading h2{margin:15px 0;font-size:clamp(30px,4cqi,44px)}.editor-heading>p:last-child{color:var(--muted);max-width:64ch;font-size:15px;line-height:1.7}.code-comment{color:#9ab3a4;font:13px/1.7 var(--font-geist-mono), monospace}.code-project{border-bottom:1px solid var(--line);font-family:var(--font-geist-mono), monospace;padding:25px 42px 36px}.code-declaration{color:#b8c9cc;font-size:16px;line-height:1.8}.code-keyword{color:#dfafe0}.code-name{color:#a7d5eb}.code-properties{border-left:1px solid #40565d;margin:12px 0 12px 9px;padding:5px 0 10px 26px}.code-properties>.code-comment{margin-bottom:24px}.code-key{color:#9dcce0;font-size:13px}.code-properties h3{font-family:var(--font-geist-mono), monospace;color:#ebc194;overflow-wrap:anywhere;margin:8px 0 24px;font-size:clamp(22px,2.5cqi,30px);line-height:1.35}.code-description{color:#c5d7c2;max-width:75ch;font-size:14px;line-height:1.9;margin:8px 0 24px!important}.code-stack{color:#c5d7c2;max-width:75ch;font-size:13px;line-height:1.9}.code-stack .code-key{margin-right:12px}.code-properties .portfolio-source-link{color:#d7e6eb;border-color:#657b7f;font-size:13px}.editor-ending{padding:26px 42px 36px}.surface-television{--surface:#152e2d;--surface-raised:#0c2223;--ink:#f1ebde;--muted:#c1d0c8;--line:#5c7470;--signal:#edc499}.surface-television .surface-toolbar{letter-spacing:.08em;text-transform:uppercase;font-size:11px}.broadcast-title{background:#173735;padding:38px 48px 0}.broadcast-kicker{font:12px/1.5 var(--font-geist-mono), monospace;letter-spacing:.12em;align-items:center;gap:16px;display:flex}.channel-mark{font:600 20px var(--font-display), sans-serif;letter-spacing:-.08em;border:1px solid;padding:7px}.broadcast-title h2{letter-spacing:-.055em;margin:38px 0 26px;font-size:clamp(42px,8cqi,96px);line-height:.98}.broadcast-title h2 em{color:#edc499;font-style:normal}.broadcast-title>p:last-of-type{color:#d8dfd3;max-width:52ch;font-size:17px;line-height:1.7}.broadcast-caption{color:#203732;font:11px/1.5 var(--font-geist-mono), monospace;letter-spacing:.08em;background:#edc499;justify-content:space-between;gap:20px;margin:38px -48px 0;padding:17px 48px;display:flex}.broadcast-result{color:#173735;background:#e9e5d7;flex-direction:column;justify-content:center;align-items:flex-start;min-height:350px;padding:48px;display:flex}.broadcast-result:nth-child(3){background:#c3d0bc}.broadcast-result:nth-child(4){background:#edc499}.broadcast-result strong{font-family:var(--font-display), sans-serif;letter-spacing:-.07em;margin:25px 0 15px;font-size:clamp(40px,10cqi,110px);font-weight:500;line-height:1.1}.broadcast-result>p:last-of-type{max-width:44ch;font-size:18px;line-height:1.6}.broadcast-rule{background:currentColor;width:70px;height:3px;margin-top:25px}.broadcast-credits{padding:48px}.broadcast-credits article{border-top:1px solid #5c7470;margin-top:30px;padding:30px 0}.broadcast-credits h3{margin:14px 0 6px;font-size:clamp(28px,4cqi,42px)}.broadcast-role{color:#edc499;margin-bottom:20px!important}.broadcast-credits article>p:last-child{color:#d8dfd3;max-width:64ch;font-size:16px;line-height:1.8}.broadcast-signoff{background:#0c2223;padding:26px 48px;font-size:14px}.screen-startup{display:none}.journey-enhanced .screen-startup{z-index:6;background:var(--surface);opacity:0;visibility:hidden;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:20px;display:flex;position:absolute;inset:43px 0 0}.journey-enhanced [data-booting=true] .screen-startup{opacity:1;visibility:visible}.journey-enhanced [data-booting=true] .surface-viewport{visibility:hidden}.startup-symbol{font:500 64px var(--font-geist-mono), monospace;color:var(--signal);letter-spacing:-.1em}.startup-television .startup-symbol{font-family:var(--font-display), sans-serif;border:2px solid;padding:8px 16px}.screen-startup p{font:16px var(--font-geist-mono), monospace}.screen-startup>span{font:11px var(--font-geist-mono), monospace;color:var(--muted);letter-spacing:.08em}.startup-track{background:var(--line);width:min(55%,240px);height:3px;overflow:hidden}.startup-track span{background:var(--signal);transform-origin:0;height:100%;display:block}[data-booting=true] .startup-track span{animation:.8s linear both screen-startup}@keyframes screen-startup{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.surface-notebook>.surface-toolbar{display:none}.surface-notebook .surface-content{padding:0}.notebook-book{position:relative}.notebook-page{color:#394035;background:#eee4cb repeating-linear-gradient(#0000 0 28px,#b9b29555 28px 29px) 0 18px;padding:28px 24px 30px 36px}.notebook-page-body{z-index:1;position:relative}.notebook-page h2,.notebook-page h3{letter-spacing:-.025em;margin:20px 0 24px;font-family:Bradley Hand,Segoe Print,cursive;font-size:clamp(27px,4cqi,40px);font-weight:500;line-height:1.13}.notebook-page p{font-family:Bradley Hand,Segoe Print,cursive;font-size:20px;line-height:1.45}.notebook-page .note-date{font:11px/1.5 var(--font-geist-mono), monospace;text-transform:uppercase;letter-spacing:.06em;color:#70705a}.notebook-page-number{font:11px var(--font-geist-mono), monospace;color:#70705a;position:absolute;bottom:14px;right:20px}.note-underline{background:#9e7145;width:100px;height:3px;margin-top:25px;display:block;transform:rotate(-3deg)}.notebook-page .note-postscript{color:#795333;margin-top:35px;transform:rotate(-3deg)}.notebook-page .note-signature{margin-top:38px;font-size:32px;transform:rotate(-5deg)}.notebook-email{overflow-wrap:anywhere;text-underline-offset:4px;padding-block:12px;font-size:14px;line-height:1.7;text-decoration:underline;display:inline-block}.notebook-pagination{display:none}.journey-enhanced .surface-notebook .surface-viewport,.journey-enhanced .surface-notebook .surface-content,.journey-enhanced .notebook-content{height:100%}.journey-enhanced .notebook-book{perspective:1800px;height:calc(100% - 48px)}.journey-enhanced .notebook-page{backface-visibility:hidden;width:50%;height:100%;position:absolute;top:0;left:0;overflow:hidden;box-shadow:inset -10px 0 18px -16px #493d29}.journey-enhanced .notebook-page[data-page="3"]{left:50%;box-shadow:inset 10px 0 18px -16px #493d29}.journey-enhanced .notebook-leaf{transform-origin:0;width:50%;height:100%;transform-style:preserve-3d;z-index:3;position:absolute;top:0;left:50%}.journey-enhanced .notebook-leaf .notebook-page{width:100%}.journey-enhanced .notebook-page[data-page="2"]{transform:rotateY(180deg)}.journey-enhanced .notebook-pagination{height:48px;font:11px var(--font-geist-mono), monospace;background:#dfd3b6;border-top:1px solid #bdb396;justify-content:center;align-items:center;gap:22px;display:flex}.notebook-pagination button{color:#394035;cursor:pointer;background:0 0;border:0;min-width:44px;min-height:44px;font-size:22px}.notebook-pagination button:disabled{opacity:.3;cursor:default}.journey-enhanced [data-layout=single] .notebook-leaf{display:contents}.journey-enhanced [data-layout=single] .notebook-page{transform-origin:0;width:100%;left:0}.journey-enhanced [data-layout=single] .notebook-page h2,.journey-enhanced [data-layout=single] .notebook-page h3{font-size:32px}.journey-enhanced [data-layout=single] .notebook-page p{font-size:20px}.journey-reading .notebook-book{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.journey-reading .notebook-leaf{display:contents}.journey-reading .notebook-page{min-height:390px;padding:36px;position:relative}.journey-reading .notebook-page[data-page="0"]{order:0}.journey-reading .notebook-page[data-page="1"]{order:1}.journey-reading .notebook-page[data-page="2"]{order:2}.journey-reading .notebook-page[data-page="3"]{order:3}@container (max-width:750px){.editor-tab{padding:13px 20px}.editor-heading{padding:26px 20px 12px}.code-project{padding:22px 20px 28px}.code-properties{margin-left:2px;padding-left:14px}.code-declaration{font-size:14px}.code-description{font-size:13px;line-height:1.8}.editor-ending{padding:22px 20px}.broadcast-title{padding:28px 24px 0}.broadcast-title h2{margin-top:30px}.broadcast-title>p:last-of-type{font-size:16px}.broadcast-caption{margin-inline:-24px;padding-inline:24px}.broadcast-caption>span:last-child{display:none}.broadcast-result,.broadcast-credits{padding:30px 24px}.broadcast-result{min-height:300px}.broadcast-result>p:last-of-type{font-size:16px}.broadcast-signoff{padding-inline:24px}}@media (min-width:901px){.journey-reading .journey-stage{grid-template-columns:1fr 1.15fr;align-items:center;column-gap:35px;width:min(100% - 80px,1320px);display:grid}.journey-reading .journey-intro{grid-area:1/1;padding-block:70px}.journey-reading .workspace-stage{grid-area:1/2;height:570px}.journey-reading .journey-controls,.journey-reading .journey-surface,.journey-reading .journey-outro{grid-column:1/-1}.journey-reading .journey-intro h1{font-size:clamp(48px,5vw,70px)}}@media (max-width:559px){.journey-reading .notebook-book{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.screen-startup{display:none!important}.notebook-page,.notebook-leaf{transition:none}}.journey-enhanced [data-layout=single] .notebook-page{padding:22px 22px 28px 26px}.journey-enhanced [data-layout=single] .notebook-page h2,.journey-enhanced [data-layout=single] .notebook-page h3{margin:14px 0 18px;font-size:28px}.journey-enhanced [data-layout=single] .notebook-page p{font-size:18px;line-height:1.4}.journey-enhanced [data-layout=single] .notebook-page .note-date{font-size:11px}.journey-enhanced [data-layout=single] .notebook-page .note-signature{font-size:30px}.workspace-journey{overflow-anchor:none}
