@import"https://fonts.googleapis.com/css2?family=Instrument+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";.light-rays-container{width:100%;height:100%;position:relative;pointer-events:none;z-index:3;overflow:hidden}.dp-toggle{position:fixed;top:1rem;right:1rem;z-index:51;font-family:JetBrains Mono,ui-monospace,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#e8e6e1;background:#1a1b1d;border:1px solid rgba(255,255,255,.14);border-radius:6px;padding:.5rem .75rem;cursor:pointer}.dp-toggle:hover{background:#222325}.dp-panel{position:fixed;top:0;right:0;bottom:0;width:min(340px,92vw);z-index:50;overflow-y:auto;background:#0c0d0e;border-left:1px solid rgba(255,255,255,.12);padding:4rem 1.1rem 3rem;transform:translate(100%);transition:transform .22s ease;font-family:JetBrains Mono,ui-monospace,monospace;color:#d8d6d1}.dp-panel.dp-open{transform:translate(0)}.dp-section{margin-bottom:1.75rem}.dp-section h3{margin:0 0 .75rem;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#6f6d69;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:.4rem}.dp-field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.65rem;font-size:11px}.dp-field span{display:flex;justify-content:space-between;color:#b7b5b0}.dp-field span b{color:#3ddc97;font-weight:500}.dp-field input[type=range]{width:100%;accent-color:#3ddc97}.dp-field input[type=color]{width:100%;height:26px;border:1px solid rgba(255,255,255,.14);border-radius:4px;background:none;padding:0}.dp-row{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.spy{position:fixed;top:50%;right:clamp(1.5rem,4vw,3.25rem);transform:translateY(-50%);z-index:40;display:flex;flex-direction:column;align-items:flex-end;list-style:none;margin:0;padding:0}.spy button{all:unset;cursor:pointer;box-sizing:border-box}.spy--dots{gap:18px}.spy-dot-row{display:flex;align-items:center;gap:12px}.spy-dot-label{font-family:JetBrains Mono,ui-monospace,monospace;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--color-meta);opacity:0;transform:translate(6px);transition:opacity .22s ease,transform .22s ease,color .22s ease;white-space:nowrap}.spy-dot{width:6px;height:6px;border-radius:50%;background:var(--color-dim);transition:background .22s ease,transform .22s ease,box-shadow .22s ease}.spy-dot-row:hover .spy-dot-label,.spy-dot-row.is-active .spy-dot-label{opacity:1;transform:translate(0)}.spy-dot-row:hover .spy-dot-label{color:var(--color-heading)}.spy-dot-row.is-active .spy-dot-label{color:var(--accent-start)}.spy-dot-row:hover .spy-dot,.spy-dot-row.is-active .spy-dot{background:var(--accent-start);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-start) 22%,transparent)}.spy-dot-row.is-active .spy-dot{transform:scale(1.3)}.spy--labels{gap:14px}.spy-label-row{display:flex;align-items:center;gap:10px}.spy-label-text{font-family:JetBrains Mono,ui-monospace,monospace;font-size:.7rem;letter-spacing:.05em;text-transform:uppercase;color:var(--color-dim);transition:color .22s ease}.spy-label-tick{width:0px;height:1.5px;background:var(--accent-start);transition:width .26s ease}.spy-label-row:hover .spy-label-text{color:var(--color-heading)}.spy-label-row.is-active .spy-label-text{color:var(--accent-start)}.spy-label-row.is-active .spy-label-tick{width:18px}.spy--ticks{gap:0}.spy-tick-row{display:flex;align-items:center;gap:10px;padding-block:9px}.spy-tick-num{font-family:JetBrains Mono,ui-monospace,monospace;font-size:.65rem;color:var(--color-dim);transition:color .22s ease;min-width:1.2em;text-align:right}.spy-tick-line{width:16px;height:1.5px;background:var(--color-dim);opacity:.5;transition:background .22s ease,opacity .22s ease,width .22s ease}.spy-tick-text{font-family:JetBrains Mono,ui-monospace,monospace;font-size:.7rem;letter-spacing:.05em;text-transform:uppercase;color:var(--color-heading);opacity:0;max-width:0;overflow:hidden;white-space:nowrap;transition:opacity .22s ease,max-width .26s ease}.spy-tick-row:hover .spy-tick-text,.spy-tick-row.is-active .spy-tick-text{opacity:1;max-width:140px}.spy-tick-row:hover .spy-tick-num{color:var(--color-heading)}.spy-tick-row.is-active .spy-tick-num{color:var(--accent-start)}.spy-tick-row.is-active .spy-tick-line{background:var(--accent-start);opacity:1;width:22px}.spy-tick-row.is-past .spy-tick-line{background:var(--accent-start);opacity:.6}.spy-tick-row.is-past .spy-tick-num{color:var(--color-meta)}@media(max-width:860px){.spy{display:none}}:root{color-scheme:dark;--bg-angle: 160deg;--bg-start: #17181a;--bg-end: #121315;--accent-angle: 135deg;--accent-start: #3ddc97;--accent-end: #1fa97b;--rays-opacity: .55;--color-heading: #f5f4f1;--color-role: #e2e0db;--color-meta: #b7b5b0;--color-wordmark: #d8d6d1;--color-dim: #8a8884;--name-size-max: 6.2rem;--role-size-max: 2rem;--wordmark-size-max: 1.5rem;--inward-shift: clamp(1rem, 5vw, 4rem);--float-distance: 12px;--bounce-distance: 5px;--bounce-duration: 1.6s;--reveal-duration: .6s;--reveal-rise: 24px}*{box-sizing:border-box}html,body{margin:0;padding:0}html{scrollbar-width:none}html::-webkit-scrollbar{width:0;height:0}body{background:linear-gradient(var(--bg-angle),var(--bg-start) 0%,var(--bg-end) 100%);background-attachment:fixed;color:#f0efec;font-family:Instrument Sans,system-ui,sans-serif;min-height:100vh;overflow-x:hidden}.page{position:relative}.scroll-progress-track{position:fixed;top:0;right:0;bottom:0;width:3px;z-index:50;background:#ffffff0f}.scroll-progress-fill{width:100%;height:0%;background:linear-gradient(var(--accent-angle),var(--accent-start),var(--accent-end))}.rays{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;opacity:var(--rays-opacity)}.hero{position:relative;height:100vh;display:flex;align-items:center;padding-block:clamp(2.5rem,8vh,6rem);padding-inline:calc(clamp(1.25rem,8vw,7rem) + var(--inward-shift));overflow:hidden}.wordmark{position:fixed;top:clamp(1.5rem,4vh,2.5rem);left:calc(clamp(1.25rem,8vw,7rem) + var(--inward-shift));z-index:3;margin:0;font-size:clamp(1.15rem,2.4vw,var(--wordmark-size-max));font-weight:700;letter-spacing:-.015em;color:var(--color-wordmark)}.wordmark-dot{color:var(--accent-start)}.content{position:relative;z-index:1;max-width:760px;width:100%;min-width:0}.content>*+*{margin-top:1.6rem}.name-heading{margin:0;font-size:clamp(3rem,9vw,var(--name-size-max));font-weight:800;letter-spacing:-.04em;line-height:1.02;color:var(--color-heading)}.accent-text{background:linear-gradient(var(--accent-angle),var(--accent-start),var(--accent-end));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.role{display:flex;align-items:center;gap:.85rem;font-size:clamp(1.3rem,2.6vw,var(--role-size-max));font-weight:600;letter-spacing:-.01em;color:var(--color-role)}.role-bar{display:inline-block;width:2.75rem;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--accent-start),var(--accent-end));flex-shrink:0}.content>.role{margin-top:.9rem}.meta-list{display:flex;flex-direction:column;gap:.65rem}.meta-row{display:flex;align-items:center;gap:.65rem;margin:0;font-size:19px;color:var(--color-meta)}.meta-icon{color:var(--accent-start);flex-shrink:0}.scroll-cue{position:absolute;left:50%;bottom:clamp(1.5rem,5vh,3rem);transform:translate(-50%)}.scroll-cue-inner{display:flex;flex-direction:column;align-items:center;gap:.5rem;transition:opacity .2s ease-out}.scroll-cue-label{font-family:JetBrains Mono,ui-monospace,monospace;font-size:13px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--color-dim)}.scroll-cue-arrow{color:var(--color-dim);animation:bounce var(--bounce-duration) ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(var(--bounce-distance))}}.section{position:relative;z-index:1;min-height:100vh;max-width:860px;display:flex;flex-direction:column;justify-content:center;padding-block:clamp(3rem,9vh,6rem);padding-inline:calc(clamp(1.25rem,8vw,7rem) + var(--inward-shift))}.section-label{margin:0 0 .85rem;font-family:JetBrains Mono,ui-monospace,monospace;font-size:13px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--color-dim)}.section-heading{margin:0 0 1.5rem;font-size:clamp(2.1rem,5vw,3.1rem);font-weight:700;letter-spacing:-.02em;color:var(--color-heading)}.section-body{margin:0;max-width:62ch;font-size:19px;line-height:1.7;color:var(--color-meta)}.reveal:has(>.section-body)+.reveal>.section-body{margin-top:1rem}.section--timelines{max-width:1560px}.timelines-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,6vw,4rem);align-items:stretch}.timeline-col-heading{margin:0 0 1.25rem;font-size:1.15rem;font-weight:600;letter-spacing:-.01em;color:var(--color-role)}.timeline-col--exp{display:flex;flex-direction:column}.timeline-col--exp .exp-list{flex:0 0 auto;display:grid;transition:grid-template-rows .32s ease}.timeline-col--exp .exp-list>.reveal{min-height:0;overflow:hidden}.timeline-col--exp .exp-list>.reveal>.exp-row{height:100%;min-height:0;display:flex;flex-direction:column;justify-content:center;overflow:hidden;width:100%}@media(max-width:780px){.timelines-grid{grid-template-columns:1fr;gap:2.5rem}}.education-list{display:flex;flex-direction:column;gap:1.75rem}.education-item{padding-left:1.1rem;border-left:2px solid var(--accent-start)}.edu-header{display:grid;grid-template-columns:1fr auto;align-items:baseline;column-gap:1.5rem;row-gap:.3rem}.edu-header h4{margin:0;font-size:1.2rem;font-weight:600;color:var(--color-heading)}.edu-degree{margin:0;font-size:15px;color:var(--color-meta)}.edu-years,.edu-location{margin:0;text-align:right;font-style:italic;color:var(--color-dim);font-size:14px;white-space:nowrap}.edu-divider{border:none;height:1px;background:#ffffff26;margin:.9rem 0 0}.edu-courses{margin:.9rem 0 0;font-size:16px;line-height:1.65;color:var(--color-meta)}.edu-awards{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.4rem}.edu-awards li{position:relative;padding-left:1rem;font-size:15px;line-height:1.55;color:var(--color-meta)}.edu-awards li:before{content:"";position:absolute;left:0;top:.55em;width:5px;height:5px;border-radius:50%;background:var(--accent-start)}.exp-list{min-height:0;overflow:hidden}.exp-row{padding:1.5rem 1.25rem 1.5rem 1.1rem;border-top:1px solid rgba(255,255,255,.08);border-left:3px solid rgba(61,220,151,.18);cursor:default;transition:background-color .32s ease,border-left-color .32s ease}.exp-list>.reveal:last-child .exp-row{border-bottom:1px solid rgba(255,255,255,.08)}.exp-row--open{background-color:#ffffff09;border-left-color:var(--accent-start)}.exp-row[data-category=Internship]{--category-color: var(--accent-start)}.exp-row[data-category=Leadership]{--category-color: #e8b34d}.exp-row[data-category=Freelance]{--category-color: #7aa2f7}.exp-row-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.exp-row-title{display:flex;align-items:baseline;flex-wrap:nowrap;gap:.6rem;min-width:0;overflow:hidden}.exp-row-title h4{flex:0 0 auto;margin:0;font-size:1.15rem;font-weight:600;white-space:nowrap;color:var(--color-heading)}.exp-org{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;color:var(--color-role)}.exp-period{flex-shrink:0;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12px;letter-spacing:.04em;color:var(--color-dim)}.exp-row-details{display:grid;grid-template-rows:minmax(0,0fr);opacity:0;transition:grid-template-rows .32s ease,opacity .22s ease}.exp-row-details-inner{min-height:0;overflow:hidden;padding-top:.85rem}.exp-row--open .exp-row-details{grid-template-rows:minmax(0,1fr);opacity:1}.exp-row-meta{display:flex;gap:1.5rem;margin-bottom:.6rem}.exp-row-meta div{display:flex;flex-direction:column;gap:.15rem}.exp-row-meta span:first-child{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-dim)}.exp-row-meta span:last-child{font-size:14px;font-weight:500;color:var(--color-meta)}.exp-row-meta div:nth-child(2) span:last-child{color:var(--category-color, var(--color-meta))}.exp-row-desc{margin:0;font-size:15px;line-height:1.6;color:var(--color-meta)}.section--work{max-width:1400px}.section--contact{max-width:1200px}.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.work-grid-wide{grid-column:1 / -1}@media(max-width:900px){.work-grid{grid-template-columns:1fr}}.work-card{display:flex;flex-direction:column;gap:.85rem;height:100%;padding:1.5rem;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:#ffffff06;text-decoration:none;color:inherit;transition:border-color .22s ease,background-color .22s ease}.work-card:hover{border-color:var(--accent-start);background:#ffffff0a}.work-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.work-card-head h3{margin:0;font-size:1.2rem;font-weight:600;color:var(--color-heading)}.work-card-link{display:inline-block;flex-shrink:0;color:var(--color-dim);font-size:1.1rem;line-height:1;transition:color .22s ease,transform .22s ease}.work-card:hover .work-card-link{color:var(--accent-start);transform:rotate(45deg)}.work-card-desc{margin:0;font-size:15px;line-height:1.6;color:var(--color-meta)}.work-card-bullets{margin:0;padding-left:1.1rem;display:grid;gap:.45rem;font-size:15px;line-height:1.6;color:var(--color-meta)}.work-card-bullets li::marker{color:var(--accent-start)}.work-card-tech{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:auto;padding-top:.5rem}.tech-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .65rem;border:1px solid rgba(255,255,255,.1);border-radius:999px;background:#ffffff08;font-family:JetBrains Mono,ui-monospace,monospace;font-size:11px;letter-spacing:.02em;color:var(--color-meta);transition:transform .16s ease,border-color .16s ease,background-color .16s ease,color .16s ease}.work-card:hover .tech-pill{border-color:var(--pill-color, var(--accent-start));background:color-mix(in srgb,var(--pill-color, var(--accent-start)) 15%,transparent);color:var(--pill-color, var(--accent-start))}.work-card:hover .tech-pill-icon{color:var(--pill-color, var(--accent-start))}.tech-pill:hover{transform:translateY(-2px);border-color:var(--pill-color, var(--accent-start));background:color-mix(in srgb,var(--pill-color, var(--accent-start)) 32%,transparent);color:var(--pill-color, var(--accent-start))}.tech-pill:hover .tech-pill-icon{color:var(--pill-color, var(--accent-start))}.tech-pill-icon{flex-shrink:0;color:var(--color-dim);transition:color .16s ease}.contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}@media(max-width:780px){.contact-grid{grid-template-columns:1fr}}.contact-card{display:flex;align-items:center;gap:1rem;padding:1.85rem 1.6rem;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:#ffffff06;text-decoration:none;transition:border-color .22s ease,background-color .22s ease}.contact-card:hover{border-color:var(--accent-start);background:#ffffff0a}.contact-card-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-dim);transition:color .22s ease}.contact-card-icon-svg{width:22px;height:22px;color:inherit}.contact-card:hover .contact-card-icon{color:var(--accent-start)}.contact-card-label{flex:1;font-size:19px;font-weight:600;color:var(--color-heading)}.contact-card-arrow{flex-shrink:0;display:inline-block;font-size:1.3rem;line-height:1;color:var(--color-dim);transition:transform .22s ease,color .22s ease}.contact-card:hover .contact-card-arrow{color:var(--accent-start);transform:rotate(45deg)}a:focus-visible{outline:2px solid #3ddc97;outline-offset:3px;border-radius:2px}.float-in{opacity:0;transform:translateY(var(--float-distance));transition-property:opacity,transform;transition-timing-function:ease-out;will-change:opacity,transform}.float-in-visible{opacity:1;transform:translateY(0)}.reveal{opacity:0;transform:translateY(var(--reveal-rise));transition-property:opacity,transform;transition-duration:var(--reveal-duration);transition-timing-function:ease-out;will-change:opacity,transform}.reveal-visible{opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){.float-in,.reveal{transition:none;opacity:1;transform:none}.scroll-cue-arrow{animation:none}.rays{display:none}}@media(max-width:480px){.hero{padding-inline:1.25rem}}
