
@font-face{font-family:"Montserrat";src:url("../fonts/montserrat-var.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Raleway";src:url("../fonts/raleway-900.woff2") format("woff2");font-weight:900;font-style:normal;font-display:swap}

:root{
  color-scheme:dark;
  --wall:#000;
  --deep:#000;
  --frame:#0b0a0d;
  --ink:#ece8ef;
  --soft:#bfb9c6;
  --dim:#857f8c;
  --line:#1d1a24;
  --v1:#440A74;
  --v2:#B619F0;
  --veil:rgba(0,0,0,.96);
  --grad:linear-gradient(to top right,var(--v1),var(--v2));
  --mark:"Raleway","Arial Black",Arial,sans-serif;
  --text:"Montserrat","Helvetica Neue",Arial,sans-serif;

  --t-mega:clamp(32px,4.5vw,68px);
  --t-head:clamp(26px,3vw,46px);
  --t-lead:clamp(18px,1.55vw,23px);
  --t-body:clamp(15px,1.05vw,16.5px);
  --t-meta:12px;

  --pad:clamp(18px,4vw,64px);
  --gut:clamp(16px,2vw,32px);
  --sec:clamp(96px,11.5vw,184px);
  --gap:clamp(28px,3.4vw,52px);
  --ease:cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:96px;scrollbar-gutter:stable}
body{margin:0;overflow-x:clip;background:var(--wall);color:var(--ink);font-family:var(--text);font-size:var(--t-body);line-height:1.6;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-kerning:normal}
img,video,canvas{display:block;max-width:100%}
h1,h2,h3,p,ul,figure,dl,dd{margin:0}
ul{padding:0;list-style:none}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;background:none;border:0;padding:0;cursor:pointer}
:focus-visible{outline:2px solid var(--v2);outline-offset:4px}
::selection{background:var(--v1);color:var(--ink)}
.skip{position:fixed;left:var(--pad);top:-80px;z-index:40;background:var(--ink);color:var(--wall);padding:10px 14px;font-size:var(--t-meta);font-weight:600}
.skip:focus{top:12px}
.fx{position:absolute;width:0;height:0}

[hidden]{display:none!important}

html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}

.grain{position:fixed;inset:0;width:100%;height:100%;max-width:none;z-index:20;pointer-events:none;mix-blend-mode:soft-light}
.grain-floor{mix-blend-mode:screen}

.shell{width:100%;max-width:calc(1280px + 2*var(--pad));margin-inline:auto;padding-inline:var(--pad)}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut)}
.left{grid-column:1 / span 6;min-width:0}
.right{grid-column:7 / -1;min-width:0}
.full{grid-column:1 / -1;min-width:0}
main{display:flex;flex-direction:column;gap:var(--sec);overflow-x:clip}

.meta{font-size:var(--t-meta);font-weight:500;letter-spacing:.14em;text-transform:uppercase;line-height:1.3}
.head{font-size:var(--t-head);font-weight:700;line-height:1;letter-spacing:-.035em;width:fit-content;padding:.08em .06em .2em;margin:-.08em -.06em -.2em;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.lead{font-size:var(--t-lead);font-weight:500;line-height:1.3;letter-spacing:-.015em;color:var(--ink);text-wrap:pretty}
.copy{color:var(--soft);max-width:46ch;text-wrap:pretty}
.link{background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;transition:background-size .6s var(--ease)}
.link:hover{background-size:0 1px;background-position:100% 100%}

.sec-head{position:relative;align-items:baseline;row-gap:20px;margin-bottom:var(--gap);padding-top:clamp(20px,2vw,28px)}
.sec-head::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--line);transform-origin:0 50%}

