 :root{--paper:#f7f6f2;--ink:#242622;--muted:#666a63;--line:#d9dcd4;--accent:#244f46}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}a:hover{color:var(--accent)}a:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.wrap{max-width:940px;padding:0 48px;margin:auto}.top{display:flex;justify-content:space-between;align-items:center;padding:35px 0;font:11px/1.5 monospace;letter-spacing:1.4px;text-transform:uppercase}.brand{text-decoration:none}.top nav{display:flex;gap:25px}.top nav a{text-decoration:none}.hero{padding:70px 0 65px}.eyebrow,.label{font:11px/1.7 monospace;text-transform:uppercase;letter-spacing:1.6px;color:var(--muted)}h1{font:normal clamp(54px,7vw,88px)/1.05 Georgia,'Times New Roman',serif;letter-spacing:-4px;margin:18px 0 24px}h1 span{color:var(--accent)}.intro{font-size:18px;line-height:1.75;max-width:610px;margin:0;color:#494e47}.social{display:flex;flex-wrap:wrap;gap:24px;margin-top:28px;font:11px/1.8 monospace;letter-spacing:1px;text-transform:uppercase}.social a{text-decoration:none;border-bottom:1px solid var(--line)}section{border-top:1px solid var(--line);padding:36px 0 42px}.section-head{display:flex;align-items:baseline;gap:16px;margin-bottom:20px}.number{font:11px monospace;color:var(--muted)}h2{font:normal 29px Georgia,serif;letter-spacing:-.7px;margin:0}.section-note{font-size:14px;line-height:1.7;color:var(--muted);max-width:640px;margin:0 0 26px}.posts{list-style:none;padding:0;margin:0}.post{display:grid;grid-template-columns:105px 1fr;gap:25px;padding:24px 0;border-top:1px solid var(--line)}.post:first-child{border-top:0;padding-top:5px}.date{font:11px/1.8 monospace;color:var(--muted);padding-top:5px}.post h3{font:normal 21px/1.35 Georgia,serif;margin:0 0 10px}.post h3 a{text-decoration:none}.arrow{font:16px Arial;color:var(--accent);white-space:nowrap}.meta{font:10px/1.8 monospace;letter-spacing:.6px;color:var(--muted);text-transform:uppercase}.post p{font-size:13px;line-height:1.65;margin:7px 0 0;color:var(--muted)}.resource{display:grid;grid-template-columns:105px 1fr;gap:25px}.resource h3{font:normal 22px Georgia,serif;margin:0 0 12px}.resource p,.about p{font-size:15px;line-height:1.8;color:#494e47;max-width:650px}.about p{margin:0 0 14px}.resource a{font:11px monospace;text-transform:uppercase;letter-spacing:.8px}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:25px 0 40px;font:10px/1.8 monospace;letter-spacing:.5px;color:var(--muted)}.skip{position:absolute;left:16px;top:-100px;background:var(--paper);padding:12px}.skip:focus{top:12px}@media(max-width:600px){.wrap{padding:0 24px}.top{padding:24px 0;letter-spacing:.7px}.top nav{gap:16px}.hero{padding:45px 0 45px}h1{letter-spacing:-2.5px}.intro{font-size:16px}.post,.resource{grid-template-columns:1fr;gap:6px}.post{padding:22px 0}.date{padding:0}.section-head{gap:12px}footer{flex-direction:column;gap:6px}.social{gap:18px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.top nav a{padding:8px 0;border-bottom:2px solid transparent}.top nav a[aria-current=page]{color:var(--accent);border-bottom-color:var(--accent)}.section-body{margin-top:24px}.page-hero{padding:55px 0 45px}.actions{display:flex;gap:24px;align-items:center;margin-top:26px;font-size:13px}.button{display:inline-block;padding:12px 18px;background:var(--accent);color:var(--paper);text-decoration:none;font:12px/1.5 monospace}.button:hover{background:#193b34;color:white}.experience,.highlights{display:grid;grid-template-columns:1fr 1fr;gap:38px}.experience h3,.highlights h3{font:normal 23px Georgia,serif;margin:12px 0}.experience p,.highlights p{font:14px/1.8 Arial,sans-serif;color:var(--muted)}.highlights>a{text-decoration:none}.highlights>a:hover h3{text-decoration:underline}.section-body>.section-note{margin-top:18px}@media(max-width:600px){.top{flex-direction:column;align-items:flex-start;gap:17px}.top nav{width:100%;justify-content:space-between;gap:10px}.experience,.highlights{grid-template-columns:1fr;gap:22px}.actions{gap:18px}.hero{padding-top:35px}}
[hidden]{display:none!important}.writing-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,220px) auto;align-items:end;gap:16px;margin-bottom:18px}.writing-filters label{display:block;font:11px/1.8 monospace;letter-spacing:.5px;margin-bottom:8px;color:var(--muted)}.writing-filters input,.writing-filters select{width:100%;height:44px;border:1px solid #989e93;background:var(--paper);color:var(--ink);padding:10px 12px;border-radius:0;font:14px Arial,sans-serif}.writing-filters input:focus-visible,.writing-filters select:focus-visible,.reset-filters:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.reset-filters{height:44px;border:1px solid #989e93;background:transparent;color:var(--ink);padding:10px 14px;cursor:pointer;font:12px monospace}.reset-filters:hover{background:#e8ebe3}.post-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.tag{font:10px/1.6 monospace;color:var(--accent);border:1px solid var(--line);padding:3px 7px}.result-count{font:11px monospace;margin-bottom:25px}@media(max-width:600px){.writing-filters{grid-template-columns:1fr 1fr}.writing-filters>div:first-child{grid-column:1/-1}.writing-filters .reset-filters{width:100%}}

.identity{display:flex;align-items:center;gap:24px;justify-content:space-between}.identity h1{font-size:clamp(44px,5.8vw,72px);flex:1;letter-spacing:-3px}.profile-image{width:120px;height:120px;flex-shrink:0;border-radius:50%;object-fit:cover;border:1px solid var(--line)}@media(max-width:600px){.identity{gap:12px}.identity h1{font-size:clamp(32px,8vw,44px);letter-spacing:-1.5px}.profile-image{width:72px;height:72px}}

.identity{gap:28px}.identity h1{font-size:clamp(42px,5vw,64px)}.profile-image{width:220px;height:220px}.identity{margin-bottom:24px}@media(max-width:600px){.identity{flex-direction:column-reverse;align-items:flex-start;gap:14px}.profile-image{width:180px;height:180px}.identity h1{font-size:clamp(40px,10vw,54px);margin-top:4px}}

@media(max-width:600px){.top nav{flex-wrap:wrap;justify-content:flex-start;column-gap:20px;row-gap:4px}}

.talk-image{display:flex;align-items:center;justify-content:center;aspect-ratio:16/10;background:#eeefe9;border:1px solid var(--line);margin-bottom:22px;overflow:hidden}.talk-image img{display:block;width:100%;height:100%;object-fit:contain}.talk-content{min-width:0}.talk-links{display:flex;flex-wrap:wrap;gap:20px;margin-top:16px;font:12px/1.8 monospace}.post .image-note{font-size:11px;margin:-12px 0 18px}.talk-post{padding-top:32px;padding-bottom:32px}

.talk-contact{margin-top:20px}

.github-preview{display:flex;align-items:center;gap:20px;padding:24px;margin-bottom:36px;border:1px solid var(--line);text-decoration:none;background:#eeefe9}.github-preview img{width:72px;height:72px;object-fit:cover;border-radius:50%;flex-shrink:0}.github-preview-text{min-width:0}.github-preview h2{font-size:24px;margin:5px 0 8px}.github-preview h2 span{font:12px monospace;color:var(--muted);display:inline-block}.github-preview p{font:13px/1.65 Arial,sans-serif;color:var(--muted);margin:0}.github-preview-arrow{margin-left:auto;font-size:24px;color:var(--accent)}.github-preview:hover{border-color:var(--accent)}@media(max-width:600px){.github-preview{padding:18px;gap:14px}.github-preview img{width:52px;height:52px}.github-preview h2 span{display:block;margin-top:6px}.github-preview-arrow{font-size:20px}}

.github-panel{border:1px solid var(--line);margin-bottom:36px;background:#eeefe9}.github-panel .github-preview{border:0;margin:0;background:transparent}.contribution-preview{border-top:1px solid var(--line);padding:22px 24px}.contribution-heading{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:18px}.contribution-heading h3{font:normal 21px Georgia,serif;margin:0}.contribution-heading a{font:11px/1.8 monospace}.contribution-scroll{overflow-x:auto;padding-bottom:5px}.contribution-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.contribution-scroll img{display:block;width:100%;min-width:600px;height:auto}.contribution-note{font:10px/1.8 monospace;color:var(--muted);margin:12px 0 0}.project-grid{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding:0;margin:0 0 42px}.project-grid li{display:flex;min-width:0}.project-tile{display:flex;flex-direction:column;width:100%;padding:28px;border:1px solid var(--line);text-decoration:none;transition:border-color .15s,background .15s}.project-tile:hover{border-color:var(--accent);background:#eeefe9}.project-tile h2{font-size:26px;line-height:1.2;margin:16px 0 12px}.project-tile p{font:14px/1.8 Arial,sans-serif;color:var(--muted);margin:0 0 24px}.project-tile-link{margin-top:auto;font:12px/1.8 monospace;color:var(--accent)}@media(max-width:600px){.project-grid{grid-template-columns:1fr;gap:16px}.project-tile{padding:24px}.contribution-preview{padding:20px 18px}.contribution-heading{flex-wrap:wrap;gap:8px}}@media(prefers-reduced-motion:reduce){.project-tile{transition:none}}

.home-hero{display:flex;align-items:flex-start;gap:36px;padding:50px 0}.home-intro{flex:1;min-width:0}.home-hero h1{font-size:clamp(44px,5vw,64px);letter-spacing:-2.5px;margin:17px 0 22px}.home-hero .intro{font-size:17px;line-height:1.8}.home-hero .profile-image{width:140px;height:140px;margin-top:34px}.home-background{font:12px/1.9 monospace;color:var(--muted);margin:20px 0 0}.home-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:18px;margin-bottom:18px}.home-section-head>a,.home-feature-grid a,.research-links a{font:12px/1.8 monospace}.research-grid,.home-feature-grid,.home-talk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.research-card{display:flex;flex-direction:column;padding:26px;background:#eeefe9;border:1px solid var(--line)}.research-card h3,.service-grid h3,.home-feature-grid h3,.home-talk h3{font:normal 24px/1.25 Georgia,serif;margin:15px 0 12px}.research-card p,.service-grid p,.home-feature-grid p{font:14px/1.8 Arial,sans-serif;color:var(--muted);margin:0 0 18px}.research-card .research-credit{font-size:11px}.research-links{display:flex;flex-wrap:wrap;gap:16px;margin-top:auto;padding-top:10px}.home-section-intro{margin-top:18px}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:26px 0 16px}.service-grid h3{font-size:22px}.home-feature-grid{margin-top:26px;gap:38px}.home-feature-grid article{min-width:0}.home-more{display:block;margin-top:14px;color:var(--muted)}.home-talk{display:flex;align-items:flex-start;gap:18px;text-decoration:none}.home-talk img{width:84px;height:112px;object-fit:contain;background:#eeefe9;border:1px solid var(--line);flex-shrink:0}.home-talk h3{font-size:21px;margin:8px 0}.home-talk p{font:12px/1.7 Arial,sans-serif;color:var(--muted);margin:0}.home-talk:hover h3{text-decoration:underline}.home-about .section-body>p{font:14px/1.8 Arial,sans-serif;color:var(--muted);max-width:700px;margin:0 0 18px}.home-about .section-body>.section-note{font-size:13px}@media(max-width:750px){.service-grid{grid-template-columns:1fr}.service-grid h3{margin-top:8px}.home-talk-grid{grid-template-columns:1fr}}@media(max-width:600px){.home-hero{gap:18px;position:relative;padding-top:35px}.home-hero .profile-image{width:64px;height:64px;position:absolute;right:0;top:23px;margin:0}.home-hero .eyebrow{max-width:calc(100% - 80px);font-size:10px}.home-hero h1{font-size:42px;max-width:calc(100% - 65px);margin-top:24px}.home-hero .intro{font-size:16px}.research-grid,.home-feature-grid{grid-template-columns:1fr}.home-section-head{align-items:flex-start;flex-wrap:wrap;gap:10px}.research-card{padding:24px}.home-feature-grid{gap:30px}}

.home-hero .profile-image{width:240px;height:240px;margin-top:34px}@media(max-width:600px){.home-hero{display:flex;flex-direction:column-reverse;gap:24px}.home-hero .profile-image{position:static;width:200px;height:200px;margin:0}.home-hero .eyebrow,.home-hero h1{max-width:none}}
