.Landing_wrap__r_qBq{--portfolio-paper:#faf9f8;--portfolio-ink:#101010;--portfolio-body:#292727;--portfolio-muted:#5d5a59;--portfolio-rule:#dedbd8;--portfolio-accent:#6668b8;min-height:100svh;overflow-x:clip;color:var(--portfolio-ink);background:var(--portfolio-paper);font-family:var(--font-newsreader),Georgia,"Times New Roman",serif;-webkit-font-smoothing:antialiased}.Landing_wrap__r_qBq a{color:inherit;text-underline-offset:.16em;text-decoration-thickness:1px;cursor:pointer}.Landing_wrap__r_qBq a:hover{color:var(--portfolio-accent)}.Landing_wrap__r_qBq a:focus-visible,.Landing_wrap__r_qBq button:focus-visible,.Landing_wrap__r_qBq summary:focus-visible{outline:2px solid var(--portfolio-accent);outline-offset:5px}.Landing_heroStage__WvTQ4{position:relative;height:200vh;height:200lvh}.Landing_heroSticky__53_3x{position:sticky;top:0;display:flex;align-items:center;justify-content:center;height:100vh;height:100lvh;overflow:hidden}.Landing_footerStripes__oDA4t,.Landing_heroStripes__Vgiig{position:absolute;right:-5%;bottom:-8px;left:-5%;height:min(34vw,380px);background:repeating-linear-gradient(90deg,transparent 0 18px,rgba(90,113,255,.24) 19px 23px,rgba(126,112,255,.34) 24px 27px,transparent 31px 38px),radial-gradient(ellipse 64% 85% at 52% 110%,rgba(157,138,255,.52),rgba(121,162,255,.22) 58%,transparent 90%);filter:blur(6px);mask-image:linear-gradient(0deg,#000 0,rgba(0,0,0,.72) 38%,transparent 94%);pointer-events:none}.Landing_heroStripes__Vgiig{height:clamp(220px,20vw,320px);background:repeating-linear-gradient(90deg,transparent 0 5px,rgba(90,113,255,.31) 6px 9px,rgba(126,112,255,.44) 10px 13px,transparent 14px 18px),radial-gradient(ellipse 64% 85% at 52% 110%,rgba(157,138,255,.62),rgba(121,162,255,.29) 58%,transparent 90%);mask-image:linear-gradient(0deg,transparent 0,rgba(0,0,0,.88) 32%,transparent 96%)}.Landing_heroInner__zA_eB{position:relative;z-index:1;width:min(100% - 48px,550px);margin-top:-5vh;opacity:var(--hero-opacity,1);transform:translate3d(0,var(--hero-shift,0),0);will-change:opacity,transform}.Landing_name__pD_2f{margin:0;font-size:clamp(4.5rem,8.5vw,8.5rem);font-weight:600;letter-spacing:-.065em;line-height:.92}.Landing_intro__yP5yt{max-width:26ch;margin:clamp(26px,3vw,38px) 0 0;font-size:clamp(1.3rem,1.9vw,1.8rem);line-height:1.16;text-wrap:pretty}.Landing_main__5eOpO{width:min(100% - 48px,1120px);margin:0 auto;padding:clamp(70px,9vw,130px) 0 20px}.Landing_sectionTitle__LddWZ{margin:0;font-size:clamp(1.85rem,2.6vw,2.25rem);font-weight:400;line-height:1.1}.Landing_workSection__Cahkx{position:relative;isolation:isolate;width:min(100%,max(674px,calc(100vw - 282px)));margin:0 auto;padding:34px 0 clamp(130px,20vw,290px);scroll-margin-top:28px}.Landing_workSection__Cahkx .Landing_sectionTitle__LddWZ{position:relative;z-index:1;margin-bottom:30px}.Landing_workAtmosphere__skvvp{position:absolute;z-index:0;top:0;right:calc(50% - 50vw);bottom:0;left:calc(50% - 50vw);overflow:hidden;mask-image:linear-gradient(180deg,transparent 0,rgba(0,0,0,.38) 7%,#000 18%,#000 78%,transparent);pointer-events:none}.Landing_workList__Z3OVc{position:relative;z-index:1;border-top:1px solid var(--portfolio-rule)}.Landing_workItem__3s9N8{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);column-gap:15px;padding:56px 0 60px}.Landing_workItem__3s9N8:after{position:absolute;right:0;bottom:0;left:0;height:1px;background:var(--portfolio-rule);content:"";transform-origin:left center;transition:transform .8s cubic-bezier(.19,1,.22,1)}.Landing_workMark__Qg0_W,.Landing_workText__pMhVk{transition:opacity .68s ease,transform .8s cubic-bezier(.19,1,.22,1)}.Landing_workText__pMhVk{transition-delay:75ms}.Landing_workItem__3s9N8[data-reveal=pending] .Landing_workMark__Qg0_W,.Landing_workItem__3s9N8[data-reveal=pending] .Landing_workText__pMhVk{opacity:0;transform:translate3d(0,20px,0)}.Landing_workItem__3s9N8[data-reveal=pending]:after{transform:scaleX(0)}.Landing_workItem__3s9N8:focus-within .Landing_workMark__Qg0_W,.Landing_workItem__3s9N8:focus-within .Landing_workText__pMhVk{opacity:1;transform:none}.Landing_workMark__Qg0_W{display:block;width:30px;height:30px;margin-top:2px}.Landing_workMark__Qg0_W img{display:block;width:100%;height:100%;object-fit:contain}.Landing_workMarkDark__PYxEr{box-sizing:border-box;padding:2px;background:var(--portfolio-ink)}.Landing_workText__pMhVk{min-width:0}.Landing_workCompany__f_D6s{margin:0;font-size:clamp(1.17rem,1.5vw,1.4rem);font-weight:700;line-height:1.18}.Landing_workCompany__f_D6s a{text-decoration:underline}.Landing_workCompany__f_D6s span{font-size:.7em;font-weight:400;white-space:nowrap}.Landing_workRole__GV4tU{margin:3px 0 0;font-size:clamp(1rem,1.3vw,1.15rem);line-height:1.27}.Landing_workSummary__etbxs{max-width:56ch;margin:14px 0 0;color:var(--portfolio-body);font-size:.98rem;line-height:1.42;text-wrap:pretty}.Landing_showAllButton__wZh_K{position:relative;z-index:1;padding:24px 0 0;border:0;color:var(--portfolio-ink);background:transparent;font:inherit;font-size:.95rem;cursor:pointer}.Landing_showAllButton__wZh_K em{color:var(--portfolio-muted)}.Landing_scrollStage__vnnqt{position:relative;width:100vw;height:500vh;height:500lvh;margin-left:calc(50% - 50vw)}.Landing_scrollStageSticky___YoNL{position:sticky;top:0;display:flex;align-items:flex-start;min-height:100vh;min-height:100lvh;overflow:hidden;isolation:isolate}.Landing_stageRailMotion__1Xszf{position:absolute;z-index:-1;inset:48px 0;mask-image:linear-gradient(180deg,transparent 0,#000 20%,#000 70%,transparent);pointer-events:none;will-change:transform}.Landing_stripedField__7ZcQq{position:absolute;inset:0 0 0 auto;width:min(38vw,900px);pointer-events:none}.Landing_stripeLayer__ef_VA{position:absolute;inset:-6% -15% -6% -30%;background:repeating-linear-gradient(to bottom,transparent 0 4px,rgb(var(--rail-rgb)/62%) 5px 6px,transparent 7px 9px),radial-gradient(ellipse 75% 76% at 100% 50%,rgb(var(--rail-rgb)/86%),transparent 83%);filter:blur(2px);mask-image:radial-gradient(ellipse 88% 80% at 100% 50%,#000 20%,transparent 84%);opacity:0;visibility:hidden;transition:opacity .22s ease,visibility 0s linear .22s}.Landing_stripeLayer__ef_VA[data-active=true]{opacity:1;visibility:visible;transition:opacity .22s ease,visibility 0s}.Landing_stageStripedField__CKHHm .Landing_stripeLayer__ef_VA{visibility:visible;transition:none}.Landing_stripeLayer__ef_VA:first-child{--rail-rgb:227 182 102}.Landing_stripeLayer__ef_VA:nth-child(2){--rail-rgb:255 108 81}.Landing_stripeLayer__ef_VA:nth-child(3){--rail-rgb:139 114 237}.Landing_stripeLayer__ef_VA:nth-child(4){--rail-rgb:55 66 76}.Landing_stripeLayer__ef_VA:nth-child(5){--rail-rgb:88 131 246}.Landing_workStripedField__1EeNz .Landing_stripeLayer__ef_VA:first-child{--rail-rgb:128 131 252}.Landing_workStripedField__1EeNz .Landing_stripeLayer__ef_VA:nth-child(2){--rail-rgb:95 156 229}.Landing_workStripedField__1EeNz .Landing_stripeLayer__ef_VA:nth-child(3){--rail-rgb:173 120 209}.Landing_workStripedField__1EeNz .Landing_stripeLayer__ef_VA:nth-child(4){--rail-rgb:227 182 102}.Landing_workStripedField__1EeNz .Landing_stripeLayer__ef_VA{background:repeating-linear-gradient(to bottom,transparent 0 4px,rgb(var(--rail-rgb)/44%) 5px 6px,transparent 7px 9px),radial-gradient(ellipse 70% 64% at 100% 48%,rgb(var(--rail-rgb)/46%),transparent 78%);mask-image:radial-gradient(ellipse 70% 78% at 100% 50%,#000 18%,transparent 77%)}.Landing_stageContent__ljfNb{position:relative;z-index:1;width:min(41vw,550px);margin-top:max(24px,min(calc(50vh - 250px),calc(100vh - 595px)));margin-left:calc(6vw + max(0px, (100vw - 1152px) / 2))}.Landing_stageGroup__sPbbP+.Landing_stageGroup__sPbbP{margin-top:clamp(48px,7vh,76px)}.Landing_stageTitle__XLm8I{margin:0 0 28px;font-size:clamp(1.8rem,2.4vw,2.2rem);font-weight:400;line-height:1.12}.Landing_stageList__cbP43{display:grid;gap:16px;margin:0;padding:0;list-style:none}.Landing_stageEntry__FSo6J{position:relative;padding:5px 0 5px 13px;border-left:1px solid transparent}.Landing_stageEntry__FSo6J:before{position:absolute;top:5px;bottom:5px;left:0;width:2px;background:var(--portfolio-ink);content:"";opacity:var(--stage-entry-emphasis,0);transform:scaleY(calc(.7 + .3 * var(--stage-entry-emphasis, 0)));transform-origin:top;pointer-events:none}.Landing_stageEntryActive__WF3n0:before{opacity:var(--stage-entry-emphasis,1)}.Landing_educationEntry__cjTNh{display:grid;grid-template-columns:26px minmax(0,1fr);column-gap:12px;padding-top:10px;padding-bottom:12px}.Landing_educationMark__a8hqB{display:block;width:26px;height:26px;margin-top:1px;opacity:calc(.58 + .42 * var(--stage-entry-emphasis, 0))}.Landing_educationMark__a8hqB img{display:block;width:100%;height:100%;object-fit:contain}.Landing_educationText___kbuK{min-width:0}.Landing_educationRole__uBb5B{margin:5px 0 0;color:var(--portfolio-body);font-size:clamp(.96rem,1.2vw,1.08rem);line-height:1.35;opacity:calc(.52 + .48 * var(--stage-entry-emphasis, 0))}.Landing_stageEntryButton__Um6qL{display:block;width:100%;padding:0;border:0;color:var(--portfolio-ink);background:transparent;font:inherit;font-size:clamp(1.03rem,1.35vw,1.23rem);font-weight:700;line-height:1.25;text-align:left;cursor:pointer;opacity:calc(.62 + .38 * var(--stage-entry-emphasis, 0))}.Landing_stageDisclosureStack__bnOqR{position:relative;height:98px;margin:12px 0 0 13px}.Landing_educationDisclosureStack__dn8Hi{height:28px;margin:0 0 0 51px}.Landing_stageDisclosure__rCTe2{position:absolute;inset:0;opacity:var(--stage-detail-emphasis,0);pointer-events:none}.Landing_stageDisclosureActive__4Bl16{opacity:var(--stage-detail-emphasis,1);pointer-events:auto}.Landing_stageDisclosureInner__AoJWA{color:var(--portfolio-body);font-size:clamp(.96rem,1.2vw,1.08rem);line-height:1.42}.Landing_stageEntrySummary__0S4p6{max-width:48ch;margin:10px 0 6px}.Landing_stageDisclosureInner__AoJWA a{display:inline-block;margin:5px 0 2px;font-size:.88rem}.Landing_stageDetailMeta__pEWKI{display:flex;align-items:baseline;justify-content:space-between;gap:14px;font-size:.88rem}.Landing_stageDetailMeta__pEWKI>span{color:var(--portfolio-muted)}.Landing_stageDetailMeta__pEWKI a{flex:none}.Landing_educationDisclosureStack__dn8Hi .Landing_stageDisclosureInner__AoJWA a{margin-top:8px}@media (min-width:761px) and (max-height:620px){.Landing_stageGroup__sPbbP+.Landing_stageGroup__sPbbP{margin-top:clamp(30px,calc(100vh - 572px),48px)}.Landing_stageTitle__XLm8I{margin-bottom:clamp(20px,calc(100vh - 560px),28px)}.Landing_stageList__cbP43{gap:14px}}.Landing_aboutSection__cknQi{display:flex;align-items:center;min-height:96vh;min-height:96lvh;padding:100px 24px 120px;scroll-margin-top:24px}.Landing_aboutInner__5gv1N{width:min(100%,674px);margin:0 auto}.Landing_aboutTitle__WMZUj{margin:0 0 26px;font-size:clamp(4.8rem,6.25vw,6.4rem);font-style:italic;font-weight:400;line-height:1}.Landing_aboutBody__BcWcH{display:grid;gap:26px}.Landing_aboutBody__BcWcH p{max-width:56ch;margin:0;font-size:clamp(1.25rem,1.75vw,1.46rem);line-height:1.3;text-wrap:pretty}.Landing_footer__Myc_G{position:relative;min-height:clamp(20rem,33vw,34rem);padding:80px 8.7vw 120px;overflow:hidden}.Landing_footerStripes__oDA4t{height:260px;filter:blur(7px);opacity:.7}.Landing_footerInner__wrxBi{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) clamp(190px,19vw,250px) max-content;align-items:center;gap:clamp(24px,4vw,60px);width:100%}.Landing_footerName__46Wu3{margin:0;font-size:clamp(2.75rem,7.5vw,7rem);font-weight:600;letter-spacing:-.06em;line-height:1}.Landing_footerAsciiArt__pP2P7{display:grid;place-items:center;width:100%;aspect-ratio:1;overflow:hidden;container-type:inline-size;color:color-mix(in srgb,var(--portfolio-accent) 78%,var(--portfolio-ink))}.Landing_footerAsciiArt__pP2P7 pre{width:max-content;margin:0;font-family:var(--font-ibm-plex-mono),monospace;font-size:2.15cqw;font-weight:600;line-height:1;letter-spacing:0;white-space:pre;opacity:1;user-select:none}.Landing_contact__hVJ4_{display:flex;flex:none;flex-direction:column;align-items:flex-start;gap:8px;padding-top:10px}.Landing_contactLabel__b7apB{margin-bottom:5px;color:var(--portfolio-muted);font-size:.9rem}.Landing_contact__hVJ4_ a{font-size:1.05rem}.Landing_footerCredit__6NIFE{position:absolute;z-index:1;right:0;bottom:64px;left:0;display:block;width:100%;height:260px;overflow:visible;pointer-events:none}.Landing_footerCreditText__AV4i7{fill:#898889;font-family:var(--font-newsreader),Georgia,"Times New Roman",serif;font-size:14px}@media (max-width:760px){.Landing_heroInner__zA_eB{width:min(100% - 48px,520px)}.Landing_name__pD_2f{font-size:clamp(4.25rem,13vw,6.5rem)}.Landing_intro__yP5yt{max-width:30ch;font-size:clamp(1.2rem,3.7vw,1.45rem)}.Landing_main__5eOpO{width:min(100% - 48px,560px);padding-top:66px}.Landing_sectionTitle__LddWZ{margin-bottom:26px}.Landing_workSection__Cahkx{padding-bottom:110px}.Landing_workItem__3s9N8{padding:36px 0 40px}.Landing_stageContent__ljfNb{width:min(100% - 48px,540px);margin:max(16px,calc(50vh - 290px)) auto 0;padding:16px 0}.Landing_stripedField__7ZcQq{width:52%;opacity:1}.Landing_workStripedField__1EeNz{width:46%;opacity:.55}.Landing_workStripedField__1EeNz .Landing_stripeLayer__ef_VA{mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.35) 40%,#000)}.Landing_stageGroup__sPbbP+.Landing_stageGroup__sPbbP{margin-top:36px}.Landing_stageTitle__XLm8I{margin-bottom:20px}.Landing_stageList__cbP43{gap:10px}.Landing_footer__Myc_G{min-height:0;padding:80px 8.7vw 130px}.Landing_footerStripes__oDA4t{bottom:-20px;height:135px;opacity:.7}.Landing_footerInner__wrxBi{grid-template-columns:minmax(0,1fr);justify-items:start;gap:30px}.Landing_footerName__46Wu3{max-width:160px}.Landing_footerAsciiArt__pP2P7{width:min(100%,230px);justify-self:center}.Landing_contact__hVJ4_{justify-self:end;margin-top:0;padding-top:0}.Landing_footerCredit__6NIFE{bottom:83px}}@media (max-width:440px){.Landing_name__pD_2f{font-size:clamp(3.8rem,15vw,4.7rem)}.Landing_footerName__46Wu3{font-size:clamp(2.6rem,11vw,3.2rem)}.Landing_footerAsciiArt__pP2P7{width:min(100%,212px)}.Landing_workItem__3s9N8{grid-template-columns:38px minmax(0,1fr);column-gap:14px}.Landing_workMark__Qg0_W{width:34px;height:34px}.Landing_stageContent__ljfNb{margin-top:max(8px,calc(50vh - 278px))}.Landing_stageTitle__XLm8I{font-size:1.65rem}.Landing_stageEntryButton__Um6qL{font-size:.98rem}.Landing_educationEntry__cjTNh{grid-template-columns:20px minmax(0,1fr);column-gap:9px;padding:6px 0 7px 10px}.Landing_educationMark__a8hqB{width:20px;height:20px}.Landing_educationRole__uBb5B{margin-top:3px;font-size:.83rem}.Landing_educationDisclosureStack__dn8Hi .Landing_stageDisclosureInner__AoJWA a{margin-top:4px;font-size:.79rem}.Landing_stageDisclosureInner__AoJWA{font-size:.9rem}}@media (max-width:760px) and (max-height:620px){.Landing_stageContent__ljfNb{margin-top:8px;padding:8px 0}.Landing_stageGroup__sPbbP+.Landing_stageGroup__sPbbP{margin-top:20px}.Landing_stageTitle__XLm8I{margin-bottom:12px}.Landing_stageList__cbP43{gap:5px}.Landing_educationEntry__cjTNh{padding-top:5px;padding-bottom:6px}.Landing_stageDisclosureStack__bnOqR{height:86px;margin-top:6px}.Landing_educationDisclosureStack__dn8Hi{height:25px;margin-top:0}}@media (prefers-reduced-motion:reduce){.Landing_heroInner__zA_eB{opacity:1;transform:none;will-change:auto}.Landing_stripeLayer__ef_VA{transition:none}.Landing_stageStripedField__CKHHm .Landing_stripeLayer__ef_VA{opacity:0!important}.Landing_stageStripedField__CKHHm .Landing_stripeLayer__ef_VA[data-active=true]{opacity:1!important}.Landing_stageEntry__FSo6J:before{opacity:0}.Landing_stageEntryActive__WF3n0:before{opacity:1}.Landing_educationMark__a8hqB,.Landing_educationRole__uBb5B,.Landing_stageEntryButton__Um6qL{opacity:.62}.Landing_stageEntryActive__WF3n0 .Landing_educationMark__a8hqB,.Landing_stageEntryActive__WF3n0 .Landing_educationRole__uBb5B,.Landing_stageEntryActive__WF3n0 .Landing_stageEntryButton__Um6qL{opacity:1}.Landing_stageDisclosure__rCTe2{opacity:0}.Landing_stageDisclosureActive__4Bl16{opacity:1}.Landing_workItem__3s9N8:after,.Landing_workMark__Qg0_W,.Landing_workText__pMhVk{transition-duration:.01ms}.Landing_stageRailMotion__1Xszf{transform:none!important;will-change:auto}.Landing_workItem__3s9N8[data-reveal=pending] .Landing_workMark__Qg0_W,.Landing_workItem__3s9N8[data-reveal=pending] .Landing_workText__pMhVk{opacity:1;transform:none}.Landing_workItem__3s9N8[data-reveal=pending]:after{transform:none}}body:has([data-portfolio-home]),html:has([data-portfolio-home]){height:auto;overflow-x:clip;overflow-y:visible;background:#faf9f8;cursor:auto}html:has([data-portfolio-home]){overscroll-behavior:none}