:root{--black:#0a0a0a;--white:#fff;--gray:#c4c4c0;--gutter:clamp(22px,4vw,64px);--serif:"GFS Didot",Georgia,serif;--sans:"Inter",Arial,sans-serif;color-scheme:dark}
*{box-sizing:border-box}
html,body{margin:0;background:var(--black);color:var(--white)}
body{font-family:var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}a:focus-visible{outline:1px solid #fff;outline-offset:8px}
.navigation{position:fixed;inset:0 0 auto;z-index:10;display:flex;align-items:flex-start;justify-content:space-between;padding:25px var(--gutter);pointer-events:none;background:linear-gradient(rgba(10,10,10,.85),transparent)}
.navigation a{pointer-events:auto}.navigation img{display:block;width:150px;height:auto;filter:invert(1)}
.navigation p{font-size:11px;line-height:1.6;letter-spacing:.12em;text-transform:uppercase;margin:6px 0 0;text-align:right}
.navigation p span{display:block;font-size:9px;color:#999;letter-spacing:.1em;margin-top:3px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.viewport{padding:140px var(--gutter) 80px;overflow:hidden}
.camera{display:grid;grid-template-columns:1fr 1fr;gap:100px 7vw;align-items:start}
.spatial-type{font-family:var(--serif);font-size:clamp(72px,11vw,160px);line-height:.85;letter-spacing:-.045em;grid-column:1/-1;margin-bottom:40px}
.spatial-type span{margin-left:.55em}
.plane{margin:0;min-width:0}.plane:nth-of-type(even){margin-top:20vh}
.picture img{display:block;width:100%;height:100%;object-fit:cover}
figcaption{position:relative;margin-top:20px;padding-left:35px}
.number{position:absolute;top:9px;left:0;font-size:11px;color:#aaa;letter-spacing:.08em}
h2{font:400 40px/1.04 var(--serif);letter-spacing:-.025em;margin:0}
figcaption p{font-size:11px;line-height:1.6;letter-spacing:.11em;text-transform:uppercase;margin:14px 0 0;color:var(--gray)}
.spatial-note,.registration{display:none}
.journey-ui{display:flex;align-items:center;gap:20px;font-size:10px;letter-spacing:.11em;text-transform:uppercase;margin-top:70px;color:var(--gray)}
.journey-rail{height:1px;background:#404040;width:120px}.journey-rail>span{display:block;height:100%;background:#fff;transform:scaleX(0);transform-origin:0 50%}
.signature{margin-left:auto}.signature i{font-style:normal;margin:0 10px;color:#777}
.is-spatial .journey{height:900svh}
.is-spatial .viewport{height:100svh;position:sticky;top:0;padding:0;perspective:var(--perspective);perspective-origin:50% 50%;overflow:hidden}
.is-spatial .camera{display:block;position:absolute;top:50%;left:50%;width:0;height:0;transform-style:preserve-3d;will-change:transform}
.is-spatial .plane{position:absolute;left:0;top:0;margin:0;transform-style:preserve-3d;backface-visibility:hidden}
.is-spatial .picture{width:100%;height:100%}
.is-spatial figcaption{position:absolute;left:0;top:100%;width:450px;transform:translateZ(1px);margin-top:24px}
.is-spatial figcaption p{font-size:16px;letter-spacing:.08em;margin-top:12px}
.is-spatial .number{font-size:13px}
.is-spatial .bresh figcaption{left:35px;top:auto;bottom:40px;color:white}
.is-spatial .bresh .picture::after{content:"";position:absolute;inset:65% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.72));pointer-events:none}
.picture canvas{display:none}
.is-spatial .picture{position:relative;cursor:default;user-select:none;filter:brightness(calc(.96 + var(--presence,1)*.04)) contrast(calc(.98 + var(--presence,1)*.02)) drop-shadow(0 12px calc(18px + var(--presence,1)*30px) rgb(0 0 0 / calc(.04 + var(--presence,1)*.18)))}
.is-spatial .picture canvas{display:block;position:absolute;inset:0;width:100%;height:100%;visibility:hidden;pointer-events:none}
.is-spatial .picture.is-ready canvas{visibility:visible}
.is-spatial [data-plane=obeach] figcaption{left:calc(100% + 32px);top:33%;width:360px;margin:0}
.is-spatial .irina figcaption{left:-340px;top:60%;width:310px;margin:0}
.is-spatial .liberta figcaption{left:150px;margin-top:8px}
.is-spatial .liberta figcaption p{font-size:14px;margin-top:8px}
.is-spatial .florencia figcaption{left:38px;top:auto;bottom:45px;margin:0}
.is-spatial .florencia .picture::after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.8));pointer-events:none}
.is-spatial .florencia figcaption p{color:white}
.is-spatial .florencia figcaption{text-shadow:0 1px 8px rgba(0,0,0,.65)}
.is-spatial .spatial-type{position:absolute;left:0;top:0;width:1800px;margin:0;font-size:150px;line-height:.95;white-space:nowrap;transform-style:preserve-3d;backface-visibility:hidden}
.is-spatial .spatial-type br{display:none}
.is-spatial .spatial-type span{margin-left:.22em}
.is-spatial .spatial-note{display:block;position:absolute;left:0;top:0;width:500px;font-size:26px;font-weight:300;line-height:1.5;letter-spacing:.12em;text-transform:uppercase;color:#a9a9a4;backface-visibility:hidden}
.spatial-note span{display:block;width:100px;height:1px;background:#777;margin-bottom:32px}
.is-spatial .registration{display:block;position:absolute;width:38px;height:38px;border-color:#b2b2ac;border-style:solid;backface-visibility:hidden}
.registration-a{border-width:1px 0 0 1px}.registration-b{border-width:0 1px 1px 0}
.is-spatial .journey-ui{position:absolute;left:var(--gutter);right:var(--gutter);bottom:25px;margin:0;z-index:5;pointer-events:none}
.is-spatial .journey-ui::before{content:"";position:absolute;z-index:-1;inset:-30px calc(-1 * var(--gutter)) -25px;background:linear-gradient(transparent,rgba(10,10,10,.9))}
@media(max-width:767px){
 .navigation{padding-top:20px}.navigation img{width:115px}.navigation p{font-size:9px;margin:0}.navigation p span{font-size:8px}
 .camera{grid-template-columns:1fr;gap:65px}.plane:nth-of-type(even){margin:0 0 0 12%}
 .signature{display:none}.journey-ui{font-size:9px}.is-spatial .journey{height:850svh}
}
@media(prefers-reduced-motion:reduce){.journey-rail,.instruction{display:none}}
/* Internal touch treatment only. Scoping to the journey also releases the
   photograph automatically when the existing project transition takes it over. */
@media(pointer:coarse) and (prefers-reduced-motion:no-preference){
 .is-spatial.is-touch-focus .journey .picture{overflow:hidden}
 .is-spatial.is-touch-focus .journey .picture img{
  filter:var(--focus-filter,none);
  transform:var(--focus-transform,none);
  transform-origin:50% 50%;
 }
}
