@font-face{font-family:Perfect DOS;src:url(/fonts/perfect-dos-vga-437.ttf) format("truetype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Doto;src:url(/fonts/doto-latin.woff2) format("woff2");font-style:normal;font-weight:100 900;font-display:swap}*,*:before,*:after{box-sizing:border-box}html{background:#061014;-webkit-font-smoothing:antialiased}body{--bg: #061014;--surface: #0b1a20;--ink: #e5ece6;--text: #d6e0db;--muted: #8c9b98;--line: #24424b;--teal: #57ddd2;--blue: #7a93ff;--rust: #ff7258;--gold: #f1bb62;--spectrum-5: #d6e0db;--card-border: #24424b;--plot-grid: rgba(214, 224, 219, .15);--link: #57ddd2;margin:0;min-height:100vh;overflow-x:clip;color:var(--text);background-color:var(--bg);background-image:radial-gradient(1000px 600px at 72% -10%,rgba(22,62,74,.6),transparent 65%),radial-gradient(rgba(214,224,219,.05) .55px,transparent .55px);background-size:auto,5px 5px;font-family:Perfect DOS,Courier New,monospace;font-size:19px;line-height:1.5;letter-spacing:.005em}::selection{color:var(--bg);background:var(--teal)}:focus-visible{outline:2px solid var(--blue);outline-offset:4px}a{color:inherit;text-decoration:none}p,h1,h2,h3,pre,figure,ul,ol{margin:0}ul,ol{padding:0;list-style:none}pre{font:inherit;white-space:pre}img{display:block;max-width:100%}.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}.skip-link{position:absolute;top:10px;left:10px;z-index:100;padding:10px 14px;color:var(--bg);background:var(--teal);transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.spectrum{display:grid;grid-template-columns:repeat(5,1fr);height:7px}.spectrum span:nth-child(1){background:var(--teal)}.spectrum span:nth-child(2){background:var(--blue)}.spectrum span:nth-child(3){background:var(--gold)}.spectrum span:nth-child(4){background:var(--rust)}.spectrum span:nth-child(5){background:var(--spectrum-5)}.screen{width:min(1180px,calc(100% - 48px));margin:0 auto}.site-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 0 15px;border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:9px;color:var(--ink);font-size:15px;line-height:1}.brand:before{content:"";width:7px;height:7px;background:var(--teal)}.site-nav{display:flex;flex-wrap:wrap;gap:5px 22px;color:var(--muted);font-size:14px}.site-nav a{padding-bottom:1px;border-bottom:1px solid transparent;transition:color .1s linear,border-color .1s linear}.site-nav a:hover,.site-nav a:focus-visible,.site-nav a.active{color:var(--ink);border-color:var(--ink)}.hero{display:grid;grid-template-columns:minmax(0,1.38fr) minmax(290px,.62fr);gap:clamp(34px,5vw,68px);align-items:start;padding:58px 0 50px;border-bottom:1px solid var(--line)}.eyebrow{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:14px}.eyebrow:before{content:"";width:6px;height:6px;background:var(--rust)}.doto-name{margin-top:13px;color:var(--ink);font-family:Doto,Perfect DOS,monospace;font-size:clamp(62px,8.9vw,130px);font-weight:900;line-height:.82;letter-spacing:-.035em}.doto-name span{display:block;white-space:nowrap}.doto-name span:first-child{color:var(--teal)}.doto-name span:last-child{padding-left:4%;color:var(--rust)}.doto-name span:last-child:after{content:"";display:inline-block;width:.115em;height:.115em;margin-left:.07em;background:var(--gold)}.hero-right{padding-left:clamp(0px,2vw,24px);border-left:1px solid var(--line)}.signal{margin-bottom:20px}.signal svg{display:block;width:100%;height:auto;overflow:visible}.signal .grid{stroke:var(--plot-grid)}.signal .axis{stroke:var(--muted)}.signal .trace-teal{stroke:var(--teal)}.signal .trace-blue{stroke:var(--blue)}.signal .trace-rust{stroke:var(--rust)}.signal .end-teal{fill:var(--teal)}.signal .end-blue{fill:var(--blue)}.signal .end-rust{fill:var(--rust)}.signal .trace-teal,.signal .trace-blue,.signal .trace-rust{stroke-dasharray:1;stroke-dashoffset:1;animation:trace-draw 1.7s cubic-bezier(.2,.7,.2,1) forwards}.signal .trace-blue{animation-delay:.12s}.signal .trace-rust{animation-delay:.24s}.signal .end-teal,.signal .end-blue,.signal .end-rust{opacity:0;animation:fade-in .4s 1.15s ease-out forwards}@keyframes trace-draw{to{stroke-dashoffset:0}}@keyframes fade-in{to{opacity:1}}.signal figcaption{margin-top:7px;color:var(--muted);font-size:12px}.lede{max-width:430px;color:var(--text);font-size:21px;line-height:1.45}.hero-actions{display:flex;flex-wrap:wrap;gap:19px;margin-top:22px;font-size:15px}.hero-actions a{color:var(--link);border-bottom:1px solid currentColor}.hero-actions a:hover,.hero-actions a:focus-visible{color:var(--ink)}.section{display:grid;grid-template-columns:190px minmax(0,1fr);gap:clamp(28px,5vw,60px);padding:62px 0;border-top:1px solid var(--line)}.section-label{display:flex;align-items:flex-start;gap:10px;color:var(--muted);font-size:17px;font-weight:400;line-height:1.2}.section-label:before{content:"";flex:0 0 auto;width:8px;height:8px;margin-top:.25em;background:var(--gold)}.label-musings:before{background:var(--teal)}.label-work:before{background:var(--blue)}.label-resume:before{background:var(--rust)}.section-content{min-width:0}.section-intro{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding-bottom:13px;border-bottom:1px solid var(--line)}.section-intro p{color:var(--muted);font-size:14px}.section-intro a{color:var(--link);font-size:13px;border-bottom:1px solid currentColor}.note-list{border-top:1px solid var(--line)}.note{display:grid;grid-template-columns:100px minmax(0,1fr);gap:28px;padding:20px 0 21px;border-bottom:1px solid var(--line)}.note time{color:var(--muted);font-size:14px}.note h3{color:var(--ink);font-size:25px;font-weight:400;line-height:1.18;letter-spacing:-.01em}.note h3 a{transition:color .1s linear}.note h3 a:hover,.note h3 a:focus-visible{color:var(--teal)}.note .dek{max-width:690px;margin-top:6px;color:var(--muted);font-size:15px;line-height:1.45}.tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.tag{padding:1px 5px;border:1px solid currentColor;font-size:11px;line-height:1.3}.tag-ai{color:var(--teal)}.tag-systems{color:var(--blue)}.tag-cities{color:var(--rust)}.tag-security{color:var(--gold)}.tag-math{color:var(--teal)}.work-list{border-top:1px solid var(--line)}.work-row{display:grid;grid-template-columns:108px minmax(0,1.05fr) minmax(0,1.15fr);gap:28px;padding:18px 0 20px;border-bottom:1px solid var(--line)}.work-row time,.work-row .period{color:var(--muted);font-size:14px}.work-row h3{color:var(--ink);font-size:22px;font-weight:400;line-height:1.15}.work-row .role{margin-top:3px;color:var(--muted);font-size:14px;line-height:1.35}.work-row .note{display:block;padding:0;border:0;color:var(--muted);font-size:15px;line-height:1.45}.resume-card{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:21px 22px;border:1px solid var(--card-border);background:var(--surface)}.resume-card p{max-width:580px;color:var(--muted);font-size:15px;line-height:1.45}.resume-link{flex:0 0 auto;padding:8px 12px;color:var(--bg);background:var(--ink);font-size:15px;transition:background-color .1s linear}.resume-link:hover,.resume-link:focus-visible{color:var(--bg);background:var(--blue)}.about-page{display:grid;gap:1.2em;max-width:860px;padding:44px 0 72px}.about-text{max-width:860px;color:var(--text);font-size:20px;line-height:1.62;letter-spacing:-.005em}.about-text em{color:var(--teal);font-style:normal}.about-text a{color:var(--link);border-bottom:1px solid currentColor}.about-text a:hover,.about-text a:focus-visible{color:var(--ink)}.site-footer{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding:24px 0 38px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}.footer-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px}.attribution-link{color:var(--link);border-bottom:1px solid currentColor}.attribution-link:hover,.attribution-link:focus-visible{color:var(--ink)}.site-footer nav{display:flex;flex-wrap:wrap;gap:18px}.site-footer nav a:hover,.site-footer nav a:focus-visible{color:var(--ink)}.page-header{padding:56px 0 42px;border-bottom:1px solid var(--line)}.page-header h1{max-width:800px;margin-top:17px;color:var(--ink);font-size:clamp(46px,5.6vw,82px);font-weight:400;line-height:.98;letter-spacing:-.02em}.page-lede{max-width:640px;margin-top:18px;color:var(--muted);font-size:19px;line-height:1.5}.page-actions{display:flex;flex-wrap:wrap;gap:18px;margin-top:22px;font-size:14px}.page-actions a{color:var(--link);border-bottom:1px solid currentColor}.page-actions a:hover,.page-actions a:focus-visible{color:var(--ink)}.page-actions span{color:var(--muted)}.listing{max-width:920px;padding:8px 0 24px}.note-page{max-width:900px;padding-bottom:20px}.note-header{padding:56px 0 34px;border-bottom:1px solid var(--line)}.note-header h1{max-width:850px;margin-top:15px;color:var(--ink);font-size:clamp(38px,5vw,68px);font-weight:400;line-height:1.04;letter-spacing:-.02em}.note-description{max-width:680px;margin-top:17px;color:var(--muted);font-size:20px;line-height:1.45}.note-meta{display:flex;flex-wrap:wrap;gap:10px 20px;align-items:center;margin-top:22px;color:var(--muted);font-size:13px}.note-meta .tags{margin-top:0}.prose{max-width:730px;padding:38px 0 18px;color:var(--text);font-size:19px;line-height:1.72}.prose>*:first-child{margin-top:0}.prose h2{margin-top:2.1em;margin-bottom:.7em;color:var(--ink);font-size:31px;font-weight:400;line-height:1.15;letter-spacing:-.015em}.prose h3{margin-top:1.8em;margin-bottom:.6em;color:var(--ink);font-size:24px;font-weight:400;line-height:1.2}.prose p,.prose ul,.prose ol{margin-bottom:1.35em}.prose pre,.prose blockquote{margin-top:1.6em;margin-bottom:1.6em}.prose a{color:var(--teal);border-bottom:1px solid currentColor}.prose a:hover,.prose a:focus-visible{color:var(--ink)}.prose ul,.prose ol{padding-left:1.45em}.prose ul{list-style:square}.prose ol{list-style:decimal}.prose li{margin-bottom:.45em}.prose li::marker{color:var(--teal)}.prose blockquote{padding-left:18px;border-left:2px solid var(--gold);color:var(--muted)}.prose code{padding:1px 5px;color:var(--teal);background:var(--surface);font-size:.9em}.prose .katex{color:var(--ink);font-size:1.05em}.prose .katex-display{margin:1.7em 0;padding:5px 0;overflow-x:auto;overflow-y:hidden}.prose .katex-display>.katex{color:var(--ink)}.prose .katex-error{color:var(--rust)}.prose pre{padding:18px;overflow-x:auto;border:1px solid var(--line);background:#071419;font-size:14px;line-height:1.55}.prose pre code{padding:0;color:inherit;background:transparent}.prose hr{height:1px;border:0;background:var(--line)}.prose img{border:1px solid var(--line)}.note-footer{display:flex;align-items:baseline;justify-content:space-between;gap:24px;max-width:730px;padding:22px 0 0;border-top:1px solid var(--line);font-size:14px}.note-footer a{color:var(--link);border-bottom:1px solid currentColor}.note-footer a:hover,.note-footer a:focus-visible{color:var(--ink)}.not-found{max-width:780px;padding:90px 0 110px}.not-found .code{color:var(--rust);font-family:Doto,Perfect DOS,monospace;font-size:clamp(92px,16vw,220px);font-weight:900;line-height:.8;letter-spacing:-.05em}.not-found h1{margin-top:24px;color:var(--ink);font-size:clamp(34px,4.2vw,56px);font-weight:400;line-height:1.08}.not-found p{max-width:560px;margin-top:16px;color:var(--muted);font-size:18px;line-height:1.5}.not-found .page-actions{margin-top:28px}@media(max-width:900px){.hero{grid-template-columns:1fr;align-items:start;gap:34px;padding-top:42px;padding-bottom:40px}.doto-name{font-size:clamp(62px,11vw,100px)}.hero-right{max-width:560px;padding-left:0;border-left:0}.section{grid-template-columns:1fr;gap:26px;padding:52px 0}.work-row{grid-template-columns:92px minmax(0,1fr)}.work-row .note{grid-column:2}}@media(max-width:560px){.screen{width:calc(100% - 28px)}.site-header{align-items:flex-start;flex-direction:column;gap:9px;padding-top:16px}.site-nav{gap:4px 16px}.doto-name{font-size:clamp(48px,14.8vw,62px)}.lede{font-size:19px}.section-intro{align-items:flex-start;flex-direction:column;gap:6px}.note{grid-template-columns:1fr;gap:6px}.note h3{font-size:23px}.work-row{grid-template-columns:1fr;gap:5px}.work-row .note{grid-column:auto}.resume-card{align-items:flex-start;flex-direction:column;gap:16px}.about-text{font-size:20px}.site-footer{align-items:flex-start;flex-direction:column;gap:12px}.note-header{padding-top:40px}.prose{font-size:18px}.prose h2{font-size:27px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.signal .trace-teal,.signal .trace-blue,.signal .trace-rust{stroke-dashoffset:0;animation:none}.signal .end-teal,.signal .end-blue,.signal .end-rust{opacity:1;animation:none}}
