/* Full migrated content, in the shared hv.ms visual system. */
.wrap{max-width:1280px;margin:0 auto;padding-left:48px;padding-right:48px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.home-page main>.wrap{padding-top:100px}.home-page .hero{height:720px;max-width:none}.hero h1{text-shadow:0 4px 40px var(--bg)}.hero-description{color:var(--ink);opacity:.78}.hero-content{padding-bottom:40px}.hero canvas{}
.home-page .about{display:grid;grid-template-columns:1fr 1.3fr;gap:100px;padding-bottom:30px}.about .education{font-size:14px;color:var(--muted);margin-top:30px}.about .large-copy{font-size:27px;letter-spacing:-.025em;line-height:1.45;margin-bottom:25px}.about p+p{margin-top:20px}.about p:not(.large-copy){color:var(--muted)}.about .about-signature{font-size:14px}.about .resume-link{display:inline-block;margin-top:30px}
.focus-layout{display:grid;grid-template-columns:1.05fr 1fr;gap:64px;align-items:start}.focus-art{margin:0}.focus-art img{width:100%;height:auto;display:block;border-radius:12px;aspect-ratio:1.5;object-fit:cover}.focus-art figcaption{font-size:12px;color:var(--muted);margin-top:12px}.focus-art figcaption a{text-decoration:underline;text-underline-offset:3px}.focus-list article{padding:0 0 27px;margin-bottom:28px;border-bottom:1px solid var(--line)}.focus-list h3{font-size:26px;margin-bottom:15px}.focus-list p{font-size:16px;color:var(--muted)}.topic{font-size:12px;font-family:ui-monospace,Consolas,monospace;color:var(--muted);display:block;margin-top:18px}
.projects .project-feature{display:grid;grid-template-columns:1fr 1fr;gap:40px 54px;background:var(--surface);padding:40px;border-radius:12px}.project-cover{margin:0;grid-row:span 2;align-self:center;min-width:0}.pe-window{background:var(--bg);border-radius:8px;overflow:hidden}.pe-window-bar{display:flex;justify-content:space-between;padding:16px 20px;font:12px/1.5 ui-monospace,Consolas,monospace;border-bottom:1px solid var(--line)}.pe-view{padding:25px;overflow:auto}.pe-summary{margin-bottom:28px}.pe-symbol{font:38px/1 ui-monospace,Consolas,monospace;color:var(--muted)}.pe-summary h3{font-size:19px;font-weight:500;margin:20px 0 10px}.pe-summary p{font-size:13px;color:var(--muted);line-height:1.6}.pe-view table{width:100%;border-collapse:collapse;font:12px/1.7 ui-monospace,Consolas,monospace;white-space:nowrap}.pe-view th,.pe-view td{padding:9px 8px 9px 0;text-align:left;border-bottom:1px solid var(--line)}.pe-view th{font-weight:400;color:var(--muted)}.project-cover figcaption{font-size:12px;color:var(--muted);margin:12px 0 0}.project-title h3{font-size:42px;line-height:1.1}.project-title .project-status{margin:16px 0 28px}.project-title>p{font-size:26px;line-height:1.3;letter-spacing:-.025em}.project-title .text-link{display:inline-block;margin-top:24px}.project-description>p{font-size:16px;color:var(--muted)}.project-description .pipeline{display:flex;flex-flow:row wrap;gap:10px;align-items:center;background:none;padding:0;margin:24px 0;font:12px/1.6 ui-monospace,Consolas,monospace}.pipeline b{font-weight:400;color:var(--muted)}.project-description .project-boundary{font-size:13px}.project-secondary{display:grid;grid-template-columns:1fr 1fr;gap:64px;margin-top:44px}.project-secondary article{padding-bottom:28px;border-bottom:1px solid var(--line)}.project-secondary h3{font-size:29px;margin-bottom:14px}.project-secondary .project-status{margin-bottom:20px}.project-secondary p{color:var(--muted);font-size:16px}.project-secondary .text-link{display:inline-block;margin-top:25px}
details summary{cursor:pointer;list-style:none}details summary::-webkit-details-marker{display:none}details>summary:focus-visible{outline:2px solid #517fb8;outline-offset:5px}details .note-toggle:after{content:'+';font-size:24px;line-height:1;font-weight:400}details[open]>summary .note-toggle:after{content:'−'}.other-projects{margin-top:32px;border-bottom:1px solid var(--line)}.other-projects>summary{display:flex;align-items:center;gap:24px;padding:20px 0}.other-projects h3{font-size:22px}.other-projects>summary>span:not(.note-toggle){color:var(--muted);font-size:14px}.other-projects .note-toggle{margin-left:auto}.other-projects-body{display:grid;grid-template-columns:1fr 1fr;gap:64px;padding:25px 0 38px}.other-projects-body h3{font-size:23px;margin-bottom:14px}.other-projects-body p{color:var(--muted);font-size:16px}
.notes .section-heading{align-items:flex-end}.notes .section-heading p{margin-top:20px}.filters{display:flex;gap:6px;flex-wrap:wrap;flex-shrink:0}.filters button{padding:9px 14px;border-radius:999px;color:var(--muted);background:transparent;font-size:13px}.filters button:hover{background:var(--surface)}.filters button[aria-pressed=true]{background:var(--button);color:var(--button-ink)}.journal-entry[hidden]{display:none!important}.journal-editorial .journal-entry{display:grid;grid-template-columns:1fr;gap:20px;padding:32px 0;align-items:center}.journal-editorial .journal-entry h3{font-size:28px;line-height:1.3;max-width:800px}.journal-editorial .journal-entry p{font-size:16px;color:var(--muted);margin-top:14px;max-width:850px}.editorial-meta{display:block;font-size:12px;color:var(--muted);margin-top:13px}.editorial-arrow{display:none}.editorial-read{font-size:14px;text-decoration:underline;text-underline-offset:5px;margin-top:22px;display:inline-block}.journal-editorial .journal-featured{grid-template-columns:.85fr 1.2fr;gap:46px;padding:28px 0}.semantic-cover{padding:36px 24px;background:var(--surface);border-radius:10px;text-align:center;display:flex;flex-direction:column;gap:16px;font-family:ui-monospace,Consolas,monospace}.semantic-source{font-size:12px;color:var(--muted)}.semantic-shares{display:flex;gap:18px;justify-content:center;font-size:28px;margin-top:15px}.semantic-shares b{font-weight:400;color:var(--muted)}.semantic-projection{font-size:20px}.semantic-formula{font-size:13px;color:var(--muted)}.journal-editorial .semantic-cover p{font-size:12px;margin:0}.journal-browse{padding:30px 0}
.primer-group{margin-top:45px;border-top:1px solid var(--line)}.primer-group>summary{display:flex;justify-content:space-between;align-items:center;padding:28px 0}.primer-group>summary h3{font-size:28px}.note-list>details{border-top:1px solid var(--line)}.note-list summary{display:grid;grid-template-columns:120px 1fr auto 24px;gap:24px;align-items:center;padding:28px 0}.note-list summary h3{font-size:23px}.note-category,.note-time{font-size:12px;color:var(--muted)}.note-body{max-width:800px;margin:0 auto;padding:0 0 38px;font-size:17px}.note-body p+p{margin-top:20px}.note-body a{display:inline-block;margin-top:20px;text-decoration:underline;text-underline-offset:4px}.notes-caption{font-size:13px;color:var(--muted);line-height:1.7;max-width:820px;margin-top:30px}.closing{display:flex;gap:55px;align-items:center;padding-bottom:90px}.closing-logo{width:120px;height:auto;object-fit:contain}.closing h2{font-size:clamp(2.5rem,5vw,4.5rem)}.closing p{color:var(--muted);margin-top:18px}.closing .button{margin-left:auto;background:var(--button);color:var(--button-ink)}
.journal-page{padding-top:80px;padding-bottom:100px}.journal-page>h1{font-size:clamp(40px,6vw,70px);line-height:1.05;max-width:900px}.journal-lead{font-size:22px;line-height:1.6;color:var(--muted);margin-top:28px}.journal-route .journal-lead{max-width:750px;margin-bottom:35px}.journal-archive{margin-top:30px}.article-route .journal-page{max-width:1100px}.article-route .journal-page>article{max-width:810px;margin:auto;min-width:0}.breadcrumb{display:flex;gap:18px;font-size:13px;margin-bottom:36px;color:var(--muted)}.breadcrumb a{color:var(--ink);text-decoration:underline;text-underline-offset:4px}.article-route h1{font-size:clamp(36px,5.2vw,62px);line-height:1.1;letter-spacing:-.035em;text-wrap:balance}.journal-meta{margin-top:28px;font-size:13px;line-height:1.7;color:var(--muted)}.journal-meta a{text-decoration:underline;text-underline-offset:4px}.article-route .journal-lead{margin-top:30px;font-size:21px;line-height:1.65}.article-route article>section{margin-top:52px}.article-route h2{font-size:29px;line-height:1.25;letter-spacing:-.025em;margin:0 0 23px;text-wrap:balance}.article-route h3{font-size:23px;margin:32px 0 18px}.article-route section p{font-size:17px;line-height:1.8;overflow-wrap:break-word}.article-route section p+p{margin-top:23px}.article-route li{font-size:17px;line-height:1.8;margin:10px 0}.article-route ul,.article-route ol{padding-left:24px;margin:24px 0}.article-route code{font-family:ui-monospace,Consolas,monospace;font-size:.86em;background:var(--surface);padding:2px 5px;border-radius:4px;overflow-wrap:anywhere}.article-route pre{margin:30px 0;padding:25px;background:var(--surface);border-radius:8px;max-width:100%;overflow:auto;tab-size:4;font-size:14px;line-height:1.8}.article-route pre code{padding:0;background:none;font-size:inherit;overflow-wrap:normal}.article-table{margin:30px 0;max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:8px}.article-table table{width:100%;border-collapse:collapse;min-width:550px;font-size:14px;line-height:1.65}.article-table td,.article-table th{padding:15px 18px;vertical-align:top;text-align:left;border-bottom:1px solid var(--line)}.article-table th{font-weight:500;background:var(--surface)}.article-table tr:last-child td{border-bottom:0}.article-route .journal-page a:not(.button){text-decoration:underline;text-underline-offset:4px}.article-route .article-references{padding-top:30px;border-top:1px solid var(--line)}.article-route .devlog-evidence{color:var(--muted);font-size:14px;padding:20px 0}.article-toc{margin-top:36px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;font-size:14px}.article-toc>summary{display:flex;justify-content:space-between}.article-toc>summary:after{content:'+';font-size:20px}.article-toc[open]>summary:after{content:'−'}.article-toc nav{display:grid;gap:13px;padding:24px 0 6px}.article-toc nav a{color:var(--muted);line-height:1.5}.article-route .article-toc a{text-decoration:none}.article-toc nav a:hover{color:var(--ink)}
.resume-page{padding-top:80px;padding-bottom:100px}.resume-intro{display:flex;justify-content:space-between;gap:60px;align-items:flex-end;margin-bottom:85px}.resume-intro h1{font-size:clamp(64px,8vw,96px);line-height:1.1}.resume-alias{font-size:25px;margin-top:18px}.resume-summary{font-size:18px;color:var(--muted);max-width:540px;margin-top:26px}.resume-intro address{font-style:normal;font-size:16px;padding-bottom:5px}.resume-grid{display:grid;grid-template-columns:230px 1fr;gap:75px}.resume-sidebar{align-self:start;position:sticky;top:30px}.resume-sidebar nav{display:grid;gap:18px;font-size:14px}.resume-sidebar nav a:hover{text-decoration:underline;text-underline-offset:4px}.resume-sidebar p{font-size:13px;color:var(--muted);line-height:1.8;margin-top:40px}.resume-content{min-width:0}.resume-content>section{padding-top:42px;margin-top:42px;border-top:1px solid var(--line)}.resume-content>section:first-child{padding:0;margin:0;border:0}.resume-content h2{font-size:34px;margin-bottom:24px}.resume-content h3{font-size:24px;margin-bottom:13px}.resume-content p,.resume-content li{font-size:17px;line-height:1.75;color:var(--muted)}.resume-content p+p{margin-top:18px}.resume-content .resume-lead{font-size:22px;color:var(--ink)}.resume-position,.resume-skills article{margin-top:32px}.resume-position ul{padding-left:20px;margin:16px 0}.resume-content .organization{font-size:14px}.resume-projects{list-style:none;padding:0}.resume-projects li{padding:22px 0;border-bottom:1px solid var(--line)}.resume-projects a{display:block;color:var(--ink);font-size:20px;text-decoration:underline;text-underline-offset:5px}.resume-projects span{display:block;font-size:15px;margin-top:10px}.resume-contact .button{margin-top:25px;background:var(--button);color:var(--button-ink)}
@media(max-width:1000px){.wrap{padding-left:32px;padding-right:32px}.home-page .about{gap:50px}.focus-layout{gap:35px}.projects .project-feature{padding:28px;gap:30px}.project-title h3{font-size:36px}.pe-view{padding:18px}.project-secondary{gap:35px}.notes .section-heading{display:block}.filters{margin-top:24px}.resume-grid{grid-template-columns:180px 1fr;gap:40px}.closing{gap:30px}.closing-logo{width:90px}}
@media(max-width:700px){.wrap{padding-left:24px;padding-right:24px}.home-page main>.wrap{padding-top:70px}.home-page .hero{height:650px}.hero h1{font-size:90px}.home-page .about{grid-template-columns:1fr;gap:32px}.about .education{margin-top:20px}.about .large-copy{font-size:24px}.focus-layout{grid-template-columns:1fr;gap:32px}.focus-list h3{font-size:24px}.projects .project-feature{display:flex;flex-direction:column;padding:24px;gap:28px}.project-title{order:-1}.project-title h3{font-size:36px}.project-title>p{font-size:25px}.project-cover{width:100%}.pe-view{padding:17px 14px}.pe-view table{font-size:12px}.project-secondary{grid-template-columns:1fr;gap:28px;margin-top:32px}.project-secondary h3{font-size:28px}.other-projects>summary{flex-wrap:wrap;gap:12px}.other-projects>summary>span:not(.note-toggle){order:3;width:100%}.other-projects-body{grid-template-columns:1fr;gap:30px}.journal-editorial .journal-featured{grid-template-columns:1fr;gap:26px}.semantic-cover{padding:30px 20px}.journal-editorial .journal-entry h3{font-size:26px}.journal-editorial .journal-entry p{font-size:15px}.filters{gap:2px}.filters button{font-size:12px;padding:9px 12px}.note-list summary{grid-template-columns:1fr 24px;gap:12px}.note-category{grid-column:1}.note-list summary h3{grid-column:1;font-size:22px}.note-time{grid-column:1}.note-list .note-toggle{grid-column:2;grid-row:2}.note-body{font-size:16px}.closing{flex-wrap:wrap;gap:26px;padding-bottom:65px}.closing-logo{width:72px}.closing h2{font-size:39px}.closing .button{margin-left:0}.journal-page{padding-top:48px;padding-bottom:60px}.article-route h1{font-size:37px;line-height:1.13}.article-route .journal-lead{font-size:19px}.article-route h2{font-size:27px}.article-route section p,.article-route li{font-size:16px;line-height:1.75}.article-route pre{padding:20px 16px;font-size:12px}.article-table td,.article-table th{padding:13px}.breadcrumb{margin-bottom:28px}.resume-page{padding-top:45px;padding-bottom:60px}.resume-intro{display:block;margin-bottom:48px}.resume-intro h1{font-size:70px}.resume-intro address{margin-top:26px}.resume-grid{display:block}.resume-sidebar{position:static;margin-bottom:45px}.resume-sidebar nav{display:flex;flex-wrap:wrap;gap:12px 22px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.resume-sidebar p{display:none}.resume-content h2{font-size:30px}.resume-content h3{font-size:24px}.resume-content .resume-lead{font-size:21px}.resume-content p,.resume-content li{font-size:16px}.resume-content>section{padding-top:34px;margin-top:34px}}



