@import "https://fonts.googleapis.com/css2?family=Instrument+Sans:wght@400;500;600;700&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--text:#111;--muted:#676767;--muted-strong:#8a8a8a;--line:#1111111f;--shadow:0 24px 64px #1414141f;--max-width:1180px;--content-width:760px;--overlay-surface:#fafafab3;font-family:Instrument Sans,system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;color:var(--text);background:radial-gradient(circle at 0 0,#fffffff2,#0000 28%),radial-gradient(circle at 80% 15%,#dadadab8,#0000 24%),linear-gradient(#fcfcfc 0%,#ececec 48%,#f7f7f7 100%);margin:0}a{color:inherit}button,a{transition:color .18s,opacity .18s,transform .18s,border-color .18s,background-color .18s,box-shadow .18s}a:focus-visible,button:focus-visible{outline-offset:4px;outline:3px solid #1a1a1a33}.page-shell{padding:24px 18px 64px;position:relative;overflow:hidden}.page-backdrop{z-index:2;opacity:0;pointer-events:none;-webkit-backdrop-filter:blur()saturate();background:#f7f7f700;transition:opacity .16s 80ms,background-color .16s 80ms,-webkit-backdrop-filter .16s 80ms,backdrop-filter .16s 80ms;position:fixed;inset:0}.page-backdrop.is-open{opacity:1;pointer-events:auto;-webkit-backdrop-filter:blur(10px)saturate(112%);background:#f7f7f75c}.skip-link{z-index:20;color:var(--text);box-shadow:var(--shadow);background:#fffffff2;border-radius:999px;padding:10px 14px;text-decoration:none;position:absolute;top:-40px;left:16px}.skip-link:focus{top:16px}.ambient{filter:blur(18px);pointer-events:none;border-radius:999px;position:absolute}.ambient-one{background:#5454541c;width:340px;height:340px;top:120px;right:-120px}.ambient-two{background:#e5e5e5eb;width:300px;height:300px;top:540px;left:-120px}.site-header,.content-stack{width:min(100%, var(--max-width));margin:0 auto;position:relative}.topbar{z-index:4;width:calc(100vw - 36px);min-height:72px;margin-left:calc(50% - 50vw + 18px);position:relative}.nav-shell{--nav-gutter:max(0px, calc((100% - var(--max-width)) / 2));isolation:isolate;width:100%;padding-inline:var(--nav-gutter);position:relative}.nav-shell.is-open{background:var(--overlay-surface);-webkit-backdrop-filter:blur(12px)saturate(108%)}.primary-nav{z-index:2;position:relative}.nav-list{flex-wrap:wrap;align-items:center;gap:8px 34px;margin:0;padding:0;list-style:none;display:flex}.nav-item{position:relative}.nav-link,.nav-trigger{color:var(--text);cursor:pointer;background:0 0;border:0;padding:22px 0 20px;font-family:inherit;font-size:.98rem;font-weight:500;line-height:1.2;text-decoration:none}.nav-item.is-muted .nav-link,.nav-item.is-muted .nav-trigger{color:var(--muted-strong)}.nav-item.is-active .nav-link,.nav-item.is-active .nav-trigger{color:var(--text)}.nav-dropdown{z-index:5;opacity:0;pointer-events:none;background:var(--overlay-surface);-webkit-backdrop-filter:blur(12px)saturate(108%);transform-origin:top;border-bottom:1px solid #0000;max-height:0;transition:max-height .24s cubic-bezier(.2,.8,.2,1),opacity .18s,transform .24s cubic-bezier(.2,.8,.2,1),border-color .18s;position:absolute;top:calc(100% - 1px);left:0;right:0;overflow:hidden;transform:translateY(-14px)}.nav-dropdown.is-open{opacity:1;pointer-events:auto;border-bottom-color:#11111129;max-height:18rem;transform:translateY(0)}.nav-dropdown-list{padding:14px var(--nav-gutter) 18px calc(var(--nav-gutter) + 18px);gap:10px;display:grid}.nav-dropdown-link{padding:2px 0;text-decoration:none;display:block}.nav-dropdown-title{color:var(--text);letter-spacing:-.02em;font-size:clamp(1rem,2vw,1.625rem);font-weight:500;line-height:1.2}.nav-dropdown-link:hover .nav-dropdown-title{color:var(--muted)}.hero{width:min(100%, var(--content-width));padding:88px 0 72px;transition:filter .18s 80ms,opacity .18s 80ms,transform .18s 80ms}.eyebrow,.subsection-label{letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:600}.eyebrow{color:var(--text)}.hero h1,.section-title,.project-entry h3{margin:0;font-family:Instrument Sans,system-ui,sans-serif;line-height:.98}.hero h1{letter-spacing:-.06em;max-width:10ch;font-size:clamp(1.91rem,4.5vw,3.83rem);font-weight:600}.hero-meta{color:var(--muted);letter-spacing:.01em;margin:18px 0 0;font-size:1rem;font-weight:600}.hero-summary,.hero-tagline,.section-copy,.project-entry p,.plain-list,.skills-list,.contact-links{color:var(--muted);margin:0;line-height:1.7}.hero-summary{max-width:56ch;margin-top:26px;font-size:1.12rem}.hero-tagline{color:var(--text);margin-top:14px;font-weight:500}.hero-actions{flex-wrap:wrap;gap:14px 18px;margin-top:28px;display:flex}.hero-action-link,.project-title-link,.contact-links a{border-bottom:1px solid #11111147;text-decoration:none}.hero-action-link{color:var(--text);padding-bottom:2px;font-size:.98rem;font-weight:600}.hero-action-link:hover,.project-title-link:hover,.contact-links a:hover{border-bottom-color:#111111b8}.content-stack{transition:filter .18s 80ms,opacity .18s 80ms,transform .18s 80ms;display:grid}.ambient{transition:filter .18s 80ms,opacity .18s 80ms}.menu-open .hero,.menu-open .content-stack{filter:blur(6px);opacity:.18;transform:translateY(4px)}.menu-open .ambient{filter:blur(8px);opacity:.12}.content-section{border-top:1px solid var(--line);padding:42px 0 46px}#projects.content-section{padding-bottom:0}#skills.content-section{border-top:0}.section-heading{width:min(100%, var(--content-width))}.section-title{letter-spacing:-.04em;max-width:none;font-size:clamp(1.85rem,3.3vw,2.7rem);font-weight:600}.section-copy{width:min(100%, var(--content-width));margin-top:22px;font-size:1rem}.project-list{width:min(100%, var(--max-width));border-top:1px solid var(--line);margin-top:34px}.project-entry{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,25rem) minmax(0,1fr);align-items:start;gap:28px;padding:24px 0;display:grid}.project-entry h3{letter-spacing:-.02em;font-size:clamp(1.2rem,2vw,1.45rem);font-weight:600}.skills-list{width:min(100%, var(--content-width));grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 28px;margin-top:30px;padding:0;list-style:none;display:grid}.skills-list li{padding-left:16px;font-size:1rem;position:relative}.skills-list li:before{content:"";background:var(--text);border-radius:999px;width:5px;height:5px;position:absolute;top:.76em;left:0}.coursework-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px;width:min(100%,920px);margin-top:30px;display:grid}.course-column{gap:16px;display:grid}.subsection-label{color:var(--muted)}.plain-list{padding-left:20px;font-size:1rem}.plain-list li+li{margin-top:10px}.contact-links{gap:10px;margin-top:22px;display:grid}.contact-links a{width:fit-content;padding-bottom:2px}@media (width<=960px){.hero,.section-heading,.section-copy,.skills-list,.coursework-grid{width:100%}.project-entry,.coursework-grid,.skills-list{grid-template-columns:1fr}.hero h1,.section-title{max-width:none}}@media (width<=640px){.page-shell{padding-inline:12px}.topbar{width:calc(100vw - 24px);margin-left:calc(50% - 50vw + 12px)}.nav-shell{--nav-gutter:0px}.nav-list{gap:4px 16px}.nav-link,.nav-trigger{padding-top:18px;padding-bottom:18px;font-size:.95rem}.nav-dropdown-title{font-size:clamp(.98rem,4.6vw,1.2rem)}.hero{padding:44px 0 54px}.hero h1{font-size:clamp(1.54rem,8.44vw,2.48rem)}.section-title{font-size:clamp(1.7rem,9vw,2.25rem)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}
