:root{--dark:#424242;--ink:#343434}
body[data-header-theme=dark]{--header-bg:#424242}
/* One continuous composition: white intro, fixed statement, iris photograph. */
html[data-home=b] #home-a{display:block}html[data-home=a] body[data-page=home]>.page-footer{display:block}
.iris-hero{height:100svh;min-height:580px;background:var(--paper)}
.iris-hero .image-wrap{inset:0;height:100%;width:100%;clip-path:circle(150% at 50% 50%);-webkit-clip-path:circle(150% at 50% 50%)}
.iris-hero .image-wrap:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#f9f7f480,transparent 68%);pointer-events:none}
.iris-hero .statement{top:35%;left:50%;transform:translateX(-50%);width:90%;max-width:1050px;text-align:center;z-index:2}
.iris-hero .statement h1{font-size:clamp(32px,4.15vw,68px);line-height:1.12;max-width:none;font-weight:300}
.iris-hero .statement h1 span{max-width:none}.iris-hero .statement h1 span+span{margin-top:.15em;font-style:italic}
.travelling-logo{display:none;position:absolute;z-index:3;left:50%;top:21%;transform:translate(-50%,-50%);width:230px;height:auto;pointer-events:none}
.intro-playing .travelling-logo{display:block;transition:top 2s cubic-bezier(.45,0,.2,1),width 2s cubic-bezier(.45,0,.2,1)}
.intro-playing:not(.iris-opening) .iris-image{clip-path:circle(0% at 50% 50%);-webkit-clip-path:circle(0% at 50% 50%)}
.intro-playing .iris-image{transition:clip-path 2s cubic-bezier(.45,0,.2,1),-webkit-clip-path 2s cubic-bezier(.45,0,.2,1)}
.iris-opening .travelling-logo{top:calc(var(--header-height)/2);width:175px}
.intro-playing .statement h1{animation:statement-arrival 1.1s .7s both}
@keyframes statement-arrival{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
body.intro-active .site-header{pointer-events:none;background:transparent!important;box-shadow:none}
body.intro-active .site-header .brand{visibility:hidden}body.intro-active .site-header .home-menu,body.intro-active .site-header .header-tools{opacity:0}
.site-header .home-menu,.site-header .header-tools{transition:opacity .7s}
.iris-hero #skip-intro{z-index:4}.hero-discover{position:absolute;bottom:35px;left:50%;transform:translateX(-50%);padding:16px;font-size:10px;letter-spacing:.15em;text-transform:uppercase;z-index:2}.hero-discover:after{content:' ↓';margin-left:20px}.intro-playing .hero-discover{visibility:hidden}
.editorial-bridge{background:var(--dark);color:var(--paper);padding:100px 8vw;text-align:center}.editorial-bridge h2{white-space:pre-line;font-size:clamp(44px,6vw,86px);font-weight:300;line-height:1.08;margin:30px auto 0}.home-feature-image{display:block;width:min(100%,850px);margin:50px auto}.home-feature-image img{width:100%;height:auto;max-height:75svh;object-fit:contain;background:transparent}.home-selected{text-align:center}.home-selected .home-section-heading{text-align:left;margin-left:auto;margin-right:auto}.home-invitation{padding-top:100px;padding-bottom:100px}.home-encounters{padding-bottom:110px}.encounter-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:4vw}.encounter-grid h3{font-size:clamp(25px,3vw,40px)}.workshops-pending,.story-pending-note{font-size:12px;line-height:1.7;opacity:.7;margin-top:30px}.workshop-placeholder{min-height:200px}
/* Photograph frames use the page surface, never a contrasting matte. */
body[data-page=portrait]{background:#fff}.selected-work{margin-left:5vw;margin-right:5vw}
html[data-layout=a] .gallery{grid-template-columns:repeat(var(--gallery-cols,5),minmax(0,1fr));gap:14px}
html[data-layout=a] .gallery-card{aspect-ratio:4/5;overflow:hidden;background:transparent}
html[data-layout=a] .gallery-card img{width:100%;height:100%;aspect-ratio:auto;object-fit:contain;background:transparent}
.gallery-card{overflow:hidden}.gallery-card img{background:transparent;transition:transform .65s cubic-bezier(.2,.6,.2,1)}
.gallery-card:hover img{filter:none}
@media(hover:hover) and (pointer:fine){.gallery-card:hover img{transform:scale(1.035)}}
.gallery-more .underlined{font-size:16px;min-width:290px;padding:20px 34px;box-shadow:0 6px 22px #0000000d}
.gallery-card:focus-visible{outline-offset:2px}.image-index,#gallery-count{display:none}
/* Every alternating row shares exactly the same two columns and outer edges. */
.session-section{background:var(--paper);padding-left:8vw;padding-right:8vw}
.session-heading,.session-row,.session-finale{width:100%;max-width:1000px;margin-left:auto;margin-right:auto}
.session-heading>.eyebrow{font-size:clamp(19px,2.3vw,30px);text-transform:none;letter-spacing:.01em;font-weight:400}
.session-row,.session-row.reverse,.session-finale{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7%;align-items:center}
.session-photo,.session-finale .session-photo{width:min(100%,310px);max-width:310px;aspect-ratio:4/5;background:transparent;justify-self:start;margin:0}
.session-photo img{width:100%;height:100%;object-fit:contain;background:transparent}
.session-copy{max-width:none;width:100%}.session-copy h3{font-size:clamp(28px,3vw,43px);margin-top:0}
.session-row.reverse .session-photo,.session-finale.reverse .session-photo{grid-column:2;grid-row:1;order:0;justify-self:end}
.session-row.reverse .session-copy,.session-finale.reverse>div:last-child{grid-column:1;grid-row:1}
.session-finale h3{margin-top:24px}.section-number{display:none}
html[data-layout=b] .session-photo{background:transparent}
.contact-section .contact-place{font-size:14px!important;color:#666;margin-top:35px!important}
.reveal-pending{opacity:0;transform:translate3d(0,36px,0)}
.reveal-visible{transition:opacity 1.2s ease,transform 1.2s cubic-bezier(.2,.65,.2,1)}
/* Subpage copy arrives first; the photograph gently follows behind it. */
.portrait-opening{background:var(--dark)}.portrait-opening .portrait-cover{background:transparent}.portrait-cover img{transition:opacity 1.5s ease}
.portrait-opening.awaiting-photo:not(.photo-arrived) .portrait-cover img{opacity:0}
html[data-layout=b] .portrait-opening{background:transparent}html[data-layout=b] .portrait-cover{background:var(--dark)}
/* Navigation highlights: veiled at rest, title on the picture. */
.menu-highlight{position:relative;overflow:hidden;aspect-ratio:4/5}
.menu-highlight:after{content:'';position:absolute;inset:0;background:#ffffff80;transition:opacity .6s;pointer-events:none}
.menu-highlight img{height:100%;width:100%;object-fit:cover;transition:transform .7s}
.menu-highlight>span{position:absolute;z-index:2;inset:0;margin:0;padding:15px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:clamp(12px,1.3vw,20px);font-weight:600;color:#292929;line-height:1.2;transition:color .5s,text-shadow .5s}
.menu-highlight small{display:none}.menu-highlight:hover img{filter:none}
@media(hover:hover){.menu-highlight:hover:after{opacity:0}.menu-highlight:hover img{transform:scale(1.045)}.menu-highlight:hover>span{color:#fff;text-shadow:0 1px 9px #000,0 0 3px #000}}
.menu-highlight:focus-visible:after{opacity:0}.menu-highlight:focus-visible>span{color:white;text-shadow:0 1px 9px #000}
.nav-brand-logo{height:22px!important;width:auto;max-width:100%;object-fit:contain;object-position:left center}.brand-nav-item>span{display:flex;align-items:center;min-width:0}.brand-nav-item{padding-top:18px;padding-bottom:18px}
/* Session lookbooks — real grouped sessions are supplied separately. */
.portrait-stories{padding:30px 8vw 110px}.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:55px 4vw}.story-card{display:block;min-width:0}.story-image{position:relative;aspect-ratio:4/3;overflow:hidden}.story-image img{width:100%;height:100%;object-fit:contain;background:transparent;transition:opacity .65s}.story-image .story-hover{position:absolute;inset:0;opacity:0}
@media(hover:hover){a.story-card:hover .story-hover{opacity:1}}a.story-card:focus-visible .story-hover{opacity:1}.story-card h3{font-family:var(--display);font-size:29px;font-weight:300;margin:16px 0}.story-placeholder .story-image{background:var(--paper);border:1px solid var(--line);display:grid;place-items:center}.story-placeholder .story-image span{font-size:12px;letter-spacing:.04em;color:#777}.story-placeholder h3{color:#777}
/* The footer has one common set of left/right boundaries throughout. */
.expanded-footer{display:block;padding:60px 6vw 90px;background:var(--paper);color:var(--ink)}
.footer-context{border-bottom:1px solid var(--line);padding-bottom:35px}.footer-context nav{display:flex;flex-wrap:wrap;gap:8px 28px}.footer-context button{font-size:12px;padding:10px 0;min-height:44px}
.footer-main{display:grid;grid-template-columns:1fr 1fr;gap:8vw;padding:55px 0 45px}.footer-explore{display:flex;align-items:flex-start;flex-direction:column;gap:5px}.footer-explore a,.footer-explore button{padding:8px 0;font-size:13px;min-height:35px}.footer-newsletter h2{font-size:clamp(28px,3.4vw,46px);font-weight:300;line-height:1.1;margin:0 0 18px}.footer-newsletter p{font-size:12px;line-height:1.8}.footer-newsletter label{font-size:11px;display:block;margin-top:22px}.newsletter-input{display:flex;align-items:center;border-bottom:1px solid #777;margin-top:7px}.newsletter-input input{min-width:0;width:100%;border:0;background:transparent;padding:14px 0;font:inherit;font-size:16px;color:inherit;border-radius:0}.newsletter-input button{font-size:25px;min-width:48px;min-height:48px}.footer-newsletter .newsletter-note{font-size:10px;opacity:.65}.footer-images{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.footer-images img{width:100%;height:auto;aspect-ratio:4/5;object-fit:contain;background:transparent}.footer-brand-row{display:grid;grid-template-columns:1fr auto 1fr;gap:25px;align-items:center;margin:40px 0}.footer-brand-row .social-links{justify-self:start}.footer-logo{justify-self:center}.footer-logo img{width:190px}.back-top{justify-self:end;display:flex;align-items:center;gap:15px;min-height:44px;font-size:24px}.back-top span{font-size:10px;text-transform:uppercase;letter-spacing:.08em}.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:20px;align-items:center}.footer-bottom>span{font-size:10px}.footer-bottom .legal-links{max-width:none;justify-content:flex-end}.legal-links button{font-size:9px;text-transform:uppercase;letter-spacing:.08em;min-height:44px;padding:10px 0}
#cookie-dialog{width:min(92vw,540px);padding:40px;background:var(--paper);border:1px solid var(--line)}#cookie-dialog::backdrop{background:#0006}#cookie-dialog h2{font-size:34px;font-weight:300;margin-top:10px}#cookie-dialog p{font-size:13px;line-height:1.8}.cookie-close{position:absolute;right:15px;top:10px;font-size:26px;min-width:44px;min-height:44px}.cookie-done{margin-top:20px}
body[data-page=story] .home-controls,body[data-page=story] .portrait-controls{display:none}
.story-page{padding:calc(var(--header-height) + 60px) 8vw 90px}.story-page h1{font-size:clamp(40px,6vw,80px);font-weight:300}.story-page .story-intro{max-width:650px;line-height:1.8}.story-gallery{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin-top:60px}.story-gallery img{width:100%;height:auto;max-height:85svh;object-fit:contain}.story-gallery img:nth-child(3n){grid-column:1/-1}
@media(max-width:900px){.iris-opening .travelling-logo{width:160px}.session-row,.session-row.reverse,.session-finale{gap:6%}.session-photo,.session-finale .session-photo{max-width:280px}.menu-highlights{display:none}.footer-main{gap:5vw}.footer-logo img{width:155px}}
@media(max-width:600px){.iris-hero{min-height:560px}.iris-hero .statement{top:31%;width:88%;max-width:440px}.iris-hero .statement h1{font-size:clamp(28px,8vw,39px);line-height:1.15}.iris-hero .statement h1 span+span{margin-top:.3em}.travelling-logo{top:19%;width:190px}.iris-opening .travelling-logo{top:42px;width:123px}.iris-hero .hero-image{object-position:53% center}.iris-hero .image-wrap:after{background:linear-gradient(180deg,#f9f7f499,transparent 72%)}.editorial-bridge{padding:65px 25px}.editorial-bridge h2{font-size:42px}.home-feature-image{margin:35px 0}.home-invitation{padding:65px 25px}.home-encounters{padding-bottom:65px}.encounter-grid{grid-template-columns:1fr;gap:30px}.workshop-placeholder{min-height:120px}.gallery-more .underlined{font-size:14px;min-width:0}.selected-work{margin-left:16px;margin-right:16px}html[data-layout=a] .gallery{gap:10px}.session-section{padding:65px 26px}.session-row,.session-row.reverse,.session-finale{display:flex;flex-direction:column;gap:28px}.session-photo,.session-finale .session-photo{width:76%;max-width:280px;align-self:center;margin:0}.session-row.reverse .session-photo,.session-finale.reverse .session-photo{order:0}.session-heading>.eyebrow{font-size:23px}.session-copy h3{font-size:32px}.session-finale>div:last-child{width:100%}.contact-section .contact-place{font-size:12px!important}.portrait-stories{padding:20px 26px 65px}.story-grid{grid-template-columns:1fr;gap:30px}.story-card h3{font-size:26px}.expanded-footer{padding:40px 25px 95px}.footer-context nav{gap:4px 20px}.footer-main{grid-template-columns:1fr;gap:35px;padding:35px 0}.footer-explore{flex-direction:row;flex-wrap:wrap;gap:5px 22px}.footer-explore>.eyebrow{width:100%}.footer-newsletter h2{font-size:34px}.footer-images{gap:7px;grid-template-columns:repeat(5,minmax(0,1fr))}.footer-brand-row{grid-template-columns:1fr auto 1fr;gap:10px;margin:30px 0}.footer-logo img{width:115px}.footer-brand-row .social-links{gap:1px}.footer-brand-row .social-links a{width:30px}.back-top{padding:5px;font-size:25px}.back-top span{display:none}.footer-bottom{align-items:flex-start;flex-direction:column;gap:10px}.footer-bottom .legal-links{justify-content:flex-start;gap:5px 16px}.story-gallery{grid-template-columns:1fr}.story-gallery img:nth-child(3n){grid-column:auto}}
@media(prefers-reduced-motion:reduce){.intro-playing .statement h1{animation:none}.intro-playing .iris-image,.travelling-logo,.portrait-cover img,.gallery-card img,.story-image img,.menu-highlight img,.menu-highlight:after,.reveal-visible{transition:none}.gallery-card:hover img,.menu-highlight:hover img{transform:none}.reveal-pending{opacity:1;transform:none}}
.js .iris-hero:not(.intro-done):not(.intro-playing) .iris-image{clip-path:circle(0% at 50% 50%);-webkit-clip-path:circle(0% at 50% 50%)}
.js .iris-hero:not(.intro-done):not(.intro-playing) .statement h1{opacity:0}
.js body[data-page=home]:not(.page-ready) .site-header{visibility:hidden}
@media(max-width:360px){.iris-opening .travelling-logo{width:111px}}
