:root{--ease:cubic-bezier(.22, .61, .36, 1);--gutter:clamp(20px, 3.4vw, 52px)}*,:before,:after{box-sizing:border-box}::selection{background:var(--text);color:var(--wall)}html,body{height:100%;margin:0}body{font-kerning:normal;text-rendering:optimizelegibility;-webkit-tap-highlight-color:transparent;background:var(--wall);color:var(--text);font-family:var(--font-text);font-weight:var(--text-weight);-webkit-font-smoothing:antialiased;transition:background-color .6s var(--ease);overflow:hidden}.btn{color:inherit;font:inherit;letter-spacing:inherit;cursor:pointer;background:0 0;border:0;min-height:44px;padding:10px 0;text-decoration:none}.btn:focus-visible,.sr-btn:focus-visible{outline-offset:4px;outline:1px solid}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}#stage{background:var(--wall);touch-action:none;position:fixed;inset:0;overflow:hidden}#loupe{z-index:9;pointer-events:none;background-repeat:no-repeat;background-color:var(--wall);opacity:0;transition:opacity .22s var(--ease), transform .32s var(--ease);border-radius:50%;position:fixed;top:0;left:0;transform:scale(.92);box-shadow:0 0 0 1px #ffffffbf,0 10px 34px #00000038}body.loupe-on #loupe{opacity:1;transform:scale(1)}body.loupe-on #cursor{opacity:0!important}body.loupe-on #stage{cursor:none}.layer{opacity:0;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none;max-width:none;box-shadow:0 0 0 var(--frame-gap) var(--frame-gap-color), 0 0 0 calc(var(--frame-gap) + var(--frame-width)) var(--frame-color);transition:opacity var(--t-develop-fade) var(--ease), filter var(--t-develop-sharpen) var(--ease), transform var(--t-develop-sharpen) var(--ease);will-change:opacity, filter, transform;background-size:100% 100%;margin:0;position:absolute}.layer.on{opacity:1;filter:none}.layer.enter{opacity:0;filter:var(--develop-filter);transform:scale(var(--develop-scale));transition:none}.layer.enter.intro{filter:var(--arrival-filter);transform:scale(var(--arrival-scale))}.layer.leaving{opacity:0;transition:opacity var(--t-leave) linear}body[data-transition=dissolve] .layer.enter:not(.intro){filter:none;transform:none}body[data-transition=dissolve] .layer.on:not(.intro){transition:opacity var(--t-dissolve) var(--ease)}body[data-transition=dissolve] .layer.leaving{transition:opacity calc(var(--t-dissolve) * .5) cubic-bezier(.4, 0, 1, 1) calc(var(--t-dissolve) * .5)}body[data-transition=reshape] .layer.enter:not(.intro){filter:none;transform:none}.layer.reshaping{object-fit:cover}body[data-transition=reshape] .layer.on.reshaping{transition:opacity calc(var(--t-dissolve) * .6) var(--ease), left var(--t-dissolve) var(--ease), top var(--t-dissolve) var(--ease), width var(--t-dissolve) var(--ease), height var(--t-dissolve) var(--ease)}body[data-transition=reshape] .layer.leaving.reshaping{transition:opacity calc(var(--t-dissolve) * .5) var(--ease) calc(var(--t-dissolve) * .3), left var(--t-dissolve) var(--ease), top var(--t-dissolve) var(--ease), width var(--t-dissolve) var(--ease), height var(--t-dissolve) var(--ease)}body[data-transition=soft] .layer.enter:not(.intro){filter:none;transform:none}body[data-transition=soft] .layer.on:not(.intro){transition:opacity var(--t-dissolve) cubic-bezier(.4, 0, .2, 1)}body[data-transition=soft] .layer.leaving{transition:opacity calc(var(--t-dissolve) * .8) cubic-bezier(.4, 0, .2, 1)}body[data-transition=focus] .layer.enter:not(.intro){filter:blur(10px);transform:none}body[data-transition=focus] .layer.on:not(.intro){transition:opacity calc(var(--t-dissolve) * .7) var(--ease), filter var(--t-dissolve) var(--ease)}body[data-transition=focus] .layer.leaving{filter:blur(10px);transition:opacity calc(var(--t-dissolve) * .8) ease-in, filter calc(var(--t-dissolve) * .8) var(--ease)}body[data-transition=through] .layer.enter:not(.intro){filter:none;transform:none}body[data-transition=through] .layer.on:not(.intro){transition:opacity calc(var(--t-dissolve) * .55) ease-out calc(var(--t-dissolve) * .45)}body[data-transition=through] .layer.leaving{transition:opacity calc(var(--t-dissolve) * .45) ease-in-out}.layer.intro{transition:opacity var(--t-arrival) var(--ease), filter calc(var(--t-arrival) * 1.2) var(--ease), transform calc(var(--t-arrival) * 1.2) var(--ease)}.layer.recede{opacity:0;transition:opacity .6s var(--ease), transform .9s var(--ease);transform:scale(.965)}#stage.preview .layer,#stage.preview .layer.enter{filter:none;transform:none}#stage.preview .layer,#stage.preview .layer.leaving{transition:opacity var(--t-preview) var(--ease)}#scrim{z-index:1;background:var(--wall);opacity:0;pointer-events:none;transition:opacity .9s var(--ease);position:absolute;inset:0}body[data-view=index] #scrim{opacity:var(--index-wash)}body.endcard #scrim{opacity:var(--end-wash)}.bar{z-index:5;padding:calc(env(safe-area-inset-top,0px) + 18px) var(--gutter) 0;justify-content:space-between;align-items:baseline;gap:24px;display:flex;position:fixed;top:0;left:0;right:0}.ui{opacity:0;pointer-events:none;transition:opacity var(--t-controls-fade) var(--ease)}body.awake .ui{opacity:1;pointer-events:auto}.name{font-family:var(--font-display);font-weight:var(--display-weight);font-size:var(--size-name);letter-spacing:var(--display-tracking)}.nav{font-size:var(--size-navigation);letter-spacing:.04em}.foot{z-index:5;justify-content:space-between;align-items:flex-start;gap:18px;display:flex;position:fixed;top:0;left:0}.cap{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.captitle{font-family:var(--font-caption);font-weight:var(--caption-weight);font-size:var(--size-caption-title);letter-spacing:var(--caption-tracking);text-align:left;min-height:0;padding:0;line-height:1.3}.captitle:not(:disabled):hover{text-underline-offset:5px;text-decoration:underline 1px}.captitle:disabled{cursor:default;color:inherit}#capMeta,#counter{font-size:var(--size-caption-details);letter-spacing:var(--text-tracking);opacity:.8;white-space:nowrap;line-height:1.9}#capMeta:empty,#capDetails:empty{display:none}#capDetails{letter-spacing:.03em;color:var(--muted);white-space:nowrap;font-size:11.5px;line-height:1.7}.reveal.details{opacity:0;transition:opacity var(--t-controls-fade) var(--ease)}body.awake .reveal.details{opacity:1}#counter{font-variant-numeric:tabular-nums;min-height:0;padding:3px 0 0}#counter[hidden]{display:none}.reveal{display:block}.reveal>*{transition:opacity var(--t-caption-in) var(--ease);display:inline-block}.foot:not(.shown) .reveal>*{opacity:0;transition:opacity var(--t-caption-out) linear}#cursor{z-index:8;pointer-events:none;color:#fff;mix-blend-mode:difference;opacity:0;transition:opacity .35s var(--ease);perspective:260px;position:fixed;top:0;left:0}#cursor svg{transition:transform .5s var(--ease), opacity .3s;display:block}#cursor.left svg{transform:rotateY(180deg)}#cursor.muted svg{opacity:.3}#cursor svg path{stroke-dasharray:1;stroke-dashoffset:0;transition:stroke-dashoffset .8s var(--ease)}body:not(.cursor-on) #cursor svg path{stroke-dashoffset:1px;transition-duration:.3s}body.cursor-on #cursor{opacity:1}.sr-btn{z-index:6;color:#fff;font:var(--size-navigation) var(--font-text);clip:rect(0 0 0 0);background:#00000073;border:0;width:1px;height:1px;padding:12px 16px;position:fixed;top:50%;overflow:hidden;transform:translateY(-50%)}.sr-btn:focus-visible{clip:auto;width:auto;height:auto}#prevBtn{left:16px}#nextBtn{right:16px}.lost-bar{position:fixed}.lost{flex-direction:column;justify-content:center;min-height:100vh;padding:0 clamp(24px,9vw,160px);display:flex}.lost-text{font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:var(--display-tracking);margin:0;font-size:clamp(34px,4.6vw,66px);line-height:1.15}.lost-links{font-size:var(--size-navigation);letter-spacing:.04em;margin:24px 0 0}.lost a,.lost-bar a{color:inherit}.lost-links a{text-underline-offset:5px;text-decoration:underline 1px}.links{align-items:baseline;gap:clamp(18px,2.4vw,32px);display:flex}#about{z-index:3;opacity:0;visibility:hidden;transition:opacity .5s var(--ease), visibility 0s linear .5s;flex-direction:column;justify-content:center;align-items:flex-start;padding:0 clamp(24px,9vw,160px);display:flex;position:fixed;inset:0}body[data-view=about] #about{opacity:1;visibility:visible;transition:opacity .7s var(--ease) .15s, visibility 0s}body[data-view=about] .bar{opacity:1;pointer-events:auto}body[data-view=about] .foot{opacity:0;pointer-events:none}.portrait{width:min(var(--portrait-width), 62vw);background-size:100% 100%;height:auto;margin:0 0 36px;display:block}.about-text{max-width:20em;font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:var(--display-tracking);margin:0;font-size:clamp(34px,4.6vw,66px);line-height:1.15}.about-contact{font-size:var(--size-navigation);letter-spacing:.04em;align-items:center;gap:22px;margin:28px 0 0;display:flex}.about-contact a{color:inherit;align-items:center;min-height:44px;text-decoration:none;display:inline-flex}.about-contact a:hover,.about-contact a:focus-visible{text-underline-offset:5px;text-decoration:underline 1px}.about-contact a:focus-visible{outline-offset:4px;outline:1px solid}.about-contact button.icon{color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.about-contact button.icon:focus-visible{outline-offset:4px;outline:1px solid}.copyright{letter-spacing:.04em;color:var(--muted);order:3;margin:26px 0 0;font-size:11.5px}.mail-panel{font-size:var(--size-navigation);letter-spacing:.04em;animation:mail-in .4s var(--ease);flex-wrap:wrap;align-items:baseline;gap:4px 18px;margin:6px 0 0;display:flex}.mail-panel[hidden]{display:none}.mail-panel .addr{user-select:all}.mail-panel .note{color:var(--muted)}.mail-panel .note[hidden]{display:none}.mail-panel a{color:inherit;text-underline-offset:4px;text-decoration:underline 1px;text-decoration-color:var(--muted)}.mail-panel a:hover{text-decoration-color:currentColor}@keyframes mail-in{0%{opacity:0}to{opacity:1}}.about-contact .icon svg{transition:opacity .3s var(--ease);display:block}.about-contact .icon:hover svg{opacity:.6}#index{z-index:3;opacity:0;visibility:hidden;transition:opacity .5s var(--ease), visibility 0s linear .5s;position:fixed;inset:0;overflow-y:auto}body[data-view=index] #index{opacity:1;visibility:visible;transition:opacity .6s var(--ease), visibility 0s}body[data-view=index] .bar{opacity:1;pointer-events:auto}body[data-view=index] .foot,body.endcard .foot{opacity:0;pointer-events:none}#indexList{hanging-punctuation:allow-end last;min-height:100%;margin:0;padding:16vh clamp(24px,9vw,160px);list-style:none}.s{color:var(--text);cursor:pointer;text-decoration:none}.s:focus-visible{outline-offset:6px;outline:1px solid}.s .t{font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:var(--display-tracking)}.s .m{color:var(--muted);letter-spacing:.03em;font-variant-numeric:tabular-nums;white-space:pre;font-size:12px}#index .s{opacity:0;transform:translateY(16px)}#index.entered .s{opacity:1;transition:opacity var(--t-index-rise) var(--ease) calc(var(--i) * var(--t-index-stagger) + .12s), transform var(--t-index-rise) var(--ease) calc(var(--i) * var(--t-index-stagger) + .12s), color .5s var(--ease);transform:none}#index.entered.settled .s{transition:opacity .5s var(--ease), transform .7s var(--ease), color .5s var(--ease)}#index.hovering .s:not(.active){opacity:.22}#indexList[data-style=paragraph]{--big:clamp(var(--size-index-min), 4.1vw, var(--size-index-max));max-width:1480px;padding-top:max(18vh,110px);padding-bottom:18vh;display:block}[data-style=paragraph] li{display:inline}[data-style=paragraph] .s{margin-right:.5em;display:inline-block}[data-style=paragraph] .s .t{font-size:var(--big);transition:background-size .8s var(--ease);background:linear-gradient(currentColor,currentColor) 0 94%/0% 1px no-repeat;line-height:1.26}[data-style=paragraph] .s.active .t{background-size:100% 1px}[data-style=paragraph] .m-full,[data-style=paragraph] .s .t-list{display:none}[data-style=paragraph] .s .m{top:calc(var(--big) * -.56);margin-left:.3em;position:relative}[data-style=paragraph] li.singles .t{color:var(--muted);transition:color .5s var(--ease), background-size .8s var(--ease)}[data-style=paragraph] li.singles .s.active .t{color:var(--text)}#indexList[data-style=list]{flex-direction:column;justify-content:center;gap:2px;display:flex}[data-style=list] .s{flex-wrap:wrap;align-items:baseline;column-gap:clamp(12px,1.6vw,24px);padding:3px 0;display:flex}[data-style=list] .s .t{font-size:clamp(var(--size-index-min), 4.2vw, var(--size-index-max));transition:transform .7s var(--ease);line-height:1.06;display:inline-block}[data-style=list] .m-short,[data-style=list] .s .t-flow,[data-style=list] .comma{display:none}[data-style=list] li.singles{margin-top:4vh}[data-style=list] .s.active .t{transform:translate(12px)}[data-style=list] .s .m-full{opacity:0;transition:opacity .6s var(--ease), transform .7s var(--ease);transform:translate(-6px)}[data-style=list] .s.active .m-full{opacity:1;transform:translate(12px)}@media (hover:none){#indexList{padding-top:calc(50vh - 22px)!important;padding-bottom:calc(50vh - 22px)!important}#indexList[data-style=list]{justify-content:flex-start}}#endcard{z-index:3;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .5s var(--ease), visibility 0s linear .5s;flex-direction:column;justify-content:center;align-items:flex-start;padding:0 clamp(24px,9vw,160px);display:flex;position:fixed;inset:0}body.endcard #endcard{opacity:1;visibility:visible;transition:opacity .7s var(--ease) .15s, visibility 0s}.ec-label{font-size:var(--size-caption-details);letter-spacing:.04em;color:var(--muted)}.ec-title{font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:var(--display-tracking);margin:6px 0 8px;font-size:clamp(44px,7vw,110px);line-height:1.05}.ec-meta{font-size:var(--size-caption-details);color:var(--muted);letter-spacing:.03em;white-space:pre}.ec-note{max-width:34em;font-family:var(--font-caption);font-weight:var(--caption-weight);margin-top:12px;font-size:17px;line-height:1.45}.ec-note:empty{display:none}.index-note{left:clamp(24px,9vw,160px);bottom:calc(env(safe-area-inset-bottom,0px) + 28px);pointer-events:none;max-width:34em;font-family:var(--font-caption);font-weight:var(--caption-weight);opacity:0;transition:opacity .5s var(--ease);margin:0;font-size:17px;line-height:1.45;position:fixed}.index-note.show{opacity:1}.ec-btn{pointer-events:auto;font-size:var(--size-navigation);letter-spacing:.04em;text-underline-offset:5px;margin-top:18px;text-decoration:underline 1px}#counter{cursor:pointer}#counter .cnt-all{display:none}#counter:hover,#counter:focus-visible{opacity:1;text-underline-offset:4px;text-decoration:underline 1px}#counter:hover .cnt-n,#counter:focus-visible .cnt-n{display:none}#counter:hover .cnt-all,#counter:focus-visible .cnt-all{display:inline}@media (hover:none){#counter .cnt-n:after{content:"   See all";opacity:.7}}#overview{z-index:7;visibility:hidden;pointer-events:none;touch-action:none;position:fixed;inset:0;overflow:hidden}body.overview #overview{visibility:visible;pointer-events:auto}.ov-head{z-index:2;padding:calc(env(safe-area-inset-top,0px) + 18px) var(--gutter) 0;opacity:0;transition:opacity .7s var(--ease);justify-content:space-between;align-items:baseline;gap:24px;display:flex;position:absolute;top:0;left:0;right:0}.ov-title{font-family:var(--font-caption);font-weight:var(--caption-weight);letter-spacing:var(--caption-tracking);font-size:var(--size-caption-title);margin-right:16px}.ov-meta,.ov-foot{font-size:var(--size-caption-details);color:var(--muted);letter-spacing:.03em;white-space:pre}.ov-foot{left:var(--gutter);bottom:calc(env(safe-area-inset-bottom,0px) + 26px);z-index:2;font-variant-numeric:tabular-nums;opacity:0;transition:opacity .7s var(--ease);position:absolute}#overview.in .ov-head,#overview.in .ov-foot{opacity:1}#wall{will-change:transform;height:100%;position:absolute;top:0;left:0}.wp{cursor:pointer;transform-origin:0 0;perspective:1000px;opacity:0;transition:opacity calc(var(--t-wall) * .8) var(--ease) var(--d,0s), transform var(--t-wall) var(--ease) var(--d,0s);background:0 0;border:0;padding:0;position:absolute}#overview.in .wp{opacity:1}.wp img{width:100%;height:100%;box-shadow:0 0 0 var(--wp-gap,0px) var(--frame-gap-color), 0 0 0 calc(var(--wp-gap,0px) + var(--wp-frame,0px)) var(--frame-color);transform:rotateY(var(--tilt,0deg)) scale(var(--hs,1));transition:transform .7s var(--ease), opacity .5s var(--ease);user-select:none;-webkit-user-drag:none;background-size:100% 100%;display:block}.wp:hover img{--hs:1.02}.wp.lifting img{transform:none!important}#wall.hovering .wp:not(:hover):not(.lifting) img{opacity:.5}body.keyboard .wp:focus-visible{outline:1px solid var(--text);outline-offset:12px}#overview.grid{touch-action:pan-y;overscroll-behavior:contain;overflow:hidden auto}#overview.grid .ov-head{z-index:4;background:var(--wall);padding-bottom:12px;position:fixed}#overview.grid .ov-foot{display:none}#overview.grid #wall{width:100%;position:relative;transform:none!important}#overview.grid .wp{perspective:none}#overview.grid .wp:hover,body.keyboard #overview.grid .wp:focus-visible{z-index:3}#overview.grid .wp img{transform:scale(var(--hs,1));transition:transform .45s var(--ease), opacity .5s var(--ease)}#overview.grid .wp:hover img,body.keyboard #overview.grid .wp:focus-visible img{--hs:var(--grid-zoom)}#overview.grid #wall.hovering .wp:not(:hover) img{opacity:1}#overview.grid .wp.lifting{z-index:5}#overview.grid .wp:focus-visible{outline:none}body.keyboard #overview.grid .wp:focus-visible img{outline:1px solid var(--text);outline-offset:4px}@media (hover:none){#overview.grid .wp:hover img{--hs:1}}body.overview #stage .layer{opacity:0!important;transition:none!important}body.overview .foot,body.overview .bar{opacity:0!important;pointer-events:none!important;transition:none!important}.layer.instant{transition:none!important}@media (prefers-reduced-motion:reduce){.layer,.layer.intro,.layer.recede,#stage.preview .layer.on{transition:opacity var(--t-reduced) linear!important;filter:none!important;transform:none!important}#index .s,[data-style] .s .t,[data-style] .s .m-full{transition-delay:0s!important;transform:none!important}#scrim,#index,#endcard,#about,.s{transition-duration:.2s!important}.wp{transition:opacity .2s linear!important}.wp img{transform:none!important}.reveal>*{transition-duration:var(--t-reduced)!important}.ui{transition-duration:.2s!important}#cursor svg{transition:none}}
