:root{font-family:Arial,Helvetica,sans-serif;color:#20201e;background:#ffffff;font-synthesis:none;font-size:16px;--paper:#ffffff;--ease:cubic-bezier(.2,.75,.2,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,select:focus-visible{outline:2px solid currentColor;outline-offset:6px}button{border:0;background:transparent}img,video{display:block;width:100%;height:auto}figure{margin:0}.skip{position:fixed;left:20px;top:-100px;z-index:100;padding:12px;background:white}.skip:focus{top:20px}.navigation{position:fixed;z-index:20;top:0;left:0;width:100%;display:flex;justify-content:space-between;align-items:center;padding:21px 30px;color:#fff;mix-blend-mode:difference;pointer-events:none}.navigation a{pointer-events:auto;display:inline-block;padding:8px 0;font-size:14px;line-height:1.3}.wordmark{letter-spacing:-.035em;font-weight:500}.navigation nav{display:flex;gap:30px}.navigation a:hover{opacity:.65}.opening{height:100svh;min-height:520px;background:#181918;position:relative;overflow:hidden;color:white}.opening>.film-frame,.opening .film-frame>video{width:100%;height:100%;object-fit:cover}.opening .film-frame>video{object-position:50% 45%}.opening::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(transparent 60%,#0005)}.entry{position:absolute;bottom:36px;left:30px;right:30px;z-index:2;display:flex;justify-content:space-between;align-items:end;font-size:13px;line-height:1.8}.entry a{padding:10px 0}.entry .entry-name{font-size:13px}.entry .enter{font-size:14px;display:flex;gap:28px;align-items:center}.enter span{transition:transform .4s var(--ease)}.enter:hover span{transform:translateY(5px)}.film-frame{position:relative}.film-toggle{position:absolute;right:18px;bottom:18px;z-index:3;font-size:12px;background:#0008;color:white;padding:8px 10px;opacity:0;transition:opacity .2s}.film-frame:hover>.film-toggle,.film-toggle:focus-visible,.film-toggle.needs-play{opacity:1}.opening .film-toggle{bottom:92px;right:30px}.sequence-intro{display:flex;justify-content:space-between;margin:0 30px;padding-top:65px;font-size:12px;color:#686864;letter-spacing:.025em}.moment{display:flex;position:relative;align-items:center;min-height:80svh;padding:12svh 0}.image-link{display:block;position:relative;width:100%;cursor:pointer;text-align:left;padding:0}.image-link img,.image-link video{transition:transform 750ms var(--ease);transform:translateZ(0)}.image-link:hover img{transform:scale(1.009)}.label{position:absolute;left:0;right:0;top:100%;padding-top:14px;display:flex;justify-content:space-between;gap:12px;opacity:0;transform:translateY(5px);transition:opacity 250ms,transform 350ms var(--ease);font-size:12px;line-height:1.5}.label small{font:inherit;color:#6e6e68}.image-link:hover .label,.image-link:focus-visible .label,.image-link.tapped .label{opacity:1;transform:none}.moment figure{position:relative}.moment.object{justify-content:center;min-height:100svh;padding:13svh 0 20svh}.object figure{width:40vw;max-width:690px}.object img{max-height:75svh;object-fit:contain}.portrait-left{justify-content:flex-start;padding-left:11vw;min-height:115svh}.portrait-left figure{width:43vw;max-width:780px}.portrait-right{justify-content:flex-end;padding-right:12vw;min-height:112svh}.portrait-right figure{width:35vw;max-width:660px}.portrait-right img{max-height:80svh;object-fit:contain}.tiny-left{padding-left:21vw;min-height:78svh}.tiny-left figure{width:21vw;max-width:390px}.takeover{width:100%;padding:0;min-height:0;margin:14svh 0 22svh;background:#171817}.takeover figure{width:100%}.takeover .label{top:auto;bottom:0;color:white;background:linear-gradient(transparent,#0007);padding:40px 30px 24px}.takeover .label small{color:#eee}.takeover video{width:100%;max-height:100svh;object-fit:cover}.takeover .film-toggle{bottom:60px}.colour{justify-content:center;min-height:108svh;padding:10svh 4vw}.colour figure{width:100%}.colour img{height:88svh;object-fit:cover;object-position:50% 55%}.landscape{justify-content:center;min-height:100svh}.landscape figure{width:76vw}.tiny-right{justify-content:flex-end;padding-right:14vw;min-height:80svh}.tiny-right figure{width:25vw}.quiet{justify-content:center;min-height:110svh}.quiet figure{width:32vw;max-width:540px}.polaroids{justify-content:center;gap:7vw;min-height:108svh;padding:24svh 8vw}.polaroids figure{width:22vw;max-width:330px}.polaroids figure:nth-child(1){transform:translateY(-7svh) rotate(-5deg)}.polaroids figure:nth-child(2){transform:translateY(12svh) rotate(4deg)}.polaroids figure:nth-child(3){transform:translateY(-2svh) rotate(-2deg)}.crescendo{justify-content:center;min-height:115svh;padding:5svh 0;background:#ffffff}.crescendo figure{width:80vw}.crescendo img{height:100svh;object-fit:contain}.crescendo .label{position:static}.ending{justify-content:center;min-height:115svh}.ending figure{width:19vw;max-width:320px}footer{margin:0 30px;min-height:150px;display:flex;align-items:center;gap:36px;font-size:12px}footer>span{margin-left:auto;color:#686864}.flower{font-size:31px;line-height:1;padding:12px;transition:transform .7s var(--ease)}.flower:hover,.flower.bloom{transform:rotate(100deg) scale(1.35)}.page{padding:145px 5vw 80px;min-height:80svh}.page-heading{font-size:15px;font-weight:400;margin:0 0 12px;line-height:1.4}.page-meta{font-size:12px;color:#62625c;margin-bottom:65px}.index-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:65px 30px}.index-card img{height:27vw;max-height:410px;object-fit:contain;object-position:center bottom}.index-card h2{font-size:13px;font-weight:400;margin:20px 0 5px}.index-card p{font-size:12px;color:#6a6a64;margin:0}.index-card:hover img{opacity:.85}.reserve{margin-top:110px;border-top:1px solid #d9d9d4;padding-top:25px}.reserve summary{cursor:pointer;font-size:13px}.reserve .index-grid{margin-top:45px}.project{background:var(--paper);padding-bottom:50px;min-height:100svh}.project-intro{padding:140px 30px 60px;display:flex;justify-content:space-between;align-items:flex-start}.project-intro h1{font-size:16px;font-weight:400;margin:0 0 10px}.project-intro p,.project-intro a{font-size:12px;margin:0;color:#52524d;line-height:1.7}.project-gallery{padding:0 8vw;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:15vw 10vw}.project-gallery figure:first-child{grid-column:1/-1;width:62%;margin:0 auto 8vw}.project-gallery figure:nth-child(5n){grid-column:1/-1;width:100%}.project-gallery img{max-height:90svh;object-fit:contain}.project-gallery figcaption{font-size:12px;color:#62625c;padding-top:15px}.project-gallery .video-figure{grid-column:1/-1;width:100%!important}.project-end{padding:130px 8vw 45px;display:flex;justify-content:space-between;font-size:14px}.info{display:grid;grid-template-columns:1fr 1fr;gap:10vw;align-items:center;min-height:90svh;padding:150px 14vw 100px}.info h1{font-size:24px;letter-spacing:-.025em;font-weight:400;margin:0 0 35px}.info p{font-size:16px;line-height:1.7;max-width:390px}.info nav{margin-top:40px;display:flex;flex-direction:column;align-items:start;gap:18px;font-size:14px}.info img{max-height:55svh;object-fit:contain}dialog{border:0;inset:0;max-width:none;max-height:none;width:100%;height:100svh;margin:0;background:var(--paper);color:#20201e;padding:60px 70px;overflow:hidden}dialog::backdrop{background:var(--paper)}.viewer-media{height:calc(100svh - 135px);display:flex;align-items:center;justify-content:center}.viewer-media img,.viewer-media video{width:100%;height:100%;object-fit:contain}.close-viewer{position:absolute;right:25px;top:20px;font-size:14px;padding:10px}.previous,.next{position:absolute;top:48%;padding:20px;font-size:24px}.previous{left:0}.next{right:0}.viewer-caption{text-align:center;font-size:12px;margin-top:18px}.editor{padding:125px 5vw 100px}.editor h1{font-size:24px;font-weight:400}.editor p{line-height:1.6;max-width:720px}.editor-actions{display:flex;gap:15px;flex-wrap:wrap;margin:30px 0}.editor-actions button,.editor-actions a{border:1px solid #bbb;padding:12px 16px;font-size:14px}.edit-row{display:grid;grid-template-columns:70px 110px 1fr 1fr;gap:24px;align-items:center;padding:25px 0;border-top:1px solid #ddd}.edit-row img{width:90px;height:110px;object-fit:contain}.edit-row label{display:flex;flex-direction:column;gap:10px;font-size:13px}.edit-row select{width:100%;font-size:14px;padding:10px;border:1px solid #bbb;background:transparent}.edit-row .slot-name{font-size:14px}.edit-status{font-size:13px;min-height:22px}.empty{min-height:70svh;display:grid;place-content:center}.reveal{opacity:1}.js-ready .reveal{opacity:0;transform:translateY(18px);transition:opacity 850ms var(--ease),transform 900ms var(--ease)}.js-ready .reveal.visible{opacity:1;transform:none}::view-transition-old(root),::view-transition-new(root){animation-duration:400ms}
@media(hover:none){.film-toggle{opacity:1}.label{font-size:12px}.image-link.tapped{margin-bottom:32px}}
@media(max-width:700px){.navigation{padding:16px 20px}.navigation nav{gap:24px}.navigation a{font-size:14px}.opening{min-height:500px}.entry{left:20px;right:20px;bottom:25px}.entry-name{max-width:115px}.opening .film-frame>video{object-position:50% center}.sequence-intro{margin:0 20px;padding-top:40px}.moment{padding-top:10svh;padding-bottom:12svh;min-height:75svh}.moment.object{min-height:90svh;padding-top:9svh;padding-bottom:13svh}.object figure{width:76vw}.portrait-left{padding-left:6vw;min-height:90svh}.portrait-left figure{width:78vw}.portrait-right{padding-right:6vw;min-height:90svh}.portrait-right figure{width:69vw}.tiny-left{padding-left:13vw;min-height:68svh}.tiny-left figure{width:42vw}.tiny-right{padding-right:9vw;min-height:68svh}.tiny-right figure{width:47vw}.takeover{padding:0;min-height:0;margin:10svh 0 13svh}.takeover video{min-height:55svh;object-fit:cover}.takeover .label{padding:25px 20px 15px}.colour{padding:6svh 0;min-height:80svh}.colour img{height:72svh}.landscape{min-height:65svh}.landscape figure{width:90vw}.quiet{min-height:88svh}.quiet figure{width:60vw}.polaroids{gap:0;min-height:80svh;padding-left:5vw;padding-right:5vw;flex-wrap:wrap;justify-content:space-between}.polaroids figure{width:39vw}.polaroids figure:nth-child(2){transform:translateY(13svh) rotate(5deg)}.polaroids figure:nth-child(3){width:33vw;margin:12svh 0 0 8vw}.crescendo{min-height:90svh;padding:8svh 0}.crescendo figure{width:100%}.crescendo img{height:80svh}.crescendo .label{padding:12px 20px}.ending{min-height:85svh}.ending figure{width:37vw}footer{margin:0 20px;gap:20px;flex-wrap:wrap;min-height:140px;font-size:12px}footer>span{margin-left:0}footer .flower{margin-left:auto}.page{padding:120px 6vw 70px}.index-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 20px}.index-card img{height:57vw}.page-meta{margin-bottom:45px}.project-intro{padding:115px 20px 50px;gap:20px}.project-gallery{padding:0 6vw;gap:22vw 6vw}.project-gallery figure:first-child{width:100%;margin-bottom:5vw}.project-gallery figure{grid-column:1/-1}.project-gallery figure:nth-child(3n+2){width:77%;margin-left:auto}.project-gallery figcaption{font-size:12px}.project-end{padding:90px 6vw 35px;gap:20px}.info{padding:130px 9vw 70px;grid-template-columns:1fr;gap:60px}.info img{width:70%;margin:auto}.info h1{font-size:22px}dialog{padding:65px 40px}.previous,.next{padding:12px}.viewer-media{height:calc(100svh - 150px)}.edit-row{grid-template-columns:50px 1fr;gap:20px}.edit-row label{grid-column:1/-1}.edit-row img{width:90px}.editor{padding-top:115px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.js-ready .reveal{opacity:1;transform:none}.flower:hover,.flower.bloom{transform:none}.image-link:hover img{transform:none}}

/* Refinement: shared Atelier grey and closer spacing, retaining image scale. */
body,.page,.info,.editor,.project,.crescendo{background:var(--paper)}
.moment{min-height:60svh;padding-top:7svh;padding-bottom:7svh}
.moment.object{min-height:80svh;padding-top:8svh;padding-bottom:10svh}
.portrait-left,.portrait-right{min-height:88svh}
.tiny-left,.tiny-right{min-height:56svh}
.takeover{min-height:0;padding:0;margin:8svh 0 12svh}
.colour{min-height:98svh;padding-top:5svh;padding-bottom:5svh}
.landscape{min-height:78svh}
.quiet{min-height:78svh}
.ending{min-height:78svh}
.crescendo{min-height:110svh;padding-top:5svh;padding-bottom:5svh}
.project-gallery{row-gap:9vw}
.project-gallery figure:first-child{margin-bottom:4vw}
.polaroids{min-height:80svh;padding-top:14svh;padding-bottom:14svh;gap:4vw}
/* Individual translate/rotate preserve the existing scroll-reveal animation. */
.polaroids figure:nth-child(1){transform:none;translate:0 -8svh;rotate:-9deg;width:20vw}
.polaroids figure:nth-child(2){transform:none;translate:-1vw 10svh;rotate:7deg;width:24vw}
.polaroids figure:nth-child(3){transform:none;translate:1vw -3svh;rotate:-4deg;width:18vw}
.index-image{height:27vw;max-height:410px;display:flex;align-items:flex-end;justify-content:center}
.index-card .index-image img{height:auto;width:auto;max-width:100%;max-height:100%;border:8px solid white;object-fit:contain}
@media(max-width:700px){
 .moment{min-height:58svh;padding-top:6svh;padding-bottom:7svh}
 .moment.object{min-height:74svh;padding-top:6svh;padding-bottom:8svh}
 .portrait-left,.portrait-right{min-height:75svh}
 .tiny-left,.tiny-right{min-height:49svh}
 .takeover{min-height:0;padding:0;margin:6svh 0 8svh}
 .colour{min-height:80svh;padding-top:4svh;padding-bottom:4svh}
 .landscape{min-height:52svh}
 .quiet{min-height:68svh}
 .ending{min-height:63svh}
 .crescendo{min-height:88svh;padding-top:4svh;padding-bottom:4svh}
 .polaroids{min-height:72svh;padding-top:10svh;padding-bottom:10svh;gap:0}
 .polaroids figure:nth-child(1){width:37vw;translate:0 -3svh;rotate:-9deg}
 .polaroids figure:nth-child(2){width:40vw;translate:0 9svh;rotate:8deg}
 .polaroids figure:nth-child(3){width:32vw;margin:9svh 0 0 11vw;translate:0 0;rotate:-6deg}
 .project-gallery{row-gap:14vw}
 .index-image{height:57vw}
 .index-card .index-image img{border-width:6px}
}
/* Falling print stacks. Motion remains local to the images, never the scroll. */
.falling-work{min-width:0;position:relative}
.photo-stack{height:65svh;min-height:400px;position:relative;isolation:isolate;overflow:hidden}
.photo-stack .falling-photo{position:absolute;left:50%;top:48%;width:65%;height:58%;translate:calc(-50% + var(--x)) calc(-50% + var(--y));rotate:var(--angle);animation:print-fall 1250ms cubic-bezier(.2,.65,.3,1) both;display:flex;align-items:center;justify-content:center}
.info .falling-photo img{width:auto;height:auto;max-width:100%;max-height:100%;margin:0;border:7px solid white;box-shadow:0 5px 18px #0002;object-fit:contain}
.photo-stack .settled{animation:none}
.stack-toggle{font-size:12px;padding:12px;display:block;margin:0 auto;color:#62625c}
.motion-paused .falling-photo{animation-play-state:paused}
@keyframes print-fall{0%{opacity:0;transform:translateY(-460px) rotate(-14deg)}12%{opacity:1}78%{transform:translateY(5px) rotate(2deg)}100%{opacity:1;transform:translateY(0) rotate(0)}}
.moment.polaroids{height:78svh;min-height:570px;display:block;padding:0;overflow:hidden}
.moment.polaroids figure:nth-child(n){position:absolute;left:50%;top:50%;width:24vw;max-width:320px;margin:0;translate:calc(-50% + var(--px)) calc(-50% + var(--py));rotate:var(--tilt);transform:none}
.polaroids figure:nth-child(1){--px:-48%;--py:-14%;--tilt:-12deg;--delay:0ms}
.polaroids figure:nth-child(2){--px:34%;--py:9%;--tilt:10deg;--delay:260ms}
.polaroids figure:nth-child(3){--px:-2%;--py:21%;--tilt:-4deg;--delay:560ms}
.js-ready .polaroids figure.reveal{opacity:0;transition:none}
.js-ready .polaroids.stack-arrived figure.reveal{animation:print-fall 1250ms cubic-bezier(.2,.65,.3,1) var(--delay) both}
.polaroids img{box-shadow:0 5px 16px #0002}
@media(max-width:700px){.photo-stack{height:58svh;min-height:360px}.moment.polaroids{height:66svh;min-height:420px}.moment.polaroids figure:nth-child(n){width:43vw;max-width:230px}.polaroids figure:nth-child(1){--px:-33%;--py:-18%}.polaroids figure:nth-child(2){--px:30%;--py:5%}.polaroids figure:nth-child(3){--px:0%;--py:26%}}
@media(prefers-reduced-motion:reduce){.js-ready .polaroids figure.reveal{opacity:1}.photo-stack .falling-photo{animation:none}.stack-toggle{display:none}}

/* Wider, nine-direction falling-photo field. */
.info{grid-template-columns:.85fr 1.35fr;gap:4vw;padding-left:8vw;padding-right:8vw}
.photo-stack{height:76svh;min-height:500px}
.photo-stack .falling-photo{width:52%;height:49%;animation-name:scattered-print-fall}
@keyframes scattered-print-fall{0%{opacity:0;transform:translate(var(--drift),-560px) rotate(var(--spin))}12%{opacity:1}80%{transform:translate(0,7px) rotate(-3deg)}100%{opacity:1;transform:translate(0,0) rotate(0)}}
.moment.polaroids{height:83svh;min-height:610px}
.moment.polaroids figure:nth-child(n){width:21vw;max-width:285px}
.polaroids figure:nth-child(1){--px:-135%;--py:-27%;--tilt:-23deg}
.polaroids figure:nth-child(2){--px:49%;--py:-4%;--tilt:19deg}
.polaroids figure:nth-child(3){--px:13%;--py:25%;--tilt:-13deg}
@media(max-width:700px){
 .info{grid-template-columns:1fr;padding-left:6vw;padding-right:6vw;gap:35px}
 .photo-stack{height:66svh;min-height:410px}
 .photo-stack .falling-photo{width:51%;height:45%}
 .moment.polaroids{height:88svh;min-height:590px}
 .moment.polaroids figure:nth-child(n){width:35vw;max-width:220px}
 .polaroids figure:nth-child(1){--px:-58%;--py:-95%;--tilt:-23deg}
 .polaroids figure:nth-child(2){--px:44%;--py:30%;--tilt:21deg}
 .polaroids figure:nth-child(3){--px:-3%;--py:52%;--tilt:-15deg}
}
/* September refinement: an image-only click target inside the existing index cell. */
.index-image{pointer-events:none}
.index-image-link{pointer-events:auto;display:block;max-width:100%;max-height:100%;line-height:0}
.index-card .index-image-link img{max-height:min(27vw,410px);width:auto;max-width:100%}
.index-card:hover img{opacity:1}.index-image-link:hover img{opacity:.85}
.showcase{height:68svh;display:flex;align-items:center;justify-content:center}
.showcase a{display:block;max-width:100%;max-height:100%}
.info .showcase img{width:auto;max-width:100%;height:auto;max-height:65svh;margin:0}
/* Cap the larger pauses without squeezing the small detail-image gaps. */
.home-motion .portrait-left,.home-motion .portrait-right{min-height:0;padding-top:5svh;padding-bottom:5svh}
.home-motion .moment.object{min-height:0;padding-top:6svh;padding-bottom:7svh}
.home-motion .quiet,.home-motion .ending{min-height:60svh}
.home-motion .landscape{min-height:0;padding-top:5svh;padding-bottom:5svh}
.home-motion .takeover{margin-top:5svh;margin-bottom:7svh}
#moment-face figure{width:38.5vw;max-width:726px}
#moment-face img{max-height:88svh}
.opening::after{background:linear-gradient(to bottom,transparent 64%,rgba(255,255,255,.18) 77%,rgba(255,255,255,.72) 91%,#fff 100%)}
.entry{color:#20201e}
/* Homepage-only reveal: a gentle pull into place, with no wheel interception. */
.home-motion.js-ready .sequence .reveal{opacity:1}
.js-ready .home-motion .sequence .moment:not(.polaroids) .reveal{opacity:0;transform:translateY(42px) scale(.97);transition:opacity 700ms ease-out,transform 1300ms cubic-bezier(.16,1,.3,1)}
.js-ready .home-motion .sequence .moment:not(.polaroids) .reveal.visible{opacity:1;transform:translateY(0) scale(1)}
.moment.polaroids{height:92svh;min-height:650px}
.moment.polaroids figure:nth-child(n){width:17vw;max-width:245px}
.polaroids figure:nth-child(1){--px:-180%;--py:-37%;--tilt:-19deg;--delay:0ms}
.polaroids figure:nth-child(2){--px:-66%;--py:-49%;--tilt:12deg;--delay:180ms}
.polaroids figure:nth-child(3){--px:60%;--py:-41%;--tilt:-9deg;--delay:360ms}
.polaroids figure:nth-child(4){--px:177%;--py:-18%;--tilt:21deg;--delay:540ms}
.polaroids figure:nth-child(5){--px:-113%;--py:47%;--tilt:-14deg;--delay:720ms}
.polaroids figure:nth-child(6){--px:7%;--py:48%;--tilt:15deg;--delay:900ms}
.polaroids figure:nth-child(7){--px:120%;--py:55%;--tilt:-17deg;--delay:1080ms}
@media(max-width:700px){
 .index-card .index-image-link img{max-height:57vw}
 .showcase{height:58svh}.info .showcase img{width:auto;max-height:56svh}
 #moment-face figure{width:75.9vw}
 .home-motion .portrait-left,.home-motion .portrait-right{padding-top:4svh;padding-bottom:4svh}
 .home-motion .quiet,.home-motion .ending{min-height:55svh}
 .moment.polaroids{height:115svh;min-height:790px}
 .moment.polaroids figure:nth-child(n){width:30vw;max-width:180px}
 .polaroids figure:nth-child(1){--px:-90%;--py:-125%}
 .polaroids figure:nth-child(2){--px:65%;--py:-115%}
 .polaroids figure:nth-child(3){--px:-40%;--py:-30%}
 .polaroids figure:nth-child(4){--px:93%;--py:-12%}
 .polaroids figure:nth-child(5){--px:-90%;--py:61%}
 .polaroids figure:nth-child(6){--px:47%;--py:79%}
 .polaroids figure:nth-child(7){--px:-21%;--py:148%}
}
@media(prefers-reduced-motion:reduce){.js-ready .home-motion .sequence .moment:not(.polaroids) .reveal{opacity:1;transform:none;transition:none}}

/* Short hero transition and a soft circular flower vignette. */
.opening::after{background:linear-gradient(to bottom,transparent 87%,rgba(255,255,255,.2) 92%,rgba(255,255,255,.8) 98%,#fff 100%)}
.entry{color:white;text-shadow:0 1px 5px #0008;bottom:13svh}
#moment-colour img{-webkit-mask-image:radial-gradient(circle closest-side at center,#000 48%,rgba(0,0,0,.94) 62%,rgba(0,0,0,.45) 83%,transparent 100%);mask-image:radial-gradient(circle closest-side at center,#000 48%,rgba(0,0,0,.94) 62%,rgba(0,0,0,.45) 83%,transparent 100%)}
/* Measure resting print positions without the entrance transforms. */
.measure-spacing .reveal{animation:none!important;transition:none!important;transform:none!important}
/* Album editing pages, separate from the visitor navigation. */
.album-editor{max-width:1600px;margin:auto}
.album-editor h2{font-size:18px;font-weight:400;margin-top:45px}
.album-status{font-size:14px;line-height:1.6;min-height:24px;color:#555}
.album-row{display:grid;grid-template-columns:70px 105px minmax(130px,1fr) 180px 100px;gap:25px;align-items:center;padding:25px 0;border-top:1px solid #ddd}
.album-order{display:flex;align-items:center;flex-wrap:wrap;font-size:14px}
.album-order span{width:100%;margin-bottom:8px}
.album-order button{padding:8px;font-size:19px}
.album-thumb{display:block}.album-thumb img{width:100px;height:125px;object-fit:contain}
.album-title{font-size:16px;text-decoration:underline;text-underline-offset:4px}
.album-row p{font-size:13px;color:#666;margin:12px 0}
.album-row label,.album-details label{display:flex;flex-direction:column;gap:8px;font-size:14px}
.album-editor select,.album-editor input{font:inherit;padding:10px;border:1px solid #bbb;background:white;width:100%;border-radius:0}
.edit-album-link{font-size:14px}
.album-details{display:grid;grid-template-columns:1fr 1fr auto auto;gap:20px;align-items:end;margin:35px 0 55px}
.album-details button,.album-details>a,.album-photo-actions button{border:1px solid #ccc;padding:10px;font-size:14px;line-height:1.5}
.album-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:35px 24px}
.album-photo{min-width:0;border-top:1px solid #ddd;padding-top:20px}
.album-photo-preview{height:230px;display:flex;align-items:center;justify-content:center}
.album-photo-preview img{width:auto;max-width:100%;height:auto;max-height:100%;object-fit:contain}
.album-editor .album-filename{font-size:13px;overflow-wrap:anywhere;margin:15px 0 8px}
.album-position{display:block;font-size:12px;color:#666;min-height:30px}
.album-photo-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.album-editor button:disabled{opacity:.4;cursor:default}
.album-editor button:not(:disabled):hover,.edit-album-link:hover{background:#f1f1f1}
.album-photo.is-reserve .album-photo-preview{opacity:.65}
.import-albums{display:flex;align-items:center;border:1px solid #bbb;padding:12px 16px;font-size:14px;cursor:pointer;position:relative}
.import-albums input{position:absolute;inset:0;opacity:0;cursor:pointer}
.import-albums:focus-within{outline:2px solid #222;outline-offset:4px}
@media(max-width:900px){.album-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.album-row{grid-template-columns:50px 85px 1fr;gap:16px}.album-row label{grid-column:2}.album-details{grid-template-columns:1fr 1fr}.album-thumb img{width:80px;height:105px}}
@media(max-width:600px){.album-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 14px}.album-photo-preview{height:175px}.album-details{grid-template-columns:1fr}.album-row label{grid-column:2/-1}.edit-album-link{grid-column:3}.album-photo-actions button{padding:9px;font-size:13px}}
/* Large flower: retain the colour until the outer rim of the circle. */
#moment-colour img{height:96svh;-webkit-mask-image:radial-gradient(circle closest-side at center,#000 88%,rgba(0,0,0,.85) 93%,transparent 100%);mask-image:radial-gradient(circle closest-side at center,#000 88%,rgba(0,0,0,.85) 93%,transparent 100%)}
@media(max-width:700px){#moment-colour img{height:78svh}}

#moment-colour{justify-content:center;padding-top:4svh;padding-bottom:4svh}
#moment-colour figure{width:min(90vw,92svh);max-width:none}
#moment-colour img{height:auto;aspect-ratio:1;object-fit:cover;object-position:center}
/* Show the orange flower as an uncropped, rectangular photograph. */
#moment-colour img{-webkit-mask-image:none;mask-image:none;aspect-ratio:auto;height:auto;object-fit:contain}
/* Private editing controls. The public portfolio keeps its original typography. */
.editing{padding-bottom:100px}.cms-bar{position:fixed;bottom:0;inset-inline:0;z-index:50;background:#fff;border-top:1px solid #ddd;padding:12px 24px;display:flex;align-items:center;gap:16px;box-shadow:0 -4px 24px #00000008;font-size:13px}.cms-bar .cms-status{flex:1}.cms-bar button,.cms-form button,.cms-login button,.cms-dashboard>button,#cms-add-slot,.slot-extras>button{border:1px solid #ccc;padding:12px 16px;min-height:44px}.cms-bar #cms-publish{background:#20201e;color:white;border-color:#20201e}.cms-status.error{color:#a52424}.cms-form,.cms-login form{display:grid;gap:20px;max-width:660px;margin:30px 0 55px}.cms-form label,.cms-login label,.cms-alt,.cms-opening{display:grid;gap:10px;font-size:14px}.cms-form input,.cms-form textarea,.cms-login input,.cms-opening select{font:inherit;padding:12px;border:1px solid #bbb;width:100%;background:white;border-radius:0}.cms-form button,.cms-login button{justify-self:start}.cms-dashboard h2{font-size:18px;font-weight:400;margin-top:45px}.cms-login{max-width:650px;margin:auto}.cms-file{display:block;font-size:14px;margin:24px 0}.cms-file input{display:block;max-width:100%;margin-top:12px;min-height:44px}.cms-alt{font-size:12px;margin:12px 0}.cms-alt input{font-size:14px}.cms-opening{max-width:660px;margin:30px 0}.slot-extras{grid-column:3/-1;display:grid;gap:16px}.empty-thumb{display:block;font-size:12px;color:#777}.cms-bar a{padding:12px 0;white-space:nowrap}.album-editor input:focus-visible,.cms-form textarea:focus-visible{outline:2px solid #333;outline-offset:3px}
/* Mobile edition: preserve the alternating scale and alignment, with shorter pauses. */
@media(max-width:700px){
 html{scroll-padding-top:82px}body{overflow-x:clip}
 .navigation{padding:calc(10px + env(safe-area-inset-top)) 20px 10px}.navigation a{min-height:44px;display:inline-flex;align-items:center}.navigation nav{gap:22px}
 .opening{height:100svh;min-height:420px}.entry{bottom:13svh;gap:18px}.entry .enter{gap:15px}
 .sequence-intro{padding-top:26px;margin:0 6vw}
 .home-motion .moment:not(.polaroids):not(.takeover){min-height:0;padding-top:clamp(28px,6vw,46px);padding-bottom:clamp(28px,6vw,46px)}
 .home-motion .object figure{width:72vw}.home-motion .portrait-left{padding-left:6vw}.home-motion .portrait-left figure{width:78vw}
 .home-motion .portrait-right{padding-right:6vw}.home-motion .portrait-right figure{width:69vw}
 .home-motion #moment-face figure{width:75.9vw}
 .home-motion .tiny-left{padding-left:13vw}.home-motion .tiny-left figure{width:43vw}
 .home-motion .tiny-right{padding-right:9vw}.home-motion .tiny-right figure{width:47vw}
 .home-motion .landscape figure{width:88vw}.home-motion .quiet figure{width:60vw}.home-motion .ending figure{width:40vw}
 .home-motion .takeover{margin:28px 0 36px}.takeover video{min-height:0;aspect-ratio:16/10;object-fit:cover}
 #moment-colour figure{width:88vw}#moment-colour img{max-height:none}
 .home-motion .crescendo figure{width:88vw}.crescendo img{height:auto;max-height:none}.crescendo .label{padding:12px 0}
 .label{gap:8px;flex-wrap:wrap;padding-top:10px}.label small{font-size:11px}.image-link.tapped{margin-bottom:38px}
 .moment.polaroids{height:190vw;min-height:0;max-height:1100px;padding:0;overflow:visible}
 .moment.polaroids figure:nth-child(n){width:29vw;max-width:none;margin:0}
 .polaroids figure:nth-child(1){--px:-79%;--py:-118%;--tilt:-19deg}
 .polaroids figure:nth-child(2){--px:61%;--py:-106%;--tilt:12deg}
 .polaroids figure:nth-child(3){--px:-35%;--py:-28%;--tilt:-9deg}
 .polaroids figure:nth-child(4){--px:80%;--py:4%;--tilt:21deg}
 .polaroids figure:nth-child(5){--px:-83%;--py:68%;--tilt:-14deg}
 .polaroids figure:nth-child(6){--px:47%;--py:92%;--tilt:15deg}
 .polaroids figure:nth-child(7){--px:-20%;--py:164%;--tilt:-17deg}
 .page{padding-top:110px}.index-grid{gap:36px 18px}.index-card h2{line-height:1.4}.index-card p{line-height:1.5}
 .project-gallery{row-gap:14vw}.project-intro{padding-top:110px}.project-end{padding-top:65px;line-height:1.5}
 .info{padding:110px 8vw 55px;gap:32px}.info nav a{padding:10px 0}.showcase{height:auto;min-height:40svh}.info .showcase img{max-height:60svh}
 footer{gap:12px 18px;min-height:125px}footer>a,footer>button{min-height:44px;display:inline-flex;align-items:center}
 .viewer-caption{overflow-wrap:anywhere;line-height:1.4}.close-viewer,.previous,.next{min-width:44px;min-height:44px}
 .editing{padding-bottom:175px}.cms-bar{padding:10px 12px calc(10px + env(safe-area-inset-bottom));gap:8px;flex-wrap:wrap}.cms-bar .cms-status{order:-1;flex-basis:100%;font-size:12px}.cms-bar button{padding:10px;font-size:12px}.cms-bar a{font-size:12px}.cms-bar #cms-public{margin-left:auto}
 .editor{padding-inline:6vw}.editor input,.editor select,.editor textarea{font-size:16px}.edit-row>*{min-width:0}.slot-extras{grid-column:1/-1}.album-row>*{min-width:0}.album-title{overflow-wrap:anywhere}.album-photo-actions button{min-height:44px}.album-details{gap:16px}.editor-actions{gap:10px}.editor-actions>*{min-height:44px}.cms-form{margin-bottom:35px}
}
@media(min-width:701px) and (max-width:1024px){.cms-bar{flex-wrap:wrap}.cms-bar .cms-status{min-width:30%}.info{padding-inline:8vw;gap:6vw}.moment.polaroids{min-height:540px}.album-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.js-ready .home-motion .sequence .moment:not(.polaroids) .reveal{transform:none;opacity:1}}
[hidden]{display:none!important}

/* Faster album ordering, with touch handles and a keyboard-friendly position control. */
.reorder-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;font-size:12px}
.drag-handle{touch-action:none;cursor:grab;border:1px solid #ccc;min-height:44px;padding:10px 12px;white-space:nowrap}
.reorder-tools label{display:flex;align-items:center;gap:7px}.reorder-tools select{width:65px;min-height:44px;padding:8px}
.reordering,.reordering *{cursor:grabbing!important;user-select:none}.being-dragged{opacity:.45}
.album-photo{position:relative}.album-photo.drop-before::before,.album-photo.drop-after::after{content:'';position:absolute;top:0;bottom:0;width:3px;background:#222;pointer-events:none}
.album-photo.drop-before::before{left:-8px}.album-photo.drop-after::after{right:-8px}
@media(max-width:600px){.reorder-tools{gap:6px;flex-wrap:wrap}.reorder-tools label{font-size:12px}.reorder-tools select{width:60px}.drag-handle{font-size:13px}}
.album-management{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:25px 0 40px;padding:18px 0;border-block:1px solid #ddd}
.album-management label{display:flex;flex-direction:column;gap:8px;font-size:13px;min-width:230px}.album-management select{padding:10px;border:1px solid #bbb;background:#fff;min-height:44px}
.album-management button{border:1px solid #bbb;padding:11px 14px;min-height:44px}.album-row.is-hidden{opacity:.55}.album-photo .bulk-check{display:flex;align-items:center;gap:6px;white-space:nowrap}.bulk-check input{width:18px;height:18px}
.contact-button{border:1px solid currentColor;padding:11px 14px}.contact-button:hover{background:#20201e;color:#fff}
@media(max-width:600px){.album-management{align-items:stretch}.album-management label,.album-management button{width:100%}}
