@font-face{font-family:Basic Chaos Handwriting;src:url(/fonts/BasicChaos.ttf?v=b36f3c33)format("truetype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Basic Chaos Handwriting;src:url(/fonts/BasicChaos-Bold.woff2?v=1.012)format("woff2");font-style:normal;font-weight:700;font-display:swap}:root{--sky:#87cefa;--sky-deep:#2f7fbe;--sky-loud:#9ad6fb;--ink:#333;--paper:#f5f5f5;--chalk:#f5f6f5;--chalk-deep:#dde1e1;--char:#26282b;--char-deep:#1d1f21;--muted:#6e7a80;--warm:#f07d5d;--moss:#4c7a58;--green:#5ee08a;--purple:#b98bff;--char-line:#3c4043;--font:-apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;--display:"Helvetica Neue", Helvetica, Arial, sans-serif;--handwriting:"Basic Chaos Handwriting", var(--display);--measure:1180px;--pad:clamp(18px, 4vw, 56px);--ease:cubic-bezier(.2, 0, 0, 1);--tracking-display:-.02em;--field:var(--moss);--field-text:var(--paper);--field-loud:var(--sky-loud);--field-dark:#111}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--chalk);min-height:100svh;color:var(--ink);font-family:var(--font);flex-direction:column;margin:0;font-size:16px;line-height:1.55;display:flex}body.home-page,body.project-page,body.updates-page,.home-page .section--paper,.project-page .section--paper,.project-page .section--moss,.updates-page .section--paper{background:#ececec}.project-page .section--moss{color:var(--ink)}main{flex:1 0 auto}a{color:inherit}img{max-width:100%;display:block}.skip-link{z-index:100;background:var(--paper);color:var(--ink);padding:10px 14px;font-weight:700;position:fixed;top:8px;left:8px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.shell{width:min(var(--measure), calc(100% - (var(--pad) * 2)));margin-inline:auto}.site-header{z-index:20;background:var(--field);min-height:84px;color:var(--field-text);border-bottom:4px solid var(--field);grid-template-columns:auto 1fr auto;align-items:stretch;display:grid;position:relative}.site-brand{padding-right:var(--pad);align-items:center;gap:16px;display:flex}.wordmark{padding:12px 0 12px var(--pad);color:var(--field-loud);font-family:var(--handwriting);font-synthesis:none;letter-spacing:normal;white-space:nowrap;align-items:center;font-size:32px;font-weight:700;line-height:1;text-decoration:none;display:flex}.site-nav{justify-content:flex-end;align-items:stretch;display:flex;overflow-x:auto}.site-nav a,.feed-link{min-width:max-content;color:var(--field-text);letter-spacing:.08em;transition:background .16s var(--ease), color .16s var(--ease);place-items:center;padding:0 20px;font-size:12px;font-weight:500;text-decoration:none;display:grid}.site-nav a:hover,.site-nav a[aria-current=page],.feed-link:hover{background:color-mix(in srgb, var(--field-text) 14%, transparent)}.feed-link{border-left:none}.hero{background:var(--field);min-height:68svh;color:var(--field-text);align-items:flex-end;display:flex;overflow:hidden}.hero__inner{width:100%;padding:clamp(44px, 8vw, 120px) var(--pad) clamp(34px, 5vw, 72px)}.hero__top{flex-wrap:wrap;align-items:center;display:flex}.hero h1{max-width:1180px;color:var(--field-loud);font-family:var(--display);letter-spacing:var(--tracking-display);margin:0;font-size:clamp(72px,15vw,220px);font-weight:500;line-height:.86}.hero__bottom{justify-content:space-between;align-items:flex-end;gap:32px;margin-top:clamp(40px,7vw,90px);display:flex}.hero__bottom p{max-width:600px;margin:0;font-size:clamp(18px,2.2vw,28px);line-height:1.25}.shuffle{width:clamp(120px,15vw,250px);color:var(--field-loud);cursor:pointer;background:0 0;border:0;flex:none;margin:0 auto;padding:0;transform:rotate(5deg)}.shuffle__icon{aspect-ratio:1450/1085;width:100%;transition:transform .2s var(--ease);background-color:currentColor;display:block;mask:url(/shuffle-handdrawn.png) 50%/contain no-repeat}.shuffle:hover .shuffle__icon{transform:scale(1.05)}.shuffle:active .shuffle__icon{transform:scale(.94)}.shuffle:focus-visible{outline:3px solid var(--field-text);outline-offset:10px}.site-brand .shuffle{align-items:center;width:44px;height:44px;margin:0;padding:6px;display:flex}.site-brand .shuffle:focus-visible{outline-offset:2px}.shuffle-burst{z-index:1000;pointer-events:none;position:fixed;inset:0;overflow:hidden}.shuffle-burst__icon{transform-origin:50% 54%;transition:none;position:absolute}.hero__signal{align-items:flex-end;min-height:3.75em;display:flex}.section{padding:clamp(56px,8vw,112px) 0}.section--ink{background:var(--field);color:var(--field-text)}.section--paper{background:var(--paper)}.section--sky,.section--moss{background:var(--field);color:var(--field-text)}.section-head{border-bottom:3px solid;justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:28px;padding-bottom:12px;display:flex}.section-head h2,.page-intro h1{font-family:var(--display);letter-spacing:var(--tracking-display);margin:0;font-size:clamp(38px,6vw,82px);font-weight:800;line-height:.86}.section-head a,.text-link{text-underline-offset:4px;font-weight:700;text-decoration-thickness:2px}.project-list{gap:16px;display:grid}.project-row{background:color-mix(in srgb, var(--field) 84%, #000);min-height:162px;color:var(--field-text);text-decoration:underline;text-decoration-color:color-mix(in srgb, currentColor 55%, transparent);text-underline-offset:5px;transition:background-color .18s var(--ease), text-decoration-color .18s var(--ease);border-radius:3px;flex-direction:column;align-items:flex-start;gap:4px;padding:24px clamp(24px,4.5vw,42px);text-decoration-thickness:1px;display:flex}.project-row:hover{background:color-mix(in srgb, var(--field) 72%, #000);text-decoration-color:currentColor}.project-row:focus-visible{outline:3px solid var(--field-text);outline-offset:4px}.project-row h3{font-family:var(--display);margin:0;font-size:clamp(36px,5.7vw,56px);font-weight:400;line-height:1.1}.project-row span{text-underline-offset:3px;font-size:20px;line-height:1.4}.entry-grid{grid-template-columns:repeat(12,1fr);gap:16px;display:grid}.entry-card{background:var(--chalk);border:2px solid var(--ink);flex-direction:column;grid-column:span 4;min-height:330px;display:flex;overflow:hidden}.entry-card--large{grid-column:span 8}.entry-card>img{aspect-ratio:16/9;object-fit:cover;border-bottom:2px solid var(--ink);width:100%}.entry-card__body{flex-direction:column;flex:1;padding:clamp(20px,3vw,34px);display:flex}.entry-card h3{font-family:var(--display);letter-spacing:var(--tracking-display);margin:24px 0 12px;font-size:clamp(25px,3vw,42px);line-height:1.02}.entry-card h3 a{text-decoration:none}.entry-card h3 a:hover{color:var(--sky-deep)}.entry-card p{color:var(--muted);margin:0 0 28px}.see-all{background:var(--field-loud);border:2px solid var(--ink);width:calc(33.3333% - 10.6667px);min-height:72px;color:var(--ink);transition:background .16s var(--ease);justify-content:space-between;align-items:center;gap:16px;margin:16px 0 0 auto;padding:14px clamp(20px,3vw,34px);font-size:clamp(24px,2.4vw,32px);line-height:1.1;text-decoration:none;display:flex}.see-all svg{fill:currentColor;width:.9em;height:.9em;transition:transform .2s var(--ease);flex:none}.see-all:hover{background:var(--paper)}.see-all:hover svg{transform:translate(6px)}.entry-meta{text-align:right;color:var(--muted);letter-spacing:.09em;flex-direction:column;align-items:flex-end;gap:4px;font-size:11px;font-weight:800;display:flex}.tag-row{flex-wrap:wrap;gap:7px;margin-top:auto;display:flex}.project-tag{background:var(--chalk-deep);align-items:center;min-height:29px;padding:4px 11px;font-size:10px;font-weight:800;text-decoration:none;display:inline-flex}.project-tag:hover{background:var(--sky)}.page-intro{background:var(--field);color:var(--field-text);padding:clamp(64px,10vw,140px) 0 clamp(46px,7vw,90px)}.page-intro__inner{grid-template-columns:minmax(0,1.5fr) minmax(240px,.5fr);align-items:end;gap:48px;display:grid}.page-intro p{margin:0;font-size:clamp(18px,2vw,25px);line-height:1.3}.filter-line{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 32px;display:flex}.filter-line span{margin-right:8px;font-size:11px;font-weight:800}.filter-line a{border:1px solid var(--ink);padding:7px 13px;font-size:12px;font-weight:700;text-decoration:none}.filter-line a:hover{background:var(--ink);color:var(--paper)}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.project-card{background:var(--ink);min-height:360px;color:var(--paper);flex-direction:column;justify-content:space-between;padding:clamp(26px,4vw,52px);text-decoration:none;display:flex;position:relative;overflow:hidden}.project-card__top{letter-spacing:normal;justify-content:space-between;gap:20px;font-size:11px;font-weight:800;display:flex}.project-card h2{font-family:var(--display);letter-spacing:var(--tracking-display);margin:60px 0 16px;font-size:clamp(42px,6vw,76px);line-height:.86}.project-card p{max-width:520px;margin:0;font-size:18px}.project-card:hover .project-card__arrow{transform:translate(7px,-7px)}.project-card__arrow{transition:transform .2s var(--ease);font-size:32px}.project-hero{background:var(--field);min-height:62svh;color:var(--field-text);align-items:flex-end;padding:clamp(62px,10vw,140px) 0 clamp(45px,7vw,90px);display:flex;overflow:hidden}.project-hero h1{--fit-size:calc(min(var(--measure), 100vw - var(--pad) * 2) / (var(--title-length,8) * .72));font-family:var(--display);font-size:min(clamp(64px, 13vw, 180px), var(--fit-size));letter-spacing:var(--tracking-display);white-space:nowrap;margin:18px 0;line-height:.86}.project-hero__bottom{justify-content:space-between;align-items:flex-end;gap:36px;display:flex}.project-hero__bottom p{max-width:630px;margin:0;font-size:clamp(20px,2.5vw,31px);line-height:1.2}.button{background:var(--field-loud);min-height:46px;color:var(--ink);justify-content:center;align-items:center;padding:10px 20px;font-size:12px;font-weight:800;text-decoration:none;display:inline-flex}.button:hover{background:var(--paper)}.project-copy{grid-template-columns:minmax(0,1.6fr) minmax(220px,.4fr);gap:60px;display:grid}.project-copy .prose{max-width:760px}.project-facts{margin:0}.project-facts div{border-top:1px solid #c7cdcd;padding:13px 0}.project-facts dt{color:var(--muted);letter-spacing:normal;font-size:10px;font-weight:800}.project-facts dd{margin:3px 0 0;font-weight:700}.book-intro{max-width:760px;margin:0 0 clamp(36px,5vw,64px);font-size:clamp(19px,2.3vw,28px);line-height:1.3}.book-group+.book-group{margin-top:clamp(56px,8vw,104px)}.book-group>h2{font-family:var(--display);letter-spacing:var(--tracking-display);margin:0 0 14px;font-size:clamp(30px,4.4vw,56px);font-weight:800;line-height:.9}.book-list{border-top:3px solid var(--ink);margin:0;padding:0;list-style:none;display:grid}.book-row{border-bottom:1px solid #c7cdcd;grid-template-columns:minmax(0,1fr) minmax(160px,260px) 6.5em;align-items:baseline;column-gap:40px;padding:20px 0;display:grid}.book-row>*{grid-column:1;margin:0}.book-row h3{font-family:var(--display);letter-spacing:var(--tracking-display);font-size:clamp(22px,2.6vw,32px);line-height:1.08}.book-row h3 a{text-decoration:none}.book-row h3 a:hover{color:var(--sky-deep)}.book-row h3 a span{font-size:.7em}.book-row__subtitle{max-width:640px;margin-top:6px;line-height:1.4}.book-row__author{grid-area:1/2;font-weight:700}.book-row__year{text-align:right;font-variant-numeric:tabular-nums;grid-area:1/3}.book-row__note{max-width:640px;margin-top:12px;font-size:clamp(17px,1.6vw,20px);line-height:1.5}.entry-page{padding-block:clamp(60px,9vw,130px)}.entry-page__header{margin-bottom:56px}.entry-page__header h1{max-width:920px}.entry-page h1{--fit-size:calc(min(var(--measure), 100vw - var(--pad) * 2) / (var(--longest,8) * .58));font-family:var(--display);font-size:min(clamp(50px, 9vw, 116px), var(--fit-size));letter-spacing:var(--tracking-display);overflow-wrap:break-word;margin:22px 0;line-height:.86}.entry-page h1.signal-text{overflow-wrap:normal;max-width:16em;font-size:clamp(36px,5.4vw,72px);line-height:1}.entry-page .dek{max-width:740px;color:var(--muted);margin:0 0 28px;font-size:clamp(19px,2.3vw,28px);line-height:1.3}.entry-cover{object-fit:cover;background:var(--ink);width:100%;max-height:720px;margin:0 0 64px}.prose{font-size:clamp(17px,1.6vw,20px);line-height:1.72}.entry-page>.prose{max-width:760px;margin-inline:auto}.prose h2,.prose h3{font-family:var(--display);letter-spacing:var(--tracking-display);line-height:1.05}.prose h2{margin:2.2em 0 .6em;font-size:clamp(32px,4vw,50px)}.prose h3{margin:2em 0 .5em;font-size:28px}.prose p{margin:0 0 1.4em}.prose a{text-underline-offset:3px;text-decoration-thickness:2px}.prose blockquote{border-left:6px solid var(--sky);font-family:var(--display);margin:2em 0;padding:12px 0 12px 28px;font-size:1.5em;line-height:1.25}.prose code{background:var(--chalk-deep);padding:2px 6px;font-size:.85em}.prose pre{background:var(--char);color:var(--paper);padding:24px;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose img{margin:2em 0}.prose figure{margin:2.4em 0}.prose figure img{width:100%;height:auto;margin:0}.prose figcaption{color:var(--muted);margin-top:.75em;font-size:.72em;line-height:1.45}.prose .figure--wide{width:min(1000px, calc(100vw - (var(--pad) * 2)));margin-left:50%;transform:translate(-50%)}.external-callout{border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);max-width:760px;font-family:var(--display);justify-content:space-between;margin:70px auto 0;padding:20px 0;font-size:24px;font-weight:800;text-decoration:none;display:flex}.external-callout:hover{color:var(--sky-deep)}.entry-pager{border-top:1px solid var(--chalk-deep);justify-content:space-between;gap:24px;max-width:760px;margin:56px auto 0;padding-top:20px;display:flex}.entry-pager a{flex-direction:column;gap:6px;max-width:46%;text-decoration:none;display:flex}.entry-pager a:hover b{color:var(--sky-deep)}.entry-pager span{color:var(--muted);font-size:11px;font-weight:800}.entry-pager b{font-family:var(--display);letter-spacing:var(--tracking-display);font-size:19px;font-weight:800;line-height:1.1}.entry-pager__next{text-align:right;margin-left:auto}.experiment-grid{grid-template-columns:repeat(12,1fr);gap:16px;display:grid}.experiment-card{border:2px solid var(--ink);flex-direction:column;grid-column:span 6;justify-content:space-between;min-height:330px;padding:clamp(28px,5vw,56px);text-decoration:none;display:flex}.experiment-card:first-child{background:var(--ink);color:var(--sky);grid-column:span 8}.experiment-card:nth-child(2){background:var(--purple);grid-column:span 4}.experiment-card h2{max-width:650px;font-family:var(--display);letter-spacing:var(--tracking-display);margin:50px 0 0;font-size:clamp(34px,5vw,68px);line-height:.92}.experiment-card p{margin:12px 0 0}.experiment-card:hover{background:var(--sky);color:var(--ink)}.site-footer{min-height:180px;padding:50px var(--pad);background:var(--char-deep);color:var(--paper);justify-content:space-between;align-items:flex-end;gap:30px;font-size:13px;display:flex}.site-footer p{margin:0}.site-footer div{flex-wrap:wrap;gap:20px;display:flex}.site-footer a{color:var(--sky);text-underline-offset:4px}@media (width<=850px){.site-header{grid-template-columns:auto 1fr;min-height:auto}.site-brand{gap:12px;padding-right:16px}.wordmark{padding:14px 0 14px 16px;font-size:28px}.site-nav{justify-content:flex-start}.site-nav a{padding:0 13px;font-size:10px}.feed-link{display:none}.hero{min-height:72svh}.hero__bottom,.project-hero__bottom{flex-direction:column;align-items:flex-start}.page-intro__inner,.project-copy{grid-template-columns:1fr}.book-row{grid-template-columns:minmax(0,1fr) auto;column-gap:16px}.book-row>*{grid-column:1/-1}.book-row__author{grid-area:auto/1;margin-top:8px}.book-row__year{grid-area:auto/2;margin-top:8px}.entry-card,.entry-card--large{grid-column:span 6}.see-all{width:calc(50% - 8px)}.project-grid{grid-template-columns:1fr}.experiment-card,.experiment-card:first-child,.experiment-card:nth-child(2){grid-column:span 12}}@media (width<=560px){.site-header{display:block}.wordmark{min-height:58px}.site-nav{border-top:1px solid var(--char-line);min-height:48px}.hero h1{font-size:clamp(64px,25vw,112px)}.shuffle{width:74px;margin:0 20px}.entry-card,.entry-card--large{grid-column:1/-1;min-height:280px}.see-all{width:100%}.project-card{min-height:300px}.project-hero h1{font-size:min(clamp(62px, 22vw, 100px), var(--fit-size))}.site-footer{flex-direction:column;align-items:flex-start;min-height:220px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.home-page .hero h1{font-family:var(--handwriting);font-synthesis:none;letter-spacing:normal;font-weight:700;line-height:.6}
