@font-face{font-family:Fraunces;font-style:normal;font-weight:300 900;font-display:swap;font-optical-sizing:auto;src:url(/fonts/Fraunces-Roman.ttf)format("truetype")}@font-face{font-family:Fraunces;font-style:italic;font-weight:300 900;font-display:swap;font-optical-sizing:auto;src:url(/fonts/Fraunces-Italic.ttf)format("truetype")}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;font-optical-sizing:auto;src:url(/fonts/Inter-Roman.ttf)format("truetype")}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;font-optical-sizing:auto;src:url(/fonts/Inter-Italic.ttf)format("truetype")}@font-face{font-family:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/SpaceMono-Regular.ttf)format("truetype")}@font-face{font-family:Space Mono;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/SpaceMono-Italic.ttf)format("truetype")}@font-face{font-family:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/SpaceMono-Bold.ttf)format("truetype")}@font-face{font-family:Space Mono;font-style:italic;font-weight:700;font-display:swap;src:url(/fonts/SpaceMono-BoldItalic.ttf)format("truetype")}:root{--ink:#0d0c0a;--ink-1:#131210;--ink-2:#1a1814;--ink-3:#221f1a;--paper:#f3ecdd;--paper-2:#cbc4b4;--paper-3:#968f7f;--paper-4:#6c6557;--accent:#f35d40;--accent-bright:#ff8159;--accent-deep:#a83825;--accent-bg:#f35d401f;--accent-line:#f35d406b;--line:#f3ecdd24;--line-strong:#f3ecdd42;--line-faint:#f3ecdd12;--serif:"Fraunces","Times New Roman",Georgia,serif;--mono:"Space Mono",ui-monospace,Menlo,monospace;--body:"Inter",-apple-system,"Helvetica Neue",Arial,sans-serif;--mx:clamp(1.15rem,4.5vw,5.5rem);--maxw:1360px;--ease:cubic-bezier(.22,.61,.36,1);--dur:.22s}@supports (color:lab(0% 0 0)){:root{--accent:lab(60.0137% 57.4761 47.7526);--accent-bright:lab(68.4769% 48.9541 46.5226);--accent-deep:lab(40.6234% 45.7745 37.1852);--accent-bg:lab(60.0137% 57.4761 47.7526/.12);--accent-line:lab(60.0137% 57.4761 47.7526/.42)}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--ink);color:var(--paper-2);font-family:var(--body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-synthesis:none;margin:0;font-size:clamp(1rem,.97rem + .18vw,1.0625rem);font-weight:420;line-height:1.62}body.no-grain:before{display:none}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(120% 80% at 50% -10%,#f3ecdd09,#0000 60%);position:fixed;inset:0}img{max-width:100%;display:block}::selection{background:var(--accent);color:var(--ink)}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:var(--ink)}::-webkit-scrollbar-thumb{background:var(--ink-3);border:3px solid var(--ink);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--paper-4)}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.display{font-family:var(--serif);font-optical-sizing:auto;letter-spacing:-.02em;color:var(--paper);text-wrap:balance;font-weight:350;line-height:.98}.display em,.ital{font-style:italic;font-weight:360}.eyebrow{font-family:var(--mono);text-transform:uppercase;letter-spacing:.18em;color:var(--paper-3);align-items:center;gap:.6em;font-size:.7rem;font-weight:400;display:inline-flex}.eyebrow .dot{background:var(--accent);width:6px;height:6px;box-shadow:0 0 0 0 var(--accent-line);border-radius:50%}@media (prefers-reduced-motion:no-preference){.eyebrow .dot{animation:pulse 2.4s var(--ease)infinite}}@keyframes pulse{0%,to{box-shadow:0 0 0 0 var(--accent-line)}50%{box-shadow:0 0 0 5px #0000}}.mono{font-family:var(--mono);letter-spacing:.04em;color:var(--paper-3);font-size:.72rem}.wrap{max-width:var(--maxw);padding-inline:var(--mx);z-index:1;margin-inline:auto;position:relative}.section{padding-block:clamp(3.5rem,8vw,7rem)}.section-head{border-bottom:1px solid var(--line-strong);justify-content:space-between;align-items:baseline;gap:1.5rem;margin-bottom:clamp(2rem,4vw,3.25rem);padding-bottom:1.1rem;display:flex}.section-head .sh-label{font-family:var(--serif);letter-spacing:-.01em;color:var(--paper);font-size:clamp(1.5rem,1rem + 1.6vw,2.1rem);font-weight:360}.section-head .sh-label .num{color:var(--accent);margin-right:.5em;font-style:italic}.section-head .sh-count{font-family:var(--mono);letter-spacing:.1em;color:var(--paper-3);white-space:nowrap;font-size:.72rem}.meta-strip{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--paper-3);flex-wrap:wrap;gap:.5rem 1.4rem;font-size:.68rem;display:flex}.meta-strip span{align-items:center;gap:.55em;display:inline-flex}.meta-strip span:before{content:"";background:var(--accent);width:5px;height:5px;transform:rotate(45deg)}.meta-strip span:first-child:before{display:none}.cell{border:1px solid var(--line);background:var(--ink-1);transition:border-color var(--dur)var(--ease),background var(--dur)var(--ease);padding:clamp(1.4rem,2.5vw,2rem)}.cell:hover{border-color:var(--line-strong);background:var(--ink-2)}.btn{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--line-strong);color:var(--paper);cursor:pointer;transition:all var(--dur)var(--ease);background:0 0;align-items:center;gap:.6em;padding:.72em 1.15em;font-size:.72rem;display:inline-flex}.btn .arr{color:var(--paper-3);transition:transform var(--dur)var(--ease)}.btn:hover{border-color:var(--paper-3);background:var(--ink-2)}.btn:hover .arr{color:var(--accent);transform:translate(2px,-2px)}.btn-accent{background:var(--accent);border-color:var(--accent);color:var(--ink)}.btn-accent .arr{color:var(--ink)}.btn-accent:hover{background:var(--accent-bright);border-color:var(--accent-bright)}.link{color:var(--paper);border-bottom:1px solid var(--accent-line);transition:color var(--dur)var(--ease),border-color var(--dur)var(--ease)}.link:hover{color:var(--accent);border-color:var(--accent)}.tag{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-3);font-size:.66rem}.tag:before{content:"[";color:var(--paper-4)}.tag:after{content:"]";color:var(--paper-4)}@media (prefers-reduced-motion:no-preference){.reveal{opacity:0;transition:opacity .7s var(--ease),transform .7s var(--ease);transform:translateY(18px)}.reveal.in{opacity:1;transform:none}}.masthead{border-bottom:1px solid var(--line);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--paper-3);font-size:.66rem}.masthead .wrap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-block:.6rem;display:flex}.masthead .ava{color:var(--accent);align-items:center;gap:.5em;display:inline-flex}.masthead .ava:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px}.masthead .mh-mid{color:var(--paper-2)}@media (max-width:640px){.masthead .mh-mid{display:none}}.nav{z-index:50;-webkit-backdrop-filter:blur(14px)saturate(1.2);border-bottom:1px solid var(--line);background:#0d0c0ab8;position:sticky;top:0}.nav .wrap{justify-content:space-between;align-items:center;height:60px;display:flex}.nav-brand{align-items:baseline;gap:.7rem;display:flex}.nav-brand .mono-mark{font-family:var(--serif);color:var(--paper);border:1px solid var(--line-strong);align-self:center;place-items:center;width:34px;height:34px;font-size:1.35rem;font-style:italic;font-weight:400;display:grid}.nav-brand .nm{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--paper);font-size:.74rem}.nav-brand .nm small{color:var(--paper-3)}.nav-links{gap:1.6rem;display:flex}.nav-links a{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-3);transition:color var(--dur)var(--ease);padding-block:.3rem;font-size:.7rem;position:relative}.nav-links a .rn{color:var(--accent);margin-right:.45em}.nav-links a:after{content:"";background:var(--accent);width:0;height:1px;transition:width var(--dur)var(--ease);position:absolute;bottom:0;left:0}.nav-links a:hover{color:var(--paper)}.nav-links a:hover:after,.nav-links a.active:after{width:100%}.nav-links a.active{color:var(--paper)}@media (max-width:860px){.nav-links{display:none}}.hero{padding-block:clamp(2.5rem,6vw,5rem) clamp(2rem,4vw,3rem)}.hero-eyebrow{margin-bottom:clamp(1.4rem,3vw,2.2rem)}.hero-title{max-width:14ch;margin:0 0 clamp(1.4rem,2.5vw,2rem);font-size:clamp(2.6rem,1rem + 7vw,6.2rem)}.hero-title .accent-word{color:var(--accent);font-style:italic}.hero-lede{color:var(--paper-2);max-width:52ch;margin:0 0 clamp(1.8rem,3vw,2.4rem);font-size:clamp(1.05rem,.95rem + .55vw,1.3rem);line-height:1.55}.hero-lede b{color:var(--paper);font-weight:600}.hero-ctas{flex-wrap:wrap;gap:.7rem;margin-bottom:clamp(2.2rem,4vw,3rem);display:flex}.hero-grid{grid-template-columns:1.55fr 1fr;align-items:start;gap:clamp(1.5rem,4vw,3.5rem);display:grid}.hero-main{min-width:0}.plate{border:1px solid var(--line-strong);background:var(--ink-1);margin:0;padding:.7rem;position:relative}.plate .plate-img{aspect-ratio:4/5;object-fit:cover;filter:grayscale(.25)contrast(1.02);width:100%}.plate .plate-cap{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--paper-3);justify-content:space-between;gap:1rem;margin-top:.7rem;font-size:.64rem;display:flex}.plate .plate-cap .l{color:var(--accent)}.plate-frame{border:1px solid var(--line-faint);pointer-events:none;position:absolute;inset:.7rem}.stats{border-top:1px solid var(--line);grid-template-columns:repeat(4,1fr);margin-top:clamp(1rem,2vw,1.5rem);display:grid}.stat{border-right:1px solid var(--line);padding:1.1rem 1.2rem 1.1rem 0}.stat:last-child{border-right:0}.stat .v{font-family:var(--serif);color:var(--paper);margin-bottom:.5rem;font-size:clamp(1.3rem,.9rem + 1.3vw,1.9rem);font-weight:360;line-height:1;display:block}.stat .v .accent{color:var(--accent)}.stat .k{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-3);font-size:.62rem;line-height:1.3}.cover-rule{width:100%;max-width:760px;color:var(--paper-3);font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:1rem;margin:0 auto 1.6rem;font-size:.66rem;display:none}.cover-rule:before,.cover-rule:after{content:"";background:var(--line);flex:1;height:1px}@media (max-width:760px){.hero-grid{grid-template-columns:1fr!important}.hero-aside{max-width:320px}.stats{grid-template-columns:repeat(2,1fr)!important}.stat:nth-child(2){border-right:0}.stat{border-bottom:1px solid var(--line)}}.marquee{border-block:1px solid var(--line);white-space:nowrap;z-index:1;background:var(--ink-1);padding-block:1.15rem;position:relative;overflow:hidden}.marquee-track{will-change:transform;gap:0;display:inline-flex}@media (prefers-reduced-motion:no-preference){.marquee-track{animation:38s linear infinite scroll-x}}.marquee:hover .marquee-track{animation-play-state:paused}@keyframes scroll-x{to{transform:translate(-50%)}}.marquee-item{font-family:var(--serif);color:var(--paper);align-items:center;gap:1.4rem;padding-inline:1.4rem;font-size:clamp(1.2rem,.9rem + 1vw,1.9rem);font-weight:350;display:inline-flex}.marquee-item:after{content:"";background:var(--accent);width:7px;height:7px;transform:rotate(45deg)}.marquee-item.alt{color:var(--paper-3);font-style:italic}.about-grid{grid-template-columns:1.5fr 1fr;align-items:start;gap:clamp(2rem,5vw,4.5rem);display:grid}.about-statement{font-family:var(--serif);color:var(--paper);letter-spacing:-.01em;text-wrap:pretty;margin:0;font-size:clamp(1.5rem,1rem + 2vw,2.5rem);font-weight:340;line-height:1.22}.about-statement em{color:var(--accent);font-style:italic}.about-note{color:var(--paper-2);border-left:1px solid var(--accent-line);padding-left:1.4rem;font-size:.96rem}.about-note p{margin:0 0 1rem}.about-note .label{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--paper-3);margin-bottom:.9rem;font-size:.64rem;display:block}@media (max-width:760px){.about-grid{grid-template-columns:1fr}}.timeline{border-top:1px solid var(--line)}.tl-row{border-bottom:1px solid var(--line);transition:background var(--dur)var(--ease),padding-left var(--dur)var(--ease);grid-template-columns:130px 1fr auto;align-items:center;gap:clamp(1rem,3vw,2.4rem);padding-block:clamp(1.1rem,2vw,1.5rem);display:grid}.tl-row:hover{background:var(--ink-1);padding-left:.8rem}.tl-year{font-family:var(--mono);letter-spacing:.04em;color:var(--accent);font-size:.74rem}.tl-body .role{font-family:var(--serif);color:var(--paper);font-size:clamp(1.15rem,.9rem + .8vw,1.45rem);font-weight:380;line-height:1.1}.tl-body .inst{color:var(--paper-2);margin-top:.25rem;font-size:.9rem}.tl-body .desc{color:var(--paper-3);margin-top:.35rem;font-size:.86rem}.tl-logo{background:var(--paper);border-radius:3px;place-items:center;width:46px;height:46px;padding:5px;display:grid}.tl-logo img{object-fit:contain;width:100%;height:100%}@media (max-width:640px){.tl-row{grid-template-columns:1fr auto}.tl-year{grid-column:1/-1}}.proj-list{border-top:1px solid var(--line-strong)}.proj{border-bottom:1px solid var(--line);transition:padding-left var(--dur)var(--ease),background var(--dur)var(--ease);grid-template-columns:auto 1fr;gap:clamp(1.5rem,4vw,3.5rem);padding-block:clamp(2rem,4vw,3rem);display:grid}.proj:hover{background:linear-gradient(90deg,var(--ink-1),transparent 60%);padding-left:.8rem}.proj-index{font-family:var(--serif);color:var(--accent);font-size:clamp(2rem,1.4rem + 2vw,3.4rem);font-style:italic;font-weight:350;line-height:.9}.proj-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1.5rem;display:flex}.proj-title{font-family:var(--serif);color:var(--paper);letter-spacing:-.01em;align-items:baseline;gap:.5em;max-width:24ch;margin:0;font-size:clamp(1.5rem,1.1rem + 1.6vw,2.3rem);font-weight:360;line-height:1.05;display:inline-flex}.proj-title .arr{color:var(--paper-4);transition:transform var(--dur)var(--ease),color var(--dur)var(--ease);font-size:.55em}.proj:hover .proj-title .arr{color:var(--accent);transform:translate(3px,-3px)}.proj-year{font-family:var(--mono);letter-spacing:.06em;color:var(--paper-3);white-space:nowrap;font-size:.74rem}.proj-role{font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--paper-2);margin-top:.7rem;font-size:.74rem}.proj-role b{color:var(--accent);font-weight:400}.proj-desc{color:var(--paper-2);max-width:62ch;margin:1rem 0 1.2rem;font-size:clamp(1rem,.95rem + .3vw,1.12rem)}.proj-points{gap:.55rem;max-width:70ch;margin:0 0 1.3rem;padding:0;list-style:none;display:grid}.proj-points li{color:var(--paper-2);padding-left:1.4rem;font-size:.94rem;position:relative}.proj-points li:before{content:"";background:var(--accent);width:6px;height:1px;position:absolute;top:.6em;left:0}.proj-meta{flex-wrap:wrap;align-items:center;gap:.7rem 1.2rem;display:flex}.proj-tags{flex-wrap:wrap;gap:.8rem;display:flex}@media (max-width:640px){.proj{grid-template-columns:1fr;gap:.5rem}.proj-index{font-size:2rem}}.talks-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(2,1fr);gap:1px;display:grid}.talk{background:var(--ink);transition:background var(--dur)var(--ease);padding:clamp(1.5rem,3vw,2.2rem)}.talk:hover{background:var(--ink-1)}.talk .talk-date{font-family:var(--mono);letter-spacing:.12em;color:var(--accent);font-size:.68rem}.talk .talk-title{font-family:var(--serif);color:var(--paper);margin:.7rem 0 .6rem;font-size:clamp(1.25rem,1rem + 1vw,1.7rem);font-weight:360;line-height:1.1}.talk .talk-event{color:var(--paper-2);font-size:.9rem}.talk .talk-loc{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-3);margin-top:.2rem;font-size:.66rem}.talk .talk-desc{color:var(--paper-3);margin-top:.9rem;font-size:.9rem}.talk .talk-links{gap:1rem;margin-top:.9rem;display:flex}.talk .talk-links a{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--paper-2);border-bottom:1px solid var(--accent-line);font-size:.66rem}.talk .talk-links a:hover{color:var(--accent)}@media (max-width:640px){.talks-grid{grid-template-columns:1fr}}.preview-list{border-top:1px solid var(--line)}.preview-row{border-bottom:1px solid var(--line);transition:padding-left var(--dur)var(--ease),background var(--dur)var(--ease);grid-template-columns:auto 1fr auto;align-items:baseline;gap:1.4rem;padding-block:1.2rem;display:grid}.preview-row:hover{background:var(--ink-1);padding-left:.7rem}.preview-row .pr-num{font-family:var(--mono);color:var(--paper-4);font-size:.7rem}.preview-row .pr-title{font-family:var(--serif);color:var(--paper);font-size:clamp(1.1rem,.95rem + .6vw,1.4rem);font-weight:380;display:block}.preview-row .pr-desc{color:var(--paper-3);max-width:64ch;margin-top:.25rem;font-size:.88rem;display:block}.preview-row .pr-tag{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-3);white-space:nowrap;font-size:.64rem}.section-intro{color:var(--paper-2);max-width:58ch;margin:-1.5rem 0 2rem;font-size:1rem}.pub-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.pub{border-bottom:1px solid var(--line);transition:background var(--dur)var(--ease),padding-left var(--dur)var(--ease);grid-template-columns:auto 1fr auto;align-items:baseline;gap:1.4rem;padding-block:1.4rem;display:grid}.pub:hover{background:var(--ink-1);padding-left:.7rem}.pub .pub-mark{font-family:var(--serif);color:var(--accent);font-size:1.1rem;font-style:italic}.pub .pub-title{color:var(--paper);font-size:1.02rem;line-height:1.35;display:block}.pub .pub-authors{color:var(--paper-3);margin-top:.3rem;font-size:.86rem;display:block}.pub .pub-authors .me{color:var(--paper);font-weight:600}.pub .pub-journal{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--paper-3);text-align:right;white-space:nowrap;font-size:.68rem}.pub .pub-journal .yr{color:var(--accent);margin-top:.2rem;display:block}@media (max-width:640px){.pub,.preview-row{grid-template-columns:auto 1fr}.pub .pub-journal,.preview-row .pr-tag{text-align:left;grid-column:2}}.blog-teaser{border:1px solid var(--line);background:var(--ink-1);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2rem;padding:clamp(2rem,5vw,3.5rem);display:flex}.blog-teaser .bt-text{max-width:48ch}.blog-teaser h3{font-family:var(--serif);color:var(--paper);margin:0 0 .7rem;font-size:clamp(1.5rem,1.1rem + 1.6vw,2.3rem);font-weight:350;line-height:1.1}.blog-teaser h3 em{color:var(--accent);font-style:italic}.blog-teaser p{color:var(--paper-2);margin:0}.contact{padding-block:clamp(3.5rem,8vw,7rem) clamp(2rem,4vw,3rem)}.contact-head{font-family:var(--serif);color:var(--paper);letter-spacing:-.02em;max-width:16ch;margin:0 0 1.5rem;font-size:clamp(2.2rem,1.2rem + 4vw,4.5rem);font-weight:330;line-height:1.02}.contact-head em{color:var(--accent);font-style:italic}.contact-mail{font-family:var(--serif);color:var(--paper);border-bottom:1px solid var(--accent-line);transition:color var(--dur)var(--ease);font-size:clamp(1.3rem,1rem + 1.5vw,2rem);font-style:italic}.contact-mail:hover{color:var(--accent)}.footer{border-top:1px solid var(--line);padding-block:clamp(2.5rem,5vw,4rem)}.footer-grid{grid-template-columns:1.4fr repeat(3,1fr);gap:2rem;display:grid}.footer-col h4{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--paper-3);margin:0 0 1rem;font-size:.64rem}.footer-col ul{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.footer-col a{color:var(--paper-2);transition:color var(--dur)var(--ease);font-size:.9rem}.footer-col a:hover{color:var(--accent)}.footer-brand .fb-name{font-family:var(--serif);color:var(--paper);font-size:1.5rem;font-weight:360}.footer-brand .fb-name em{color:var(--accent);font-style:italic}.footer-brand .fb-desc{color:var(--paper-3);max-width:30ch;margin-top:.6rem;font-size:.86rem}@media (max-width:760px){.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}.colophon{border-top:1px solid var(--line);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--paper-4);flex-wrap:wrap;justify-content:space-between;gap:.6rem 1.5rem;padding-block:1.2rem;font-size:.64rem;display:flex}.colophon .accent{color:var(--accent)}.colophon a{color:var(--paper-3)}.colophon a:hover{color:var(--accent)}.cv-wrap{max-width:980px}.cv-header{border-bottom:1px solid var(--line-strong);padding-block:clamp(2.5rem,6vw,4.5rem) clamp(1.5rem,3vw,2.5rem)}.cv-name{font-family:var(--serif);color:var(--paper);letter-spacing:-.02em;margin:0 0 .6rem;font-size:clamp(2.6rem,1.5rem + 4vw,4.5rem);font-weight:340;line-height:.98}.cv-name em{color:var(--accent);font-style:italic}.cv-role{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--paper-2);margin-bottom:1.6rem;font-size:.78rem}.cv-contact{font-family:var(--mono);letter-spacing:.04em;color:var(--paper-3);flex-wrap:wrap;gap:.5rem 1.6rem;font-size:.72rem;display:flex}.cv-contact a{color:var(--paper-2);border-bottom:1px solid var(--accent-line)}.cv-contact a:hover{color:var(--accent)}.cv-entry{border-bottom:1px solid var(--line);grid-template-columns:150px 1fr;gap:clamp(1rem,3vw,2.4rem);padding-block:clamp(1.4rem,2.5vw,2rem);display:grid}.cv-entry:last-child{border-bottom:0}.cv-when{font-family:var(--mono);letter-spacing:.04em;color:var(--accent);padding-top:.35rem;font-size:.72rem}.cv-where .ttl{font-family:var(--serif);color:var(--paper);font-size:clamp(1.2rem,1rem + .8vw,1.55rem);font-weight:380;line-height:1.1}.cv-where .org{font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--paper-2);margin-top:.45rem;font-size:.72rem}.cv-where .org b{color:var(--accent);font-weight:400}.cv-where ul{gap:.5rem;margin:.9rem 0 0;padding:0;list-style:none;display:grid}.cv-where li{color:var(--paper-2);max-width:70ch;padding-left:1.4rem;font-size:.94rem;position:relative}.cv-where li:before{content:"";background:var(--accent);width:6px;height:1px;position:absolute;top:.62em;left:0}.skills-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.skill-cell{background:var(--ink);padding:1.5rem}.skill-cell h4{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 .8rem;font-size:.64rem}.skill-cell p{color:var(--paper-2);margin:0;font-size:.92rem;line-height:1.5}@media (max-width:640px){.cv-entry,.skills-grid{grid-template-columns:1fr}.cv-when{padding-top:0}}@media print{body{color:#000;background:#fff}body:before,.nav,.masthead,.footer{display:none!important}.cv-name,.cv-where .ttl,.sh-label,.pub .pub-title{color:#000}.skill-cell{background:#fff}}.notes-wrap{max-width:1100px}.notes-hero{padding-block:clamp(2.5rem,6vw,4.5rem) clamp(1.5rem,3vw,2.5rem)}.notes-hero h1{font-family:var(--serif);color:var(--paper);letter-spacing:-.02em;max-width:16ch;margin:.8rem 0 1.2rem;font-size:clamp(2.6rem,1.4rem + 5vw,5rem);font-weight:330;line-height:.98}.notes-hero h1 em{color:var(--accent);font-style:italic}.notes-hero p{font-size:clamp(1.05rem,.95rem.5vw,1.25rem);color:var(--paper-2);max-width:56ch}.entry{border-bottom:1px solid var(--line);transition:padding-left var(--dur)var(--ease),background var(--dur)var(--ease);grid-template-columns:88px 1fr 150px;align-items:baseline;gap:clamp(1rem,3vw,2.4rem);padding-block:clamp(1.6rem,3vw,2.2rem);display:grid}.entry:hover{background:linear-gradient(90deg,var(--ink-1),transparent 65%);padding-left:.8rem}.entry .e-num{font-family:var(--mono);letter-spacing:.06em;color:var(--accent);font-size:.72rem}.entry .e-title{font-family:var(--serif);color:var(--paper);letter-spacing:-.01em;align-items:baseline;gap:.4em;font-size:clamp(1.35rem,1rem + 1.4vw,2rem);font-weight:360;line-height:1.08;display:inline-flex}.entry .e-title .arr{color:var(--paper-4);transition:transform var(--dur)var(--ease),color var(--dur)var(--ease);font-size:.5em}.entry:hover .e-title .arr{color:var(--accent);transform:translate(3px,-3px)}.entry .e-desc{color:var(--paper-3);max-width:64ch;margin-top:.6rem;font-size:.95rem;display:block}.entry .e-tags{flex-wrap:wrap;gap:.7rem;margin-top:.9rem;display:flex}.entry .e-meta{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--paper-3);text-align:right;font-size:.68rem}.entry .e-meta .yr{color:var(--accent);margin-bottom:.3rem;display:block}@media (max-width:680px){.entry{grid-template-columns:auto 1fr}.entry .e-meta{text-align:left;grid-column:2;margin-top:.6rem}}.note{max-width:720px;margin:0 auto;padding-block:clamp(2.5rem,6vw,4rem)}.note-back{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-3);border-bottom:1px solid var(--accent-line);margin-bottom:clamp(2rem,4vw,3rem);font-size:.7rem;display:inline-block}.note-back:hover{color:var(--accent)}.note-header{border-bottom:1px solid var(--line-strong);margin-bottom:clamp(2rem,4vw,3rem);padding-bottom:1.4rem}.note-meta{flex-wrap:wrap;align-items:center;gap:.9rem;margin-bottom:1rem;display:flex}.note-date{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:.7rem}.note-title{font-family:var(--serif);color:var(--paper);letter-spacing:-.02em;margin:0;font-size:clamp(2rem,1.3rem + 2.6vw,3.2rem);font-weight:350;line-height:1.05}.note h2{font-family:var(--serif);color:var(--paper);letter-spacing:-.01em;margin:clamp(2.2rem,4vw,3rem) 0 1rem;font-size:clamp(1.4rem,1.1rem + 1vw,1.9rem);font-weight:360}.note h3{font-family:var(--serif);color:var(--paper);margin:1.8rem 0 .7rem;font-size:clamp(1.15rem,1rem + .6vw,1.4rem);font-weight:380}.note p{color:var(--paper-2);margin:0 0 1.2rem;font-size:1.02rem;line-height:1.75}.note a{color:var(--paper);border-bottom:1px solid var(--accent-line)}.note a:hover{color:var(--accent);border-color:var(--accent)}.note ul,.note ol{color:var(--paper-2);margin:0 0 1.2rem;padding-left:1.4rem;line-height:1.75}.note ul{gap:.55rem;padding-left:0;list-style:none;display:grid}.note ul li{padding-left:1.4rem;position:relative}.note ul li:before{content:"";background:var(--accent);width:6px;height:1px;position:absolute;top:.62em;left:0}.note ol{padding-left:1.4rem;list-style:decimal}.note ol li{margin-bottom:.4rem}.note li::marker{color:var(--paper-4)}.note blockquote{border-left:1px solid var(--accent-line);color:var(--paper-3);margin:1.4rem 0;padding:.2rem 0 .2rem 1.4rem;font-style:italic}.note code{font-family:var(--mono);background:var(--ink-3);color:var(--paper);border-radius:3px;padding:.1em .4em;font-size:.86em}.note pre{background:var(--ink-3);border:1px solid var(--line);border-radius:4px;margin:0 0 1.4rem;padding:1.2rem;font-size:.86rem;line-height:1.6;overflow-x:auto}.note pre code{color:var(--paper);font-size:inherit;background:0 0;padding:0}.note img,.note figure{max-width:100%;margin:1.6rem 0}.note figcaption{font-family:var(--mono);letter-spacing:.06em;color:var(--paper-3);text-align:center;margin-top:.6rem;font-size:.66rem}.note hr{border:0;border-top:1px solid var(--line);margin:clamp(2.2rem,4vw,3rem) 0}