.wm{font-family:var(--mark);font-weight:900;text-transform:uppercase;font-kerning:normal;white-space:nowrap;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;width:fit-content}
.halo{filter:url(#halation)}
.head,.statement h2,.home img{filter:url(#sharp)}

@view-transition{navigation:auto}
.top{view-transition-name:site-header}
@media (prefers-reduced-motion:no-preference){
  ::view-transition-old(root){animation:.32s cubic-bezier(.4,0,1,1) both vt-out}
  ::view-transition-new(root){animation:.7s var(--ease) .12s both vt-in}
  ::view-transition-group(site-header){animation-duration:.5s;animation-timing-function:var(--ease)}
  @keyframes vt-out{to{opacity:0}}
  @keyframes vt-in{from{opacity:0;transform:translateY(14px)}}
}
@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}

.top{position:fixed;inset:0 0 auto 0;z-index:30;transition:transform .7s var(--ease),background-color .4s,border-color .4s;border-bottom:1px solid transparent}
.covered .top{z-index:18}
.top.solid{background:var(--wall);border-color:var(--line)}
.top.away{transform:translateY(-110%)}
.top-in{align-items:center;padding-block:20px}
.home{grid-column:1 / span 6;justify-self:start}
.home img{width:38px;height:auto}
.home{transition:opacity .5s,visibility .5s}
.top.hero-on .home{opacity:0;visibility:hidden}
.top nav{grid-column:7 / -1}
.top nav ul{display:flex;justify-content:space-between;color:var(--soft)}
.top nav a{position:relative;display:block;padding-block:8px;transition:color .3s}
.top nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.top nav a:hover,.top nav a[aria-current="true"]{color:var(--ink)}
.top nav a:hover::after,.top nav a[aria-current="true"]::after{transform:scaleX(1)}
.top nav,.top .menu{transition:opacity .45s var(--ease)}
.viewing .top nav,.viewing .top .menu{opacity:0}
.menu,.sheet i,.menu-foot{display:none}

.hero{padding-top:clamp(92px,8vw,120px);row-gap:16px;min-height:0;align-content:start}
.hero-text{container-type:inline-size;display:flex;flex-direction:column;gap:clamp(20px,2.4vw,34px)}
.hero-word{font-size:16.3cqw;letter-spacing:-.026em;line-height:.83;padding:.1em .06em;margin:-.146em -.06em -.1em -.122em;will-change:transform}   .hero-line{max-width:22ch;margin-top:auto}
.hero-facts{width:66.4cqw}
.hero-art{position:relative}
.hero-glow{position:absolute;inset:0;z-index:0;background:url("../media/flow-poster-800.webp") center/cover;
  background-image:image-set(url("../media/flow-poster-800.avif") type("image/avif"),url("../media/flow-poster-800.webp") type("image/webp"));filter:blur(26px) saturate(1.15);opacity:.16;pointer-events:none}
.hero-glow.far{filter:blur(84px) saturate(1.2);opacity:.1}
.art{display:block;aspect-ratio:1;width:100%;position:relative;overflow:hidden;background:var(--frame)}
.art img,.art video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-art video,.piece .art video{opacity:0;transition:opacity 1s ease-out}
.hero-art video.on,.piece .art video.on{opacity:1}
.hero-art .art{z-index:1}

.label{display:flex;flex-direction:column;gap:6px}
.label b{font-size:var(--t-meta);font-weight:600;letter-spacing:.16em;text-transform:uppercase;line-height:1.3;white-space:nowrap}
.label span{font-size:var(--t-meta);letter-spacing:.02em;color:var(--dim);line-height:1.3}
.piece .label{gap:9px;width:var(--w)}
.label-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.label-top b{overflow:hidden;text-overflow:ellipsis}
.label-top .yr{flex:none;letter-spacing:.02em;white-space:nowrap}
.label .line{display:block;font-size:clamp(13px,.95vw,14.5px);line-height:1.5;letter-spacing:0;color:var(--soft);text-wrap:pretty}

.statement{row-gap:clamp(28px,3vw,48px);padding-block:clamp(64px,7.5vw,140px)}
.statement h2{grid-column:1 / span 8;font-size:clamp(36px,4vw,58px);font-weight:700;line-height:1.06;letter-spacing:-.035em;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;padding:.08em .06em .22em;margin:-.08em -.06em -.22em}
.statement h2 span{display:block}
.statement p{grid-column:7 / span 5;max-width:34ch;font-size:clamp(17px,1.3vw,20px);line-height:1.6;color:var(--soft);text-wrap:pretty}

.gallery{position:relative;margin-bottom:calc(min(clamp(200px,22vw,310px),34svh)*-.3)}
.gallery .sec-head{margin-bottom:0}
.ctls{display:flex;align-items:center;justify-content:flex-end;gap:clamp(22px,2.6vw,40px)}
.ctl{position:relative;display:flex;align-items:center;gap:10px;padding-block:8px;color:var(--soft);transition:color .3s}
.ctl:hover{color:var(--ink)}
.ctl .word{position:relative}
.ctl .word::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.ctl:hover .word::after{transform:scaleX(1)}
.dart{position:relative;width:14px;height:14px;flex:none;overflow:hidden}
.dart svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;transition:transform .6s var(--ease)}
#nextWork .dart svg + svg{transform:translateX(-150%)}
#prevWork .dart svg + svg{transform:translateX(150%)}
@media (hover:hover){
  #nextWork:hover .dart svg{transform:translateX(150%)}
  #prevWork:hover .dart svg{transform:translateX(-150%)}
  .ctl:hover .dart svg + svg{transform:none}
}
#drift{min-width:5.2em}
.glyph{display:flex;width:8px;height:9px;flex:none}
.glyph i{flex:1;background:currentColor;transition:clip-path .55s var(--ease)}
.glyph i:first-child{clip-path:polygon(0 0,62% 0,62% 100%,0 100%)}
.glyph i:last-child{clip-path:polygon(38% 0,100% 0,100% 100%,38% 100%)}
#drift[aria-pressed="true"] .glyph i:first-child{clip-path:polygon(0 0,100% 25%,100% 75%,0 100%)}
#drift[aria-pressed="true"] .glyph i:last-child{clip-path:polygon(0 25%,100% 50%,100% 50%,0 75%)}
.wall{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;touch-action:pan-x pan-y;-webkit-user-select:none;user-select:none}
.wall::-webkit-scrollbar{display:none}
.track{--w:min(clamp(200px,22vw,310px),34svh);display:flex;gap:calc(var(--w)*.62);width:max-content;padding-inline:max(var(--pad),calc((100vw - 1280px)/2))}
.piece{width:var(--w);min-height:calc(var(--w)*2.2);padding-top:calc(var(--w)*.5);position:relative;display:flex;flex-direction:column;gap:calc(var(--w)*.17);flex:none}
.piece::before{content:"";position:absolute;z-index:0;left:calc(var(--w)*-1);width:calc(var(--w)*3);top:calc(var(--w)*-.2);height:calc(var(--w)*2.4);
  background:var(--wallmap) center/100% 100% no-repeat;pointer-events:none}
.piece > picture{position:absolute;left:0;top:0;width:100%;height:0}
.bloom{position:absolute;z-index:1;left:0;top:calc(var(--w)*.5);width:var(--w);height:var(--w);object-fit:cover;filter:blur(36px) saturate(1.3);opacity:.14;pointer-events:none}
.piece .art,.piece .label{position:relative;z-index:2}
.piece .art{cursor:inherit}
.piece .art::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(rgba(0,0,0,0) 45%,rgba(0,0,0,.16))}

.cursor{position:fixed;left:0;top:0;z-index:25;width:68px;height:68px;margin:-34px 0 0 -34px;border-radius:50%;display:grid;place-items:center;
  background:var(--ink);color:var(--wall);font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;pointer-events:none;
  opacity:0;scale:.5;translate:-100px -100px;will-change:translate;transition:opacity .28s var(--ease),scale .36s var(--ease)}
.cursor.on{opacity:1;scale:1}
@media (hover:hover) and (pointer:fine){.wall{cursor:none}}
@media not ((hover:hover) and (pointer:fine)){
  .cursor,#drift{display:none}
  .wall{scroll-snap-type:x mandatory;scroll-padding-inline:max(var(--pad),calc((100vw - 1280px)/2))}
  .piece{scroll-snap-align:start}
}

.viewer:focus{outline:none}
.viewer{position:fixed;z-index:19;border:0;padding:0;margin:0;inset:0;width:100%;height:100dvh;max-width:none;max-height:none;overflow:hidden;background:transparent;color:var(--ink);scrollbar-width:none}
.viewer-dim{position:fixed;inset:0;z-index:-1;background:var(--wall);pointer-events:none}
.viewer::-webkit-scrollbar{display:none}
.viewer::backdrop{background:transparent}
.viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr);overflow-x:clip;overflow-y:auto}
.viewer-top{align-items:center;padding-block:20px;border-bottom:1px solid transparent;
  border-image:linear-gradient(var(--line),var(--line)) 0 0 1 0 / 0 0 1px 0 / 0 100vw}
