:root{--paper:#f8f7f3;--ink:#282d29;--muted:#62695f;--accent:#49664c;--line:#daddd2;--mono:ui-monospace,SFMono-Regular,Consolas,monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:3px;text-decoration-color:#a4b09c}a:hover{color:var(--accent)}a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}::selection{background:#dce5d4}.page{max-width:1140px;padding:48px 36px 0;margin:auto;display:grid;grid-template-columns:110px minmax(0,1fr);gap:46px}.margin{position:sticky;top:40px;align-self:start}.monogram{font:38px Georgia,serif;letter-spacing:-3px;text-decoration:none}.monogram span,h1 span{color:var(--accent)}nav{display:flex;flex-direction:column;gap:12px;margin-top:35px;font-size:12px}nav a{text-decoration:none;color:var(--muted)}.hello-link{display:inline-block;margin-top:34px;font-size:11px;color:var(--accent);text-decoration:none}.intro-grid{display:grid;grid-template-columns:1fr 144px;gap:28px;align-items:center}.eyebrow{display:flex;align-items:center;gap:8px;font:9px var(--mono);letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.dot{width:5px;height:5px;border-radius:50%;background:var(--accent)}h1{font:58px/1.15 Georgia,serif;letter-spacing:-2.5px;margin:16px 0 12px}.intro{font-size:22px;line-height:1.45;letter-spacing:-.35px;margin:0 0 10px}.role{font-size:13px;margin:0;color:var(--muted)}.portrait{display:block;width:144px;height:144px;overflow:hidden;border-radius:50%;border:1px solid var(--line)}.portrait img{width:100%;height:100%;object-fit:cover;transform:scale(1.85) translateY(7%)}.bio{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:23px}.bio p{font-size:14px;color:var(--muted);margin:0}.links{display:flex;flex-wrap:wrap;gap:13px 23px;margin-top:20px}.links a{display:inline-flex;align-items:center;gap:7px;text-decoration:none;color:var(--accent);font-size:11px}.link-icon{width:15px;height:15px}section{margin-top:37px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:18px}h2{font:27px/1.3 Georgia,serif;letter-spacing:-.6px;margin:0}.section-number{font:10px var(--mono);color:#929a8a}.tag{font:9px/1.6 var(--mono);color:var(--muted)}h3{font-size:16px;line-height:1.4;margin:7px 0 8px;font-weight:550}p{margin:0 0 12px}.featured{display:grid;grid-template-columns:1.05fr 1fr;gap:16px}.feature{display:block;text-decoration:none;padding:19px 21px;border:1px solid var(--line);border-radius:4px}.feature p{font-size:13px;line-height:1.7;color:var(--muted);margin:0}.feature h3{font-size:20px;letter-spacing:-.35px}.feature h3 span{font-size:14px;color:var(--accent)}.course{background:#edf0e7;display:flex;flex-direction:column;align-items:start}.course h3{font:28px/1.25 Georgia,serif;letter-spacing:-.5px;margin:13px 0}.course p{font-size:14px}.action{font-size:11px;color:var(--accent);padding-top:20px;margin-top:auto}.feature-pair{display:grid;gap:12px}.feature-pair .feature{padding:14px 18px}.feature-pair h3{margin:5px 0}.work-index{display:grid;grid-template-columns:1fr 1fr;gap:0 26px;margin-top:15px}.work-index>a{padding:13px 0;border-bottom:1px solid var(--line);text-decoration:none}.work-index h3{font-size:14px;margin:3px 0 5px}.work-index p{font-size:12px;line-height:1.6;color:var(--muted);margin:0}.early{margin-top:15px}.early p{font-size:12px;color:var(--muted);line-height:1.7;margin:4px 0 0}.early a{color:var(--ink)}.timeline article{display:grid;grid-template-columns:105px 30px 1fr;gap:15px;align-items:start;padding:11px 0}.date{font:10px/1.5 var(--mono);color:var(--muted);padding-top:6px}.timeline img{object-fit:contain;border-radius:5px}.timeline h3{font-size:14px;margin:1px 0 3px}.timeline p{font-size:13px;color:var(--muted);margin:0}.timeline p.small{font-size:11px;margin-top:7px}.school-mark{width:30px;height:30px;display:grid;place-items:center;background:#e9ece2;border-radius:5px;font:italic 20px Georgia,serif;color:var(--accent)}.personal-grid{display:grid;grid-template-columns:1fr 1fr;gap:23px 30px}.personal-grid h3{font-size:16px;margin:5px 0 8px}.personal-grid p{font-size:13px;color:var(--muted);line-height:1.7;margin-bottom:9px}.text-link{font-size:11px;text-decoration:none;color:var(--accent)}footer{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);margin-top:31px;padding:20px 0 27px}footer a{text-decoration:none;color:var(--accent);font-size:13px}footer p{font-size:11px;color:var(--muted);margin:5px 0 0}.back{font:9px var(--mono);white-space:nowrap}.skip{position:absolute;left:20px;top:-100px}.skip:focus{top:10px;padding:8px;background:var(--paper);z-index:2}@media(max-width:850px){.page{grid-template-columns:80px 1fr;gap:25px;padding:34px 25px 0}.intro-grid{grid-template-columns:1fr 112px;gap:15px}.portrait{width:112px;height:112px}h1{font-size:49px}.intro{font-size:20px}.bio{gap:20px}.feature{padding:16px}.course h3{font-size:25px}.timeline article{grid-template-columns:90px 28px 1fr;gap:12px}}@media(max-width:620px){html{scroll-padding-top:18px}.page{display:block;padding:22px 23px 0}.margin{position:static;display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.monogram{font-size:29px}nav{flex-direction:row;gap:14px;margin:0;font-size:10px}.hello-link{display:none}.intro-grid{grid-template-columns:1fr 84px;gap:12px}.portrait{width:84px;height:84px}h1{font-size:40px;letter-spacing:-1.7px;margin:12px 0 10px}.eyebrow{font-size:8px;letter-spacing:.5px}.intro{font-size:17px}.desktop-break{display:none}.role{font-size:11px}.bio{grid-template-columns:1fr;gap:12px;margin-top:18px}.bio p{font-size:13px}.links{gap:12px 18px;margin-top:17px}.links a{font-size:10px}.link-icon{width:14px;height:14px}section{margin-top:29px}h2{font-size:25px}.section-head{margin-bottom:14px}.featured{grid-template-columns:1fr;gap:12px}.course h3{font-size:26px}.feature-pair{grid-template-columns:1fr}.feature-pair .feature{padding:16px}.work-index{grid-template-columns:1fr;margin-top:4px}.work-index>a{padding:12px 0}.timeline article{grid-template-columns:77px 25px 1fr;gap:10px;padding:10px 0}.timeline img,.school-mark{width:25px;height:25px}.date{font-size:9px}.timeline p{font-size:12px}.personal-grid{grid-template-columns:1fr;gap:18px}.personal-grid p{font-size:13px}footer{align-items:flex-start}.back{padding-top:4px}}@media(max-width:360px){nav{gap:10px;font-size:9px}.intro-grid{grid-template-columns:1fr 66px}.portrait{width:66px;height:66px}h1{font-size:35px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

nav{margin-top:6px}@media(max-width:620px){.margin{justify-content:flex-start}nav{margin-top:0}}

.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.project-grid .feature{padding:17px}.project-grid h3{font-size:20px}.project-grid p{font-size:12px}.archive-link{display:inline-block;margin-top:13px;font-size:11px;color:var(--accent);text-decoration:none}.writing-list{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.writing-list>a{text-decoration:none}.writing-list h3{font-size:15px;margin:7px 0}.writing-list p{font-size:12px;line-height:1.7;color:var(--muted);margin:0}.timeline article{position:relative;padding:15px 0}.timeline article:before{content:"";position:absolute;left:134px;top:0;bottom:0;width:1px;background:var(--line);z-index:-1}.timeline article:first-child:before{top:30px}.timeline article:last-child:before{bottom:auto;height:30px}.timeline article>img,.school-mark{background:var(--paper);outline:5px solid var(--paper)}.timeline article>.ucla-logo{border-radius:0}.timeline{isolation:isolate}@media(max-width:850px){.timeline article:before{left:115px}.project-grid{grid-template-columns:1fr}.writing-list{grid-template-columns:1fr;gap:0}.writing-list>a{padding:12px 0;border-bottom:1px solid var(--line)}}@media(max-width:620px){nav{flex-wrap:wrap;gap:9px 15px;font-size:10px}.margin{margin-bottom:25px}.timeline article:before{left:99px}.timeline article{padding:14px 0}.project-grid{gap:10px}}

.timeline article>.ucla-logo{background:#2774ae;padding:3px;border-radius:0}

.bio{display:block;max-width:760px;margin-top:20px}.bio p+p{margin-top:12px}.role{font-size:15px}.intro-grid{align-items:center}.intro-grid h1{margin-bottom:10px}.section-head{border-bottom:0;padding-bottom:0;margin-bottom:18px}.work-group{margin-top:25px}.group-title{font-size:17px;font-weight:500;margin:0 0 13px}.project-grid .feature{border:0;border-top:1px solid var(--line);border-radius:0;padding:15px 0}.feature-pair .feature{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:10px 0}.course{background:#edf0e7;border:0;padding:18px 22px}.course h3{font-size:25px}.writing-list{display:block}.writing-list>a{display:block;border-bottom:1px solid var(--line);padding:12px 0}.writing-list h3{font-size:14px;margin:4px 0}.writing-list .tag{display:none}.writing-list p{font-size:13px}.substack-note{font-size:13px;max-width:640px;color:var(--muted);margin:15px 0 0}.personal-prose{max-width:720px;font-size:14px;color:var(--muted)}.personal-prose p{margin-bottom:12px}section{margin-top:34px}#path,#personal{border-top:1px solid var(--line);padding-top:25px}.featured{gap:25px}@media(max-width:620px){.bio p{font-size:13px}.role{font-size:11px}.featured{gap:10px}.personal-prose{font-size:13px}.course{padding:18px}.work-group{margin-top:23px}}

/* Selected writing: compact reading list with publication context. */
.writing-intro{font-size:13px;color:var(--muted);margin:0 0 8px}
.writing-list .writing-entry{padding:17px 0 18px}
.writing-meta{display:block;font:10px/1.6 var(--mono);color:var(--muted)}
.writing-meta span{padding:0 4px;color:#929a8a}
.writing-list .writing-entry h3{font-size:17px;line-height:1.4;margin:5px 0 6px;letter-spacing:-.15px}
.writing-entry h3 span{font-size:14px;color:var(--accent);display:inline-block;transition:transform .15s ease}
.writing-entry:hover h3 span{transform:translate(2px,-2px)}
.writing-list .writing-entry p{max-width:650px;font-size:13px;line-height:1.65}
.writing-more{display:flex;flex-wrap:wrap;align-items:center;gap:9px 22px;margin-top:16px;font-size:11px}
.writing-more>span{color:var(--muted)}
.writing-more a{text-decoration:none;color:var(--accent)}
@media(max-width:620px){.writing-list .writing-entry{padding:15px 0}.writing-list .writing-entry h3{font-size:16px}.writing-meta{font-size:9px}.writing-more{gap:8px 16px}.writing-more>span{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){.writing-entry h3 span{transition:none}}

.writing-cards{display:grid;grid-template-columns:1fr 1.15fr;gap:16px;margin-top:16px}
.writing-cards a{text-decoration:none;border:1px solid var(--line);border-radius:4px;padding:22px;transition:border-color .15s ease}
.writing-cards a:hover{border-color:var(--accent)}
.essay-card{background:#efede5;display:flex;flex-direction:column;align-items:flex-start}
.essay-card h3{font:32px/1.2 Georgia,serif;letter-spacing:-.7px;margin:18px 0 14px}
.writing-cards h3 span{font-size:16px;color:var(--accent)}
.writing-cards p{font-size:13px;line-height:1.7;color:var(--muted);margin:0}
.essay-action{font-size:11px;color:var(--accent);margin-top:auto;padding-top:28px}
.technical-cards{display:grid;gap:12px}
.technical-card h3{font-size:18px;margin:9px 0 8px;line-height:1.35;letter-spacing:-.2px}
@media(max-width:620px){.writing-cards{grid-template-columns:1fr;gap:12px}.writing-cards a{padding:20px}.essay-card h3{font-size:30px;margin-top:14px}.essay-card h3 br{display:none}.essay-action{padding-top:20px}.technical-card h3{font-size:17px}}
@media(prefers-reduced-motion:reduce){.writing-cards a{transition:none}}

/* Background: distinguish roles from the work behind each stop. */
.timeline article{padding:18px 0}
.timeline article h3{font-size:16px;margin:0 0 3px}
.timeline article .path-role{font-size:11px;color:var(--accent);margin:0 0 7px;line-height:1.6}
.timeline article p:not(.path-role){max-width:660px;line-height:1.7}
@media(max-width:620px){.timeline article{padding:16px 0}.timeline article h3{font-size:15px}.timeline article .path-role{font-size:10px}.timeline article p:not(.path-role){font-size:12px}}

/* Give every selected article the same prominence. */
.writing-cards.writing-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.writing-grid .writing-card{display:flex;flex-direction:column;background:transparent;padding:23px}
.writing-card h3{font:23px/1.3 Georgia,serif;letter-spacing:-.4px;margin:12px 0 12px}
.writing-grid .writing-card p{font-size:13px;line-height:1.7}
@media(max-width:620px){.writing-cards.writing-grid{grid-template-columns:1fr;gap:12px}.writing-grid .writing-card{padding:20px}.writing-card h3{font-size:22px}}

/* Highlight only the top-left featured essay. */
.writing-grid .writing-card:nth-child(1){background:#efede5}

.timeline article .path-previous{font-size:11px;line-height:1.6;color:var(--muted);margin:-4px 0 9px}
@media(max-width:620px){.timeline article .path-previous{font-size:10px}}

/* A small collection of life outside work. */
.off-hours{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:22px}
.interest{min-width:0}.music-poster,.travel-postcard{height:340px;position:relative;overflow:hidden;border-radius:4px;padding:25px}
.music-poster{background:#243e35;color:#f1eadb;display:flex;flex-direction:column}
.poster-kicker{position:relative;z-index:1;font:9px/1.5 var(--mono);letter-spacing:1px;text-transform:uppercase}
.sound-orbit{position:absolute;width:240px;right:-84px;top:46px;transform:rotate(-18deg);opacity:.9}
.artist-lineup{position:relative;z-index:1;display:flex;flex-direction:column;gap:3px;margin-top:29px;font:32px/1.15 Georgia,serif;letter-spacing:-.9px}
.artist-lineup span:last-child{font-size:29px}
.poster-footer{display:flex;justify-content:space-between;gap:10px;margin-top:auto;padding-top:20px;border-top:1px solid #f1eadb40;font:9px/1.5 var(--mono);position:relative;z-index:1}
.travel-postcard{background:#eee6d7;border:1px solid #dfd5c2;display:flex;flex-direction:column;color:#4e5846}
.postcard-heading{display:flex;justify-content:space-between;gap:10px;align-items:start}.postcard-heading .poster-kicker{max-width:180px}
.postcard-stamp{border:1px dashed #9caa8b;padding:4px 9px;font:10px/1.4 var(--mono);text-align:center;transform:rotate(8deg)}
.travel-postcard h3{font:64px/1 Georgia,serif;letter-spacing:-3px;margin:8px 0 0;color:#9b5d42}
.italy-scene{width:calc(100% + 50px);height:145px;margin:0 -25px;flex:1;min-height:110px}
.postcard-places{font:9px/1.6 var(--mono);margin-top:10px}.travel-count{font:10px/1.6 var(--mono);margin-top:6px;color:#777565}
.interest-caption{padding-top:15px}.interest-caption h3,.personal-notes h3{font-size:15px;margin:0 0 7px}.interest-caption p,.personal-notes p{font-size:13px;line-height:1.7;color:var(--muted);margin:0}
.personal-notes{display:grid;grid-template-columns:1fr 1fr;gap:24px;border-top:1px solid var(--line);padding-top:18px;margin-top:25px}
@media(max-width:850px){.off-hours{gap:16px}.music-poster,.travel-postcard{padding:20px;height:325px}.artist-lineup{font-size:28px}.artist-lineup span:last-child{font-size:25px}.italy-scene{width:calc(100% + 40px);margin:0 -20px}.sound-orbit{right:-115px}.poster-footer{font-size:8px}}
@media(max-width:620px){.off-hours{grid-template-columns:1fr;gap:25px}.music-poster,.travel-postcard{height:320px;padding:23px}.artist-lineup{font-size:34px}.artist-lineup span:last-child{font-size:30px}.sound-orbit{right:-130px;opacity:.45}.italy-scene{width:calc(100% + 46px);margin:0 -23px}.personal-notes{grid-template-columns:1fr;gap:18px}.poster-footer{font-size:9px}}

.interest-caption p+p{margin-top:10px}
.artist-lineup{font-size:29px}.artist-lineup span:last-child{font-size:26px}
.personal-notes{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:850px){.artist-lineup{font-size:25px}.artist-lineup span:last-child{font-size:23px}}
@media(max-width:620px){.artist-lineup{font-size:29px}.artist-lineup span:last-child{font-size:26px}.personal-notes{grid-template-columns:1fr}}


/* Let the artwork carry the posters; the stories sit underneath. */
.music-poster{justify-content:center}.artist-lineup{margin-top:0}
.travel-postcard h3{margin-top:0}.italy-scene{height:180px}

/* One featured essay, with three compact articles below it. */
.writing-cards.writing-showcase{grid-template-columns:repeat(3,minmax(0,1fr));gap:21px;margin-top:16px}
.writing-showcase .writing-card{display:block;border:0;border-top:1px solid var(--line);border-radius:0;padding:15px 0;background:transparent}
.writing-showcase .writing-card h3{font-size:21px;margin:9px 0 10px;line-height:1.3}
.writing-showcase .writing-card p{font-size:12px;line-height:1.7}
.writing-showcase .writing-card:first-child{grid-column:1/-1;display:grid;grid-template-columns:1.1fr 1fr;column-gap:35px;align-items:center;background:#efede5;border:0;border-radius:4px;padding:25px 27px}
.writing-showcase .writing-card:first-child .writing-meta{grid-column:1/-1;margin-bottom:9px}
.writing-showcase .writing-card:first-child h3{font-size:28px;margin:0;line-height:1.25}
.writing-showcase .writing-card:first-child p{font-size:14px;max-width:350px}
@media(max-width:850px){.writing-showcase .writing-card h3{font-size:19px}.writing-showcase .writing-meta{font-size:9px}}
@media(max-width:620px){.writing-cards.writing-showcase{grid-template-columns:1fr;gap:0}.writing-showcase .writing-card:first-child{display:block;padding:22px;margin-bottom:12px}.writing-showcase .writing-card:first-child h3{font-size:26px;margin:10px 0 12px}.writing-showcase .writing-card:first-child p{font-size:13px}.writing-showcase .writing-card{padding:16px 0}.writing-showcase .writing-card h3{font-size:21px}}

.writing-showcase h3 .title-end{white-space:nowrap;font:inherit;color:inherit}

/* Shared external-link arrow, independent of the surrounding typeface. */
.external-arrow{display:inline-block;width:12px;height:12px;vertical-align:-1px;color:var(--accent);flex-shrink:0}
