@font-face{font-family:Caveat;src:url('assets/fonts/caveat.woff2') format('woff2'),url('assets/fonts/caveat.ttf') format('truetype');font-style:normal;font-weight:400 700;font-display:swap}
:root{--black:#0b0b0d;--white:#f1f0ed;--muted:#a3a2a6;--red:#e14a3c;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;color-scheme:dark;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--black);color:var(--white);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--red);outline-offset:8px}::selection{background:#782d29;color:#fff}.wrap{width:min(1320px,calc(100% - 112px));margin-inline:auto}.skip-link{position:fixed;top:-90px;left:20px;padding:15px;background:var(--white);color:var(--black);z-index:20}.skip-link:focus{top:20px}.site-shell{overflow:clip;max-width:2200px;margin:auto}.site-header{height:105px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:4}.wordmark{font-size:24px;font-weight:650;letter-spacing:-1.25px}.wordmark span{color:var(--red)}.header-link{display:flex;align-items:center;gap:24px;font-size:12px;color:#c3c2c6}.header-link span{font-size:18px;color:var(--red)}.header-link:hover{color:white}
.stage{position:relative;min-height:780px;height:calc(100svh - 185px);max-height:1000px;isolation:isolate}.intro{position:relative;z-index:3;width:49%;padding-top:110px;pointer-events:none}.intro a{pointer-events:auto}.eyebrow{font-size:9px;font-weight:450;letter-spacing:2px;text-transform:uppercase;color:#b0aeb3;display:flex;gap:10px;align-items:center}.eyebrow>span{height:4px;width:4px;border-radius:50%;background:var(--red)}h1,p{margin:0}h1{font-size:clamp(60px,5.9vw,88px);letter-spacing:-4.7px;line-height:1.04;font-weight:580;margin-top:34px;white-space:nowrap}.hello{font-family:Caveat,"Segoe Print",cursive;font-size:1.06em;font-weight:400;letter-spacing:-2px;display:inline-block;transform:rotate(-5deg);margin-bottom:5px}.red-period{color:var(--red)}.roles{font-size:16px;line-height:1.7;letter-spacing:-.15px;color:#c2bfc4;margin-top:29px}.aside{font-family:Caveat,"Segoe Print",cursive;font-size:31px;line-height:1.12;color:#d5d2d6;margin:25px 0 0 8px;transform:rotate(-4deg);display:inline-block}.aside span{color:#aaa6ad}.profile-link{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;max-width:234px;font-size:12px;letter-spacing:.1px;margin-top:45px;padding-bottom:13px;border-bottom:1px solid #514a4e}.profile-link>span[aria-hidden]{font-size:19px;color:var(--red)}.profile-link:hover{border-color:var(--red)}.link-subtitle{position:absolute;top:100%;left:0;margin-top:13px;font-size:10px;color:#a39da6;letter-spacing:.2px}
.portrait{position:absolute;z-index:1;right:-35px;top:-60px;height:calc(100% + 70px);width:auto;aspect-ratio:2/3;margin:0;pointer-events:none}.portrait img{display:block;width:100%;height:100%;object-fit:contain}.portrait:after{content:"";position:absolute;inset:-1px;background:linear-gradient(90deg,var(--black),transparent 13%,transparent 87%,var(--black)),linear-gradient(0deg,var(--black),transparent 15%,transparent 87%,var(--black));pointer-events:none}
.note{position:absolute;z-index:2;font-family:Caveat,"Segoe Print",cursive;font-size:29px;line-height:1;letter-spacing:.1px;color:#d5cfd2;pointer-events:none}.note svg{display:block;stroke:#9e7773;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round}.note-origin{right:-15px;top:32px;transform:rotate(8deg);width:162px}.note-origin svg{width:89px;height:76px;margin-top:6px;margin-left:-22px}.note-software{right:443px;top:192px;transform:rotate(-8deg);width:120px}.note-software svg{width:88px;height:71px;margin-left:33px;margin-top:-8px}.note-treehouse{right:441px;bottom:88px;transform:rotate(-8deg);width:136px}.note-treehouse svg{width:101px;height:55px;margin-left:65px;margin-bottom:-5px}.stage-caption{position:absolute;left:0;bottom:25px;font-size:9px;letter-spacing:.4px;color:#9c969f;z-index:3}.site-footer{position:relative;z-index:3;min-height:80px;border-top:1px solid #252327;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:9px;letter-spacing:.2px;color:#9c969f}.footer-domain{color:#bbb5be}.footer-note{color:#b0a9b3}
@media(min-width:1700px){.intro{padding-top:150px}.portrait{right:0}.note-origin{right:8px;top:50px}.note-software{right:530px;top:220px}.note-treehouse{right:510px;bottom:110px}}
@media(max-width:1150px) and (min-width:801px){.wrap{width:calc(100% - 76px)}.stage{min-height:760px}.intro{padding-top:120px}h1{font-size:68px;letter-spacing:-3.8px}.portrait{right:-86px;height:calc(100% + 35px);top:-25px}.note{font-size:25px}.note-origin{right:-12px;top:27px}.note-software{right:335px;top:100px}.note-treehouse{right:330px;bottom:83px}.roles{font-size:14px}.aside{font-size:29px}.site-footer{font-size:8px}.footer-note{display:none}}
@media(max-width:800px){.wrap{width:calc(100% - 48px)}.site-header{height:84px}.wordmark{font-size:22px}.header-link{font-size:11px;gap:16px}.stage{height:auto;min-height:0;max-height:none;padding-top:35px;padding-bottom:68px;display:flex;flex-direction:column}.intro{width:100%;padding:0;z-index:3}.eyebrow{font-size:8px;letter-spacing:1.6px}h1{font-size:clamp(53px,11vw,80px);letter-spacing:-3px;margin-top:24px;line-height:1.04}.hello{font-size:1.04em;letter-spacing:-1px;margin-bottom:4px}.roles{font-size:14px;line-height:1.65;margin-top:23px}.aside{position:absolute;right:5px;bottom:96px;font-size:27px;transform:rotate(5deg);margin:0}.profile-link{font-size:11px;margin-top:30px;max-width:217px}.link-subtitle{font-size:9px;margin-top:10px}.portrait{position:relative;right:auto;top:auto;width:100%;height:auto;aspect-ratio:2/3;margin-top:12px;margin-left:6%;z-index:1}.portrait:after{background:linear-gradient(90deg,var(--black),transparent 10%,transparent 91%,var(--black)),linear-gradient(0deg,var(--black),transparent 15%,transparent 89%,var(--black))}.note{font-size:25px}.note-origin{right:-3px;top:auto;bottom:calc(49vw + 218px);width:120px;transform:rotate(9deg)}.note-origin svg{width:60px;height:60px;margin-left:-20px;margin-top:0}.note-software{right:auto;left:-2px;top:auto;bottom:calc(42vw + 195px);width:110px;font-size:26px;transform:rotate(-10deg)}.note-software svg{width:65px;height:50px;margin-left:22px;margin-top:-4px}.note-treehouse{right:auto;left:0;bottom:97px;width:130px;font-size:26px}.note-treehouse svg{width:90px;height:48px;margin-left:40px;margin-bottom:-8px}.stage-caption{bottom:26px;font-size:8px;letter-spacing:.1px}.site-footer{min-height:90px;flex-wrap:wrap;justify-content:space-between;align-content:center;row-gap:13px;font-size:8px;padding:22px 0}.site-footer>span:nth-child(2){order:3;flex-basis:100%}.footer-note{font-size:8px}}
@media(max-width:450px){.wrap{width:calc(100% - 40px)}.aside{right:0;bottom:100px;font-size:24px;max-width:125px;line-height:1.06}.roles{font-size:13px}.note-origin{font-size:24px;right:-12px;bottom:calc(49vw + 191px)}.note-software{font-size:23px;bottom:calc(42vw + 160px)}.note-treehouse{font-size:24px;bottom:86px}.portrait{margin-top:21px;width:105%;margin-left:0}.stage-caption{max-width:260px;line-height:1.6}.footer-note{font-size:7px}}
@media(max-width:355px){.aside{position:static;margin:19px 0 0 4px;font-size:27px}.profile-link{margin-top:25px}.portrait{margin-top:35px}.note-origin{bottom:calc(49vw + 170px);font-size:21px}.note-software{bottom:calc(42vw + 140px);font-size:21px}.note-treehouse{font-size:22px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media(max-width:800px){.aside{position:static;display:block;max-width:none;margin:22px 0 0 5px;transform:rotate(-4deg);font-size:29px;line-height:1.1}.profile-link{margin-top:30px}}
@media(max-width:1150px) and (min-width:801px){.portrait{right:-35px;height:calc(100% - 40px);top:15px}.note-origin{top:-10px}}
.portrait .note-origin{right:30px;top:82px;bottom:auto}@media(min-width:1700px){.portrait .note-origin{right:8px;top:110px}}@media(max-width:1150px) and (min-width:801px){.portrait .note-origin{right:30px;top:-25px}}@media(max-width:800px){.portrait .note-origin{right:8px;top:0;bottom:auto;width:120px;font-size:25px}}@media(max-width:450px){.portrait .note-origin{right:3px;top:-4px;font-size:24px}.note-software{bottom:calc(42vw + 200px)}}@media(max-width:355px){.portrait .note-origin{right:0;top:-10px;font-size:21px}.note-software{bottom:calc(42vw + 180px)}}

#about{scroll-margin-top:45px}.about{position:relative;z-index:3;border-top:1px solid #252327;display:grid;grid-template-columns:1fr 1.15fr;gap:80px;padding-top:72px;padding-bottom:78px}.about-heading .eyebrow{font-size:9px;color:#a3a2a6}.about h2{font-size:38px;line-height:1.15;letter-spacing:-1.3px;font-weight:500;margin:20px 0 0}.about-copy{max-width:600px}.about-copy p{font-size:15px;line-height:1.85;color:#c2bfc4}.about-copy p+p{margin-top:22px}.about-link{display:inline-flex;align-items:center;gap:27px;font-size:12px;margin-top:29px;padding-bottom:8px;border-bottom:1px solid #514a4e}.about-link span{color:var(--red);font-size:18px}.about-link:hover{border-color:var(--red)}@media(max-width:1150px) and (min-width:801px){.about{gap:40px;grid-template-columns:.85fr 1.15fr}.about h2{font-size:32px}.about-copy p{font-size:14px}}@media(max-width:800px){.about{display:block;padding-top:44px;padding-bottom:49px}.about h2{font-size:32px;margin-top:17px}.about-copy{margin-top:26px}.about-copy p{font-size:14px;line-height:1.85}.about-copy p+p{margin-top:19px}.about-link{font-size:11px;margin-top:25px}}
/* Readable type and touch targets across screen sizes. */
.stage{min-height:850px}.portrait{max-height:850px}.eyebrow,.about-heading .eyebrow{font-size:14px;line-height:1.5;letter-spacing:1.5px}.roles{font-size:20px;line-height:1.6}.header-link{font-size:17px;gap:12px;min-height:48px}.linkedin-logo{display:block;width:26px;height:auto;flex:0 0 auto}.profile-link{display:grid;grid-template-columns:26px minmax(0,1fr) 18px;align-items:center;gap:12px;max-width:350px;min-height:50px;font-size:18px;line-height:1.45;margin-top:40px;padding:10px 0 13px}.profile-link-label{min-width:0}.link-subtitle{font-size:14px;line-height:1.5;margin-top:12px}.stage-caption{font-size:14px;line-height:1.6;letter-spacing:.1px;max-width:430px}.site-footer{font-size:14px;line-height:1.6;min-height:96px}.about-copy p{font-size:18px;line-height:1.8}.about-link{font-size:18px;gap:14px;min-height:48px;padding:9px 0}.portrait .note-origin{width:190px;font-size:31px;right:10px}.note{font-size:31px}
@media(max-width:1150px) and (min-width:801px){.stage{min-height:850px}.portrait{max-height:720px}.intro{padding-top:100px}.roles{font-size:19px}.eyebrow,.about-heading .eyebrow{font-size:14px}.about-copy p{font-size:18px}.site-footer{font-size:14px}.note{font-size:28px}.portrait .note-origin{font-size:28px;right:20px;width:175px}}
@media(max-width:800px){.stage{min-height:0;padding-bottom:96px}.portrait{max-height:none;margin-top:56px}.header-link{font-size:16px;gap:10px;min-height:48px}.eyebrow,.about-heading .eyebrow{font-size:14px;letter-spacing:1.2px}.roles{font-size:18px;line-height:1.6}.profile-link{font-size:18px;max-width:350px;min-height:50px;margin-top:30px}.link-subtitle{font-size:14px}.stage-caption{font-size:14px;max-width:100%;line-height:1.5;bottom:24px}.site-footer{display:grid;grid-template-columns:1fr;gap:12px;font-size:14px;line-height:1.6;padding:26px 0}.site-footer>span:nth-child(2){order:initial}.footer-note{font-size:14px}.about-copy p{font-size:18px;line-height:1.8}.about-link{font-size:17px;min-height:48px;gap:12px}.note,.note-software,.note-treehouse{font-size:28px}.note-treehouse{bottom:120px}.portrait .note-origin{font-size:28px;width:170px;right:0;top:-20px;bottom:auto}}
@media(max-width:450px){.header-link{font-size:16px;gap:9px}.profile-link{font-size:17px;max-width:100%}.profile-link .linkedin-logo{width:26px}.portrait{margin-top:60px}.note-software{font-size:27px;bottom:calc(42vw + 235px)}.note-treehouse{font-size:27px;bottom:118px}.portrait .note-origin{font-size:27px;width:160px;right:0;top:-20px}.stage-caption{font-size:14px;max-width:100%}.footer-note{font-size:14px}}
@media(max-width:355px){.eyebrow{font-size:14px;letter-spacing:.8px}.profile-link{font-size:17px;line-height:1.4}.portrait{margin-top:68px}.note-software{font-size:25px;bottom:calc(42vw + 215px)}.note-treehouse{font-size:26px;bottom:120px}.portrait .note-origin{font-size:26px;width:155px;top:-22px;right:0}}
.wordmark{display:inline-flex;align-items:center;min-height:48px}@media(max-width:450px){.note-software{bottom:calc(42vw + 280px)}}@media(max-width:355px){.note-software{bottom:calc(42vw + 260px)}}

.portrait picture{display:block;width:100%;height:100%}
/* Handwritten notes and rotating possible projects. */
.portrait .note-origin svg{width:105px;height:160px;margin-left:56px}
.note-treehouse{width:220px;bottom:140px;line-height:1.05}
.project-caption{display:grid;grid-template-columns:minmax(0,1fr);gap:5px;width:min(510px,48%);max-width:100%;align-items:start}
.project-label{font-size:16px;line-height:1.5;color:#aaa3ad;letter-spacing:.1px;text-transform:none}
.project-slot{overflow:hidden;min-height:4.5em;font-size:18px;line-height:1.5;color:#d8d2da;perspective:500px}
#project-phrase{display:block;transform:translateY(0) rotateX(0);transform-origin:50% 50%;opacity:1;transition:transform .22s ease,opacity .22s ease}
.project-slot.is-changing #project-phrase{transform:translateY(-45%) rotateX(50deg);opacity:0}
@media(max-width:1150px) and (min-width:801px){.note-treehouse{width:210px;font-size:28px;bottom:145px}}
@media(max-width:800px){.stage{padding-bottom:160px}.note-treehouse{width:210px;font-size:28px;bottom:205px}.project-caption{bottom:22px;max-width:100%;width:100%}.portrait .note-origin svg{width:72px;height:110px;margin-left:70px}.project-slot{min-height:4.5em}}
@media(max-width:450px){.note-treehouse{width:195px;font-size:27px;bottom:205px}}
@media(max-width:355px){.note-treehouse{width:180px;font-size:26px;bottom:205px}}
@media(prefers-reduced-motion:reduce){#project-phrase{transition:none;transform:none!important}}
