@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}@font-face{font-family:Geist;src:url(/assets/fonts/geist-latin.woff2)format("woff2");font-style:normal;font-weight:400 600;font-display:swap}:root{--paper:#f2f1ec;--ink:#25312a;--muted:#62675f;--rule:#d6d8ce;--link-hover-underline:#929e8c;--row-hover:#25312a09;--section-rule:#bec6b8;--timeline-rail:#c3cbbd;--project-gap:.5rem;--timeframe-gap:1.75rem;--section-gap:2rem;--section-inset:1.25rem;--font:"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--column:40rem;--ease-out:cubic-bezier(.23, 1, .32, 1)}*{box-sizing:border-box}html{background:var(--paper);scroll-padding-top:2rem}body{isolation:isolate;background:var(--paper);min-height:100svh;color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:.9375rem;font-weight:400;line-height:1.65;position:relative}::selection{color:var(--ink);background:#dde3d7}a{color:inherit;text-decoration:none}.link-text{--underline-color:var(--link-hover-underline);background-image:linear-gradient(to right, transparent, var(--underline-color) 50%, transparent);-webkit-box-decoration-break:clone;box-decoration-break:clone;background-position:0 100%;background-repeat:no-repeat;background-size:100% 1px;padding-bottom:.12em}nav .link-text,.name .link-text,.writing-link .link-text{background-size:0 1px}nav a[aria-current=page] .link-text,a:focus-visible .link-text{background-size:100% 1px}a:focus-visible,button:focus-visible{outline-offset:5px;border-radius:2px;outline:2px solid #5b7257}button{font:inherit}[hidden]{display:none!important}h1,h2,h3,h4,p{margin:0}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}.page{overflow-wrap:anywhere}.mast>*,nav,.timeline-role,.writing-link>*,.section-head>*{min-width:0}.skip-link{z-index:3;background:var(--paper);padding:.5rem;position:absolute;top:.5rem;left:.5rem;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.page-pattern{z-index:0;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.pattern-top-right{width:clamp(220px,42vw,560px);height:auto;inset:0 0 auto auto}.pattern-branches{opacity:.055}.pattern-blossoms{opacity:.12}.branch-pulse{opacity:0;animation-duration:20s;animation-timing-function:linear;animation-iteration-count:infinite}.pulse-left{animation-name:pulse-left}.pulse-right{animation-name:pulse-right;animation-delay:7s}.pulse-top{animation-name:pulse-top;animation-delay:3s}@keyframes pulse-left{0%{opacity:0;transform:translate(-18px,771px)}8%{opacity:.18;transform:translate(50px,695px)}20%{opacity:.18;transform:translate(127px,550px)}32%{opacity:.18;transform:translate(174px,411px)}43%{opacity:.18;transform:translate(250px,306px)}55%{opacity:0;transform:translate(340px,262px)}to{opacity:0;transform:translate(340px,262px)}}@keyframes pulse-right{0%{opacity:0;transform:translate(1463px,947px)}10%{opacity:.16;transform:translate(1396px,914px)}23%{opacity:.16;transform:translate(1339px,874px)}36%{opacity:.16;transform:translate(1239px,801px)}48%{opacity:.15;transform:translate(1172px,716px)}58%,to{opacity:0;transform:translate(1148px,674px)}}@keyframes pulse-top{0%{opacity:0;transform:translate(412px,-12px)}9%{opacity:.18;transform:translate(388px,43px)}20%{opacity:.18;transform:translate(321px,128px)}31%{opacity:.16;transform:translate(244px,205px)}42%{opacity:.15;transform:translate(148px,253px)}53%,to{opacity:0;transform:translate(85px,286px)}}.motion-paused .branch-pulse{animation-play-state:paused}.page{z-index:1;width:min(var(--column), calc(100% - 3rem));margin:0 auto;padding:4rem 0 2rem;position:relative}.mast{justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.name{letter-spacing:-.035em;align-items:center;gap:.5rem;max-width:100%;font-size:1.25rem;font-weight:500;line-height:1.3;text-decoration:none;display:inline-flex}.brand-mark{object-fit:contain;flex:0 0 1.875rem;width:1.875rem;height:1.875rem;display:block}.name>span{min-width:0}nav{flex-wrap:wrap;gap:1.25rem;font-size:.8125rem;display:flex}nav a{color:var(--muted);padding-block:.5rem;text-decoration:none}nav a[aria-current=page]{color:var(--ink)}.intro{gap:1rem;max-width:61ch;margin:2rem 0;display:grid}.intro p:first-child{letter-spacing:-.02em;max-width:45ch;font-size:1.125rem;line-height:1.5}.intro p+p{color:var(--muted)}section{margin-top:var(--section-gap)}.page-section{margin-top:var(--section-gap);padding-top:var(--section-inset);border-top:1px solid #0000;position:relative}.page-section:before{content:"";background:linear-gradient(to right, transparent, var(--section-rule) 50%, transparent);pointer-events:none;width:100%;height:1px;position:absolute;top:-1px;left:0}.page-section>h2,.page-section>.section-head>h2{font-size:1rem}h2{letter-spacing:-.015em;font-size:.9375rem;font-weight:600;line-height:1.5}h3{letter-spacing:-.02em;font-size:1rem;font-weight:500;line-height:1.45}.meta,.essay-meta{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.75rem;line-height:1.6}.dek{color:var(--muted);margin-top:.375rem}.timeline{margin:1rem 0 0;padding:0;list-style:none;position:relative}.timeline:before{content:"";background:linear-gradient(to bottom, transparent, var(--timeline-rail) 16px, var(--timeline-rail) calc(100% - 16px), transparent);pointer-events:none;width:1px;position:absolute;top:0;bottom:0;left:9.75rem}.timeline-entry{grid-template-columns:9rem minmax(0,1fr);column-gap:.75rem;display:grid}.timeline-date{white-space:normal;padding-top:.125rem}.timeline-role{padding:0 0 var(--timeframe-gap) 1rem;border-left:1px solid #0000;position:relative}.timeline-role:before{content:"";width:5px;height:5px;box-shadow:0 0 0 3px var(--paper);background:#9ca794;border-radius:50%;position:absolute;top:.5rem;left:-3px}.timeline-role h3{text-wrap:pretty;font-size:.9375rem;font-weight:600}.timeline-entry:last-child .timeline-role{padding-bottom:.25rem}.role-title:empty{display:none}.role-title:not(:empty):before{content:" · "}.role-title{color:var(--muted);white-space:normal;font-size:.875rem;font-weight:400}.timeline-projects{gap:var(--project-gap);margin:.75rem 0 0 .875rem;display:grid}.timeline-projects:empty{display:none}.timeline-project{min-width:0;position:relative}.timeline-project:before{content:"";border-left:1px solid var(--timeline-rail);border-bottom:1px solid var(--timeline-rail);pointer-events:none;border-bottom-left-radius:.75rem;width:calc(1.375rem + 1px);height:1rem;position:absolute;top:-.375rem;left:calc(-1.875rem - 1px)}.timeline-project h4{color:#495348;text-wrap:pretty;font-size:.875rem;font-weight:500;line-height:1.45}.timeline-project p{color:var(--muted);text-wrap:pretty;margin-top:.25rem;font-size:.875rem;line-height:1.6}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;margin-bottom:.375rem;display:flex}.section-head>a{color:var(--muted);font-size:.8125rem}.writing-list .row{margin:0}.writing-link{isolation:isolate;color:inherit;grid-template-columns:minmax(0,1fr) 5rem;gap:1rem;padding:.5rem 0;text-decoration:none;display:grid;position:relative}.writing-link:before{content:"";z-index:-1;background:var(--row-hover);opacity:0;pointer-events:none;border-radius:4px;transition:opacity .15s;position:absolute;inset:0 -.5rem}.writing-link:focus-visible{outline-offset:4px}.writing-link:focus-visible:before{opacity:1}.writing-list .row+.row{border-top:0}.page-section.writing-list .section-head{margin-bottom:0}.page-section.writing-list .row:first-of-type .writing-link{padding-top:.5rem}.page-section.writing-list .row+.row{border-top:0}.page-section.writing-list .row:last-child .writing-link{padding-bottom:0}.writing-link>.meta{text-align:right;white-space:normal;grid-area:1/2;padding-top:.125rem}.writing-link>div:not(.meta){grid-area:1/1}.writing-list h3,.writing-list .row h2{letter-spacing:-.02em;font-size:1rem;font-weight:500;line-height:1.45}.writing-list .dek{max-width:58ch;font-size:.875rem;line-height:1.6}.contact-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem 1.75rem;margin-top:.75rem;display:grid}.contact-links a{align-items:baseline;gap:.5rem;width:fit-content;max-width:100%;padding-block:.375rem;font-size:.8125rem;line-height:1.6;text-decoration:none;display:flex}.contact-links span{overflow-wrap:anywhere;--underline-color:#a7b09f;min-width:0}.contact-links svg{stroke:currentColor;stroke-width:1.25px;fill:none;flex:none;width:.75rem;height:.75rem}.page-footer{justify-content:flex-end;min-height:2rem;margin-top:1.5rem;display:flex}.motion-toggle{color:var(--muted);cursor:pointer;transition:transform .16s var(--ease-out);background:0 0;border:0;padding:.375rem 0;font-size:.6875rem}.motion-toggle:active{transform:scale(.97)}.listing-title,.essay-title{letter-spacing:-.035em;max-width:28ch;margin:2rem 0 0;font-size:1.625rem;font-weight:500;line-height:1.3}.page-writing .intro{margin:.5rem 0 0}.page-writing .intro p{color:var(--muted);font-size:.9375rem}.page-writing .writing-list{margin-top:1rem;padding-top:.75rem}.page-writing .page-footer{margin-top:.75rem}.page-writing .listing-title{font-size:1.375rem}.essay-meta{flex-wrap:wrap;gap:.25rem 1rem;margin-top:.75rem;display:flex}.prose{gap:1.25rem;max-width:65ch;margin-top:1.75rem;font-size:1rem;line-height:1.8;display:grid}.reading-page .page-pattern{opacity:.6}.essay-end{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:2rem;font-size:.8125rem;display:flex}.timeline-project{scroll-margin-top:2rem}.empty-writing{color:var(--muted);margin-top:.75rem;font-size:.875rem}@media (forced-colors:active){a .link-text{background:0 0;text-decoration:underline}}@media (hover:hover) and (pointer:fine){a:hover{color:#101e13}a.writing-link:hover:before{opacity:1}a:hover .link-text{--underline-color:var(--link-hover-underline);background-size:100% 1px}.motion-toggle:hover{color:var(--ink)}}@media (width<=40rem){.page{width:calc(100% - 2.5rem);padding-top:2rem}.mast{flex-direction:column;align-items:flex-start;gap:.625rem}.name{font-size:1.1875rem}.intro{margin-top:2rem}.timeline:before{left:.25rem}.timeline-entry{border-left:1px solid #0000;grid-template-columns:1fr;row-gap:.25rem;margin-left:.25rem;padding-left:1rem;position:relative}.timeline-date{padding:0}.timeline-role{padding:0 0 var(--timeframe-gap);border-left:0;position:static}.timeline-role:before{top:.4375rem}.contact-links{grid-template-columns:1fr}.writing-link{grid-template-columns:1fr;gap:.375rem}.writing-link>.meta{text-align:left;grid-area:1/1}.writing-link>div:not(.meta){grid-area:2/1}.listing-title,.essay-title{margin-top:2rem;font-size:1.5rem}.pattern-branches{opacity:.045}.pattern-blossoms{opacity:.1}.page-footer{justify-content:flex-start}}@media (prefers-reduced-motion:reduce){.branch-pulse{opacity:0;animation:none}.writing-link:before{transition:none}.motion-toggle{transition:none;display:none}}@keyframes arrive{0%{opacity:0}to{opacity:1}}html.arriving body{animation:arrive .64s var(--ease-out) both}@media (prefers-reduced-motion:reduce){html.arriving body{animation:none}}html.motion-paused.arriving body,::view-transition-group(page){animation:none}html[data-slide=deeper]::view-transition-old(page){animation:slide-out-left .42s var(--ease-out) both!important}html[data-slide=deeper]::view-transition-new(page){animation:slide-in-right .42s var(--ease-out) both!important}html[data-slide=shallower]::view-transition-old(page){animation:slide-out-right .42s var(--ease-out) both!important}html[data-slide=shallower]::view-transition-new(page){animation:slide-in-left .42s var(--ease-out) both!important}@keyframes slide-out-left{to{opacity:0;transform:translate(-4.5rem)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(4.5rem)}}@keyframes slide-out-right{to{opacity:0;transform:translate(4.5rem)}}@keyframes slide-in-left{0%{opacity:0;transform:translate(-4.5rem)}}@media (prefers-reduced-motion:reduce){html::view-transition-old(page),html::view-transition-new(page){animation:none!important}}html.motion-paused::view-transition-old(page),html.motion-paused::view-transition-new(page){animation:none!important}
