.BookletShell-module__33eixq__main{scroll-snap-type:y mandatory;overscroll-behavior-y:contain;scrollbar-width:none;height:100dvh;scroll-padding-top:58px;overflow-y:scroll}.BookletShell-module__33eixq__main::-webkit-scrollbar{display:none}.BookletShell-module__33eixq__scrollbar{z-index:40;align-items:stretch;width:3px;height:min(220px,38vh);display:flex;position:fixed;top:50%;right:10px;transform:translateY(-50%)}.BookletShell-module__33eixq__scrollTrack{background:#00000026;flex:1;width:1px;margin:0 auto;position:relative}.BookletShell-module__33eixq__scrollThumb{background:#000;width:3px;transition:top 50ms linear;position:absolute;left:50%;transform:translate(-50%)}.BookletShell-module__33eixq__nav{z-index:50;background:#f7f7f7;min-height:58px;position:fixed;top:0;left:0;right:0}.BookletShell-module__33eixq__nav>nav{border-bottom:none}.BookletShell-module__33eixq__hero{scroll-snap-align:start;scroll-snap-stop:always;height:100dvh;overflow:hidden}.BookletShell-module__33eixq__hero>section{height:100dvh!important;max-height:100dvh!important}.BookletShell-module__33eixq__section{scroll-snap-align:start;scroll-snap-stop:always;box-sizing:border-box;height:100dvh;overflow:hidden}.BookletShell-module__33eixq__section>section{height:100%;min-height:0;overflow:hidden}.BookletShell-module__33eixq__footerSection{background:#f0f0f0;height:calc(100dvh - 58px)}.BookletShell-module__33eixq__section>footer{border-top:none;height:100%;min-height:0;overflow:auto}.BookletShell-module__33eixq__section>section>div{overflow:hidden!important}
.BookletToggle-module__Gs3GDG__wrapper{z-index:90;flex-direction:row;align-items:center;gap:.4rem;display:flex;position:fixed;bottom:1.5rem;right:1.5rem}.BookletToggle-module__Gs3GDG__toggle{color:#000;cursor:pointer;background:#fff;border:1px solid #000;outline:none;padding:.55rem .6rem;font-family:inherit;font-size:.75rem;font-weight:500;transition:background .15s,color .15s}.BookletToggle-module__Gs3GDG__button{color:#000;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #000;outline:none;padding:.55rem 1.1rem;font-family:inherit;font-size:.75rem;font-weight:500;transition:background .15s,color .15s}.BookletToggle-module__Gs3GDG__active{color:#fff;background:#000}.BookletToggle-module__Gs3GDG__active:hover{background:#222}
.Quote-module__jodbtq__quoteContainer{width:100%}.Quote-module__jodbtq__quoteInner{flex-direction:column;align-items:flex-start;display:flex}.Quote-module__jodbtq__quoteIcon{width:48px;height:34px;margin-bottom:1.5rem;display:block}.Quote-module__jodbtq__quoteText{color:#000;font-size:clamp(1.6rem,4vw,2.25rem);font-style:normal;font-weight:700;line-height:1.15}
.Introduction-module__soFuYG__section{box-sizing:border-box;flex-direction:column;max-height:90vh;display:flex;position:relative;overflow:hidden}.Introduction-module__soFuYG__body{flex:1;min-height:0;padding-top:58px;overflow:hidden}.Introduction-module__soFuYG__contentRow{align-items:flex-start;gap:clamp(2.5rem,6vw,6rem);padding:clamp(1.5rem,3vw,2.5rem) clamp(2rem,5vw,5rem);display:flex}.Introduction-module__soFuYG__quoteColumn{flex:0 0 40%;min-width:0}.Introduction-module__soFuYG__introColumn{border-top:2px solid #000;flex-direction:column;flex:1;gap:.75rem;min-width:0;padding-top:2rem;display:flex}.Introduction-module__soFuYG__greeting{letter-spacing:-.02em;margin:0 0 .25rem;font-size:clamp(2rem,4vw,3rem);font-weight:800;line-height:1}.Introduction-module__soFuYG__introText{max-width:42ch;font-size:1rem;line-height:1.75}.Introduction-module__soFuYG__sectionLabel{writing-mode:vertical-rl;flex-shrink:0;align-self:center;font-size:clamp(1.8rem,3.5vw,2.8rem);font-weight:700;line-height:1}.Introduction-module__soFuYG__pageNumber{z-index:10;font-size:clamp(1.5rem,3vw,2.5rem);font-weight:700;line-height:1;position:absolute;bottom:1.5rem;left:clamp(2rem,5vw,5rem)}@media (max-height:750px) and (min-width:701px){.Introduction-module__soFuYG__contentRow{padding:2rem clamp(2rem,5vw,5rem)}.Introduction-module__soFuYG__sectionLabel{font-size:clamp(2rem,3.5vw,3rem)}}@media (max-height:620px) and (min-width:701px){.Introduction-module__soFuYG__contentRow{gap:clamp(1.5rem,4vw,3rem);padding:1.25rem clamp(1.5rem,4vw,4rem)}.Introduction-module__soFuYG__introColumn{padding-top:1.5rem}.Introduction-module__soFuYG__greeting{font-size:clamp(1.6rem,3vw,2.25rem)}.Introduction-module__soFuYG__sectionLabel{font-size:clamp(1.2rem,2.5vw,2rem)}}@media (max-width:700px){.Introduction-module__soFuYG__section{height:100dvh}.Introduction-module__soFuYG__body{flex-direction:column;padding-bottom:0;display:flex;overflow-y:auto}.Introduction-module__soFuYG__contentRow{flex-direction:column;flex:1;gap:1.25rem;min-height:0;padding:1rem 1rem .5rem;overflow-y:auto}.Introduction-module__soFuYG__quoteColumn,.Introduction-module__soFuYG__introColumn{flex:none;width:100%}.Introduction-module__soFuYG__sectionLabel{writing-mode:horizontal-tb;order:-1;align-self:flex-start;margin-bottom:.25rem;font-size:clamp(1.4rem,5vw,1.8rem)}.Introduction-module__soFuYG__pageNumber{font-size:1.5rem;bottom:1rem;left:1rem}}
.Navbar-module__nuAbfa__navbar{box-sizing:border-box;background:#f7f7f7;border-bottom:1px solid #e5e5e5;justify-content:space-between;align-items:center;width:100%;padding:1rem 2rem;display:flex}.Navbar-module__nuAbfa__TextSequenceContainer{color:#000;align-items:center;min-width:110px;display:flex}.Navbar-module__nuAbfa__TextSequenceContainer a{color:inherit;white-space:nowrap;font-family:inherit;font-size:1.3rem;font-weight:500;text-decoration:none}.Navbar-module__nuAbfa__languageContainer{align-items:center;display:flex;position:relative}.Navbar-module__nuAbfa__languageText{color:#000;align-items:center;gap:1rem;font-family:inherit;font-size:1.2rem;font-weight:500;display:flex}@media (max-width:480px){.Navbar-module__nuAbfa__navbar{padding:.875rem 1.25rem}.Navbar-module__nuAbfa__TextSequenceContainer a{font-size:1.1rem}.Navbar-module__nuAbfa__languageText{gap:.6rem;font-size:1rem}}
.Divider-module__zFSlTW__breaker{background:#000;width:100%;height:60px}
.TechStackEducation-module__T0J7KW__section{box-sizing:border-box;flex-direction:column;max-height:90vh;display:flex;position:relative;overflow:hidden}.TechStackEducation-module__T0J7KW__body{flex:1;min-height:0;padding-top:58px;overflow:hidden}.TechStackEducation-module__T0J7KW__contentRow{align-items:stretch;gap:2rem;padding:clamp(2rem,4vw,3.5rem) clamp(2rem,5vw,5rem);display:flex}.TechStackEducation-module__T0J7KW__content{flex:1;min-width:0}.TechStackEducation-module__T0J7KW__row{align-items:baseline;gap:clamp(1.5rem,4vw,3rem);padding:.3rem 0;display:flex}.TechStackEducation-module__T0J7KW__headerLabel{flex:0 0 28%;font-size:1rem;font-weight:700}.TechStackEducation-module__T0J7KW__categoryLabel{flex:0 0 28%;font-size:.9rem}.TechStackEducation-module__T0J7KW__detail{flex:1;font-size:.85rem;line-height:1.5}.TechStackEducation-module__T0J7KW__educationDetail{flex:1}.TechStackEducation-module__T0J7KW__degree,.TechStackEducation-module__T0J7KW__school{margin:0;font-size:.9rem;line-height:1.4}.TechStackEducation-module__T0J7KW__sectionGap{height:clamp(1.5rem,3vw,2.5rem)}.TechStackEducation-module__T0J7KW__sectionLabel{writing-mode:vertical-rl;flex-shrink:0;align-self:center;font-size:clamp(1.8rem,3.5vw,2.8rem);font-weight:700;line-height:1}.TechStackEducation-module__T0J7KW__pageNumber{z-index:10;font-size:clamp(1.5rem,3vw,2.5rem);font-weight:700;line-height:1;position:absolute;bottom:1.5rem;left:clamp(2rem,5vw,5rem)}@media (max-height:750px) and (min-width:701px){.TechStackEducation-module__T0J7KW__contentRow{gap:1rem;padding:2rem clamp(2rem,5vw,5rem)}.TechStackEducation-module__T0J7KW__sectionGap{height:1rem}.TechStackEducation-module__T0J7KW__sectionLabel{font-size:clamp(2rem,3.5vw,3rem)}}@media (max-height:620px) and (min-width:701px){.TechStackEducation-module__T0J7KW__contentRow{gap:.75rem;padding:1rem clamp(1.5rem,4vw,4rem)}.TechStackEducation-module__T0J7KW__row{padding:.1rem 0}.TechStackEducation-module__T0J7KW__sectionGap{height:.5rem}.TechStackEducation-module__T0J7KW__sectionLabel{font-size:clamp(1.2rem,2.5vw,2rem)}.TechStackEducation-module__T0J7KW__degree,.TechStackEducation-module__T0J7KW__school{font-size:.8rem}.TechStackEducation-module__T0J7KW__detail{font-size:.78rem}.TechStackEducation-module__T0J7KW__categoryLabel,.TechStackEducation-module__T0J7KW__headerLabel{font-size:.82rem}}@media (max-width:700px){.TechStackEducation-module__T0J7KW__section{height:100dvh}.TechStackEducation-module__T0J7KW__body{flex-direction:column;padding-bottom:0;display:flex}.TechStackEducation-module__T0J7KW__contentRow{flex-direction:column;flex:1;gap:.5rem;min-height:0;padding:.75rem 1rem .5rem;overflow-y:auto}.TechStackEducation-module__T0J7KW__sectionLabel{writing-mode:horizontal-tb;order:-1;align-self:flex-start;margin-bottom:.25rem;font-size:clamp(1.4rem,5vw,1.8rem)}.TechStackEducation-module__T0J7KW__sectionLabel br{display:none}.TechStackEducation-module__T0J7KW__row{flex-direction:column;gap:0;padding:.2rem 0}.TechStackEducation-module__T0J7KW__headerLabel{flex:none;font-size:.88rem}.TechStackEducation-module__T0J7KW__categoryLabel{flex:none;font-size:.82rem}.TechStackEducation-module__T0J7KW__detail{font-size:.78rem;line-height:1.4}.TechStackEducation-module__T0J7KW__degree,.TechStackEducation-module__T0J7KW__school{font-size:.82rem}.TechStackEducation-module__T0J7KW__sectionGap{height:.5rem}.TechStackEducation-module__T0J7KW__pageNumber{font-size:1.5rem;bottom:1rem;left:1rem}}
.ProjectModal-module__oVMW9q__overlay{z-index:100;background:#00000073;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.ProjectModal-module__oVMW9q__modal{background:#fff;border:2px solid #000;outline:none;width:100%;max-width:540px;padding:clamp(1.25rem,5vw,2.5rem);animation:.18s ProjectModal-module__oVMW9q__rise;position:relative}@keyframes ProjectModal-module__oVMW9q__rise{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.ProjectModal-module__oVMW9q__close{cursor:pointer;color:#000;opacity:.6;background:0 0;border:none;padding:0;font-family:inherit;font-size:1.4rem;line-height:1;position:absolute;top:1rem;right:1.25rem}.ProjectModal-module__oVMW9q__close:hover{opacity:1}.ProjectModal-module__oVMW9q__header{align-items:baseline;gap:1rem;margin-bottom:1.25rem;display:flex}.ProjectModal-module__oVMW9q__name{margin:0;font-size:1.4rem;font-weight:700;line-height:1.2}.ProjectModal-module__oVMW9q__year{color:#666;flex-shrink:0;font-size:.8rem}.ProjectModal-module__oVMW9q__description{margin:0 0 1.5rem;font-size:1rem;line-height:1.7}.ProjectModal-module__oVMW9q__github{color:#000;border-bottom:1px solid #000;align-items:center;gap:.25rem;padding-bottom:1px;font-size:.9rem;font-weight:500;text-decoration:none;display:inline-flex}.ProjectModal-module__oVMW9q__github:hover{opacity:.5}.ProjectModal-module__oVMW9q__github+.ProjectModal-module__oVMW9q__github{margin-left:1rem}
.ProjectsTree-module__zO_-8a__section{box-sizing:border-box;flex-direction:column;max-height:90vh;display:flex;position:relative;overflow:hidden}.ProjectsTree-module__zO_-8a__body{flex:1;min-height:0;padding-top:58px;overflow:hidden}.ProjectsTree-module__zO_-8a__contentRow{align-items:stretch;gap:2rem;padding:6rem clamp(2rem,5vw,5rem);display:flex}.ProjectsTree-module__zO_-8a__tree{flex:1;position:relative}.ProjectsTree-module__zO_-8a__tree:before{content:"";background:#000;width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.ProjectsTree-module__zO_-8a__spineTopCap,.ProjectsTree-module__zO_-8a__spineBottomCap{z-index:1;background:#000;width:30px;height:2px;position:absolute;left:50%;transform:translate(-50%)}.ProjectsTree-module__zO_-8a__spineTopCap{top:0}.ProjectsTree-module__zO_-8a__spineBottomCap{bottom:0}.ProjectsTree-module__zO_-8a__item{align-items:center;padding:clamp(1.5rem,4vw,3rem) 0;display:flex;position:relative}.ProjectsTree-module__zO_-8a__half{flex:1;align-items:center;min-width:0;display:flex}.ProjectsTree-module__zO_-8a__halfLeft{justify-content:flex-end}.ProjectsTree-module__zO_-8a__halfRight{justify-content:flex-start}.ProjectsTree-module__zO_-8a__branch{background:#000;flex:1;min-width:1.5rem;height:1px}.ProjectsTree-module__zO_-8a__label{cursor:pointer;color:#000;white-space:nowrap;text-underline-offset:3px;background:0 0;border:none;outline:none;padding:.3rem .6rem;font-family:inherit;font-size:clamp(.78rem,2.2vw,.95rem);font-weight:500;text-decoration:underline;text-decoration-thickness:1px;transition:background .15s,color .15s}.ProjectsTree-module__zO_-8a__label:hover{color:#fff;background:#000;text-decoration-color:#fff}.ProjectsTree-module__zO_-8a__sectionLabel{writing-mode:vertical-rl;flex-shrink:0;align-self:center;font-size:clamp(1.8rem,3.5vw,2.8rem);font-weight:700;line-height:1}.ProjectsTree-module__zO_-8a__pageNumber{z-index:10;font-size:clamp(1.5rem,3vw,2.5rem);font-weight:700;line-height:1;position:absolute;bottom:1.5rem;left:clamp(2rem,5vw,5rem)}@media (max-height:750px) and (min-width:701px){.ProjectsTree-module__zO_-8a__contentRow{padding:2rem clamp(2rem,5vw,5rem)}.ProjectsTree-module__zO_-8a__item{padding:clamp(1rem,3vw,2rem) 0}.ProjectsTree-module__zO_-8a__sectionLabel{font-size:clamp(2rem,3.5vw,3rem)}}@media (max-height:620px) and (min-width:701px){.ProjectsTree-module__zO_-8a__contentRow{padding:1rem clamp(1.5rem,4vw,4rem)}.ProjectsTree-module__zO_-8a__item{padding:.75rem 0}.ProjectsTree-module__zO_-8a__sectionLabel{font-size:clamp(1.2rem,2.5vw,2rem)}.ProjectsTree-module__zO_-8a__label{font-size:clamp(.7rem,2vw,.88rem)}}@media (max-width:700px){.ProjectsTree-module__zO_-8a__section{height:100dvh}.ProjectsTree-module__zO_-8a__body{flex-direction:column;padding-bottom:0;display:flex}.ProjectsTree-module__zO_-8a__contentRow{flex-direction:column;flex:1;gap:1.5rem;min-height:0;padding:1rem 1rem .5rem;overflow-y:auto}.ProjectsTree-module__zO_-8a__sectionLabel{writing-mode:horizontal-tb;order:-1;align-self:flex-start;margin-bottom:.25rem;font-size:clamp(1.4rem,5vw,1.8rem)}.ProjectsTree-module__zO_-8a__label{padding:.25rem .4rem}.ProjectsTree-module__zO_-8a__pageNumber{font-size:1.5rem;bottom:1rem;left:1rem}}
.Footer-module__EZoWya__footer{box-sizing:border-box;background:#f0f0f0;border-top:1px solid #000;flex-direction:column;display:flex}.Footer-module__EZoWya__honeypot{opacity:0;pointer-events:none;tabindex:-1;width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.Footer-module__EZoWya__contentRow{flex:1;align-items:stretch;gap:2rem;padding:clamp(2rem,4vw,3.5rem) clamp(2rem,5vw,5rem);display:flex}.Footer-module__EZoWya__contactCol{flex-direction:column;flex:1;gap:1.25rem;min-width:0;display:flex}.Footer-module__EZoWya__colHeading{margin:0;font-size:clamp(1.5rem,3vw,2rem);font-weight:700;line-height:1.1}.Footer-module__EZoWya__contactItems{flex-direction:column;gap:.65rem;display:flex}.Footer-module__EZoWya__contactItem{color:#000;align-items:center;gap:.6rem;font-size:.9rem;text-decoration:none;display:flex}a.Footer-module__EZoWya__contactItem span{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.Footer-module__EZoWya__contactItem svg{flex-shrink:0}.Footer-module__EZoWya__inquireCol{flex-direction:column;flex:1.2;gap:.5rem;min-width:0;display:flex}.Footer-module__EZoWya__fields{flex-direction:column;gap:.75rem;display:flex}.Footer-module__EZoWya__fieldWrapper{position:relative}.Footer-module__EZoWya__field{box-sizing:border-box;color:#000;resize:vertical;background:#e3e3e3;border:none;outline:none;width:100%;padding:.65rem .75rem;font-family:inherit;font-size:.85rem;line-height:1.5;display:block}.Footer-module__EZoWya__field::placeholder{color:#0006;text-align:center}.Footer-module__EZoWya__titleField{min-height:3.5rem;max-height:7rem}.Footer-module__EZoWya__messageField{min-height:6.5rem;max-height:14rem}.Footer-module__EZoWya__counter{color:#0006;pointer-events:none;font-family:inherit;font-size:.6rem;line-height:1;position:absolute;bottom:5px;right:7px}.Footer-module__EZoWya__sendRow{justify-content:flex-end;align-items:center;gap:.75rem;margin-top:.25rem;display:flex}.Footer-module__EZoWya__sendBtn{letter-spacing:.08em;text-transform:uppercase;color:#fff;cursor:pointer;background:#000;border:1px solid #000;outline:none;padding:.45rem 1.1rem;font-family:inherit;font-size:.75rem;font-weight:500;transition:opacity .15s}.Footer-module__EZoWya__sendBtn:disabled{opacity:.5;cursor:default}.Footer-module__EZoWya__sentMsg{color:#000;letter-spacing:.05em;font-size:.8rem;font-weight:500}.Footer-module__EZoWya__errorMsg{color:#000;opacity:.6;font-size:.75rem}.Footer-module__EZoWya__sectionLabel{writing-mode:vertical-rl;flex-shrink:0;align-self:center;font-size:clamp(1.8rem,3.5vw,2.8rem);font-weight:700;line-height:1}.Footer-module__EZoWya__bottomBar{border-top:1px solid #0000001f;justify-content:space-between;align-items:center;padding:1rem clamp(2rem,5vw,5rem);font-size:.85rem;display:flex}@media (max-height:750px) and (min-width:701px){.Footer-module__EZoWya__contentRow{gap:1.5rem;padding:1.5rem clamp(2rem,5vw,5rem)}.Footer-module__EZoWya__sectionLabel{font-size:clamp(2rem,3.5vw,3rem)}.Footer-module__EZoWya__messageField{min-height:4.5rem;max-height:10rem}}@media (max-height:620px) and (min-width:701px){.Footer-module__EZoWya__contentRow{gap:1rem;padding:1rem clamp(1.5rem,4vw,4rem)}.Footer-module__EZoWya__sectionLabel{font-size:clamp(1.2rem,2.5vw,2rem)}.Footer-module__EZoWya__messageField{min-height:3rem;max-height:8rem}}@media (max-width:700px){.Footer-module__EZoWya__labelBreak{display:none}.Footer-module__EZoWya__footer{height:100dvh;overflow-y:auto}.Footer-module__EZoWya__contentRow{flex-direction:column;align-items:flex-start;gap:1.25rem;padding:1.25rem 1rem .75rem}.Footer-module__EZoWya__sectionLabel{display:none}.Footer-module__EZoWya__contactCol{flex:none;gap:.75rem}.Footer-module__EZoWya__inquireCol{flex:none;width:100%}.Footer-module__EZoWya__bottomBar{padding:.75rem 1rem}}
.page-module__EVJJWa__heroSection{height:100vh;min-height:400px;max-height:701px;position:relative;overflow:hidden}@media (max-width:600px){.page-module__EVJJWa__heroSection{height:50vh;max-height:350px}}.page-module__EVJJWa__heroVideo{object-fit:cover;width:100%;height:100%;display:block}
