:root{--ink:#f8f9ff;--muted:#bdc5dd;--night:#080a18;--pastel-purple:#b596e8;--purple:#7550c9;--blue:#2479a9;--mint:#1c8067;--coral:#b53f68;--amber:#c78a24;--line:#fff3;--ink-secondary:#d2d8eb;--ink-strong:#f0f2fb;--paper-ink:#414354;--paper-line:#1114;--surface-deep:#060816;--sans:Inter, Avenir, "Segoe UI", system-ui, sans-serif;--mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--serif:Georgia, serif;--header-height:80px;--content-width:1500px;--page-gutter:clamp(1.2rem, 7vw, 7rem);--header-gutter:clamp(1.2rem, 4vw, 4rem);--section-space:8rem;--page-top-space:clamp(8rem, 12vw, 12rem);--page-min-height:calc(100svh - var(--header-height));--border:1px solid var(--line);--pill-radius:999px;--ease-fast:.2s ease;--label-tracking:.12em;--heading-tracking:-.055em;--body-leading:1.7;font-family:var(--sans);color:var(--ink);background:var(--night);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{isolation:isolate;margin:0;position:relative;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--pastel-purple);outline-offset:4px}.back-to-top{--footer-clearance:0px;left:clamp(.8rem,2.4vw,2.2rem);bottom:calc(clamp(1.2rem, 4vh, 2.8rem) + var(--footer-clearance));z-index:13;cursor:pointer;opacity:0;pointer-events:none;align-items:center;gap:.55rem;min-height:42px;padding:.65rem .9rem;display:flex;position:fixed;transform:translateY(12px)}.back-to-top[hidden]{display:none}.back-to-top.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.back-to-top.above-footer{--footer-clearance:120px}.back-to-top span{color:var(--pastel-purple);transition:transform var(--ease-fast);font-size:1rem;line-height:1}.back-to-top:hover span,.back-to-top:focus-visible span{transform:translateY(-2px)}.back-to-top b{font:600 .75rem var(--mono);letter-spacing:var(--label-tracking)}body>main,body>footer{z-index:1;position:relative}body>main{animation:.2s ease-out both page-arrive}@keyframes page-arrive{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}.skip{z-index:20;background:var(--pastel-purple);color:var(--night);padding:.8rem 1rem;position:fixed;top:-5rem;left:1rem}.skip:focus{top:1rem}.topbar{padding:0 var(--header-gutter);justify-content:space-between;align-items:center;display:flex}.wordmark{align-items:center;gap:.8rem;display:flex}.wordmark span{font:500 12px var(--mono);place-items:center;display:grid}.wordmark b{letter-spacing:.08em;text-transform:uppercase;font-size:.8rem}.topbar nav{font:400 .8rem var(--mono);text-transform:uppercase;letter-spacing:var(--label-tracking);gap:clamp(.8rem,1.8vw,2.4rem);display:flex}.nav-toggle{cursor:pointer;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:0;display:none}.nav-toggle-bar{width:18px;margin:0 auto;transition:transform .2s,opacity .2s}.topbar.nav-open .nav-toggle-bar:first-child{transform:translateY(6.5px)rotate(45deg)}.topbar.nav-open .nav-toggle-bar:nth-child(2){opacity:0}.topbar.nav-open .nav-toggle-bar:nth-child(3){transform:translateY(-6.5px)rotate(-45deg)}.kicker{font:400 .75rem var(--mono);letter-spacing:.14em;color:var(--pastel-purple)}.section-head h1 i,.section-head h2 i{font-family:var(--serif);color:var(--pastel-purple);font-weight:400}.section-shell{content-visibility:auto;padding:var(--section-space) var(--page-gutter);border-top:var(--border)}.content-frame{width:min(var(--content-width), 100%);margin-inline:auto}.projects{contain-intrinsic-block-size:auto 5200px;background:#0c1018e8}.light-panel{contain-intrinsic-block-size:auto 1900px;color:#0b0d12;background:#eae5d9}.career-engagements li span>span,.career-engagements li>span{min-width:0}.section-head{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:5rem;display:flex}.section-head h2,.section-head h1{letter-spacing:var(--heading-tracking);margin:1.5rem 0 0;font-size:clamp(2.8rem,6vw,6rem);line-height:.95}.page-section{min-height:var(--page-min-height);padding-top:var(--page-top-space)}.section-head>p{max-width:25rem;color:var(--muted);line-height:var(--body-leading)}.mission:hover{border-color:var(--accent)}.project-mission:focus-visible{border-color:var(--accent);outline:1px solid var(--accent);outline-offset:4px}.meta,footer{font:400 .75rem var(--mono);letter-spacing:.1em;color:var(--muted);display:flex}.work-index{min-height:100vh}.project-mission[hidden]{display:none}.academics{contain-intrinsic-block-size:auto 1400px}.academics .section-head h1 i,.academics .section-head h2 i{color:var(--pastel-purple)}.blogs{contain-intrinsic-block-size:auto 1800px}footer{padding:2rem var(--header-gutter);grid-template-columns:1fr auto 1fr;align-items:center;display:grid}footer span:last-child{grid-column:2}@media (width<=800px){.back-to-top{bottom:calc(1.2rem + env(safe-area-inset-bottom))}.back-to-top.above-footer{--footer-clearance:0px}.nav-toggle{display:flex}.topbar nav{border-bottom:var(--border);backdrop-filter:blur(16px);opacity:0;visibility:hidden;flex-direction:column;gap:0;padding:.2rem 0 .5rem;transition:transform .2s,opacity .2s,visibility .2s;display:flex;position:absolute;left:0;right:0;transform:translateY(-8px)}.topbar.nav-open nav{opacity:1;visibility:visible;transform:translateY(0)}.topbar nav a{border-top:var(--border);align-items:center;display:flex}.topbar nav a:first-child{border-top:0}.topbar nav a:active{background:#cbb8ff17}.section-head{display:block}footer{padding-bottom:calc(2.5rem + env(safe-area-inset-bottom));flex-direction:column;align-items:flex-start;display:flex}}@media (width<=500px){:root{--header-height:68px;--header-gutter:1rem;--page-gutter:1rem}.wordmark b{font-size:.68rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}@media (width<=800px){:root{--page-gutter:clamp(1rem, 4vw, 1.5rem);--section-space:clamp(3.75rem, 11vw, 5rem);--page-top-space:clamp(3.75rem, 11vw, 5rem);--body-leading:1.65}.topbar nav{max-height:calc(100svh - var(--header-height));padding-bottom:max(.5rem, env(safe-area-inset-bottom));overscroll-behavior:contain;overflow-y:auto}.topbar nav a{min-height:52px;font-size:.72rem}.section-shell,.contact{content-visibility:visible;contain-intrinsic-block-size:none}.section-shell{padding-block:var(--section-space)}.page-section,.work-index{min-height:0}.section-head{margin-bottom:clamp(2.25rem,7vw,3.25rem)}.section-head h1,.section-head h2{letter-spacing:-.045em;margin-top:1rem;font-size:clamp(2.35rem,10.5vw,3.75rem);line-height:1}.section-head>p{max-width:36rem;margin:1.25rem 0 0;line-height:1.65}footer{padding-block:1.75rem calc(6rem + env(safe-area-inset-bottom));gap:.75rem;line-height:1.5}}@media (width<=500px){.projects,.light-panel{padding-block:var(--section-space)}.section-head{margin-bottom:2.5rem}}:root{--os-black:#28233d;--os-white:#fffefe;--os-paper:#fffaff;--os-chrome:#f0edff;--os-chrome-dark:#918aa7;--os-blue:#7257d9;--os-lilac:#d8c5f4;--os-pink:#f3b6d2;--os-sky:#b9e5f5;--os-mint:#bcebd7;--os-yellow:#f8d883;--os-green:#64cda3;--os-red:#ed7891;--copy:#34313f;--copy-muted:#514c61;--shell-shadow:#8f86a0;--os-border-muted:#aaa2b8;--os-bar-stripe:#fffa;--os-border:2px solid var(--os-black);--os-hairline:1px solid var(--os-black);--os-frame:3px solid var(--os-black);--os-panel-shadow:inset 2px 2px var(--os-white), 9px 9px 0 var(--shell-shadow), 13px 13px 0 var(--os-black);--os-bevel-shade:#77736b;--os-drop-shadow:#6e6a62;--os-bloom:#fff;--on-accent:#181524;--term-green:#8dff78;--term-surface:#101411;--term-text:#d6dfd4;--term-dim:#778477;--term-line:#424b42;--cursor-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='28' viewBox='0 0 24 28'%3E%3Cpath d='M2 1v20l5-5 4 10 4-2-4-9h8z' fill='%23fffef8' stroke='%2311100f' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E") 2 1;--cursor-click:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='28' viewBox='0 0 24 28'%3E%3Cpath d='M7 13V5c0-2 3-2 3 0v6-7c0-2 3-2 3 0v7-6c0-2 3-2 3 0v7-4c0-2 3-2 3 0v9c0 6-4 9-9 9-4 0-7-3-8-7l-1-4c0-2 3-3 4-1l2 3z' fill='%23fffef8' stroke='%2311100f' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E") 7 4}html,body,input,textarea{cursor:var(--cursor-arrow), default}.os-page a:focus-visible,.os-page button:focus-visible,.os-page input:focus-visible,.os-page summary:focus-visible,.topbar a:focus-visible,.topbar button:focus-visible,.back-to-top:focus-visible{outline:2px dotted var(--os-black);outline-offset:3px}a,button,summary,[role=button]{cursor:var(--cursor-click), pointer}body{background:#d8d1f3}body:before{content:"";z-index:-1;opacity:.1;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath d='M0 0h1v1H0zM2 2h1v1H2z' fill='%23000'/%3E%3C/svg%3E");position:fixed;inset:0}body:after{content:"";z-index:-2;background:radial-gradient(circle 35rem at var(--ambient-x,50vw) var(--ambient-y,35vh), #ff9ed7 0, #d69af0 30%, transparent 72%), radial-gradient(circle 42rem at 7% 12%, #fdc8dd 0, transparent 68%), radial-gradient(circle 44rem at 94% 22%, #93ddf5 0, transparent 70%), radial-gradient(circle 48rem at 72% 88%, #b9a7f5 0, transparent 70%), linear-gradient(135deg, #fff0ca, #c9d0f6 52%, #f7c8dc);pointer-events:none;position:fixed;inset:0}.topbar{z-index:80;border-bottom:var(--os-border);height:58px;color:var(--os-black);box-shadow:inset 0 1px var(--os-white), 0 3px 0 #0002;backdrop-filter:blur(18px)saturate(1.4);background:linear-gradient(90deg,#fff9fdeb,#eeebffeb 55%,#eefbffeb);position:sticky;top:0}.wordmark span{border:var(--os-border);background:var(--os-black);width:32px;height:32px;color:var(--os-white);border-radius:4px;box-shadow:3px 3px #8f8a80}.wordmark b,.topbar nav{color:var(--os-black)}.topbar nav a{padding:.45rem .55rem}.topbar nav a:hover,.topbar nav a:focus-visible{background:var(--os-blue);color:var(--os-white)}.topbar nav a[aria-current=page]{background:var(--os-lilac);box-shadow:inset 0 -3px var(--os-blue)}.nav-toggle{border:var(--os-border);background:var(--os-chrome);box-shadow:inset 1px 1px var(--os-white), inset -1px -1px #7d786e;border-radius:2px}.nav-toggle-bar{background:var(--os-black);height:2px}@keyframes os-scroll-nudge{50%{transform:translateY(3px)}}@keyframes os-caret{50%{opacity:0}}[data-terminal-suggestion-list] button{width:100%;color:var(--term-text);text-align:left;background:0 0;border:0;border-bottom:1px solid #222a23;grid-template-columns:minmax(6.5rem,.55fr) 1fr;gap:.75rem;padding:.46rem .7rem;display:grid}[data-terminal-suggestion-list] button:last-child{border-bottom:0}[data-terminal-suggestion-list] button:hover,[data-terminal-suggestion-list] button.is-active{box-shadow:inset 3px 0 var(--term-green);background:#233126}[data-terminal-suggestion-list] code{color:var(--term-green);font:700 .75rem var(--mono)}[data-terminal-suggestion-list] span{color:#9aa69a;font:.75rem/1.35 var(--mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.os-page{color:var(--os-black);background:0 0}.os-page .section-shell{width:min(1440px, calc(100% - (2 * var(--page-gutter))));scroll-margin-top:calc(var(--header-height) + 1rem);border:var(--os-frame);background:var(--os-paper);color:var(--os-black);box-shadow:inset 2px 2px var(--os-white), 10px 10px 0 var(--os-drop-shadow), 14px 14px 0 var(--os-black);margin:0 auto clamp(2.5rem,6vw,5rem);padding:clamp(3.5rem,7vw,7rem) clamp(1.2rem,5vw,5rem)}.os-page .section-shell:before,.os-page:not(.landing-page) .section-head .kicker{display:none}.os-page:not(.landing-page) .section-head h1{margin-top:0}.os-page .section-head .kicker,.os-page .light-panel .kicker,.os-page .light-panel .section-head h1 i,.os-page .light-panel .section-head h2 i,.os-page .section-head h2 i{color:var(--os-blue)}.os-page .mission li,.os-page .education-coursework li{border:var(--os-hairline);color:var(--os-black);border-radius:0;box-shadow:2px 2px #858178}.back-to-top{border:var(--os-border);background:var(--os-chrome);color:var(--os-black);box-shadow:inset 2px 2px white, inset -2px -2px var(--os-bevel-shade), 4px 4px 0 #2228;backdrop-filter:none;border-radius:0}.back-to-top:hover,.back-to-top:focus-visible{border-color:var(--os-black);background:var(--os-blue);color:var(--os-white)}footer{border-top:var(--os-frame);background:var(--os-chrome);color:#4f4c46;min-height:72px;box-shadow:inset 0 2px #fff}@media (width<=800px){.topbar{background:var(--os-chrome)}.topbar nav{border:var(--os-border);background:var(--os-chrome);box-shadow:6px 6px #1119}.os-menu-cluster>strong{padding-inline:.5rem}.os-terminal-suggestions-head kbd,[data-terminal-suggestion-list] span{display:none}[data-terminal-suggestion-list] button{grid-template-columns:1fr}.os-page .section-shell,.os-page .contact{width:calc(100% - (2 * var(--page-gutter)));box-shadow:6px 6px 0 var(--os-drop-shadow), 9px 9px 0 var(--os-black)}}@media (width<=470px){.os-window-controls i{display:none}}.os-page{min-height:calc(100svh - var(--header-height));padding-block:clamp(2rem,4vw,4rem)}.os-page .section-head h1,.os-page .section-head h2,.os-page .mission h3,.os-page .academic-column h4,.os-page .education h3,.os-page .process-card h3{color:var(--os-black)}.os-page .kicker,.os-page .section-head h1 i,.os-page .section-head h2 i,.os-page .meta span,.os-page .academic-column small,.os-page .academic-column strong{color:var(--os-blue)}.os-page .section-head>p,.os-page .mission-main>p,.os-page .mission-side,.os-page .academic-column p{color:var(--copy-muted)}.os-page .section-shell:first-child{margin-top:clamp(.5rem,2vw,2rem)}.os-page .mission,.os-page .academic-column>a{border-color:var(--os-border-muted)}.os-page .mission:hover,.os-page .mission:focus-within,.os-page .academic-column>a:hover,.os-page .academic-column>a:focus-visible{background:linear-gradient(90deg,#ede6ff,#fbe9f2 75%,#eaf8ff)}.os-page .mission li,.os-page .education-coursework li{background:#f1edff}.os-page .academics-grid,.os-page .academic-column+.academic-column,.os-page .education,.os-page .education>div+div{border-color:var(--os-border-muted)}.os-page .featured-projects{background:linear-gradient(135deg, #fff 0 55%, #f0e9ff 100%), var(--os-paper)}.os-page .section-head>p,.os-page .mission-main>p,.os-page .education p,.os-page .education small,.os-page .process-card-copy p,.os-page .process-card-footer{color:#45475a}.os-page .section-shell:before{background:linear-gradient(90deg,#f2f3ff,#e7eaff 52%,#f9e9f3)}.wordmark,.topbar nav a,.nav-toggle,.back-to-top,.view-all-projects,.deck-app,.os-finder-toolbar button,.deck-chat-chips button,.os-terminal-prompt button{transition:transform .12s,box-shadow .12s,background .16s,color .16s}.wordmark:active,.topbar nav a:active,.nav-toggle:active,.back-to-top:active,.view-all-projects:active,.deck-app:active,.os-finder-toolbar button:not(:disabled):active,.deck-chat-chips button:active,.os-terminal-prompt button:active{transform:translate(2px,2px);box-shadow:inset 2px 2px #17182b55}.mission,.academic-column>a{transition:transform var(--ease-fast), background var(--ease-fast), box-shadow var(--ease-fast)}.mission:hover,.mission:focus-within,.academic-column>a:hover,.academic-column>a:focus-visible{box-shadow:inset 4px 0 var(--accent)}@media (width<=800px){.topbar nav a[aria-current=page]{color:var(--os-blue);box-shadow:inset 4px 0 var(--os-blue);background:#dfe5ff}}.topbar-actions{align-items:center;gap:1rem;display:flex}.theme-toggle{border:var(--os-border);background:var(--os-chrome);min-height:34px;color:var(--os-black);box-shadow:inset 1px 1px var(--os-white), inset -1px -1px var(--os-chrome-dark), 2px 2px 0 #1115;align-items:center;gap:.42rem;padding:.35rem .55rem;display:inline-flex}.theme-toggle:hover,.theme-toggle:focus-visible{background:var(--os-yellow)}.theme-toggle span{font-size:1rem;line-height:1}.theme-toggle b{font:750 .75rem var(--mono);letter-spacing:.06em;text-transform:uppercase}.kicker,.meta,footer{font-size:.75rem}.mission li,.academic-column small,.academic-column strong,.process-card-footer{font-size:max(.7rem,12px)}.mission-main>p,.section-head>p,.education p,.academic-column p,.process-card-copy p{font-size:clamp(1rem,1.2vw,1.08rem)}@media (width<=800px){.topbar{padding-inline:1rem}.wordmark b{display:none}.topbar-actions{gap:.55rem}.theme-toggle{min-height:40px}.theme-toggle b{display:none}.topbar nav{z-index:90;top:calc(100% + 2px)}}html[data-theme=dark]{--os-bar-stripe:#ffffff14;--os-black:#f2f0ff;--os-white:#171829;--os-paper:#111322;--os-chrome:#25263b;--os-chrome-dark:#080912;--os-blue:#b6a4ff;--os-lilac:#5b477e;--os-pink:#713f5a;--os-sky:#315b70;--os-mint:#275f50;--os-yellow:#92752e;--os-green:#65d4a9;--os-red:#df728b;--copy:#e7e6f2;--copy-muted:#b9b8ca;--shell-shadow:#05050a;--os-bloom:#c9ffe6}html[data-theme=dark] body{background:#090a13}html[data-theme=dark] body:after{background:radial-gradient(circle 38rem at var(--ambient-x,50vw) var(--ambient-y,35vh), #7a386f 0, #3d285e 38%, transparent 72%), radial-gradient(circle 42rem at 4% 12%, #552c55 0, transparent 68%), radial-gradient(circle 46rem at 96% 18%, #1e5368 0, transparent 72%), radial-gradient(circle 48rem at 72% 88%, #48316a 0, transparent 70%), #090a13}html[data-theme=dark] .os-page{background:0 0}html[data-theme=dark] .topbar{background:linear-gradient(90deg,#181725ee,#202038ee 55%,#122631ee)}html[data-theme=dark] .os-page .section-shell:before,html[data-theme=dark] .os-page .detail-hero:before,html[data-theme=dark] .os-page .blog-post-layout:before{background:linear-gradient(90deg,#28223b,#272942 55%,#183546)}html[data-theme=dark] .os-page .featured-projects,html[data-theme=dark] .os-page #education,html[data-theme=dark] .os-page #reading,html[data-theme=dark] .os-page .next-blog,html[data-theme=dark] .os-page .contact{background:var(--os-paper)}html[data-theme=dark] .os-page .section-head>p,html[data-theme=dark] .os-page .mission-main>p,html[data-theme=dark] .os-page .mission-side,html[data-theme=dark] .os-page .education p,html[data-theme=dark] .os-page .education small,html[data-theme=dark] .os-page .process-card-copy p,html[data-theme=dark] .os-page .process-card-footer,html[data-theme=dark] .os-page .academic-column p,html[data-theme=dark] .os-page .detail-back,html[data-theme=dark] .os-page .detail-meta,html[data-theme=dark] .os-page .detail-hero>p,html[data-theme=dark] .os-page .blog-toc a,html[data-theme=dark] .os-page .blog-article>p,html[data-theme=dark] .os-page .blog-article>ul li,html[data-theme=dark] .os-page .meta time,html[data-theme=dark] .os-page .mission-side small{color:var(--copy-muted)}html[data-theme=dark] .os-page .mission li,html[data-theme=dark] .os-page .education-coursework li{color:var(--os-black);background:#292a43;border-color:#77758f;box-shadow:2px 2px #070812}html[data-theme=dark] .os-page .detail-meta span,html[data-theme=dark] .os-page .detail-highlights span{color:color-mix(in srgb, var(--accent) 48%, #fff)}html[data-theme=dark] .career-engagements a>b{color:color-mix(in srgb, var(--role-color) 48%, #fff)}html[data-theme=dark] .coffee-visual>span{color:var(--copy-muted)}html[data-theme=dark] .book-card .process-card-footer span,html[data-theme=dark] .coffee-card .process-card-footer span{color:color-mix(in srgb, var(--book-accent) 45%, #fff)}html[data-theme=dark] .ssh-copy-label{color:#c6b5ff}html[data-theme=dark] .os-page :is(.mission,.academic-column>a){border-color:#65657b}html[data-theme=dark] .os-page :is(.mission,.academic-column>a):hover,html[data-theme=dark] .os-page :is(.mission,.academic-column>a):focus-visible,html[data-theme=dark] .os-folder-grid>a:hover{background:#292b45}html[data-theme=dark] .os-page .education>div,html[data-theme=dark] .os-page .education>div:nth-child(2),html[data-theme=dark] .os-page .education>div:nth-child(3),html[data-theme=dark] .os-page .process-card,html[data-theme=dark] .os-page .process-card:nth-child(2n),html[data-theme=dark] .os-page .process-card:nth-child(3n),html[data-theme=dark] .os-page .blog-highlights,html[data-theme=dark] .os-page .blog-toc{background:var(--os-white)}html[data-theme=dark] footer{color:var(--copy-muted)}html[data-theme=dark] .workbench-sidebar,html[data-theme=dark] .workbench-modules{background:var(--os-chrome)}html[data-theme=dark] .workbench-hero>p,html[data-theme=dark] .work-module p{color:var(--copy-muted)}
