:root{--top-h:4rem;--paper:#eff0ee;--ink:#101010;--dim:#75746f;--line:#d9d9d4;--tint:var(--paper);--tint-mix:14%;--ground:color-mix(in oklab, var(--paper), var(--tint) var(--tint-mix));--font:"Archivo", "Helvetica Neue", Helvetica, Arial, sans-serif;--gutter:clamp(1rem, 3.5vw, 3rem);--max:1280px;--ease:cubic-bezier(.2, .7, .2, 1);color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--paper:#121212;--ink:#ededea;--dim:#8e8d88;--line:#2a2a28;--tint-mix:10%}}*,:before,:after{box-sizing:border-box}html{background:var(--ground);transition:background-color .9s var(--ease);scroll-behavior:smooth}body{color:var(--ink);font-family:var(--font);font-variation-settings:"wdth" 100;-webkit-font-smoothing:antialiased;background:0 0;flex-direction:column;min-height:100dvh;margin:0;font-size:.95rem;line-height:1.55;display:flex}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--ink);outline-offset:4px}h1,h2,h3{letter-spacing:-.005em;text-wrap:balance;margin:0;font-size:1rem;font-weight:500;line-height:1.3}p{margin:0}::selection{background:var(--ink);color:var(--paper)}.wide{font-variation-settings:"wdth" 125}.narrow{font-variation-settings:"wdth" 75;font-variant-numeric:tabular-nums}.top{z-index:20;max-width:var(--max);padding:1.1rem var(--gutter);background:var(--ground);transition:background-color .9s var(--ease), transform .42s var(--ease);justify-content:space-between;align-items:center;gap:1rem;margin-inline:auto;font-size:.9rem;display:flex;position:fixed;inset:0 0 auto}.top.away{transform:translateY(-100%)}@media (prefers-reduced-motion:reduce){.top{transition:none}}.top .mark{cursor:default;font-weight:500;display:inline-flex}.top .mark .ch{transition:transform .5s var(--ease), font-variation-settings .5s var(--ease);display:inline-block}@media (hover:hover) and (prefers-reduced-motion:no-preference){.top .mark:hover .ch{font-variation-settings:"wdth" 122}.top .mark:hover .ch:nth-child(odd){transform:translateY(-1.5px)}.top .mark:hover .ch:nth-child(2n){transform:translateY(1.5px)}.top .mark .ch{transition-delay:calc(var(--i,0) * 18ms)}}.top ul{gap:clamp(1rem,2.5vw,2.25rem);margin:0;padding:0;list-style:none;display:flex}.top a{color:var(--dim);transition:color .2s}.top a:hover,.top a[aria-current=page]{color:var(--ink)}.top .n{font-variation-settings:"wdth" 75;color:var(--dim);vertical-align:.15em;margin-inline-start:.35rem;font-size:.8em}@media (width<=560px){:root{--top-h:5.6rem}.top{flex-wrap:wrap;row-gap:.35rem;padding-block:.9rem;font-size:.9rem}.top .mark{flex-basis:100%}.top ul{flex-wrap:wrap;gap:1rem}.top .n{display:none}}main{padding:0 var(--gutter) 6rem;width:100%;max-width:var(--max);flex:1;margin-inline:auto}.hero{padding-top:calc(var(--top-h,4rem) + clamp(2rem, 12vh, 6rem));flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:2rem;padding-bottom:clamp(2.5rem,7vh,5rem);display:flex}.hero h1,.hero p{letter-spacing:0;text-wrap:pretty;max-width:38ch;font-size:1.05rem;font-weight:400;line-height:1.5}.vh{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.hero .n{color:var(--dim);white-space:nowrap;font-size:.9rem}.sheet{flex-direction:column;gap:clamp(2.5rem,5vw,4rem);display:flex}.sheet .col{display:contents}.piece{order:var(--i,0);min-width:0;margin:0;position:relative}@media (width>=820px){.sheet{column-gap:var(--gutter);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.sheet .col{row-gap:clamp(3rem,5vw,4rem);display:grid}.piece{order:0}}.piece a{min-width:0;transition:transform .45s var(--ease);display:block}.piece img{width:100%;max-width:100%;height:auto;transition:box-shadow .45s var(--ease)}@media (hover:hover){.piece a:hover{transform:translateY(-6px)}.piece a:hover img{box-shadow:0 30px 50px -28px #00000073}.piece:has(a:hover) .t{text-underline-offset:.2em;text-decoration:underline 1px}}.piece figcaption{flex-wrap:wrap;justify-content:space-between;gap:.15rem 1rem;min-width:0;margin-top:.65rem;font-size:.85rem;line-height:1.4;display:flex}.piece .t{flex:none;max-width:100%;font-weight:400}.piece .m{color:var(--dim);text-align:end;font-variation-settings:"wdth" 88;flex:14ch;min-width:0}.cursor{z-index:30;pointer-events:none;background:var(--ink);color:var(--paper);transition:transform .25s var(--ease);border-radius:999px;padding:.55rem .8rem;font-size:.8rem;font-weight:500;position:fixed;top:0;left:0;transform:translate(-50%,-50%)scale(0)}.cursor.on{transform:translate(-50%,-50%)scale(1)}@media (hover:none),(prefers-reduced-motion:reduce){.cursor{display:none}}.index{padding-top:clamp(4rem,10vw,8rem)}.index h1,.index h2{color:var(--dim);margin-bottom:1.25rem;font-size:.9rem;font-weight:400}.series-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.series-list li{border-bottom:1px solid var(--line)}.series-list a{transition:padding-inline-start .4s var(--ease), color .3s;grid-template-columns:1fr auto;align-items:baseline;gap:.25rem 1rem;padding:1.1rem 0;font-size:1.05rem;font-weight:500;line-height:1.3;display:grid}.series-list a:hover{padding-inline-start:.75rem}.series-list .count{color:var(--dim);font-variant-numeric:tabular-nums;font-size:.85rem}.series-list .desc{color:var(--dim);grid-column:1/-1;max-width:60ch;font-size:.85rem;font-weight:400;line-height:1.45}.float{z-index:10;pointer-events:none;opacity:0;width:clamp(180px,26vw,380px);transition:opacity .25s, transform .45s var(--ease);position:fixed;top:0;left:0;transform:translate(-50%,-50%)rotate(-2deg)scale(.92)}.float.on{opacity:1;transform:translate(-50%,-50%)rotate(0)scale(1)}.float img{width:100%;height:auto;box-shadow:0 30px 60px -20px #00000059}@media (hover:none),(prefers-reduced-motion:reduce){.float{display:none}}.outro{max-width:38ch;color:var(--dim);margin-top:clamp(3rem,8vw,6rem);font-size:.95rem;line-height:1.5}.series-head{padding-top:calc(var(--top-h,4rem) + clamp(2rem, 12vh, 6rem));column-gap:var(--gutter);grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;row-gap:1rem;padding-bottom:clamp(2rem,6vw,5rem);display:grid}.series-head h1{grid-column:1/5;font-size:1.05rem;font-weight:500}.series-head p{color:var(--dim);grid-column:5/10;max-width:48ch;font-size:.95rem;line-height:1.5}@media (width<=819px){.series-head h1,.series-head p{grid-column:1/-1}}.work{padding-top:calc(var(--top-h,4rem) + clamp(1.5rem, 6vh, 4rem));column-gap:var(--gutter);grid-template-columns:repeat(12,minmax(0,1fr));row-gap:1.5rem;display:grid}.work .canvas{cursor:zoom-in;grid-column:1/-1;justify-items:center;min-width:0;display:grid;position:relative}.work .canvas .view{width:auto;max-height:84vh;max-width:min(100%, calc(var(--nw,9999px) / 1.5));opacity:0;visibility:hidden;transition:opacity .45s var(--ease), visibility 0s .45s;grid-area:1/1}.work .canvas .view:not(.on){object-fit:contain;width:auto;max-width:100%;height:100%;position:absolute;top:0;left:50%;transform:translate(-50%)}.work .canvas .view.on{opacity:1;visibility:visible;transition:opacity .45s var(--ease)}.views{flex-wrap:wrap;grid-column:1/-1;gap:.75rem;margin-top:-.5rem;display:flex}.views button{cursor:pointer;font:inherit;color:var(--dim);text-align:start;background:0 0;border:0;align-content:start;gap:.35rem;width:88px;padding:0;display:grid}.views button img{object-fit:cover;opacity:.55;width:88px;height:66px;transition:opacity .25s}.views button span{font-size:.75rem;line-height:1.25}.views button:hover img,.views button[aria-selected=true] img{opacity:1}.views button[aria-selected=true]{color:var(--ink)}.work .label{grid-column:1/7}.work .label h1{font-size:1.05rem;font-weight:500}.work .label p{color:var(--dim);margin-top:.3rem;font-size:.9rem}.work .facts{grid-column:7/10;grid-template-columns:auto 1fr;align-content:start;gap:.3rem 1.25rem;font-size:.9rem;display:grid}.work .facts dt{color:var(--dim)}.work .facts dd{font-variation-settings:"wdth" 88;font-variant-numeric:tabular-nums;margin:0}.work .act{grid-column:10/13;place-self:start end}.btn{white-space:nowrap;background:var(--ink);color:var(--paper);transition:transform .25s var(--ease), opacity .2s;border-radius:999px;align-items:center;gap:.5rem;padding:.6rem 1rem;font-size:.85rem;font-weight:500;display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn.quiet{color:var(--dim);border:1px solid var(--line);background:0 0}.work .note{color:var(--dim);grid-column:7/10;max-width:34ch;margin-top:-.5rem;font-size:.85rem;line-height:1.45}@media (width<=819px){.work .label,.work .facts,.work .act,.work .note{grid-column:1/-1}.work .act{justify-self:start}.work .note{margin-top:0}}.viewer{z-index:40;background:color-mix(in oklab, var(--ground) 92%, var(--ink));opacity:0;transition:opacity .28s var(--ease);grid-template-rows:1fr auto;display:grid;position:fixed;inset:0}.viewer[hidden]{display:none}.viewer.on{opacity:1}.panel[hidden],.veil[hidden]{display:none}.viewer .stage{cursor:grab;touch-action:none;position:relative;overflow:hidden}.viewer .stage:active{cursor:grabbing}.viewer .stage img{transform-origin:0 0;user-select:none;-webkit-user-drag:none;will-change:transform;max-width:none;position:absolute;top:0;left:0}.viewer .bar{padding:.9rem var(--gutter);color:var(--dim);border-top:1px solid var(--line);background:var(--ground);justify-content:space-between;align-items:center;gap:1rem;font-size:.85rem;display:flex}.viewer .hint{transition:opacity .6s}.viewer .hint.gone{opacity:0}.viewer .tools{align-items:center;gap:.6rem;display:flex}.viewer .tools button{border:1px solid var(--line);color:var(--ink);font:inherit;cursor:pointer;background:0 0;border-radius:999px;place-items:center;width:2rem;height:2rem;display:grid}.viewer .tools button:hover{border-color:var(--ink)}.viewer .tools .close-v{width:auto;margin-inline-start:.5rem;padding:0 .9rem}.viewer .pct{text-align:center;font-variant-numeric:tabular-nums;min-width:3.2rem}@media (prefers-reduced-motion:reduce){.viewer{transition:none}}.neighbours{gap:var(--gutter);border-top:1px solid var(--line);grid-column:1/-1;grid-template-columns:1fr 1fr;margin-top:clamp(3rem,8vw,6rem);padding-top:1.5rem;display:grid}.neighbours a{align-items:flex-start;gap:1rem;min-width:0;font-size:.9rem;display:flex}.neighbours a img{flex:none;width:80px;height:auto}.neighbours .next{text-align:end;justify-self:end}.neighbours .dir,.neighbours .meta{color:var(--dim);font-size:.8rem;display:block}.neighbours .dir{margin-bottom:.15rem}.neighbours .meta{margin-top:.15rem}@media (width<=520px){.neighbours{grid-template-columns:1fr}.neighbours .next{text-align:start;flex-direction:row-reverse;justify-content:flex-end;justify-self:start}}.rows{max-width:56rem;margin:0;padding:0;list-style:none}.rows li{border-top:1px solid var(--line);transition:padding-inline-start .35s var(--ease);grid-template-columns:4rem 1fr auto;align-items:baseline;gap:1rem;padding:1rem 0;font-size:.95rem;display:grid}.rows li:last-child{border-bottom:1px solid var(--line)}.rows li:hover{padding-inline-start:.5rem}.rows .y{color:var(--dim);font-variant-numeric:tabular-nums}.rows .what{font-weight:500}.rows .what span{color:var(--dim);margin-top:.15rem;font-size:.9rem;font-weight:400;display:block}.rows .kind{color:var(--dim);text-align:end;font-size:.85rem}@media (width<=640px){.rows li{grid-template-columns:1fr;gap:.25rem}.rows .kind{text-align:start}}.about{grid-template-columns:180px minmax(0,60ch);align-items:start;gap:1.5rem clamp(2rem,5vw,4rem);display:grid}.about .who{min-width:0}.about .who img{border-radius:50%;width:100%;max-width:180px;height:auto}.about .who small{color:var(--dim);margin-top:.5rem;font-size:.85rem;display:block}.about .text{min-width:0}.about .text>:first-child{margin-bottom:1.25rem;font-size:1.05rem;line-height:1.5}.about .text p{color:var(--ink);margin-bottom:1rem}.about .text p+p{color:var(--dim)}.about .text a{text-underline-offset:.2em;text-decoration:underline}.about .text h2{color:var(--dim);margin:1.75rem 0 .6rem;font-size:.85rem;font-weight:400}@media (width<=640px){.about{grid-template-columns:1fr}.about .who img{max-width:140px}}.contact{max-width:44rem}.dim{color:var(--dim)}.contact p{color:var(--dim);max-width:44ch;margin-bottom:2rem;font-size:.95rem}.contact ul{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.contact li{border-bottom:1px solid var(--line)}.contact li a,.contact li>span{transition:padding-inline-start .35s var(--ease);grid-template-columns:6rem 1fr;gap:1rem;padding:1rem 0;font-size:.95rem;display:grid}.contact li a:hover{padding-inline-start:.75rem}.contact li span:first-child{color:var(--dim)}.contact li small{font-size:inherit}.page{padding-top:calc(var(--top-h,4rem) + clamp(2rem, 10vh, 6rem))}.veil{z-index:14;background:color-mix(in oklab, var(--ink) 18%, transparent);opacity:0;transition:opacity .4s var(--ease);position:fixed;inset:0}.veil.on{opacity:1}.panel{z-index:15;background:var(--ground);overscroll-behavior:contain;max-height:88dvh;transition:transform .52s var(--ease);border-bottom:1px solid var(--line);position:fixed;inset:0 0 auto;overflow:auto;transform:translateY(-100%)}.panel.on{transform:translateY(0)}.panel-in{padding:calc(var(--top-h,4rem) + 1.25rem) var(--gutter) 2.5rem;max-width:var(--max);margin-inline:auto}.panel .close-bar{top:calc(var(--top-h,4rem) + .5rem);z-index:1;justify-content:flex-end;height:0;display:flex;position:sticky}.panel .close{border:1px solid var(--line);background:var(--ground);width:2.5rem;height:2.5rem;color:var(--ink);font:inherit;cursor:pointer;transition:border-color .2s, transform .25s var(--ease);border-radius:999px;place-items:center;padding:0 0 .15rem;font-size:1.5rem;line-height:1;display:grid}.panel .close:hover{border-color:var(--ink);transform:rotate(90deg)}.panel .about,.panel .contact,.panel .rows,.panel .dim{margin-top:.25rem}.panel .contact>p:first-child{padding-inline-end:3.5rem}.panel .rows,.panel .about,.panel .contact{padding-top:0}@media (prefers-reduced-motion:reduce){.panel,.veil{transition:none}}.foot{padding:2rem var(--gutter) 2.5rem;width:100%;max-width:var(--max);color:var(--dim);flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;margin-inline:auto;font-size:.85rem;display:flex}.foot .links{flex-wrap:wrap;gap:1.25rem;display:flex}.foot a:hover{color:var(--ink)}@media (prefers-reduced-motion:no-preference){::view-transition-old(root),::view-transition-new(root){animation-duration:.35s}}.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}@layer astro.images{:where([data-astro-image]){height:auto}:where([data-astro-image=full-width]){width:100%}:where([data-astro-image=constrained]){max-width:100%}[data-astro-image-fit=fill]{object-fit:fill}[data-astro-image-fit=contain]{object-fit:contain}[data-astro-image-fit=cover]{object-fit:cover}[data-astro-image-fit=scale-down]{object-fit:scale-down}[data-astro-image-pos=top]{object-position:top}[data-astro-image-pos=bottom]{object-position:bottom}[data-astro-image-pos=left]{object-position:left}[data-astro-image-pos=right]{object-position:right}[data-astro-image-pos=center]{object-position:center}[data-astro-image-pos=top-bottom]{object-position:top bottom}[data-astro-image-pos=top-left]{object-position:top left}[data-astro-image-pos=top-right]{object-position:top right}[data-astro-image-pos=top-center]{object-position:top center}[data-astro-image-pos=bottom-top]{object-position:bottom top}[data-astro-image-pos=bottom-left]{object-position:bottom left}[data-astro-image-pos=bottom-right]{object-position:bottom right}[data-astro-image-pos=bottom-center]{object-position:bottom center}[data-astro-image-pos=left-top]{object-position:left top}[data-astro-image-pos=left-bottom]{object-position:left bottom}[data-astro-image-pos=left-right]{object-position:left right}[data-astro-image-pos=left-center]{object-position:left center}[data-astro-image-pos=right-top]{object-position:right top}[data-astro-image-pos=right-bottom]{object-position:right bottom}[data-astro-image-pos=right-left]{object-position:right left}[data-astro-image-pos=right-center]{object-position:right center}[data-astro-image-pos=center-top]{object-position:center top}[data-astro-image-pos=center-bottom]{object-position:center bottom}[data-astro-image-pos=center-left]{object-position:center left}[data-astro-image-pos=center-right]{object-position:center right}}
