:root{color:#000;font-synthesis:none;text-rendering:geometricprecision;-webkit-font-smoothing:antialiased;--page-pad:48px;--rule:#000;background:#e2e2da;font-family:Inter,system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:#e2e2da;min-width:320px;margin:0}a{color:inherit;text-decoration:none}a:hover,a:focus-visible{text-underline-offset:.18em;text-decoration:underline}.page{width:100%;max-width:900px;min-height:100vh;padding:32px var(--page-pad) 48px;background:#e2e2da;flex-direction:column;margin:0 auto;display:flex}.hero{border-bottom:1px solid var(--rule);align-items:center;width:100%;min-height:485px;padding:118px 0 132px;display:flex}.hero-stack{flex-direction:column;flex:1;gap:38px;display:flex}.hero h1{color:#000;letter-spacing:-.06em;max-width:100%;margin:0;font-family:Newsreader,Georgia,serif;font-size:clamp(76px,7vw,112px);font-weight:500;line-height:.98}.hero p{color:#000;margin:0;font-size:32px;font-weight:400;line-height:42px}.link-row{align-items:center;gap:34px;font-size:20px;line-height:26px;display:flex}.sticky-banner{z-index:10;border-bottom:1px solid var(--rule);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#e2e2daf0;justify-content:space-between;align-items:center;min-height:77px;padding:24px 0;display:flex;position:sticky;top:0}.static-banner{position:static}.brand{letter-spacing:-.01em;font-size:22px;font-weight:500;line-height:28px}.notes-section{border-bottom:1px solid var(--rule);gap:72px;width:100%;padding:42px 0 58px;display:flex}.notes-section h2{flex-shrink:0;width:260px;margin:0;font-size:20px;font-weight:400;line-height:20px}.notes-list{flex-direction:column;flex:1;display:flex}.note{border-bottom:1px solid var(--rule);gap:44px;padding:0 0 27px;display:flex}.note+.note{padding-top:27px}.note:last-child{border-bottom:0;padding-bottom:0}.note time{flex-shrink:0;width:150px;font-size:15px;line-height:25px}.note-copy{max-width:740px;display:block}.note-copy:hover,.note-copy:focus-visible{text-decoration:none}.note-copy:hover h3,.note-copy:focus-visible h3{text-underline-offset:.14em;text-decoration:underline}.note h3{letter-spacing:-.04em;margin:0 0 12px;font-family:Newsreader,Georgia,serif;font-size:34px;font-weight:400;line-height:38px}.note p{margin:0;font-size:16px;line-height:25px}.subpage{min-height:100vh}.section-label{flex-shrink:0;width:260px;font-size:20px;font-weight:400;line-height:26px}.notes-index,.resume-page{border-bottom:1px solid var(--rule);gap:72px;padding:70px 0 58px;display:flex}.resume-page{flex-direction:column;gap:26px}.resume-page .section-label{width:auto}.notes-index>div:last-child,.resume-copy{flex:1}.notes-index h1,.resume-copy h1,.article-header h1,.not-found h1{letter-spacing:-.06em;margin:0;font-family:Newsreader,Georgia,serif;font-weight:500;line-height:.98}.notes-index h1,.resume-copy h1,.not-found h1{margin-bottom:48px;font-size:clamp(64px,7vw,104px)}.article-page{border-bottom:1px solid var(--rule);flex-direction:column;padding:70px 0 88px;display:flex}.back-link{width:fit-content;margin-bottom:56px;font-size:20px;line-height:26px}.article-header{max-width:980px;margin-bottom:48px}.article-header h1{letter-spacing:-.04em;font-size:clamp(36px,4vw,56px);line-height:1.05}.article-dates{gap:0;margin-top:28px;font-size:18px;line-height:28px;display:flex}.article-body{max-width:820px}.article-body p,.article-body li{margin:0;font-size:21px;line-height:34px}.article-body p+p,.article-body p+ul,.article-body p+ol,.article-body ul+p,.article-body ol+p,.article-body blockquote+p,.article-body pre+p,.article-body h2+p,.article-body h3+p{margin-top:28px}.article-body h2,.article-body h3{letter-spacing:-.04em;max-width:760px;margin:56px 0 0;font-family:Newsreader,Georgia,serif;font-weight:400}.article-body h2{font-size:42px;line-height:46px}.article-body h3{font-size:34px;line-height:38px}.article-body ul,.article-body ol{margin:0;padding-left:1.2em}.article-body blockquote{border-left:1px solid var(--rule);margin:40px 0;padding-left:28px}.article-body code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.article-body pre{background:#f3f3f3;margin:40px 0 0;padding:24px;overflow-x:auto}.article-body pre code{font-size:15px;line-height:24px}.article-body img{max-width:100%;margin:40px 0;display:block}.resume-title{margin:-28px 0 18px;font-size:32px;font-weight:700;line-height:42px}.resume-label{font-weight:700}.resume-copy h1{letter-spacing:-.04em;margin-bottom:28px;font-size:clamp(42px,5vw,64px);font-weight:700;line-height:1.02}.resume-contact{flex-wrap:wrap;gap:8px 18px;max-width:940px;margin-bottom:56px;font-size:16px;line-height:25px;display:flex}.resume-sections{flex-direction:column;gap:44px;max-width:940px;display:flex}.resume-section{border-top:1px solid var(--rule);padding-top:36px}.resume-section h2{margin:0 0 22px;font-size:20px;font-weight:700;line-height:26px}.resume-section p,.resume-section li,.resume-skills dd,.resume-skills dt,.resume-entry-heading span{font-size:18px;line-height:29px}.resume-section p,.resume-section ul,.resume-skills{margin:0}.resume-entry+.resume-entry{margin-top:30px}.resume-entry-heading{justify-content:space-between;align-items:baseline;gap:28px;display:flex}.resume-entry-heading h3{letter-spacing:normal;margin:0 0 8px;font-family:inherit;font-size:18px;font-weight:700;line-height:29px}.resume-entry-heading span{text-align:right;flex-shrink:0}.resume-entry ul{padding-left:1.2em}.resume-skills{flex-direction:column;gap:10px;display:flex}.resume-skills div{grid-template-columns:150px minmax(0,1fr);gap:24px;display:grid}.resume-skills dt{font-weight:600}.resume-skills dd{margin:0}.resume-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:42px 64px;max-width:860px;display:grid}.resume-grid h2{margin:0 0 12px;font-size:20px;font-weight:400;line-height:26px}.resume-grid p{margin:0;font-size:18px;line-height:29px}.not-found{padding:70px 0}@media (width<=760px){:root{--page-pad:18px}.page{padding-top:0;padding-bottom:28px}.hero{min-height:0;padding:88px 0 104px}.hero-stack{gap:30px}.hero h1{font-size:clamp(62px,17vw,72px);line-height:.97}.hero p{font-size:28px;line-height:36px}.link-row{gap:28px;font-size:19px;line-height:26px}.sticky-banner{gap:18px;min-height:73px;padding:22px 0}.brand{white-space:nowrap;font-size:20px;line-height:26px}.banner-links{gap:22px;font-size:18px;line-height:24px}.notes-section{flex-direction:column;gap:26px;padding:40px 0 52px}.notes-section h2{width:auto;font-size:20px;line-height:26px}.note{flex-direction:column;gap:12px;padding-bottom:27px}.note+.note{padding-top:27px}.note time{width:auto;font-size:14px;line-height:20px}.note h3{font-size:32px;line-height:35px}.note p{font-size:16px;line-height:25px}.section-label{width:auto;font-size:20px;line-height:26px}.notes-index,.resume-page{flex-direction:column;gap:26px;padding:48px 0 52px}.notes-index h1,.resume-copy h1,.not-found h1{margin-bottom:36px;font-size:clamp(58px,16vw,70px)}.article-page{padding:48px 0 64px}.back-link{margin-bottom:40px;font-size:19px;line-height:26px}.article-header{margin-bottom:36px}.article-header h1{font-size:clamp(34px,10vw,46px)}.article-dates{margin-top:22px;font-size:16px;line-height:26px}.article-body p,.article-body li{font-size:18px;line-height:30px}.article-body p+p,.article-body p+ul,.article-body p+ol,.article-body ul+p,.article-body ol+p,.article-body blockquote+p,.article-body pre+p,.article-body h2+p,.article-body h3+p{margin-top:24px}.article-body h2{margin-top:44px;font-size:34px;line-height:38px}.article-body h3{margin-top:40px;font-size:28px;line-height:32px}.article-body blockquote{margin:32px 0;padding-left:18px}.article-body pre{margin-top:32px;padding:18px}.resume-title{margin:-20px 0 16px;font-size:28px;line-height:36px}.resume-contact{margin-bottom:42px;font-size:15px;line-height:24px}.resume-sections{gap:36px}.resume-section{padding-top:30px}.resume-section p,.resume-section li,.resume-skills dd,.resume-skills dt,.resume-entry-heading span{font-size:17px;line-height:28px}.resume-entry-heading{flex-direction:column;align-items:flex-start;gap:2px}.resume-entry-heading h3{margin-bottom:0;font-size:17px;line-height:28px}.resume-entry-heading span{text-align:left}.resume-skills div{flex-direction:column;gap:0;display:flex}.resume-grid{flex-direction:column;gap:30px;display:flex}.resume-grid p{font-size:17px;line-height:28px}.not-found{padding:48px 0}}@media (width<=390px){.brand{font-size:18px}.banner-links{gap:14px;font-size:16px}.hero h1{font-size:62px}}
