.prefs[data-astro-cid-n6hun5hc]{flex-wrap:wrap;gap:.5rem 2rem;margin:0 0 .75rem;display:flex}.pref[data-astro-cid-n6hun5hc]{min-inline-size:0;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:0;align-items:center;gap:0 1rem;margin:0;padding:0;font-size:.72rem;display:flex}.pref[data-astro-cid-n6hun5hc] legend[data-astro-cid-n6hun5hc]{float:left;color:var(--muted);margin-right:.25rem;padding:0}.pref[data-astro-cid-n6hun5hc] label[data-astro-cid-n6hun5hc]{cursor:pointer;min-height:2.75rem;color:var(--ink);align-items:center;gap:.35rem;display:inline-flex}.pref[data-astro-cid-n6hun5hc]:disabled label[data-astro-cid-n6hun5hc]{cursor:default;color:var(--muted)}.pref[data-astro-cid-n6hun5hc] input[data-astro-cid-n6hun5hc]{accent-color:var(--marker);margin:0}.pref[data-astro-cid-n6hun5hc] input[data-astro-cid-n6hun5hc]:focus-visible{outline:2px solid var(--marker);outline-offset:3px}.pref[data-astro-cid-n6hun5hc] input[data-astro-cid-n6hun5hc]:checked+span[data-astro-cid-n6hun5hc]{color:var(--marker)}:root{--paper:#f1f2ef;--ink:#141619;--muted:#62676d;--rule:#d3d6d3;--field:#e6e8e5;--marker:#b92d22;--blueprint:#35648a;--plate:#0b0c0d;--plate-ink:#e6e8e4;--plate-muted:#9aa0a6;--plate-marker:#ff6157;--plate-rule:#1a1d20;--display:"Archivo", "Helvetica Neue", Arial, sans-serif;--body:"Source Serif 4", Georgia, "Times New Roman", serif;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--display-weight:600;--display-tracking:-.02em;--label-tracking:.06em;--leading-tight:1.15;--leading-body:1.5;--step-3:clamp(1.6rem, 3.4vw, 2.3rem);--step-2:1.5rem;--step-1:1.15rem;--step-0:1rem;--step-x:.85rem;--step-xx:.68rem;--content-max:72rem;--gutter:clamp(1rem, 4vw, 3rem);--grid-gap:1.5rem;--measure:66ch;--cell:3px;--cell-shape:diamond;--cell-coverage:.7;--respond:.12s;--beat:.12s;--enter-page:.2s;--enter-overlay:.48s;--move-mark:.23s;--slip:.23s;--ease-out:cubic-bezier(.2, 0, 0, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--slip-x:.17em;--rise-y:.5rem;--press:.985;--slip-band:13rem;--drift:2s;--drift-short:1s;--linger:.7s;--pulse:1.4s;--pulse-spread:5px;color-scheme:light dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0f1113;--ink:#e6e8e4;--muted:#9aa0a6;--rule:#262a2e;--field:#171a1d;--marker:#ff6157;--blueprint:#7aa7cc}}:root[data-theme=dark]{--paper:#0f1113;--ink:#e6e8e4;--muted:#9aa0a6;--rule:#262a2e;--field:#171a1d;--marker:#ff6157;--blueprint:#7aa7cc;color-scheme:dark}:root[data-theme=light]{color-scheme:light}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]){--enter-overlay:0s;--move-mark:0s;--slip:0s;--ease-out:linear;--ease-in:linear;--press:1;--drift:0s;--drift-short:0s;--pulse:0s}}:root[data-motion=reduce]{--enter-overlay:0s;--move-mark:0s;--slip:0s;--ease-out:linear;--ease-in:linear;--press:1;--drift:0s;--drift-short:0s;--pulse:0s}@media (prefers-reduced-motion:no-preference){:root:not([data-motion=reduce]){scroll-behavior:smooth}}:root{--display:var(--font-display,"Helvetica Neue", Arial, sans-serif);--body:var(--font-body,Georgia, "Times New Roman", serif);--mono:var(--font-mono,ui-monospace, SFMono-Regular, Menlo, monospace)}*,:before,:after{box-sizing:border-box}html{background-color:var(--paper);color:var(--ink);font-family:var(--body);-webkit-text-size-adjust:100%;font-size:17px;line-height:1.55}body{background-image:var(--dotsLight);background-size:var(--fieldPitch) var(--fieldPitch);background-repeat:repeat;background-attachment:fixed;background-color:var(--paper);flex-direction:column;min-height:100dvh;margin:0;display:flex}img,video,svg{max-width:100%;height:auto;display:block}a{color:inherit;text-underline-offset:.15em;text-decoration-thickness:.06em}a:hover{color:var(--marker)}:focus-visible{outline:2px solid var(--marker);outline-offset:3px}.frame :focus-visible,.plate :focus-visible{outline-color:var(--plate-marker);box-shadow:0 0 0 2px var(--paper)}h1,h2,h3{font-family:var(--display);text-wrap:balance;margin:0 0 .5em;font-weight:600}h1{letter-spacing:-.02em;font-size:clamp(2.5rem,6vw,5rem);font-stretch:80%;line-height:.95}h2{letter-spacing:-.015em;margin-top:0;font-size:clamp(1.35rem,2.2vw,1.6rem);line-height:1.15}.wire-h2{font-family:var(--display);letter-spacing:-.015em;margin:0 0 .5em;font-size:clamp(1.35rem,2.2vw,1.6rem);font-weight:600;line-height:1.15}h3{letter-spacing:-.01em;font-size:1.1rem;line-height:1.2}p{max-width:var(--measure);margin:0 0 1em}code,kbd,samp{font-family:var(--mono);font-size:.85em}main{grid-template-columns:[full-start] minmax(var(--gutter), 1fr) [content-start] repeat(12, minmax(0, calc((var(--content-max) - 11 * var(--grid-gap)) / 12))) [content-end] minmax(var(--gutter), 1fr) [full-end];column-gap:var(--grid-gap);flex:1;align-content:start;padding-bottom:4rem;display:grid}main>*{grid-column:content}main>.bleed{grid-column:full}.top,.foot{width:100%;max-width:calc(var(--content-max) + 2 * var(--gutter));padding-left:var(--gutter);padding-right:var(--gutter);margin:0 auto}.skip{background:var(--ink);color:var(--paper);padding:.5rem 1rem;position:absolute;top:0;left:-999px}.skip:focus{left:var(--gutter);z-index:10}.top{border-bottom:1px solid var(--rule);flex-wrap:nowrap;justify-content:space-between;align-items:baseline;gap:1.5rem;padding-top:1.25rem;padding-bottom:1.25rem;line-height:1;display:flex}.top .name{font-family:var(--display);letter-spacing:-.01em;white-space:nowrap;font-size:.95rem;font-weight:600;text-decoration:none}.top nav{flex-wrap:nowrap;gap:clamp(.75rem,3vw,1.75rem);margin-left:auto;display:flex}.top nav a,.top .stamp{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap;font-size:.72rem;text-decoration:none}@media (hover:hover){.top nav a:hover{color:var(--marker)}}.top nav a.contact{color:var(--marker);border:1px solid;margin:-.4em 0;padding:.4em .7em}@media (hover:hover){.top nav a.contact:hover{background:var(--marker);color:var(--paper)}}.top .stamp{text-transform:none;letter-spacing:.04em}@media (width<=40rem){.top{flex-direction:column;align-items:flex-start;gap:.7rem}.top nav{flex-wrap:nowrap;justify-content:space-between;gap:0;width:100%;margin-left:0}.top nav a{letter-spacing:.03em;font-size:.64rem}.top .stamp{display:none}}.card.work{position:relative}.card.work .peek{aspect-ratio:16/9;object-fit:cover;opacity:0;width:100%;height:auto;transition:opacity var(--respond) var(--ease-out);pointer-events:none;position:absolute;top:0;left:0}@media (hover:hover) and (pointer:fine){.card.work:hover .peek,.card.work:focus-visible .peek{opacity:1}}:root[data-motion=reduce] .card.work .peek,.card.work .peek[hidden]{display:none}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]) .card.work .peek{display:none}}.card.work .pic{position:relative}.card.work .pic:after{content:"";pointer-events:none;border:1px solid #0000;position:absolute;inset:0}.card.work:has(.slip.near) .pic:after{animation:card-pulse var(--pulse) var(--ease-out) infinite}@keyframes card-pulse{0%{border-color:var(--marker);inset:0}to{inset:calc(-1 * var(--pulse-spread));border-color:#0000}}:root[data-motion=reduce] .card.work .pic:after{display:none}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]) .card.work .pic:after{display:none}}section{padding:3.5rem 0 0}section>h2{border-top:1px solid var(--rule);margin-bottom:1.25rem;padding-top:1rem}.hero{isolation:isolate;width:100%;position:relative}@media (width<=63.99rem){.hero{padding-top:0}.hero-inner{padding-top:1.75rem!important;padding-bottom:2.5rem!important}}.hero-inner{padding:3.85rem var(--gutter) 4rem;column-gap:var(--grid-gap);max-width:calc(var(--content-max) + 2 * var(--gutter));grid-template-columns:repeat(12,minmax(0,1fr));width:100%;margin-inline:auto;display:grid}.flood{z-index:-1;position:absolute;inset:0;overflow:hidden}.flood video{object-fit:cover;opacity:.5;width:100%;height:100%}.flood:after{content:"";background:linear-gradient(to bottom, color-mix(in oklab, var(--paper) 82%, transparent) 0%, color-mix(in oklab, var(--paper) 62%, transparent) 55%, color-mix(in oklab, var(--paper) 90%, transparent) 100%);position:absolute;inset:0}.hero-type{grid-column:1/-1}.hero .thesis{font-family:var(--display);letter-spacing:-.02em;text-wrap:balance;margin-top:0;font-size:clamp(2.5rem,6vw,5rem);font-weight:600;font-stretch:80%;line-height:.95}.hero .kicker{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);grid-column:1/-1;margin:0 0 1.25rem;font-size:.78rem;font-weight:500;font-stretch:100%;line-height:1.4}.hero .thesis{max-width:min(100%,15ch);margin-bottom:.35em}.hero .sub{color:var(--muted);max-width:min(100%,46ch);font-size:clamp(1.05rem,1.8vw,1.25rem)}.hero .frame{grid-column:1/-1;margin-top:2.25rem;margin-bottom:0}@media (width>=64rem){.hero-inner{align-items:start;padding-top:4.9rem;padding-bottom:5rem}.hero-type{column-gap:var(--grid-gap);grid-column:1/-1;grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;display:grid}.hero .thesis{grid-column:1/span 7;max-width:none}.hero .sub{grid-column:8/-1;max-width:none;margin-top:.75rem}.hero .frame{grid-column:1/-1;margin-top:3.5rem}}.pending{max-width:var(--measure);color:var(--muted)}.lede{color:var(--muted);max-width:58ch;margin-bottom:1.75rem}.cards{border-top:1px solid var(--rule);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.cards>li{border-bottom:1px solid var(--rule)}.card{align-items:baseline;column-gap:var(--grid-gap);transition:background-color var(--respond) var(--ease-out);grid-template-columns:minmax(0,1fr) auto;padding:1.1rem 0;text-decoration:none;display:grid}a.card:hover{background:var(--field);color:inherit}.card h3{margin:0 0 .3em}a.card:hover h3{color:var(--marker)}.card p{color:var(--muted);grid-column:1;max-width:62ch;margin:0;font-size:.95rem}.card .meta,.meta{font-family:var(--mono);letter-spacing:.06em;color:var(--muted);font-variant-numeric:tabular-nums;font-size:.72rem}.card .meta{text-align:right;white-space:nowrap;grid-area:1/2}@media (width<=34rem){.card{grid-template-columns:minmax(0,1fr)}.card .meta{text-align:left;grid-area:auto/1;padding-top:.5rem}}.cards.work-index{gap:2.5rem var(--grid-gap);border-top:0;grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr));display:grid}.cards.work-index>li{border-bottom:0}.card.work{padding:0;display:block}.card.work img{aspect-ratio:16/9;object-fit:cover;background:var(--field);width:100%}.card.work:hover{background:0 0}.card.work .body{padding:.9rem 0 0}.card.work .meta{text-align:left;white-space:normal;padding-top:.4rem;display:block}.facts{border-top:1px solid var(--rule);grid-template-columns:max-content minmax(0,1fr);gap:.4rem 1.5rem;margin:0 0 2.5rem;padding:1rem 0 0;font-size:.95rem;display:grid}.facts dt{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-top:.25em;font-size:.72rem}.facts dd{margin:0}.prose{max-width:var(--measure)}.prose h2{border-top:0;margin-top:2.5rem;padding-top:0;font-size:1.25rem}.frame{background:var(--plate);margin:0 0 2.5rem;overflow:hidden}.frame img,.frame video{width:100%}.frame figcaption{font-family:var(--mono);letter-spacing:.06em;color:var(--plate-muted);padding:.75rem 1rem;font-size:.72rem}.grid{gap:var(--grid-gap);grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr));margin:0 0 2.5rem;padding:0;list-style:none;display:grid}.grid.stills{grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr))}.grid.pairs{grid-template-columns:repeat(auto-fill,minmax(min(100%,30rem),1fr))}.grid.sheets{grid-template-columns:1fr}.grid.loops{grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr))}.grid.loops>li.full{grid-column:1/-1}.rows{gap:var(--grid-gap);--row-max:34rem;margin:0 0 2.5rem;display:grid}.jrow{gap:var(--grid-gap);width:100%;max-width:calc(var(--sum) * var(--row-max));align-items:flex-start;margin:0 auto;padding:0;list-style:none;display:flex}.jrow.full{max-width:none}.jrow>li{flex:var(--ar) 1 0%;min-width:0}.jrow img,.jrow video{width:100%;height:auto;display:block}@media (width<=40rem){.jrow{flex-wrap:wrap}.jrow>li{flex:var(--ar) 1 calc(var(--ar) * 9rem)}}@media (width>=60rem){.study-lede,.study-body,.study-body p{max-width:none}.study-lede{font-size:1.3rem;line-height:1.45}.study-body{font-size:1.2rem;line-height:1.6}}.grid figure,.jrow figure{margin:0}.grid figcaption,.jrow figcaption{font-family:var(--mono);letter-spacing:.06em;color:var(--muted);padding:.5rem 0;font-size:.72rem}.back{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:1.5rem 0 2rem;font-size:.72rem;text-decoration:none;display:inline-block}.back:hover{color:var(--marker)}.foot{color:var(--muted);border-top:1px solid var(--rule);padding-top:2rem;padding-bottom:3rem;font-size:.85rem}.foot p{flex-wrap:wrap;gap:.75rem;max-width:none;margin:0;display:flex}.foot .colophon{font-family:var(--mono);letter-spacing:.04em;max-width:70ch;margin-top:.75rem;font-size:.72rem;display:block}.mask,.wirebar,.wire-only{display:none}:root[data-wire] li.wire-only{display:list-item}:root[data-wire] ul.wire-only{display:grid}:root[data-wire] p.wire-only,:root[data-wire] div.wire-only,:root[data-wire] section.wire-only{display:block}:root[data-wire] .live-only{display:none}:root[data-wire] .mask{background:var(--field);border:1px solid var(--rule);background-image:repeating-linear-gradient(45deg, transparent 0 7px, color-mix(in srgb, var(--rule) 60%, transparent) 7px 8px);display:block;position:relative}:root[data-wire] .mask-media{padding:var(--grid-gap);align-content:center;justify-items:start;gap:.35rem;display:grid}:root[data-wire] .mask-text{padding:.75rem 1rem 1rem}.mask-label,.mask-need{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;font-size:.7rem;display:block}.mask-label{color:var(--ink)}.mask-need{color:var(--marker);text-transform:none;letter-spacing:.02em}.mask-lines{gap:calc(1.7em - 2px);margin-top:.9rem;display:grid}.mask-lines span{background:color-mix(in srgb, var(--rule) 85%, transparent);height:2px}:root[data-wire] .wirebar{padding:.6rem var(--gutter);border-bottom:1px solid var(--rule);background:var(--field);font-family:var(--mono);letter-spacing:.04em;color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:.5rem 1.25rem;font-size:.72rem;display:flex}.wirebar a{color:var(--marker)}.slip .wd{white-space:nowrap}.slip .w{position:relative}.slip-read{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.slip .true{position:relative}.slip .ghost{opacity:0;pointer-events:none;user-select:none;transition:transform var(--slip) var(--ease-out), opacity var(--slip) var(--ease-out);position:absolute;inset:0;transform:translate(0)}.slip .ghost.m{color:var(--marker)}.slip .ghost.b{color:var(--blueprint)}.slip.near .ghost.m{transform:translateX(calc(var(--slip-x) * var(--lift,0)))}.slip.near .ghost.b{transform:translateX(calc(var(--slip-x) * var(--lift,0) * -1))}a:focus-visible .slip .ghost.m{transform:translateX(var(--slip-x))}a:focus-visible .slip .ghost.b{transform:translateX(calc(var(--slip-x) * -1))}.slip .ghost{opacity:calc(var(--lift,0))}a:focus-visible .slip .ghost{opacity:1}.hero .thesis,.hero .sub{animation:hero-rise var(--enter-page) var(--ease-out) both}.hero .sub{animation-delay:var(--beat)}@keyframes hero-rise{0%{opacity:0;transform:translateY(var(--rise-y))}to{opacity:1;transform:none}}a.card:active{transform:scale(var(--press))}.card.work img,.card.work .mask{transition:transform var(--respond) var(--ease-out)}a.card.work:active img,a.card.work:active .mask{transform:scale(var(--press))}@media (prefers-color-scheme:dark){body{background-image:var(--dotsDark)}}
