section.block{padding:var(--section-pad) 0;border-bottom:1px solid var(--rule-2)}section.block:last-of-type{border-bottom:none}.section-head{display:grid;grid-template-columns:180px 1fr;gap:2rem;margin-bottom:2.5rem;align-items:baseline}.section-head .num{font-family:var(--mono);color:var(--muted);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;padding-top:.35rem}.section-head h2{font-style:italic;font-weight:500}.col-body{display:grid;grid-template-columns:180px 1fr;gap:2rem}.col-body>.main{max-width:720px}@media (max-width: 780px){.section-head,.col-body{grid-template-columns:1fr;gap:.5rem}.col-body>.main{max-width:none}}.hero{padding:clamp(4rem,9vw,7rem) 0 clamp(3rem,6vw,5rem);border-bottom:1px solid var(--rule-2)}.hero-grid{display:grid;grid-template-columns:220px 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:start}@media (max-width: 780px){.hero-grid{grid-template-columns:1fr}}.hero-photo{width:220px;height:260px;object-fit:cover;border-radius:2px;filter:grayscale(.15) contrast(1.02);box-shadow:0 1px 0 var(--rule),10px 10px 0 var(--accent-tint)}.hero-photo.monogram{display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,var(--surface) 0%,var(--accent-tint) 100%);border:1px solid var(--rule);filter:none;position:relative;overflow:hidden}.hero-photo.monogram:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,transparent 0,transparent 12px,color-mix(in oklab,var(--rule) 60%,transparent) 12px,color-mix(in oklab,var(--rule) 60%,transparent) 13px);opacity:.5}.hero-photo.monogram span{position:relative;font-family:var(--serif);font-style:italic;font-weight:500;font-size:5rem;color:var(--accent);letter-spacing:-.02em;line-height:1}.hero h1{margin-bottom:.5rem}.hero .subtitle{font-family:var(--serif);font-style:italic;font-size:1.3rem;color:var(--ink-2);font-weight:400;max-width:38ch;margin-bottom:1.75rem}.hero-lede{font-size:1.08rem;color:var(--ink-2);max-width:60ch}.hero-lede strong{color:var(--ink);font-weight:600}.hero-status{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--mono);font-size:.78rem;color:var(--accent);background:var(--accent-tint);padding:6px 12px;border-radius:2px;margin-bottom:1.5rem;text-transform:uppercase;letter-spacing:.06em}.hero-status .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:pulse 2.2s ease-out infinite}@keyframes pulse{0%{box-shadow:0 0 color-mix(in oklab,var(--accent) 55%,transparent)}70%{box-shadow:0 0 0 8px color-mix(in oklab,var(--accent) 0%,transparent)}to{box-shadow:0 0 color-mix(in oklab,var(--accent) 0%,transparent)}}.hero-links{display:flex;flex-wrap:wrap;gap:1.25rem 1.75rem;margin-top:1.5rem;font-size:.95rem}.hero-links a{text-decoration:none;color:var(--ink-2);display:inline-flex;align-items:center;gap:.4rem}.hero-links a:before{content:"→";color:var(--accent);font-family:var(--mono);transition:transform .15s ease;display:inline-block}.hero-links a:hover{color:var(--accent)}.hero-links a:hover:before{transform:translate(2px)}.now-list{display:grid;gap:1.25rem}.now-item{display:grid;grid-template-columns:120px 1fr;gap:1.5rem;padding-bottom:1.25rem;border-bottom:1px dotted var(--rule);align-items:baseline}.now-item:last-child{border-bottom:none}.now-item .when{font-family:var(--mono);font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.now-item .what{font-size:1rem}.now-item .what strong{font-weight:600}.now-item .what .place{color:var(--accent);font-weight:500}@media (max-width: 600px){.now-item{grid-template-columns:1fr;gap:.25rem}}.narrative p{font-size:1.08rem;max-width:62ch;color:var(--ink-2)}.narrative .pull{font-family:var(--serif);font-style:italic;font-size:1.3rem;line-height:1.45;color:var(--ink);border-left:2px solid var(--accent);padding:.25rem 0 .25rem 1.25rem;margin:2rem 0;max-width:54ch}.threads{margin-top:2.5rem}.thread{display:grid;grid-template-columns:60px 1fr;gap:1.25rem;padding:1.25rem 0;border-top:1px solid var(--rule-2)}.thread:last-child{border-bottom:1px solid var(--rule-2)}.thread .thread-num{font-family:var(--serif);font-style:italic;font-size:1.4rem;color:var(--accent)}.thread h3{margin-bottom:.4rem;font-size:1.1rem}.thread p{font-size:.98rem;color:var(--ink-2);margin-bottom:0;max-width:60ch}.paper{margin-bottom:3rem}.paper:last-child{margin-bottom:0}.paper-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem;margin-bottom:.6rem}.paper-venue{font-family:var(--mono);font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);padding:3px 8px;background:var(--accent-tint);border-radius:2px}.paper-year{font-family:var(--mono);font-size:.78rem;color:var(--muted)}.paper h3{font-size:1.35rem;font-weight:600;margin-bottom:.5rem;line-height:1.25}.paper .authors{font-size:.95rem;color:var(--ink-2);margin-bottom:.75rem}.paper .authors .me{color:var(--ink);font-weight:600;text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:2px}.paper .abstract{font-size:1rem;color:var(--ink-2);max-width:60ch}.paper .paper-links{margin-top:.9rem;display:flex;flex-wrap:wrap;gap:1rem;font-size:.9rem}.paper .paper-links a{text-decoration:none;font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;color:var(--ink-2);border:1px solid var(--rule);padding:4px 10px;border-radius:2px}.paper .paper-links a:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-tint)}.figure{margin:1.5rem 0 .5rem;border:1px solid var(--rule);background:var(--surface);border-radius:2px;overflow:hidden}.figure .fig-inner{aspect-ratio:16/7;background:var(--surface);display:flex;align-items:center;justify-content:center;position:relative}.figure svg{width:100%;height:100%;display:block}.figure figcaption{padding:10px 14px;border-top:1px solid var(--rule);font-family:var(--mono);font-size:.76rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;display:flex;justify-content:space-between;gap:1rem}.diag-box{fill:var(--surface);stroke:var(--ink);stroke-width:1}.diag-box-accent{fill:var(--accent-tint);stroke:var(--accent);stroke-width:1.25}.diag-text{font-family:var(--mono);font-size:11px;fill:var(--ink-2);text-transform:uppercase;letter-spacing:.04em}.diag-text-accent{font-family:var(--mono);font-size:10px;fill:var(--accent);letter-spacing:.04em}.diag-arrow{stroke:var(--ink-2);stroke-width:1;fill:none;marker-end:url(#arrow)}.diag-label{font-family:var(--serif);font-style:italic;font-size:13px;fill:var(--muted)}.graph-node{fill:var(--surface);stroke:var(--ink-2);stroke-width:1}.graph-node.evidence{fill:var(--accent-tint);stroke:var(--accent)}.graph-edge{stroke:var(--ink-2);stroke-width:.5;opacity:.35;fill:none}.graph-edge.cross{stroke:var(--accent);stroke-width:1;opacity:.6;stroke-dasharray:2 2}.metric{display:inline-flex;flex-direction:column;padding:.5rem .9rem;border-left:2px solid var(--accent);background:var(--accent-tint);margin:.75rem .5rem 0 0;border-radius:0 2px 2px 0}.metric .val{font-family:var(--serif);font-size:1.4rem;font-weight:600;color:var(--ink)}.metric .key{font-family:var(--mono);font-size:.7rem;color:var(--accent);text-transform:uppercase;letter-spacing:.05em}.projects{display:grid;gap:0}.project{display:grid;grid-template-columns:1fr 120px;gap:2rem;padding:1.5rem 0;border-top:1px solid var(--rule-2);align-items:baseline}.project:last-child{border-bottom:1px solid var(--rule-2)}.project:hover h3 a{color:var(--accent)}.project h3{font-size:1.1rem;margin-bottom:.35rem}.project h3 a{text-decoration:none;color:var(--ink)}.project p{font-size:.96rem;color:var(--ink-2);margin-bottom:.5rem;max-width:60ch}.project .tags{display:flex;flex-wrap:wrap;gap:.4rem}.project .tag{font-family:var(--mono);font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.project .tag:before{content:"#";color:var(--accent)}.project .year{font-family:var(--mono);font-size:.78rem;color:var(--muted);text-align:right}@media (max-width: 600px){.project{grid-template-columns:1fr}.project .year{text-align:left}}.writing-list .writing-item{display:grid;grid-template-columns:100px 1fr auto;gap:1.5rem;padding:1.1rem 0;border-top:1px solid var(--rule-2);align-items:baseline}.writing-list .writing-item:last-child{border-bottom:1px solid var(--rule-2)}.writing-list .when{font-family:var(--mono);font-size:.76rem;color:var(--muted);text-transform:uppercase}.writing-list h3{font-size:1.05rem;font-weight:500;margin:0}.writing-list h3 a{text-decoration:none;color:var(--ink)}.writing-list h3 a:hover{color:var(--accent);text-decoration:underline}.writing-list .where{font-family:var(--mono);font-size:.76rem;color:var(--muted)}@media (max-width: 600px){.writing-list .writing-item{grid-template-columns:1fr;gap:.2rem}}.cv-snap{display:grid;gap:2.5rem}.cv-group h3{font-family:var(--mono);font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-weight:500;padding-bottom:.75rem;margin-bottom:1rem;border-bottom:1px solid var(--rule)}.cv-row{display:grid;grid-template-columns:1fr auto;gap:1rem;padding:.75rem 0;border-bottom:1px dotted var(--rule)}.cv-row:last-child{border-bottom:none}.cv-row .title{font-size:1rem;font-weight:500}.cv-row .org{color:var(--ink-2);font-size:.95rem}.cv-row .when{font-family:var(--mono);font-size:.78rem;color:var(--muted);text-align:right;align-self:center}@media (max-width: 600px){.cv-row{grid-template-columns:1fr}.cv-row .when{text-align:left}}.teach-list{display:grid;gap:.75rem}.teach-item{display:grid;grid-template-columns:140px 1fr;gap:1.5rem;padding:.6rem 0;border-bottom:1px dotted var(--rule);align-items:baseline}.teach-item:last-child{border-bottom:none}.teach-item .role{font-family:var(--mono);font-size:.78rem;color:var(--accent);text-transform:uppercase;letter-spacing:.04em}.teach-item .detail{font-size:.98rem;color:var(--ink-2)}.teach-item .detail strong{color:var(--ink);font-weight:500}.contact{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}@media (max-width: 780px){.contact{grid-template-columns:1fr}}.contact h2{font-size:2rem;font-style:italic;font-weight:500;margin-bottom:1rem}.contact p{color:var(--ink-2);max-width:42ch}.contact-info{display:grid;gap:.9rem}.contact-info .ci{display:grid;grid-template-columns:90px 1fr;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--rule-2);align-items:baseline}.contact-info .ci .k{font-family:var(--mono);font-size:.76rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.contact-info .ci .v a{text-decoration:none;color:var(--ink);border-bottom:1px solid var(--accent)}.contact-info .ci .v a:hover{color:var(--accent)}