.viewer-nav{grid-column:7 / -1}
.viewer-nav ul{display:flex;justify-content:space-between;color:var(--soft)}
.viewer-nav button{position:relative;display:block;padding-block:8px;color:inherit;transition:color .3s}
.viewer-nav button::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.viewer-nav button:hover{color:var(--ink)}
.viewer-nav button:hover::after{transform:scaleX(1)}
.viewer-body{align-items:center;align-content:center;padding-block:clamp(8px,2vh,24px) clamp(20px,4vh,48px)}
.viewer-text{display:flex;flex-direction:column;justify-content:space-between;gap:clamp(24px,4vh,48px);align-self:stretch}
.viewer-title{font-size:clamp(28px,3.4vw,50px);font-weight:700;line-height:1.02;letter-spacing:-.035em;text-wrap:balance;margin:0 0 clamp(16px,2vh,24px);
  width:fit-content;padding:.08em .06em .2em;margin-inline:-.06em;margin-top:-.08em;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;filter:url(#sharp)}
.viewer-head .lead{color:var(--soft);max-width:28ch}
.viewer-text .facts{max-width:420px}
.viewer-art{position:relative;width:min(100%,calc(100dvh - 150px));aspect-ratio:1;justify-self:start}
.viewer-art::before{content:"";position:absolute;left:-100%;width:300%;top:-70%;height:240%;background:var(--wallmap) center/100% 100% no-repeat;pointer-events:none}
.viewer-art .art{position:relative;z-index:2;transform-origin:0 0}
.viewer-art::before{opacity:0}
.viewer.lit .viewer-art::before{opacity:1;animation:lamp-on 1.1s linear both}
.viewer.unlit .viewer-art::before{animation:lamp-off .65s linear both}
.piece::before,.piece .bloom{transition:opacity .6s ease-out}
.piece.down::before{animation:lamp-off .65s linear both}
.piece.down .bloom{opacity:0;transition-duration:.25s}
.piece.relit::before{animation:lamp-on 1.1s linear both}
@keyframes lamp-on{0%{opacity:0}3%{opacity:0}6%{opacity:0.0907}9%{opacity:0.194}12%{opacity:0.287}16%{opacity:0.394}20%{opacity:0.485}25%{opacity:0.581}31%{opacity:0.674}38%{opacity:0.758}46%{opacity:0.829}55%{opacity:0.887}65%{opacity:0.931}76%{opacity:0.964}88%{opacity:0.986}100%{opacity:1}}
@keyframes lamp-off{0%{opacity:1}2%{opacity:0.888}5%{opacity:0.743}9%{opacity:0.586}14%{opacity:0.436}20%{opacity:0.305}28%{opacity:0.189}38%{opacity:0.103}50%{opacity:0.0495}65%{opacity:0.0188}80%{opacity:0.00615}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.viewer.lit .viewer-art::before,.piece.relit::before{animation:none}}
.viewer-art .art video[hidden]{display:none}
.viewer-art .art video{opacity:0;transition:opacity .4s ease-out}
.viewer-art .art video.on{opacity:1}
.viewer-art .art video.reveal{transition-duration:1s}   .vmedia .shade{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;background:linear-gradient(rgba(0,0,0,0) 45%,rgba(0,0,0,.16))}
@media (prefers-reduced-motion:no-preference){
    .viewer .viewer-art.swap.in .art{animation:settle-in .9s var(--ease) both}
  .viewer .viewer-text.swap.in{animation:swap .8s var(--ease) .06s both}
  @keyframes swap{from{opacity:0;transform:translateY(12px)}}
  @keyframes settle-in{from{opacity:0;transform:scale(.985)}}
}
@media (prefers-reduced-motion:reduce){
  .viewer[open]{animation:fade .3s ease-out}
}
@keyframes fade{from{opacity:0}}
@media (max-width:900px){
  .viewer-top{padding-block:8px}
  .viewer-nav{grid-column:4 / -1}
  .viewer-nav ul{justify-content:flex-end;gap:clamp(14px,4.6vw,28px)}
  .viewer-nav button{padding-block:14px}
  .viewer-body{align-content:start;row-gap:28px}
  .viewer-art{grid-column:1 / -1;order:1;width:100%}
  .viewer-text{grid-column:1 / -1;order:2}
  .viewer-head .lead{max-width:none}
}

.rows{border-top:1px solid var(--line)}
.rows a{align-items:center;padding-block:clamp(14px,1.5vw,22px);border-bottom:1px solid var(--line);transition:opacity .4s}
.rows .name{grid-column:1 / span 6;font-size:clamp(21px,2.1vw,32px);font-weight:600;line-height:1.1;letter-spacing:-.025em;transition:transform .7s var(--ease)}
.rows .meta{grid-column:7 / span 5;color:var(--dim)}
.rows .go{grid-column:12;justify-self:end;width:15px;height:15px;transition:transform .7s var(--ease)}
@media (hover:hover){
  .rows:hover a{opacity:.32}
  .rows a:hover{opacity:1}
  .rows a:hover .go{transform:translate(4px,-4px)}
  .rows a:hover .name{transform:translateX(6px)}
}

.about-side{display:flex;flex-direction:column;gap:clamp(28px,3vw,44px)}
.about .lead{margin-top:-.2em}
.facts{border-top:1px solid var(--line)}
.facts div{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--gut);align-items:baseline;padding-block:14px;border-bottom:1px solid var(--line)}
.facts dt{color:var(--dim)}
.facts dd{font-size:14px;line-height:1.5;color:var(--soft)}

.mail-fit{container-type:inline-size}
.contact .sec-head{margin-bottom:0}
.contact-body{display:flex;flex-direction:column;gap:clamp(22px,2.4vw,36px)}
.mail{display:inline-block;font-size:7.6cqw;font-weight:500;letter-spacing:-.035em;line-height:1.2;white-space:nowrap;padding-bottom:.16em;color:var(--ink);
  background-image:linear-gradient(var(--dim),var(--dim))}
.social{display:flex;flex-wrap:wrap;gap:14px 40px;color:var(--soft)}
.social a{display:flex;align-items:center;gap:12px;padding-block:6px;transition:color .3s}
.social a:hover{color:var(--ink)}
.social svg{width:16px;height:16px;fill:currentColor}

.foot{margin-top:var(--sec)}
.foot-in{align-items:baseline;padding-block:22px;border-top:1px solid var(--line);font-size:var(--t-meta);letter-spacing:.02em;color:var(--dim)}
.foot-in ul{display:flex;flex-wrap:wrap;gap:8px 28px}
.foot a:hover{color:var(--ink)}
.foot-fit{container-type:inline-size;margin-bottom:clamp(24px,3vw,44px)}
.foot-word{font-size:6.45cqw;letter-spacing:-.018em;word-spacing:-.05em;line-height:.9;padding:.06em;margin:-.06em -.06em -.06em -.12em}

.work{padding-top:clamp(104px,10vw,150px);align-items:center;row-gap:28px}
.work .crumb{color:var(--dim);margin-bottom:clamp(20px,2.4vh,32px)}
.work .crumb a{transition:color .3s}
.work .crumb a:hover{color:var(--ink)}
.work .viewer-head .copy{margin-top:clamp(16px,2vh,24px)}

.legal{--top:clamp(120px,12vw,180px);padding-top:var(--top);align-items:start;row-gap:40px}
.legal-side{position:relative;display:flex;flex-direction:column;gap:clamp(16px,1.6vw,22px);padding-top:clamp(20px,2vw,28px)}
.legal-side::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--line)}
.legal-side .meta{color:var(--dim)}
.toc ol{margin:0;padding:0;list-style:none}
.toc{margin-top:clamp(20px,3vw,40px);max-width:300px;border-top:1px solid var(--line)}
.toc a{display:flex;align-items:baseline;gap:16px;padding-block:9px;border-bottom:1px solid var(--line);font-size:13px;line-height:1.35;color:var(--dim);transition:color .3s}
.toc i{flex:none;width:2.2em;font-style:normal;font-size:11px;font-weight:500;letter-spacing:.14em;font-variant-numeric:tabular-nums}
.toc span{position:relative}
.toc span::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.toc a:hover,.toc a[aria-current="true"]{color:var(--ink)}
.toc a:hover span::after{transform:scaleX(1)}
.toc a[aria-current="true"] i{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}

