@import url("https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700&family=Source+Serif+4:wght@400;600&display=swap");
:root{--paper:#eef1f3;--ink:#101a24;--mid:#566472;--rule:#c8d0d7;--signal:#b83d00;--panel:#e2e7ea;--sans:"Barlow Condensed","Arial Narrow",Arial,sans-serif;--serif:"Source Serif 4",Georgia,"Times New Roman",serif}
@media(prefers-color-scheme:dark){:root{--paper:#0f161d;--ink:#e8edf1;--mid:#98a5b1;--rule:#2b3844;--signal:#ff7a33;--panel:#18222c}}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:1.125rem/1.65 var(--serif)}
.wrap{max-width:62rem;margin:0 auto;padding-left:clamp(1.25rem,5vw,3rem);padding-right:clamp(1.25rem,5vw,3rem)}
a{color:var(--signal);text-underline-offset:.2em}
a:focus-visible{outline:3px solid var(--signal);outline-offset:3px}
.bar{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding-top:1.25rem;padding-bottom:1.25rem;font:600 1.35rem var(--sans)}
.bar nav{display:flex;gap:1.5rem}
.bar .name{color:var(--ink);text-decoration:none}
h1,h2,h3{font-family:var(--sans);line-height:1.1;margin:0}
h1{font-weight:700;font-size:clamp(3.5rem,13vw,9rem);line-height:.9;letter-spacing:-.01em}
h2{font-weight:600;font-size:2rem;margin-bottom:1.25rem}
h3{font-weight:700;font-size:1.6rem}
.hero{padding-top:clamp(1.5rem,6vw,4.5rem)}
.lede{max-width:36rem;margin:1.25rem 0 0;font-size:1.3rem}
.links{display:flex;flex-wrap:wrap;gap:.5rem 1.75rem;margin:1.5rem 0 0;padding:0;list-style:none;font:600 1.35rem var(--sans)}
.arc{display:block;width:100%;height:auto;margin-top:2.5rem;overflow:visible}
.arc .ground{stroke:var(--rule);stroke-width:2;stroke-dasharray:3 7}
.arc .path{fill:none;stroke:var(--signal);stroke-width:3.5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:fly 2.4s cubic-bezier(.3,.1,.3,1) .2s forwards}
@keyframes fly{to{stroke-dashoffset:0}}
@media(prefers-reduced-motion:reduce){.arc .path{animation:none;stroke-dashoffset:0}}
section{margin-top:clamp(3rem,8vw,5rem)}
.about{max-width:40rem;margin:0}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(15.5rem,1fr));gap:1.5rem}
.card{display:block;color:inherit;text-decoration:none;border:1px solid var(--rule)}
.card:hover h3,.card:focus-visible h3,.row:hover h3,.row:focus-visible h3{color:var(--signal)}
.thumb{aspect-ratio:4/3;background:var(--panel);display:grid;place-items:center;color:var(--mid);font:600 1.05rem var(--sans);overflow:hidden}
.thumb img{width:100%;height:100%;object-fit:cover}
.cap{padding:1rem 1.1rem 1.25rem}
.cap p{margin:.4rem 0 .75rem;font-size:1rem;line-height:1.5}
.tag{display:inline-block;border:1px solid var(--rule);padding:0 .6rem;margin:0 .4rem .4rem 0;font:600 1rem var(--sans);color:var(--mid)}
.tag.now{color:var(--signal);border-color:var(--signal)}
.more{margin:1.5rem 0 0;font:600 1.3rem var(--sans)}
.row{display:grid;grid-template-columns:1fr auto;gap:.25rem 1.5rem;padding:1.4rem 0;border-top:1px solid var(--rule);color:inherit;text-decoration:none}
.list .row:last-child{border-bottom:1px solid var(--rule)}
.row p{grid-column:1/-1;margin:0;max-width:40rem}
.row .meta{font:600 1.05rem var(--sans);color:var(--mid)}
.crumb{display:inline-block;margin-top:1.5rem;font:600 1.2rem var(--sans)}
.proj h1{font-size:clamp(2.6rem,8vw,5rem);line-height:1;margin-top:1rem}
.meta-line{margin:.75rem 0;font:600 1.15rem var(--sans);color:var(--mid)}
.headline{max-width:40rem;margin:1.25rem 0 1.75rem;font-size:1.35rem;line-height:1.5}
.hero-img{aspect-ratio:16/9}
.proj h2{margin:2.5rem 0 .6rem;font-size:1.7rem}
.proj p{max-width:40rem;margin:0 0 .9rem}
.proj .meta-line{max-width:none}
.todo{background:#ffe97a;color:#2b2300;padding:0 .3em}
.pager{display:flex;justify-content:space-between;gap:1rem;margin-top:3.5rem;padding-top:1.25rem;border-top:1px solid var(--rule);font:600 1.25rem var(--sans)}
.foot{margin-top:4rem;padding-top:1.25rem;padding-bottom:2rem;border-top:1px solid var(--rule);color:var(--mid);font:600 1.15rem var(--sans)}
.foot ul{display:flex;flex-wrap:wrap;gap:.5rem 1.75rem;margin:0 0 .75rem;padding:0;list-style:none;font-size:1.3rem}
.foot p{margin:0}
@media(max-width:34rem){.row{grid-template-columns:1fr}}
