@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Newsreader:opsz,wght@6..72,300;6..72,400;6..72,500;6..72,600&display=swap";.nav{z-index:100;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(#f6f7f3f7 0%,#f6f7f3d6 72%,#f6f7f300 100%);justify-content:space-between;align-items:center;padding:28px 52px;display:flex;position:fixed;top:0;left:0;right:0}.nav-logo{font-family:var(--font-ui);letter-spacing:.16em;text-transform:uppercase;color:var(--charcoal);background:#fcfcf8db;border:1px solid #d9e0d8f2;border-radius:999px;padding:10px 16px;font-size:.72rem;font-weight:700;text-decoration:none;box-shadow:0 10px 30px #1f26220d}.nav-logo-btn{cursor:none;border:1px solid #d9e0d8f2}.nav-links{background:#fcfcf8d6;border:1px solid #d9e0d8f2;border-radius:999px;gap:4px;padding:5px;display:flex;box-shadow:0 10px 30px #1f26220a}.nav-btn{font-family:var(--font-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--light-mid);cursor:none;background:0 0;border:none;border-radius:999px;padding:10px 18px;font-size:.66rem;font-weight:600;transition:color .3s,background .3s;position:relative}.nav-btn:after{content:none}.nav-btn:hover,.nav-btn.active{color:var(--rust);background:#6f8a7a1a}@media (width<=640px){.nav{padding:max(14px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) 14px max(16px, env(safe-area-inset-left));flex-direction:column;align-items:stretch;gap:10px}.nav-logo{align-self:center;padding:8px 14px;font-size:.62rem}.nav-links{justify-content:space-between;gap:2px;padding:4px}.nav-btn{text-align:center;letter-spacing:.03em;flex:1;padding:9px 4px;font-size:.56rem}}.about{grid-template-columns:1fr 1fr;height:100dvh;display:grid;overflow-y:auto}.about-left{background:var(--warm-white);border-right:1px solid var(--border);flex-direction:column;justify-content:space-between;padding:104px 64px 56px;display:flex;position:relative;overflow:hidden}.about-left:before{content:"";pointer-events:none;background:radial-gradient(circle,#6f8a7a17 0%,#0000 70%);border-radius:50%;width:320px;height:320px;position:absolute;bottom:-80px;left:-80px}.about-tag{letter-spacing:.22em;text-transform:uppercase;color:var(--rust);margin-bottom:20px;font-size:.62rem}.about-name{font-family:var(--font-display);color:var(--charcoal);letter-spacing:-.04em;margin-bottom:36px;font-size:clamp(3.8rem,5.5vw,5.8rem);font-weight:400;line-height:.95}.about-name em{color:var(--rust);font-style:italic}.about-bio{color:var(--mid);max-width:460px;font-size:.95rem;line-height:1.8}.about-bio strong{color:var(--charcoal);font-weight:800}.about-socials{align-items:center;gap:20px;margin-top:52px;display:flex}.social-link{letter-spacing:.08em;text-transform:uppercase;color:var(--light-mid);padding-bottom:2px;font-size:.72rem;font-weight:600;text-decoration:none;transition:color .25s;position:relative}.social-link:after{content:"";background:var(--rust);transform-origin:0;height:1px;transition:transform .3s;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.social-link:hover{color:var(--rust)}.social-link:hover:after{transform:scaleX(1)}.social-sep{background:var(--border);width:1px;height:12px}.about-right{flex-direction:column;justify-content:space-between;padding:104px 64px 56px;display:flex;position:relative}.about-section-label{letter-spacing:.22em;text-transform:uppercase;color:var(--tan);margin-bottom:20px;font-size:.6rem}.about-tagline{font-family:var(--font-display);color:var(--charcoal);letter-spacing:-.02em;margin-bottom:48px;font-size:clamp(1.6rem,2.5vw,2.4rem);font-weight:400;line-height:1.35}.about-tagline strong{color:var(--rust);font-weight:600}.stats-grid{grid-template-columns:1fr 1fr;gap:2px;margin-bottom:48px;display:grid}.stat-card{background:var(--warm-white);border:1px solid var(--border);text-align:center;border-radius:24px;flex-direction:column;justify-content:center;align-items:center;padding:28px 24px;transition:border-color .3s,transform .3s,box-shadow .3s;display:flex;position:relative;overflow:hidden}.stat-card:hover{border-color:var(--rust);transform:translateY(-3px);box-shadow:0 18px 40px #1f26220f}.stat-card:before{content:"";background:var(--rust);transform-origin:0;width:100%;height:2px;transition:transform .4s;position:absolute;bottom:0;left:0;transform:scaleX(0)}.stat-card:hover:before{transform:scaleX(1)}.stat-number{font-family:var(--font-display);color:var(--charcoal);margin-bottom:8px;font-size:2.6rem;font-weight:500;line-height:1}.stat-number em{color:var(--rust);vertical-align:.08em;margin-left:4px;font-size:2.3rem;font-style:italic;font-weight:600;line-height:1}.stat-label{letter-spacing:.1em;text-transform:uppercase;color:var(--light-mid);font-size:.62rem}.skills-wrap{flex-wrap:wrap;gap:8px;display:flex}.skill-pill{letter-spacing:.1em;text-transform:uppercase;color:var(--mid);border:1px solid var(--border);border-radius:999px;padding:8px 14px;font-size:.68rem;font-weight:600;transition:all .25s}.skill-pill:hover{border-color:var(--rust);color:var(--rust);background:#6f8a7a14}.location-badge{letter-spacing:.1em;text-transform:uppercase;color:var(--light-mid);align-items:center;gap:8px;margin-top:28px;font-size:.68rem;font-weight:600;display:inline-flex}.location-dot{background:var(--rust);border-radius:50%;width:6px;height:6px;animation:2s infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}@media (width<=768px){.about{height:100dvh;display:block;overflow-y:auto}.about-left,.about-right{padding:108px 24px 40px}.about-left{border-right:none;border-bottom:1px solid var(--border)}.about-name{margin-bottom:24px;font-size:clamp(2.6rem,13vw,3.6rem)}.about-bio{max-width:none}.about-socials{flex-wrap:wrap;row-gap:12px;margin-top:36px}.about-tagline{margin-bottom:32px;font-size:clamp(1.3rem,5.5vw,1.7rem)}.stats-grid{gap:10px;margin-bottom:36px}.stat-card{padding:20px 14px}.stat-number{font-size:2.1rem}}@media (width<=400px){.about-socials{gap:12px}.social-sep{display:none}}.experience{grid-template-columns:260px 1fr;align-items:start;gap:80px;height:100vh;padding:138px 52px 90px;display:grid;overflow-y:auto}.exp-sidebar{align-self:start;padding-top:0;position:sticky;top:0}.exp-sidebar-label{letter-spacing:.22em;text-transform:uppercase;color:var(--rust);margin-bottom:16px;font-size:.6rem}.exp-sidebar-title{font-family:var(--font-display);color:var(--charcoal);letter-spacing:-.03em;margin-bottom:28px;font-size:2.8rem;font-weight:400;line-height:1.1}.exp-sidebar-title em{color:var(--rust);font-style:italic}.exp-sidebar-desc{color:var(--light-mid);font-size:.92rem;line-height:1.8}.exp-sidebar-desc strong,.exp-bullets strong{color:var(--rust);letter-spacing:.01em;font-weight:800}.exp-sidebar-line{background:var(--rust);transform-origin:0;width:40px;height:1px;margin:28px 0;animation:1s .4s both lineGrow}.exp-timeline{padding-top:8px}.exp-item{border-bottom:1px solid var(--border);grid-template-columns:140px 1fr;gap:32px;padding:40px 0;display:grid;position:relative}.exp-item:first-child{padding-top:0}.exp-item:last-child{border-bottom:none}.exp-item:before{content:"";background:var(--border);width:1px;position:absolute;top:0;bottom:0;left:148px}.exp-date{letter-spacing:.1em;color:var(--tan);text-align:right;padding-top:4px;font-size:.7rem;font-weight:600}.exp-content{padding-left:32px}.exp-company{font-family:var(--font-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--rust);margin-bottom:4px;font-size:.78rem;font-weight:700}.exp-role{font-family:var(--font-display);color:var(--charcoal);letter-spacing:-.02em;margin-bottom:20px;font-size:1.7rem;font-weight:500;line-height:1.2}.exp-bullets{flex-direction:column;gap:10px;list-style:none;display:flex}.exp-bullets li{color:var(--mid);padding-left:18px;font-size:.92rem;line-height:1.75;display:block;position:relative}.exp-bullets li:before{content:"→";color:var(--rust);position:absolute;top:0;left:0}.exp-tags{flex-wrap:wrap;gap:6px;margin-top:20px;display:flex}.exp-tag{letter-spacing:.1em;text-transform:uppercase;color:var(--rust);background:#6f8a7a12;border:1px solid #6f8a7a47;border-radius:999px;padding:6px 12px;font-size:.62rem;font-weight:700}.edu-block{border:1px solid var(--border);background:var(--warm-white);border-radius:28px;margin-top:60px;padding:36px 40px;position:relative;overflow:hidden}.edu-block:after{content:"EDU";font-family:var(--font-ui);color:var(--sand);letter-spacing:-.05em;pointer-events:none;font-size:4rem;font-weight:800;position:absolute;top:20px;right:18px}.edu-label{letter-spacing:.22em;text-transform:uppercase;color:var(--rust);margin-bottom:14px;font-size:.6rem}.edu-school{font-family:var(--font-display);color:var(--charcoal);margin-bottom:6px;font-size:1.6rem;font-weight:500}.edu-meta{color:var(--light-mid);font-size:.9rem;line-height:1.7}.edu-gpa{letter-spacing:.1em;text-transform:uppercase;color:var(--rust);border:1px solid var(--rust);border-radius:999px;margin-top:12px;padding:6px 12px;font-size:.66rem;font-weight:700;display:inline-block}@media (width<=768px){.experience{grid-template-columns:1fr;gap:36px;padding:108px 20px 60px}.exp-sidebar{position:static}.exp-sidebar-title{font-size:2.2rem}.exp-item{grid-template-columns:1fr;gap:8px;padding:28px 0}.exp-item:before{display:none}.exp-date{text-align:left;padding-top:0}.exp-content{padding-left:0}.exp-role{font-size:1.4rem}.edu-block{padding:28px 24px}.edu-block:after{font-size:2.8rem}}.projects{background:radial-gradient(circle at 100% 0,#6f8a7a14,#0000 28%),linear-gradient(#fcfcf8bd,#f6f7f3fa);height:100vh;padding:144px 52px 90px;overflow-y:auto}.projects-header{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) 360px;align-items:end;gap:48px;margin-bottom:64px;padding-bottom:32px;display:grid}.projects-label{letter-spacing:.22em;text-transform:uppercase;color:var(--rust);margin-bottom:14px;font-size:.6rem}.projects-title{font-family:var(--font-display);color:var(--charcoal);letter-spacing:-.04em;font-size:clamp(2.8rem,4.5vw,4.2rem);font-weight:400;line-height:1.05}.projects-title em{color:var(--rust);font-style:italic}.projects-subtitle{color:var(--light-mid);font-size:.92rem;line-height:1.8}.projects-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.project-card{border:1px solid var(--border);background:#fcfcf8eb;border-radius:28px;flex-direction:column;align-items:center;min-height:360px;padding:30px 30px 28px;transition:transform .3s,border-color .3s,box-shadow .3s;display:flex;box-shadow:0 16px 42px #1f26220a}.project-card:hover{border-color:var(--rust);transform:translateY(-4px);box-shadow:0 22px 46px #1f262212}.project-card-top{justify-content:space-between;align-items:center;gap:16px;width:100%;margin-bottom:24px;display:flex}.project-number{font-family:var(--font-display);color:#6f8a7ae6;font-size:2.6rem;font-weight:500;line-height:1}.project-kicker{letter-spacing:.16em;text-transform:uppercase;color:var(--light-mid);text-align:right;font-size:.62rem;font-weight:700}.project-title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--charcoal);text-align:center;margin-bottom:16px;font-size:1.8rem;font-weight:500;line-height:1.15}.project-body{color:var(--mid);text-align:center;margin-bottom:22px;font-size:.95rem;line-height:1.85}.project-body strong{color:var(--rust);font-weight:800}.project-links{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:14px;display:flex}.project-link{letter-spacing:.04em;color:var(--charcoal);border:1px solid var(--border);border-radius:999px;padding:6px 12px;font-size:.7rem;font-weight:700;text-decoration:none;transition:border-color .2s,color .2s}.project-link:hover{border-color:var(--rust);color:var(--rust)}.project-tags{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:auto;display:flex}.project-tag{letter-spacing:.1em;text-transform:uppercase;color:var(--rust);background:#6f8a7a14;border:1px solid #6f8a7a3d;border-radius:999px;padding:7px 12px;font-size:.62rem;font-weight:700}@media (width<=860px){.projects{padding:108px 20px 60px}.projects-header{grid-template-columns:1fr;gap:20px;margin-bottom:40px;padding-bottom:24px}.projects-subtitle{max-width:none}.projects-list{grid-template-columns:1fr;gap:16px}.project-card{min-height:0;padding:26px 22px 24px}}.interests{background:radial-gradient(circle at 0 0,#6f8a7a14,#0000 26%),linear-gradient(#fcfcf8b3,#f6f7f3f2);height:100vh;padding:144px 52px 80px;overflow-y:auto}.interests-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-end;margin-bottom:64px;padding-bottom:32px;display:flex}.interests-label{letter-spacing:.22em;text-transform:uppercase;color:var(--rust);margin-bottom:14px;font-size:.6rem}.interests-title{font-family:var(--font-display);color:var(--charcoal);letter-spacing:-.04em;font-size:clamp(2.8rem,4.5vw,4.2rem);font-weight:400;line-height:1.05}.interests-title em{color:var(--rust);font-style:italic}.interests-subtitle{color:var(--light-mid);max-width:360px;font-size:.92rem;line-height:1.8}.interests-grid{grid-template-rows:auto;grid-template-columns:repeat(3,1fr);gap:2px;display:grid}.interest-card{background:var(--warm-white);border:1px solid var(--border);border-radius:28px;padding:36px 104px 36px 32px;transition:border-color .3s,background .3s,transform .3s,box-shadow .3s;position:relative;overflow:hidden;box-shadow:0 14px 36px #1f262209}.interest-card:hover{border-color:var(--rust);background:#fff;transform:translateY(-4px);box-shadow:0 18px 42px #1f26220f}.interest-card.wide{grid-column:span 2}.interest-card.tall{grid-row:span 2}.interest-card:after{content:attr(data-num);font-family:var(--font-display);color:#e8ece5f2;pointer-events:none;font-size:3.6rem;font-weight:500;line-height:1;transition:color .3s;position:absolute;top:22px;right:24px}.interest-card:hover:after{color:#6f8a7a24}.interest-card-icon{margin-bottom:18px;font-size:1.6rem;display:block}.interest-card-title{font-family:var(--font-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--charcoal);margin-bottom:12px;font-size:.82rem;font-weight:700}.interest-card-body{color:var(--mid);font-size:.92rem;line-height:1.85}.interest-card-body strong{color:var(--rust);font-weight:400}.interests-footer{border:1px solid var(--border);background:#fcfcf8eb;border-radius:28px;justify-content:space-between;align-items:center;margin-top:2px;padding:32px 40px;display:flex;box-shadow:0 18px 40px #1f26220a}.interests-footer-text{font-family:var(--font-display);color:var(--charcoal);font-size:1.3rem;font-style:italic;font-weight:400}.interests-footer-text strong{color:var(--rust);font-weight:700}.interests-footer-cta{letter-spacing:.14em;text-transform:uppercase;color:var(--rust);cursor:none;background:#6f8a7a14;border:1px solid #6f8a7a2e;border-radius:999px;align-items:center;padding:12px 22px;font-size:.68rem;font-weight:700;transition:all .3s;display:inline-flex}.interests-footer-cta:hover{background:var(--rust);border-color:var(--rust);color:var(--warm-white)}@media (width<=860px){.interests{padding:108px 20px 60px}.interests-header{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:40px;padding-bottom:24px}.interests-subtitle{max-width:none}.interests-grid{grid-template-columns:1fr}.interest-card.wide{grid-column:span 1}.interest-card{padding:30px 60px 28px 24px}.interest-card:after{font-size:2.6rem;top:16px;right:18px}.interests-footer{flex-direction:column;align-items:flex-start;gap:18px;padding:26px 24px}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--cream:#f6f7f3;--warm-white:#fcfcf8;--sand:#e8ece5;--tan:#a5b2a8;--rust:#6f8a7a;--rust-light:#8da596;--charcoal:#1f2622;--mid:#5d6962;--light-mid:#7f8b84;--border:#d9e0d8;--font-ui:"Manrope", sans-serif;--font-display:"Newsreader", serif}html{font-size:16px}html,body{overscroll-behavior:none}body{background:var(--cream);color:var(--charcoal);font-family:var(--font-ui);cursor:none;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;height:100dvh;overflow:hidden}a{color:inherit;text-decoration:none}button{cursor:none}.page-viewport{height:100dvh;overflow:hidden}@media (pointer:coarse){body,button{cursor:auto}#cursor-dot,#cursor-ring{display:none}}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#6f8a7a73;border-radius:999px}@keyframes fadeUp{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes lineGrow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-32px)}to{opacity:1;transform:translate(0)}}