.legal section{position:relative;padding-top:clamp(20px,2vw,28px);scroll-margin-top:var(--top)}
.legal section::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--line)}
.legal section + section{margin-top:clamp(52px,5.4vw,80px)}
.legal h2{display:flex;flex-direction:column;gap:14px;font-size:clamp(20px,1.7vw,25px);font-weight:700;letter-spacing:-.025em;line-height:1.15;margin-bottom:18px;color:var(--ink);text-wrap:balance}
.legal h2 .n{font-size:var(--t-meta);font-weight:500;letter-spacing:.14em;line-height:1.3;color:var(--dim);font-variant-numeric:tabular-nums}
.legal-body p,.legal-body li{color:var(--soft);max-width:66ch;text-wrap:pretty}
.legal-body p + p,.legal-body p + address{margin-top:1em}
.legal-body address{font-style:normal;color:var(--ink);line-height:1.7}
.legal-body ul{margin-block:16px;border-top:1px solid var(--line);max-width:66ch}
.legal-body li{display:flex;gap:14px;padding-block:9px;border-bottom:1px solid var(--line);line-height:1.5}
.legal-body li::before{content:"";flex:none;width:6px;height:1px;margin-top:.75em;background:var(--dim)}
.legal-body a{color:var(--ink);padding-bottom:1px;background:linear-gradient(var(--dim),var(--dim)) 0 100%/100% 1px no-repeat;transition:background-size .6s var(--ease)}
.legal-body a:hover{background-size:0 1px;background-position:100% 100%}
.legal + .foot{margin-top:clamp(120px,12vw,180px)}
.foot a[aria-current="page"]{color:var(--ink)}
body:has(> .legal){display:flex;flex-direction:column;min-height:100svh}
body:has(> .legal) > .legal{flex:1 0 auto;width:100%}
@media (min-width:901px) and (min-height:680px){
  .legal-side{position:sticky;top:var(--top)}
}
@media (max-width:900px){
  .toc{display:none}
  .legal{row-gap:clamp(40px,8vw,56px)}
}

