.post[data-astro-cid-sbmovh4h]{color:var(--navy);background:#fff;border:1px solid #170f4f1a;flex-direction:column;gap:14px;min-height:280px;padding:28px;text-decoration:none;transition:all .15s cubic-bezier(.2,.7,.2,1);display:flex}.post[data-astro-cid-sbmovh4h]:hover{border-color:var(--navy);transform:translateY(-2px)}.post[data-astro-cid-sbmovh4h] .meta[data-astro-cid-sbmovh4h]{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:#170f4f8c;align-items:center;gap:12px;font-size:11px;display:flex}.post[data-astro-cid-sbmovh4h] .meta[data-astro-cid-sbmovh4h] .tag[data-astro-cid-sbmovh4h]{color:var(--electric)}.post[data-astro-cid-sbmovh4h] h3[data-astro-cid-sbmovh4h]{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:22px;font-weight:700;line-height:1.18}.post[data-astro-cid-sbmovh4h] .dek[data-astro-cid-sbmovh4h]{color:#170f4fb3;flex:1;margin:0;font-size:14px;line-height:1.55}.post[data-astro-cid-sbmovh4h] .read[data-astro-cid-sbmovh4h]{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--navy);align-items:center;gap:6px;margin-top:4px;font-size:11px;display:inline-flex}.post[data-astro-cid-sbmovh4h] .read[data-astro-cid-sbmovh4h]:after{content:"→";transition:transform .15s}.post[data-astro-cid-sbmovh4h]:hover .read[data-astro-cid-sbmovh4h]:after{color:var(--electric);transform:translate(3px)}.project[data-astro-cid-y2vllrex]{background:var(--cream);color:var(--navy);border:1px solid #170f4f2e;flex-direction:column;min-height:320px;text-decoration:none;transition:all .15s cubic-bezier(.2,.7,.2,1);display:flex}.project[data-astro-cid-y2vllrex]:hover{border-color:var(--navy)}.project[data-astro-cid-y2vllrex] .visual[data-astro-cid-y2vllrex]{border-bottom:1px solid #170f4f2e;height:140px;position:relative;overflow:hidden}.project[data-astro-cid-y2vllrex].variant-1 .visual[data-astro-cid-y2vllrex]{background:var(--electric)}.project[data-astro-cid-y2vllrex].variant-1 .visual[data-astro-cid-y2vllrex]:after{content:"";background:var(--navy);width:38%;height:60%;position:absolute;inset:auto 0 0}.project[data-astro-cid-y2vllrex].variant-2 .visual[data-astro-cid-y2vllrex]{background:var(--sky)}.project[data-astro-cid-y2vllrex].variant-2 .visual[data-astro-cid-y2vllrex]:after{content:"";background:var(--navy);border-radius:50%;width:92px;height:92px;position:absolute;top:24px;right:24px}.project[data-astro-cid-y2vllrex].variant-3 .visual[data-astro-cid-y2vllrex]{background:var(--navy)}.project[data-astro-cid-y2vllrex].variant-3 .visual[data-astro-cid-y2vllrex]:after{content:"";background:var(--electric);width:24%;height:100%;position:absolute;top:0;left:0}.project[data-astro-cid-y2vllrex] .body[data-astro-cid-y2vllrex]{flex-direction:column;flex:1;gap:10px;padding:24px;display:flex}.project[data-astro-cid-y2vllrex] .meta[data-astro-cid-y2vllrex]{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:#170f4f8c;gap:12px;font-size:11px;display:flex}.project[data-astro-cid-y2vllrex] .meta[data-astro-cid-y2vllrex] .tag[data-astro-cid-y2vllrex]{color:var(--electric)}.project[data-astro-cid-y2vllrex] h3[data-astro-cid-y2vllrex]{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:22px;font-weight:700;line-height:1.15}.project[data-astro-cid-y2vllrex] .dek[data-astro-cid-y2vllrex]{color:#170f4fb3;flex:1;margin:0;font-size:14px;line-height:1.55}.project[data-astro-cid-y2vllrex] .footer[data-astro-cid-y2vllrex]{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--navy);justify-content:space-between;align-items:center;margin-top:8px;font-size:11px;display:flex}.project[data-astro-cid-y2vllrex] .footer[data-astro-cid-y2vllrex] .arrow[data-astro-cid-y2vllrex]{transition:transform .15s}.project[data-astro-cid-y2vllrex]:hover .footer[data-astro-cid-y2vllrex] .arrow[data-astro-cid-y2vllrex]{color:var(--electric);transform:translate(3px)}.talk[data-astro-cid-ybjcx5s3]{color:var(--cream);border-top:1px solid #ffffff2e;grid-template-columns:80px 1fr 240px 220px 32px;align-items:center;gap:24px;padding:20px 0;font-size:14px;text-decoration:none;transition:padding .15s cubic-bezier(.2,.7,.2,1);display:grid}.talk[data-astro-cid-ybjcx5s3]:last-child{border-bottom:1px solid #ffffff2e}.talk[data-astro-cid-ybjcx5s3]:hover{background:#ffffff0a;padding-left:12px;padding-right:12px}.talk[data-astro-cid-ybjcx5s3] .num[data-astro-cid-ybjcx5s3]{font-family:var(--font-mono);letter-spacing:.14em;color:#ffffff8c;font-size:12px}.talk[data-astro-cid-ybjcx5s3] .title[data-astro-cid-ybjcx5s3]{font-family:var(--font-display);letter-spacing:-.01em;font-size:20px;font-weight:700}.talk[data-astro-cid-ybjcx5s3] .venue[data-astro-cid-ybjcx5s3]{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:#ffffffa6;font-size:12px}.talk[data-astro-cid-ybjcx5s3] .kind[data-astro-cid-ybjcx5s3]{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--sky);font-size:12px}.talk[data-astro-cid-ybjcx5s3] .arrow[data-astro-cid-ybjcx5s3]{color:var(--sky);text-align:right;transition:transform .15s}.talk[data-astro-cid-ybjcx5s3]:hover .arrow[data-astro-cid-ybjcx5s3]{transform:translate(4px)}@media (width<=1024px){.talk[data-astro-cid-ybjcx5s3]{grid-template-columns:56px 1fr auto 24px;gap:16px}.talk[data-astro-cid-ybjcx5s3] .venue[data-astro-cid-ybjcx5s3]{display:none}.talk[data-astro-cid-ybjcx5s3] .title[data-astro-cid-ybjcx5s3]{font-size:18px}}@media (width<=720px){.talk[data-astro-cid-ybjcx5s3]{grid-template-columns:1fr;gap:4px;padding:18px 0}.talk[data-astro-cid-ybjcx5s3]:hover{background:0 0;padding-left:0;padding-right:0}.talk[data-astro-cid-ybjcx5s3] .num[data-astro-cid-ybjcx5s3]{font-size:10px}.talk[data-astro-cid-ybjcx5s3] .title[data-astro-cid-ybjcx5s3]{font-size:17px;line-height:1.25}.talk[data-astro-cid-ybjcx5s3] .venue[data-astro-cid-ybjcx5s3]{font-size:11px;display:block}.talk[data-astro-cid-ybjcx5s3] .kind[data-astro-cid-ybjcx5s3]{font-size:11px}.talk[data-astro-cid-ybjcx5s3] .arrow[data-astro-cid-ybjcx5s3]{display:none}}body{--gap-block:56px}.section{padding:var(--section-y) var(--pad-x)}.section-eyebrow{align-items:baseline;gap:14px;margin-bottom:36px;display:flex}.section-eyebrow .num{color:var(--electric)}.section-eyebrow .label{color:#170f4f8c}.section-eyebrow .rule{background:#170f4f2e;flex:1;height:1px;transform:translateY(-3px)}.hero{text-align:center;padding:var(--hero-y) var(--pad-x);flex-direction:column;justify-content:center;align-items:center;gap:28px;min-height:520px;display:flex}.hero .eyebrow{color:#170f4f8c}.hero h1{font-family:var(--font-display);letter-spacing:-.025em;text-wrap:balance;max-width:1000px;margin:0;font-size:clamp(48px,5.6vw,84px);font-weight:700;line-height:.98}.hero h1 .hl{color:var(--electric);font-style:italic;font-weight:700}.hero-sub{color:#170f4fb8;max-width:640px;margin:0;font-size:18px;line-height:1.5}.hero-meta{font-family:var(--font-mono);color:#170f4f8c;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:14px;font-size:12px;display:flex}.hero-meta .dot{background:var(--electric);border-radius:50%;width:6px;height:6px}.hero-cta{justify-content:center;gap:12px;margin-top:4px;display:flex}.btn{font-family:var(--font-display);letter-spacing:-.005em;cursor:pointer;border:1.5px solid var(--navy);background:var(--navy);color:#fff;align-items:center;gap:8px;padding:14px 22px;font-size:14px;font-weight:700;text-decoration:none;transition:all .15s cubic-bezier(.2,.7,.2,1);display:inline-flex}.btn:hover{background:var(--electric);border-color:var(--electric);color:var(--cream)}.btn.ghost{color:var(--navy);background:0 0}.btn.ghost:hover{background:var(--navy);color:#fff}.about{border-top:1px solid #170f4f1a;grid-template-columns:1fr;gap:0;display:grid}.about .body{max-width:780px}.about h2{font-family:var(--font-display);letter-spacing:-.02em;max-width:22ch;margin:0 0 24px;font-size:clamp(28px,2.6vw,40px);font-weight:700;line-height:1.12}.about h2 .hl{color:var(--electric);font-style:italic}.about p{color:#170f4fc7;max-width:64ch;margin:0 0 16px;font-size:17px;line-height:1.55}.about .more{font-family:var(--font-display);color:var(--navy);border-bottom:2px solid var(--electric);align-items:center;gap:8px;margin-top:12px;padding-bottom:2px;font-size:14px;font-weight:700;text-decoration:none;transition:color .15s cubic-bezier(.2,.7,.2,1);display:inline-flex}.about .more:hover{color:var(--electric)}.about .tags{flex-wrap:wrap;gap:8px;margin-top:28px;display:flex}.about .tag{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--navy);border:1px solid #170f4f33;padding:6px 10px;font-size:11px}.writing{background:var(--cream);border-top:1px solid #170f4f1a}.writing .head{justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:48px;display:flex}.writing h2{font-family:var(--font-display);letter-spacing:-.02em;max-width:22ch;margin:0;font-size:clamp(28px,2.6vw,40px);font-weight:700;line-height:1.1}.writing h2 .hl{color:var(--electric);font-style:italic}.writing .archive{font-family:var(--font-display);color:var(--navy);border-bottom:2px solid var(--electric);white-space:nowrap;padding-bottom:2px;font-size:14px;font-weight:700;text-decoration:none}.writing .archive:hover{color:var(--electric)}.posts{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.projects{background:#fff;border-top:1px solid #170f4f1a}.projects .head{justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:48px;display:flex}.projects h2{font-family:var(--font-display);letter-spacing:-.02em;max-width:22ch;margin:0;font-size:clamp(28px,2.6vw,40px);font-weight:700;line-height:1.1}.projects h2 .hl{color:var(--electric);font-style:italic}.projects .grid{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.talks{background:var(--navy);color:var(--cream);border-top:1px solid #170f4f1a}.talks .section-eyebrow .label{color:#ffffff8c}.talks .section-eyebrow .num{color:var(--sky)}.talks .section-eyebrow .rule{background:#ffffff2e}.talks h2{font-family:var(--font-display);letter-spacing:-.02em;color:var(--cream);max-width:22ch;margin:0 0 48px;font-size:clamp(28px,2.6vw,40px);font-weight:700;line-height:1.1}.talks h2 .hl{color:var(--sky);font-style:italic}.talks .list{flex-direction:column;display:flex}.talks .archive{font-family:var(--font-display);color:var(--cream);border-bottom:2px solid var(--sky);white-space:nowrap;margin-top:24px;padding-bottom:2px;font-size:14px;font-weight:700;text-decoration:none;display:inline-block}.talks .archive:hover{color:var(--sky)}.github{background:var(--cream);border-top:1px solid #170f4f1a}.github .head{justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:48px;display:flex}.github h2{font-family:var(--font-display);letter-spacing:-.02em;max-width:22ch;margin:0;font-size:clamp(28px,2.6vw,40px);font-weight:700;line-height:1.1}.github h2 .hl{color:var(--electric);font-style:italic}.github .repos{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.contact{background:var(--electric);color:var(--cream);padding:96px var(--pad-x);border-top:1px solid #170f4f1a;grid-template-columns:1fr 1fr;align-items:center;gap:56px;display:grid}.contact h2{font-family:var(--font-display);letter-spacing:-.025em;color:var(--cream);max-width:14ch;margin:0;font-size:clamp(40px,4.4vw,64px);font-weight:700;line-height:1}.contact h2 .hl{color:var(--navy);font-style:italic}.contact .right{flex-direction:column;align-items:flex-start;gap:18px;display:flex}.contact .email{font-family:var(--font-display);letter-spacing:-.015em;color:var(--cream);border-bottom:3px solid var(--cream);padding-bottom:4px;font-size:clamp(24px,2.4vw,36px);font-weight:700;text-decoration:none}.contact .email:hover{color:var(--navy);border-color:var(--navy)}.contact .blurb{color:#f2eae5d9;max-width:460px;margin:0;font-size:14px;line-height:1.6}.contact .socials{flex-wrap:wrap;gap:18px;margin-top:12px;display:flex}.contact .socials a{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--cream);border:1px solid #f2eae566;padding:8px 14px;font-size:12px;text-decoration:none;transition:all .15s cubic-bezier(.2,.7,.2,1)}.contact .socials a:hover{background:var(--cream);color:var(--electric);border-color:var(--cream)}.motto-bar{background:var(--navy);color:#fff;padding:56px var(--pad-x);justify-content:space-between;align-items:center;gap:40px;display:flex}.motto-bar .m{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(36px,3.6vw,56px);font-weight:700;line-height:1}.motto-bar .m .dot{color:var(--electric)}.motto-bar .t{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:#ffffff8c;max-width:360px;font-size:12px;line-height:1.6}@media (width<=1024px){.posts,.projects .grid{grid-template-columns:repeat(2,1fr)}.github .repos{grid-template-columns:1fr}.contact{padding:72px var(--pad-x);grid-template-columns:1fr;gap:28px}.contact h2{max-width:none}.motto-bar{padding:40px var(--pad-x)}.talk{grid-template-columns:56px 1fr auto 24px;gap:16px}.talk .venue{display:none}.post{min-height:240px;padding:24px}.project{min-height:280px}}@media (width<=720px){.section-eyebrow{gap:10px;margin-bottom:24px}.hero{min-height:0;padding:var(--hero-y) var(--pad-x);gap:20px}.hero h1{font-size:clamp(36px,9vw,56px);line-height:1.02}.hero-sub{font-size:16px}.hero-meta{flex-wrap:wrap;justify-content:center;row-gap:6px}.hero-cta{flex-direction:column;align-items:stretch;width:100%;max-width:320px}.hero-cta .btn{justify-content:center;padding:14px 18px}.about h2{font-size:clamp(24px,6vw,32px)}.about p{font-size:16px;line-height:1.55}.about .tag{padding:5px 8px;font-size:10px}.writing .head,.projects .head,.github .head{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:32px}.writing h2,.projects h2,.github h2{font-size:clamp(24px,6vw,32px)}.posts,.projects .grid{grid-template-columns:1fr}.post{min-height:0;padding:22px}.project{min-height:0}.project .visual{height:96px}.project .body{padding:20px}.talks h2{margin-bottom:32px;font-size:clamp(24px,6vw,32px)}.talk{grid-template-rows:auto auto auto;grid-template-columns:1fr;gap:4px;padding:18px 0}.talk:hover{background:0 0;padding-left:0;padding-right:0}.talk .num{font-size:10px}.talk .title{font-size:17px;line-height:1.25}.talk .venue{font-size:11px;display:block}.talk .kind{font-size:11px}.talk .arrow{display:none}.talks .archive{font-size:13px}.repo{padding:20px}.repo .row{flex-direction:column;align-items:flex-start;gap:4px}.repo .stats{flex-wrap:wrap;gap:8px 14px;font-size:10px}.contact{padding:56px var(--pad-x);gap:24px}.contact h2{max-width:none;font-size:clamp(32px,8vw,44px);line-height:1.05}.contact .email{font-size:clamp(20px,5.5vw,28px)}.contact .blurb{font-size:13px}.contact .socials a{padding:6px 10px;font-size:11px}.motto-bar{padding:40px var(--pad-x);flex-direction:column;align-items:flex-start;gap:16px}.motto-bar .m{font-size:clamp(28px,8vw,40px)}.motto-bar .t{max-width:none;font-size:11px}}
