*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-serif);font-size:var(--fs-body);line-height:1.65;color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"kern","liga","onum";transition:background-color .2s ease,color .2s ease}:root{--font-serif: "Source Serif 4", "Source Serif Pro", Charter, "Iowan Old Style", Georgia, serif;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--fs-body: 19px;--fs-small: 14px;--fs-meta: 13px;--fs-h1: 2rem;--fs-h2: 1.25rem;--measure: 36rem;--page-pad-x: clamp(20px, 5vw, 48px);--page-pad-y: clamp(48px, 8vw, 96px)}[data-theme=dark]{--bg: oklch(.185 .006 60);--bg-card: oklch(.22 .006 60);--fg: oklch(.9 .012 75);--fg-strong: oklch(.97 .012 75);--muted: oklch(.58 .012 70);--rule: oklch(.3 .006 60);--link: oklch(.9 .012 75);--link-hover:oklch(.74 .13 55);--selection: oklch(.45 .13 55 / .45)}[data-theme=light]{--bg: oklch(.985 .005 80);--bg-card: oklch(.96 .006 80);--fg: oklch(.22 .008 60);--fg-strong: oklch(.12 .008 60);--muted: oklch(.5 .008 60);--rule: oklch(.88 .006 70);--link: oklch(.22 .008 60);--link-hover:oklch(.5 .16 35);--selection: oklch(.85 .13 80 / .7)}[data-theme=cream]{--bg: oklch(.955 .018 85);--bg-card: oklch(.92 .02 85);--fg: oklch(.25 .012 50);--fg-strong: oklch(.16 .012 50);--muted: oklch(.48 .012 55);--rule: oklch(.83 .018 80);--link: oklch(.25 .012 50);--link-hover:oklch(.45 .16 30);--selection: oklch(.8 .14 70 / .7)}::selection{background:var(--selection)}.shell{min-height:100vh;display:flex;flex-direction:column;padding:var(--page-pad-y) var(--page-pad-x);max-width:720px;margin:0 auto}.shell--rail{display:grid;grid-template-columns:200px minmax(0,1fr);gap:clamp(32px,6vw,80px);max-width:920px;align-items:start}@media(max-width:720px){.shell--rail{grid-template-columns:1fr;gap:32px}}.brand{font-family:var(--font-serif);font-size:1rem;font-weight:600;letter-spacing:0;color:var(--fg-strong);text-decoration:none}.brand .brand__sub{display:block;font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--muted);font-weight:400;margin-top:2px;letter-spacing:.01em}.nav{display:flex;gap:22px;align-items:baseline;flex-wrap:wrap}.nav a{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--muted);text-decoration:none;letter-spacing:.01em;padding-bottom:2px;border-bottom:1px solid transparent;transition:color .12s ease,border-color .12s ease}.nav a:hover{color:var(--fg-strong)}.nav a[aria-current=page]{color:var(--fg-strong);border-bottom-color:var(--fg-strong)}.header--top{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:clamp(56px,9vw,96px)}@media(max-width:520px){.header--top{flex-direction:column;gap:20px;align-items:flex-start}}.header--rail{position:sticky;top:var(--page-pad-y)}.header--rail .nav{flex-direction:column;gap:10px;margin-top:18px}.header--rail .nav a{padding-bottom:0;border:none}.header--rail .nav a[aria-current=page]{color:var(--fg-strong);border:none}.header--rail .nav a[aria-current=page]:before{content:"→ ";color:var(--fg-strong)}.page{animation:fadeup .24s ease both;max-width:var(--measure)}.shell:not(.shell--rail) .page{margin:0 auto;width:100%}.shell--rail .page{margin:0}@keyframes fadeup{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}h1,h2,h3{font-weight:600;color:var(--fg-strong);line-height:1.25;margin:0;font-feature-settings:"kern","liga"}h1{font-size:var(--fs-h1);letter-spacing:-.015em;margin-bottom:.6em}h2{font-size:var(--fs-h2);letter-spacing:-.005em;margin:2.2em 0 .4em}p{margin:0 0 1.1em}p+p{margin-top:0}a{color:var(--link);text-decoration:none;border-bottom:1px solid var(--rule);transition:color .12s ease,border-color .12s ease}a:hover{color:var(--link-hover);border-bottom-color:var(--link-hover)}.lede{font-size:1.18rem;line-height:1.55;color:var(--fg-strong);margin-bottom:1.6em;text-wrap:pretty}.muted{color:var(--muted)}.mono{font-family:var(--font-mono);font-size:var(--fs-meta);letter-spacing:.01em}.small{font-size:var(--fs-small)}hr.rule{border:none;border-top:1px solid var(--rule);margin:2.4em 0}.now-meta{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--muted);margin-bottom:2.4em;display:flex;flex-wrap:wrap;gap:12px 24px}.now-section{margin-bottom:1.8em}.now-section h3{font-family:var(--font-mono);font-size:var(--fs-meta);font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:0 0 .5em}.now-section p{margin:0}.now-section ul{list-style:none;padding:0;margin:0}.now-section ul li{padding-left:1em;text-indent:-1em;margin-bottom:.4em}.now-section ul li:before{content:"—  ";color:var(--muted)}.posts{list-style:none;padding:0;margin:1.6em 0 0}.posts li{display:grid;grid-template-columns:110px 1fr;gap:24px;padding:14px 0;border-bottom:1px solid var(--rule);align-items:baseline}.posts li:first-child{border-top:1px solid var(--rule)}.posts .post-date{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--muted)}.posts .post-title{border-bottom:none;color:var(--fg-strong);font-size:1.02rem}.posts .post-title:hover{color:var(--link-hover)}.posts .post-title .ext{font-family:var(--font-mono);font-size:11px;color:var(--muted);margin-left:8px;vertical-align:1px}@media(max-width:520px){.posts li{grid-template-columns:1fr;gap:2px;padding:12px 0}}.year-label{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin:2.2em 0 .6em}.work-entry{padding:1.6em 0;border-bottom:1px solid var(--rule)}.work-entry:first-of-type{border-top:1px solid var(--rule)}.work-entry__head{display:flex;justify-content:space-between;gap:16px;align-items:baseline;margin-bottom:.4em;flex-wrap:wrap}.work-entry__co{font-size:1.05rem;font-weight:600;color:var(--fg-strong);letter-spacing:-.005em}.work-entry__years{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--muted);white-space:nowrap}.work-entry__role{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--muted);margin-bottom:.6em}.work-entry__body{margin:0;color:var(--fg);text-wrap:pretty}.connect-grid{display:grid;gap:1.4em;margin-top:1.6em}.connect-row{display:grid;grid-template-columns:110px 1fr;gap:24px;align-items:baseline}.connect-row .label{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.connect-row a{font-size:1.02rem}@media(max-width:520px){.connect-row{grid-template-columns:1fr;gap:2px}}.note-form{margin-top:2.4em;display:grid;gap:12px}.note-form label{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.note-form input[type=email],.note-form textarea{font:inherit;font-size:.98rem;line-height:1.55;background:transparent;color:var(--fg);border:1px solid var(--rule);border-radius:2px;padding:12px 14px;width:100%;transition:border-color .12s ease}.note-form input[type=email]{resize:none}.note-form textarea{resize:vertical;min-height:140px}.note-form input[type=email]:focus,.note-form textarea:focus{outline:none;border-color:var(--muted)}.note-form .submit-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.note-form button{font-family:var(--font-mono);font-size:var(--fs-meta);letter-spacing:.04em;background:transparent;border:1px solid var(--fg);color:var(--fg-strong);padding:9px 18px;border-radius:2px;cursor:pointer;transition:background-color .12s ease,color .12s ease}.note-form button:hover{background:var(--fg);color:var(--bg)}.note-form .hint{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--muted)}.footer{margin-top:clamp(80px,14vw,140px);padding-top:24px;border-top:1px solid var(--rule);font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--muted);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}.footer a{color:var(--muted);border-bottom:none}.footer a:hover{color:var(--fg-strong)}[data-density=compact]{--fs-body: 17px}[data-density=airy]{--fs-body: 20px}[data-density=airy] body{line-height:1.75}[data-type=sans]{--font-serif: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}[data-type=sans] body{letter-spacing:-.005em}[data-type=sans] h1,[data-type=sans] h2{letter-spacing:-.02em}