@media (prefers-reduced-motion:no-preference){
    .hero-art{animation:room 2.6s var(--ease) both}
  .hero-glow{animation:glow 3.2s ease-out both}
  .hero-word{animation:settle 2s var(--ease) .1s both}
  .hero-line,.hero-facts{animation:fade 1.6s ease-out .9s both}
  @keyframes room{from{opacity:.2}}
  @keyframes glow{from{opacity:0}}
  @keyframes settle{from{opacity:0;transform:translateY(.12em)}}

    @supports (animation-timeline:view()){
    .sec-head::before,.head,.mail-fit,.rise,.rows li,.statement h2,.sec-head .copy,.sec-head .ctls{
      animation-duration:auto;animation-fill-mode:both;animation-timing-function:cubic-bezier(.2,.7,.2,1);animation-timeline:view(block 0% 20%)}
    .sec-head::before{animation-name:draw;animation-range:cover 0% cover 14%;animation-timing-function:linear}
    .head,.mail-fit{animation-name:mask-up;animation-range:cover 3% cover 24%}
        .sec-head .copy,.sec-head .ctls{animation-name:rise;animation-range:cover 3% cover 24%}
    .rise{animation-name:rise;animation-range:cover 8% cover 28%}
    .rows li{animation-name:rise;animation-range:cover 0% cover 22%}
        .legal-side .head{animation:settle 1.4s var(--ease) both;animation-timeline:auto}
    @keyframes draw{from{transform:scaleX(0)}}
    @keyframes mask-up{from{clip-path:inset(0 0 100% 0);transform:translateY(.32em)}to{clip-path:inset(-12% -6% -40% -6%)}}
    @keyframes rise{from{opacity:0;transform:translateY(22px)}}

        .statement h2{-webkit-mask:linear-gradient(100deg,#000 36%,rgba(0,0,0,0.986) 38.0%,rgba(0,0,0,0.948) 40.0%,rgba(0,0,0,0.889) 42.0%,rgba(0,0,0,0.814) 44.0%,rgba(0,0,0,0.726) 46.0%,rgba(0,0,0,0.630) 48.0%,rgba(0,0,0,0.530) 50.0%,rgba(0,0,0,0.430) 52.0%,rgba(0,0,0,0.334) 54.0%,rgba(0,0,0,0.246) 56.0%,rgba(0,0,0,0.171) 58.0%,rgba(0,0,0,0.112) 60.0%,rgba(0,0,0,0.074) 62.0%,rgba(0,0,0,0.06) 64%) 100% 0/280% 100% no-repeat;mask:linear-gradient(100deg,#000 36%,rgba(0,0,0,0.986) 38.0%,rgba(0,0,0,0.948) 40.0%,rgba(0,0,0,0.889) 42.0%,rgba(0,0,0,0.814) 44.0%,rgba(0,0,0,0.726) 46.0%,rgba(0,0,0,0.630) 48.0%,rgba(0,0,0,0.530) 50.0%,rgba(0,0,0,0.430) 52.0%,rgba(0,0,0,0.334) 54.0%,rgba(0,0,0,0.246) 56.0%,rgba(0,0,0,0.171) 58.0%,rgba(0,0,0,0.112) 60.0%,rgba(0,0,0,0.074) 62.0%,rgba(0,0,0,0.06) 64%) 100% 0/280% 100% no-repeat;
      animation-name:sweep;animation-timing-function:linear;animation-range:cover 0% cover 32%}
    @keyframes sweep{to{-webkit-mask-position:0 0;mask-position:0 0}}

        .social{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 100%}
    .foot-word{animation:mask-up linear both;animation-timeline:view();animation-range:entry 10% entry 100%}
  }
}

@media (max-width:900px){
  .left,.right{grid-column:1 / -1}
  .home{grid-column:1 / span 3}
  .top nav{grid-column:4 / -1}
  .hero{row-gap:24px}
  .hero-text{gap:24px}
  .hero-line{max-width:24ch}
  .hero-facts{width:100%;margin-top:8px}
    .hero-text{display:contents}
  .hero-word,.hero-line,.hero-facts{grid-column:1 / -1}
  .hero-word{order:1}.hero-line{order:2}.hero-art{order:3;margin-top:12px}.hero-facts{order:4;margin-top:20px}
  .gallery .sec-head .head{grid-column:1 / span 4}
  .gallery .sec-head .ctls{grid-column:5 / -1;grid-row:1;justify-self:end}
  .hero-art{margin-top:8px}
  .sec-head{align-items:start}
  .statement{row-gap:var(--gap);padding-block:clamp(16px,5vw,48px)}
  .statement h2{grid-column:1 / -1;font-size:var(--t-mega);line-height:1.02;max-width:14em;text-wrap:balance}
  .statement p{grid-column:1 / -1;max-width:46ch;font-size:var(--t-body);line-height:1.6}
  .about-side{margin-top:36px}
  .rows a{row-gap:8px}
  .rows .name{grid-column:1 / span 11}
  .rows .meta{grid-column:1 / span 11;grid-row:2}
  .rows .go{grid-row:1}
  .foot-in .right{margin-top:10px}
  .foot-word{font-size:min(12.9cqw,64px)}     .hero{min-height:0}
  .hero-word{font-size:min(calc((100vw - 2*var(--pad))*.25),120px)}     .top-in{padding-block:8px}
  .top nav ul{justify-content:flex-end;gap:clamp(14px,4.6vw,28px)}
  .top nav a{padding-block:14px}
  .track{--w:min(64vw,40svh,340px);gap:calc(var(--w)*.34)}
}

@media (max-width:640px){
  .statement h2 span{display:inline}     html{-webkit-tap-highlight-color:transparent}
  .shell{padding-inline:max(var(--pad),env(safe-area-inset-left)) max(var(--pad),env(safe-area-inset-right))}
  .top-in,.viewer-top{padding-block:6px}
  .viewer-nav button{padding-block:16px}
  .viewer-top .home{grid-column:1 / span 3}     .home{grid-column:1 / span 6;position:relative;z-index:1}
  .home img{width:34px}
  .menu{display:block;grid-column:7 / -1;justify-self:end;position:relative;z-index:1;padding:16px 0 16px 24px;margin-right:-2px;color:var(--ink)}
    .menu-close,.top.open .menu-open{visibility:hidden}
  .top.open .menu-close{visibility:visible}
  .top.open{background:transparent;border-color:transparent}
  .top.open .home{opacity:1;visibility:visible}

    .top .sheet{position:fixed;inset:0;z-index:0;display:flex;flex-direction:column;justify-content:space-between;background:var(--wall);
    padding:calc(96px + env(safe-area-inset-top)) max(var(--pad),env(safe-area-inset-right)) calc(32px + env(safe-area-inset-bottom)) max(var(--pad),env(safe-area-inset-left));
    opacity:0;visibility:hidden;transition:opacity .45s var(--ease),visibility 0s .45s}
  .top.open .sheet{opacity:1;visibility:visible;transition:opacity .45s var(--ease)}
  .top .sheet ul{display:block;font-size:clamp(34px,10.5vw,48px);font-weight:600;letter-spacing:-.035em;line-height:1;text-transform:none;color:var(--ink)}
    .top .sheet li{position:relative;--i:0}
  .top .sheet li:nth-child(2){--i:1}.top .sheet li:nth-child(3){--i:2}.top .sheet li:nth-child(4){--i:3}
  .top .sheet li::before,.top .sheet li:last-child::after{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--line);transform-origin:0 50%}
  .top .sheet li:last-child::after{top:auto;bottom:0}
  .top .sheet a{display:flex;align-items:baseline;gap:var(--gut);padding-block:clamp(16px,2.6svh,24px)}
  .top .sheet a::after{display:none}
  .top .sheet span{display:block;padding:.06em .06em .14em;margin:-.06em -.06em -.14em}
  .top .sheet a[aria-current="true"] span{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
    .sheet i{display:block;flex:none;width:calc((100% - 11*var(--gut))/6 + var(--gut));font-style:normal;font-size:var(--t-meta);font-weight:500;letter-spacing:.14em;color:var(--dim);-webkit-text-fill-color:var(--dim)}
  .menu-foot{display:block;font-size:15px;color:var(--soft)}
  .menu-foot a{display:inline-block;padding-block:8px}

    .menu{display:grid}
  .menu span{grid-area:1 / 1;justify-self:end}

    @media (prefers-reduced-motion:no-preference){
    .menu-close,.top.open .menu-open{visibility:visible}
    .menu span{transition:clip-path .8s var(--ease),transform .8s var(--ease)}
    .menu-open{clip-path:inset(-20%)}
    .menu-close{clip-path:inset(0 0 100% 0);transform:translateY(.6em)}
    .top.open .menu-open{clip-path:inset(100% 0 0 0);transform:translateY(-.6em)}
    .top.open .menu-close{clip-path:inset(-20%);transform:none}

    .top .sheet{transition:opacity .45s cubic-bezier(.4,0,.2,1) .2s,visibility 0s .65s}
    .top.open .sheet{transition:opacity .55s var(--ease),visibility 0s}
    .top .sheet li::before,.top .sheet li:last-child::after{transform:scaleX(0);transition:transform .4s cubic-bezier(.5,0,.2,1)}
    .top .sheet span{clip-path:inset(0 0 100% 0);transform:translateY(.32em);transition:clip-path .22s cubic-bezier(.3,0,.2,1),transform .22s cubic-bezier(.3,0,.2,1)}
    .sheet i,.menu-foot{opacity:0;transform:translateY(14px);transition:opacity .18s,transform .22s}
    .top.open .sheet li::before,.top.open .sheet li:last-child::after{transform:none;transition:transform 1.1s var(--ease) calc(.08s + var(--i)*.07s)}
    .top.open .sheet li:last-child::after{transition-delay:.36s}
    .top.open .sheet span{clip-path:inset(-12% -6% -40% -6%);transform:none;transition:clip-path 1s var(--ease) calc(.16s + var(--i)*.07s),transform 1s var(--ease) calc(.16s + var(--i)*.07s)}
    .top.open .sheet i{opacity:1;transform:none;transition:opacity .8s ease-out calc(.3s + var(--i)*.07s),transform 1s var(--ease) calc(.3s + var(--i)*.07s)}
    .top.open .menu-foot{opacity:1;transform:none;transition:opacity .8s ease-out .5s,transform 1s var(--ease) .5s}
  }

    .facts div{grid-template-columns:repeat(12,minmax(0,1fr))}
  .facts dt{grid-column:1 / span 4}
  .facts dd{grid-column:5 / -1}

    .ctl{padding-block:12px}
  .ctls{gap:22px}
  .rows a:active{opacity:.55;transition:none}

    .foot-in{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding-bottom:calc(22px + env(safe-area-inset-bottom))}
  .foot-in .right{margin-top:0}
}
