.BookletShell-module__33eixq__main{scroll-snap-type:y mandatory;overscroll-behavior:contain;scrollbar-width:none;outline:none;position:fixed;inset:0;overflow-y:scroll}.BookletShell-module__33eixq__main::-webkit-scrollbar{display:none}.BookletShell-module__33eixq__page{scroll-snap-align:start;scroll-snap-stop:always;height:100%;overflow:clip;container-type:size}.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;height:58px;position:fixed;top:0;left:0;right:0}.BookletShell-module__33eixq__hero{box-sizing:border-box;padding-top:58px}
.BookletPage-module__pAbt0q__page{--nav:58px;--gutter-x:clamp(2rem,5vw,5rem);--gutter-y:clamp(1rem,4cqh,2.5rem);--label-size:clamp(1.25rem,min(3.4cqw,calc((100cqh - var(--nav) - 9rem)/13.5)),2.75rem);box-sizing:border-box;height:100%;padding:calc(var(--nav) + var(--gutter-y))var(--gutter-x)0;grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr) auto;column-gap:clamp(1.5rem,4cqw,4rem);display:grid}.BookletPage-module__pAbt0q__content{box-sizing:border-box;grid-area:1/1;align-self:safe center;min-width:0;max-height:100%;padding-block:.25rem;overflow:clip}.BookletPage-module__pAbt0q__label{writing-mode:vertical-rl;white-space:nowrap;font-size:var(--label-size);grid-area:1/2;align-self:center;margin:0;font-weight:700;line-height:1}@media (max-width:700px){.BookletPage-module__pAbt0q__label{margin-bottom:.75rem}}.BookletPage-module__pAbt0q__foot{grid-column:1/-1;justify-content:space-between;align-items:flex-end;gap:1rem;padding-block:clamp(.75rem,3cqh,1.5rem);display:flex}.BookletPage-module__pAbt0q__number{font-size:clamp(1.5rem,3cqw,2.5rem);font-weight:700;line-height:1}@media (max-width:700px){.BookletPage-module__pAbt0q__page{--gutter-x:1rem;--gutter-y:1rem;grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr)}.BookletPage-module__pAbt0q__label{writing-mode:horizontal-tb;white-space:normal;grid-area:1/1;align-self:start;font-size:clamp(1.4rem,6.5cqw,1.8rem)}.BookletPage-module__pAbt0q__content{grid-area:2/1}.BookletPage-module__pAbt0q__number{font-size:1.5rem}}@media (max-height:700px){.BookletPage-module__pAbt0q__page{--gutter-y:.5rem}.BookletPage-module__pAbt0q__label{margin-bottom:.5rem}.BookletPage-module__pAbt0q__foot{padding-block:.5rem .75rem}}@media (max-height:500px){.BookletPage-module__pAbt0q__number{font-size:1.25rem}}
.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__contentRow{align-items:flex-start;gap:clamp(2.5rem,6cqw,6rem);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:clamp(1.25rem,4cqh,2rem);display:flex}.Introduction-module__soFuYG__greeting{letter-spacing:-.02em;margin:0 0 .25rem;font-size:clamp(2rem,4cqw,3rem);font-weight:800;line-height:1}.Introduction-module__soFuYG__introText{max-width:42ch;font-size:1rem;line-height:1.75}@media (max-width:700px){.Introduction-module__soFuYG__contentRow{flex-direction:column;gap:clamp(1.25rem,5cqh,2.5rem)}.Introduction-module__soFuYG__quoteColumn,.Introduction-module__soFuYG__introColumn{flex:none;width:100%}}
.Navbar-module__nuAbfa__navbar{box-sizing:border-box;background:#f7f7f7;justify-content:space-between;align-items:center;width:100%;height:100%;padding:0 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:0 1.25rem}.Navbar-module__nuAbfa__TextSequenceContainer a{font-size:1.1rem}.Navbar-module__nuAbfa__languageText{gap:.6rem;font-size:1rem}}
.TechStackEducation-module__T0J7KW__content{min-width:0}.TechStackEducation-module__T0J7KW__row{align-items:baseline;gap:clamp(1.5rem,4cqw,3rem);padding:clamp(.1rem,.6cqh,.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(.5rem,4cqh,2.5rem)}@media (max-width:700px){.TechStackEducation-module__T0J7KW__row{padding:clamp(.15rem,.8cqh,.4rem) 0;font-size:.78rem;line-height:1.4;display:block}.TechStackEducation-module__T0J7KW__headerLabel{font-size:.88rem;display:block}.TechStackEducation-module__T0J7KW__categoryLabel{font-size:inherit;margin-right:.4em;font-weight:600}.TechStackEducation-module__T0J7KW__detail{font-size:inherit;line-height:inherit}.TechStackEducation-module__T0J7KW__educationDetail{display:block}.TechStackEducation-module__T0J7KW__degree,.TechStackEducation-module__T0J7KW__school{font-size:.82rem}.TechStackEducation-module__T0J7KW__sectionGap{height:clamp(.4rem,2cqh,1rem)}}@media (max-height:500px) and (min-width:701px){.TechStackEducation-module__T0J7KW__row{padding:0}.TechStackEducation-module__T0J7KW__headerLabel{font-size:.85rem}.TechStackEducation-module__T0J7KW__categoryLabel,.TechStackEducation-module__T0J7KW__detail,.TechStackEducation-module__T0J7KW__degree,.TechStackEducation-module__T0J7KW__school{font-size:.75rem;line-height:1.3}.TechStackEducation-module__T0J7KW__sectionGap{height:.4rem}}
.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{box-sizing:border-box;background:#fff;border:2px solid #000;outline:none;width:100%;max-width:540px;max-height:100%;padding:clamp(1.25rem,5vw,2.5rem);animation:.18s ProjectModal-module__oVMW9q__rise;position:relative;overflow-y:auto}.ProjectModal-module__oVMW9q__modalWide{max-width:800px}.ProjectModal-module__oVMW9q__gallery{grid-template-columns:1fr 1fr;gap:.75rem;margin:0 0 1.5rem;display:grid}.ProjectModal-module__oVMW9q__image{aspect-ratio:16/9;object-fit:cover;box-sizing:border-box;border:1px solid #000;width:100%;height:auto}.ProjectModal-module__oVMW9q__image:first-child{grid-column:1/-1}@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;padding-right:2rem;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__tree{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(.35rem,2.4cqh,2rem) 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:.4rem .6rem;font-family:inherit;font-size:clamp(.85rem,2.2cqw,.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__label:focus-visible{outline-offset:2px;outline:2px solid #000}@media (max-width:700px){.ProjectsTree-module__zO_-8a__label{padding:.5rem .4rem}}@media (max-width:700px) and (max-height:600px){.ProjectsTree-module__zO_-8a__item{padding:.2rem 0}.ProjectsTree-module__zO_-8a__label{padding:.35rem .4rem}}@media (max-height:500px){.ProjectsTree-module__zO_-8a__item{padding:.1rem 0}.ProjectsTree-module__zO_-8a__label{padding:.2rem .5rem;font-size:.8rem}}
.Footer-module__EZoWya__footer{background:#f0f0f0}.Footer-module__EZoWya__copyright{text-align:right;font-size:.85rem}.Footer-module__EZoWya__honeypot{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;left:-9999px;overflow:clip}.Footer-module__EZoWya__contentRow{align-items:flex-start;gap:clamp(2rem,5cqw,4rem);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,3cqw,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:none;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:focus-visible{outline:1px solid #000}.Footer-module__EZoWya__field::placeholder{color:#0006;text-align:center}.Footer-module__EZoWya__titleField{height:clamp(2.75rem,7cqh,3.5rem)}.Footer-module__EZoWya__messageField{height:clamp(4.5rem,20cqh,10rem)}.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:.55rem 1.1rem;font-family:inherit;font-size:.75rem;font-weight:500;transition:opacity .15s}.Footer-module__EZoWya__sendBtn:focus-visible{outline-offset:2px;outline:2px solid #000}.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}@media (max-width:700px){.Footer-module__EZoWya__contentRow{flex-direction:column;align-items:stretch;gap:clamp(1rem,4cqh,1.75rem)}.Footer-module__EZoWya__colHeading{display:none}.Footer-module__EZoWya__contactCol{flex:none;gap:.6rem}.Footer-module__EZoWya__contactItems{gap:.45rem}.Footer-module__EZoWya__inquireCol{flex:none}.Footer-module__EZoWya__copyright{font-size:.75rem}}
.page-module__EVJJWa__heroSection{height:100%;position:relative;overflow:hidden}.page-module__EVJJWa__heroVideo{object-fit:cover;width:100%;height:100%;display:block}
