:root{color-scheme:light;--paper:#edebe9;--ink:#313130}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 Manrope,sans-serif}a{color:inherit;text-underline-offset:5px}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid #466558;outline-offset:6px}::selection{background:#9FD3C7;color:#313130}html{scrollbar-color:#85988d var(--paper)}
.album-header{position:sticky;top:0;z-index:10;background:#edebe9f5;display:flex;justify-content:space-between;align-items:center;padding:18px 4vw;border-bottom:1px solid #31313020}.album-home{font:32px Prata,serif;text-decoration:none}.album-header>div{display:flex;gap:22px;align-items:center}.album-header button{border:0;background:none;min-height:44px;padding:5px}.album-header a{font-size:14px}.album-header .album-home{font-size:32px}
.album-intro{max-width:1200px;margin:65px auto 0;padding:0 40px;display:flex;justify-content:space-between;gap:40px;align-items:end}.album-intro h1{font:clamp(36px,5.2vw,74px)/1.15 Prata,serif;font-weight:400;letter-spacing:-.025em;margin:0}.album-intro h1 em{font-style:normal}.album-intro p{max-width:27ch;font-size:14px;margin:0 0 5px}
.spatial-board{position:relative;display:grid;grid-template-columns:repeat(12,1fr);gap:80px 4%;max-width:1480px;padding:90px 5% 120px;margin:auto;isolation:isolate}
.spatial-photo{position:relative;border:0;background:none;padding:0;display:block;text-align:left;align-self:center;grid-column:span 4;transform:translateY(var(--float-y,0)) rotate(var(--angle,0deg));transition:transform .7s cubic-bezier(.16,1,.3,1);z-index:1}
.spatial-photo:nth-of-type(6n+1){grid-column:span 5;--angle:-3deg}.spatial-photo:nth-of-type(6n+2){grid-column:7/span 4;--float-y:90px;--angle:4deg}.spatial-photo:nth-of-type(6n+3){grid-column:2/span 3;--angle:2deg}.spatial-photo:nth-of-type(6n+4){grid-column:6/span 6;--float-y:30px;--angle:-2deg}.spatial-photo:nth-of-type(6n+5){grid-column:span 5;--angle:2deg}.spatial-photo:nth-of-type(6n){grid-column:8/span 4;--float-y:60px;--angle:-3deg}
.spatial-photo .photo-window{display:block;position:relative;overflow:hidden;border-radius:var(--shape,46% 45% 35% 32% / 21% 22% 17% 22%);background:#dedbd5;box-shadow:0 22px 35px -25px #31313055;transition:border-radius .7s,box-shadow .7s}
.spatial-photo:nth-of-type(3n+2) .photo-window{--shape:35% 48% 30% 48% / 20% 24% 24% 25%}.spatial-photo:nth-of-type(3n) .photo-window{--shape:48% 32% 45% 30% / 25% 15% 22% 18%}
.spatial-photo img{display:block;width:100%;height:auto;aspect-ratio:var(--ratio,1.25);object-fit:cover;pointer-events:none}.spatial-photo:nth-of-type(4n+2) img{--ratio:.8}.spatial-photo .photo-label{display:flex;justify-content:space-between;gap:12px;padding:14px 6px 0;font-size:14px}.photo-label b{font-weight:400}
.spatial-photo:focus-visible,.spatial-photo.pressed{transform:translateY(var(--float-y,0)) scale(1.055) rotate(0);z-index:5}
@media(hover:hover){.spatial-photo:hover{transform:translateY(var(--float-y,0)) scale(1.07) rotate(0);z-index:5}.spatial-photo:hover .photo-window{box-shadow:0 28px 38px -22px #31313055}}
.album-end{text-align:center;margin:20px 20px 65px;font-size:13px}
#photo-viewer{inset:0;width:100%;height:100dvh;max-width:100%;max-height:100dvh;margin:0;padding:0;border:0;background:#edebe9;color:#313130;overflow:auto}#photo-viewer::backdrop{background:#edebe9}body:has(dialog[open]){overflow:hidden}.viewer-toolbar{height:84px;padding:16px 4vw;display:flex;align-items:center;justify-content:space-between}.viewer-toolbar>div{display:flex;gap:10px}.viewer-toolbar button{width:48px;height:48px;background:none;border:1px solid #aba9a3;border-radius:50%;font-size:24px}.viewer-toolbar svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5}.viewer-toolbar button:hover{background:#9FD3C7}
#photo-viewer figure{margin:0 auto;padding:0 4vw 24px;max-width:1500px}.viewer-image{position:relative;height:calc(100svh - 160px);min-height:240px;overflow:hidden;display:grid;place-items:center;background:#e6e3df;border-radius:20px}.viewer-image img{display:block;width:100%;height:100%;object-fit:contain;position:absolute;inset:0}.viewer-image[aria-busy="true"] img{opacity:.3}.photo-loading{position:relative;z-index:2;background:#edebe9;padding:8px 16px;border-radius:20px}.photo-loading:empty{display:none}figcaption{display:flex;gap:16px;justify-content:space-between;padding:18px 0;font-size:15px}.photo-reveal-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}
.effects-off .spatial-photo{transition:none;transform:none}.effects-off .photo-window{transition:none}
@media(max-width:700px){.album-header{padding:12px 20px}.album-header>div{gap:12px}.album-header a,.album-header button{font-size:12px}.album-header .album-home{font-size:26px}.album-intro{display:block;padding:0 24px;margin:35px auto 0}.album-intro h1{font-size:38px}.album-intro p{margin-top:20px;max-width:35ch}.spatial-board{grid-template-columns:repeat(2,minmax(0,1fr));gap:45px 20px;padding:45px 24px 75px}.spatial-photo:nth-of-type(n){grid-column:auto;--float-y:0px}.spatial-photo:nth-of-type(2n){--float-y:40px}.spatial-photo:nth-of-type(5n+1){grid-column:1/-1;margin:0 15% 0 0}.spatial-photo:nth-of-type(5n+1) img{--ratio:1.2}.spatial-photo .photo-label{font-size:12px;line-height:1.5;padding:12px 2px 0}.viewer-toolbar{height:74px;padding:12px 20px}#photo-viewer figure{padding:0 16px 22px}.viewer-image{height:calc(100svh - 155px);border-radius:16px}figcaption{font-size:14px}.album-end{font-size:12px}}

/* Larger photographs; the first ten show the room, people follow below. */
.spatial-board{max-width:1600px;padding-inline:4%;gap:65px 4%}.spatial-photo:nth-of-type(6n+1){grid-column:span 6}.spatial-photo:nth-of-type(6n+2){grid-column:8/span 5}.spatial-photo:nth-of-type(6n+3){grid-column:1/span 5}.spatial-photo:nth-of-type(6n+4){grid-column:7/span 6}.spatial-photo:nth-of-type(6n+5){grid-column:span 6}.spatial-photo:nth-of-type(6n){grid-column:8/span 5}
@media(max-width:700px){.spatial-board{grid-template-columns:1fr;gap:36px;padding:40px 25px 65px}.spatial-photo:nth-of-type(n){grid-column:1;--float-y:0px;--angle:0deg;margin:0;width:100%}.spatial-photo:nth-of-type(3n+2){width:92%;justify-self:end}.spatial-photo:nth-of-type(n) img{--ratio:1.2}.spatial-photo:nth-of-type(n+11) img{--ratio:1}.spatial-photo .photo-label{font-size:14px}}
/* A readable zigzag on touch: deliberate variation without scroll capture. */
@media(max-width:700px){.spatial-board{gap:35px;padding-inline:22px}.spatial-photo:nth-of-type(n){width:86%;justify-self:start;--angle:-1.5deg}.spatial-photo:nth-of-type(4n+2){width:69%;justify-self:end;--angle:2deg}.spatial-photo:nth-of-type(4n+3){width:94%;justify-self:end;--angle:-1deg}.spatial-photo:nth-of-type(4n){width:73%;justify-self:start;--angle:2deg}.spatial-photo:nth-of-type(n) img{--ratio:1.15}.spatial-photo:nth-of-type(4n+2) img{--ratio:.85}}
/* V44: photographs without visible editorial captions. Accessible labels retained. */
.photo-label,#photo-name{display:none!important}#photo-viewer figcaption{justify-content:flex-end}

/* Back is the first, visible navigation action on both sizes. */
#album-back{display:inline-flex;align-items:center;min-height:44px;padding:10px 18px;border-radius:26px;background:#DAB4C9;text-decoration:none;font-weight:600;white-space:nowrap}
.album-header{gap:14px}.album-header .album-home{margin-right:auto}
@media(max-width:420px){.album-header{padding:10px 12px;gap:10px}.album-header .album-home{font-size:21px}.album-header>div{gap:8px}#album-back{padding:10px 13px}}

/* Scroll entrances keep the existing staggered composition and photo controls. */
.spatial-board{overflow:clip;overflow-clip-margin:20px}
.effects-on .spatial-photo{translate:var(--entry-x,0px) 0;opacity:var(--entry-opacity,1)}
.spatial-photo:focus-visible{translate:0!important;opacity:1!important}
.gallery-flourish{grid-column:1/-1;height:90px;pointer-events:none;margin:4px -3%;align-self:center}
.gallery-flourish svg{display:block;width:100%;height:100%;overflow:visible}
.gallery-flourish path{stroke-width:2.3;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--draw,1))}
@media(max-width:700px){.gallery-flourish{height:64px;margin:0 -10px}}


/* Clear photographs: only the arrival moves, with no material overlay. */
.effects-on .spatial-photo{scale:var(--entry-scale,1)}
.spatial-photo:focus-visible{scale:1!important}
.effects-off .spatial-photo{translate:none;scale:1;opacity:1}

#album-language{display:grid;place-items:center;min-width:44px;min-height:44px;border:1px solid #31313040;border-radius:50%;text-decoration:none}
