:root{--bg:#fafafa;--panel:#fff;--soft:#f0f1f4;--text:#1c1d21;--muted:#626772;--line:#dfe1e6;--blue:#245ce5;--nav:rgba(250,250,250,.85);color-scheme:light}html[data-theme=dark]{--bg:#101114;--panel:#1b1d23;--soft:#16181e;--text:#f2f3f6;--muted:#abb0bb;--line:#30333c;--blue:#88adff;--nav:rgba(16,17,20,.85);color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--text);font-family:"Manrope",Arial,sans-serif;-webkit-font-smoothing:antialiased;transition:background .3s,color .3s}a{color:inherit;text-decoration:none}button{font:inherit}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:6px}.wrap{max-width:1120px;margin:auto;padding-left:36px;padding-right:36px}header{position:sticky;top:0;z-index:10;background:var(--nav);backdrop-filter:blur(22px);border-bottom:1px solid var(--line)}.nav{height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}.wordmark{font-size:20px;letter-spacing:-.8px;white-space:nowrap}.wordmark span{font-weight:700}.wordmark b{color:var(--blue)}.navlinks{display:flex;gap:32px;font-size:14px}.navlinks a:hover,.textlink:hover{color:var(--blue)}.theme{height:36px;width:36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--panel);color:var(--text);cursor:pointer}.hero{padding-top:100px}.eyebrow,.small-label{font-size:12px;font-weight:650;letter-spacing:1.7px;line-height:1.6}.eyebrow{color:var(--muted);margin:0 0 25px}.hero h1{font-size:clamp(56px,7.7vw,94px);line-height:1.04;font-weight:650;letter-spacing:-5px;margin:0 0 30px}.hero h1 span{background:linear-gradient(100deg,#185ee0,#6864d8 65%,#ae5aa6);background-clip:text;-webkit-background-clip:text;color:transparent}.hero-copy{font-size:23px;line-height:1.6;color:var(--muted);letter-spacing:-.4px;margin-bottom:34px}.hero-actions{display:flex;align-items:center;gap:28px}.button{display:inline-flex;align-items:center;gap:28px;background:#245ce5;color:white;padding:16px 23px;border-radius:30px;font-size:15px;font-weight:550;transition:transform .2s,background .2s}.button:hover{transform:translateY(-3px);background:#144bd0}.textlink{font-size:15px;font-weight:550}.textlink span{margin-left:9px}.hero-foot{margin-top:100px;padding:25px 0;display:flex;gap:32px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}.hero-foot strong{color:var(--text)}.scroll-hint{margin-left:auto}.context{background:var(--soft);padding:65px 0}.context-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}.small-label{color:var(--muted);display:block}.context h2{font-size:34px;letter-spacing:-1.2px;line-height:1.15;margin:15px 0 0}.context p{font-size:18px;line-height:1.8;color:var(--muted);margin:0}.section{padding-top:110px;padding-bottom:110px}.section-top{display:flex;justify-content:space-between;align-items:flex-end;gap:35px;margin-bottom:48px}.section-top h2{font-size:clamp(36px,4vw,49px);line-height:1.12;letter-spacing:-2px;margin:0}.section-top>p{font-size:16px;line-height:1.8;color:var(--muted);margin:0}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.project{border:1px solid var(--line);border-radius:24px;overflow:hidden;background:var(--panel);transition:box-shadow .3s,transform .3s}.project:hover{transform:translateY(-4px);box-shadow:0 20px 40px #00000009}.project-art{height:260px;position:relative;padding:28px}.sql-art{background:#e9eefb;color:#293e73}.schema-label{font-size:11px;letter-spacing:2px}.schema{display:flex;align-items:center;margin-top:35px;justify-content:center}.schema>div{border:1px solid #b6c4e2;background:#f6f8ff;border-radius:7px;overflow:hidden;min-width:95px;flex:1}.table-name{display:block;font:600 12px ui-monospace,monospace;border-bottom:1px solid #d4dcef;padding:10px}.schema code{font-size:10px;line-height:2;padding:9px;display:block;white-space:nowrap}.schema code b{font-size:9px;color:#6f85b5}.connector{color:#8599c4}.art-note{position:absolute;bottom:22px;font-size:11px;opacity:.75}.code-art{background:#20232d;color:#f2f4fc}.code-top{display:flex;justify-content:space-between;font:11px ui-monospace,monospace;color:#c2c8d9}.code-art pre{font:13px/1.9 ui-monospace,SFMono-Regular,monospace;margin-top:30px}.muted-code{color:#a5adc1}.purple{color:#c5a7ff}.project-body{padding:32px}.project h3{font-size:29px;line-height:1.15;letter-spacing:-1px;margin:15px 0}.project-body>p:not(.small-label){font-size:16px;line-height:1.7;color:var(--muted)}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.tags span{font-size:12px;padding:7px 11px;background:var(--soft);border-radius:6px;color:var(--muted)}details{border-top:1px solid var(--line);margin-top:28px}summary{display:flex;justify-content:space-between;cursor:pointer;list-style:none;padding-top:22px;font-size:14px;font-weight:550}summary::-webkit-details-marker{display:none}summary span{font-size:19px;transition:transform .2s}details[open] summary span{transform:rotate(45deg)}.detail-copy{color:var(--muted);font-size:15px;line-height:1.7}.detail-copy h4{color:var(--text);margin-bottom:10px}.experience{background:var(--soft)}.job{display:grid;grid-template-columns:1fr 2fr;gap:48px;padding:40px 0;border-top:1px solid var(--line)}.job:last-child{padding-bottom:0}.job-meta{font-size:13px;color:var(--muted)}.job-meta p{font-size:12px;letter-spacing:1px;margin:5px 0 12px}.job h3{font-size:28px;letter-spacing:-.8px;margin:0 0 8px}.job h4{font-size:16px;font-weight:500;margin:0 0 18px}.job>div>p:not(.achievement){font-size:16px;line-height:1.8;color:var(--muted)}.job .tags span{background:var(--panel)}.achievement{font-size:14px;color:var(--muted);display:flex;align-items:center;gap:16px;margin:25px 0 0}.achievement strong{font-size:38px;letter-spacing:-1.5px;color:var(--blue)}.about-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:24px}.education,.mini-card{border:1px solid var(--line);border-radius:22px;background:var(--panel);padding:32px}.education h3{font-size:30px;line-height:1.2;letter-spacing:-1px;margin:22px 0 30px}.degree{padding:18px 0;border-top:1px solid var(--line);font-size:16px;font-weight:550}.degree p{font-size:14px;color:var(--muted);font-weight:400;margin:8px 0 0}.gpa{font-size:14px;color:var(--blue);margin-bottom:0}.about-side{display:grid;gap:24px}.mini-card h3{font-size:22px;letter-spacing:-.6px;font-weight:600;line-height:1.3}.mini-card p{font-size:14px;line-height:1.9;color:var(--muted);margin-bottom:0}.skills{margin-top:50px;padding-top:25px;border-top:1px solid var(--line)}.skills>p:last-child{font-size:21px;line-height:1.9;letter-spacing:-.4px}.skills span{color:var(--line);padding:0 12px}.contact{text-align:center;background:var(--soft);padding:100px 0}.contact h2{font-size:clamp(46px,6vw,72px);line-height:1.06;letter-spacing:-3px;margin:0 0 24px}.contact h2 span{color:var(--blue)}.contact p:not(.eyebrow){color:var(--muted);font-size:17px;line-height:1.7;margin-bottom:30px}.contact .textlink{margin-left:25px}footer{min-height:110px;display:flex;align-items:center;justify-content:space-between;gap:20px}footer>span,footer>a:last-child{font-size:13px;color:var(--muted)}.skip{position:fixed;left:15px;top:-100px;z-index:20;background:var(--panel);padding:15px}.skip:focus{top:15px}.intro{animation:rise .85s both}.intro:nth-child(2){animation-delay:.08s}.intro:nth-child(3){animation-delay:.16s}.intro:nth-child(4){animation-delay:.24s}.motion .reveal{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}.motion .reveal.visible{opacity:1;transform:none}@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@media(min-width:1500px){.hero{padding-top:120px}}@media(max-width:760px){.wrap{padding-left:24px;padding-right:24px}.nav{height:68px;gap:12px}.navlinks{gap:16px}.navlinks a{font-size:12px}.navlinks a:nth-child(2),.navlinks a:nth-child(3){display:none}.wordmark{font-size:18px}.hero{padding-top:70px}.hero h1{font-size:58px;letter-spacing:-3px}.hero-copy{font-size:19px}.hero-foot{margin-top:65px;flex-wrap:wrap;gap:12px;justify-content:space-between;font-size:12px}.scroll-hint{display:none}.context-grid{grid-template-columns:1fr;gap:26px}.context{padding:45px 0}.context p{font-size:16px}.section{padding-top:70px;padding-bottom:70px}.section-top{display:block;margin-bottom:32px}.section-top>p{margin-top:22px}.project-grid,.about-grid{grid-template-columns:1fr}.project-body{padding:26px}.project-art{height:250px}.job{grid-template-columns:1fr;gap:18px;padding:30px 0}.job-meta p{margin:0 0 7px}.job h3{font-size:26px}.contact{padding:70px 0}.contact .textlink{display:block;margin:24px 0 0}.skills>p:last-child{font-size:18px}.skills span{padding:0 5px}footer{flex-wrap:wrap;padding-top:30px;padding-bottom:30px}footer .wordmark{width:100%}.eyebrow{font-size:11px;letter-spacing:1.4px}.desktop{display:none}}@media(max-width:380px){.hero h1{font-size:48px}.project-art{padding:20px}.schema>div{min-width:0}.schema code{font-size:9px;padding:6px}.table-name{padding:8px}.code-art pre{font-size:11px}.hero-actions{gap:18px}.button{padding:15px 20px;gap:14px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.motion .reveal{opacity:1;transform:none}}

.pong-art{background:#e9eefb;color:#293e73}.pong-art .code-top{color:#4b608c}.pong-title{font-size:65px;font-weight:750;letter-spacing:-4px;line-height:.9;margin-top:28px}.pong-title span{display:block;font-size:26px;letter-spacing:9px;margin:12px 0 0 3px;color:#5c74a5}

/* Manrope spacing retains the existing composition with a distinct typeface. */
.hero h1{letter-spacing:-.055em}.section-top h2{letter-spacing:-.045em}.contact h2{letter-spacing:-.045em}.wordmark{letter-spacing:-.7px}
