/* A clear black/white rhythm, with an editorial retrospective between visit and support. */
.festival-home{--home-cut:4.3vw}
.festival-home .home-gallery{position:relative;background:#fff;color:#050505;padding-block:calc(70px + var(--home-cut)) calc(75px + var(--home-cut));clip-path:polygon(0 var(--home-cut),100% 0,100% calc(100% - var(--home-cut)),0 100%)}
.home-gallery .photo-rivers{padding-block:0}
.home-gallery .river-group a{border-color:#05050515;background:#eee}
.festival-home .home-media-showcase{padding-top:45px}
.festival-home .moments-paper{position:relative;background:#fff;color:#050505;padding-block:calc(65px + var(--home-cut));clip-path:polygon(0 0,100% var(--home-cut),100% 100%,0 calc(100% - var(--home-cut)))}
.moments-paper .story-sticky{top:var(--festival-header-stack,124px);height:calc(100svh - var(--festival-header-stack,124px));background:#fff}
.moments-paper .story-frame{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:5vw;align-items:stretch;background:#fff;border-radius:0}
.moments-paper .story-copy{position:relative;inset:auto;align-self:center;min-width:0;color:#050505;background:#fff;padding:32px 0;opacity:1;z-index:1}
.moments-paper .moments-kicker{font:400 12px/1.5 var(--sans);letter-spacing:.15em;text-transform:uppercase;color:#505050;margin:0 0 30px}
.moments-paper .story-copy h2{font:400 clamp(48px,6vw,94px)/1.02 var(--sans);letter-spacing:-.055em;margin:0 0 35px;max-width:850px;overflow-wrap:normal;text-wrap:balance}
.moments-paper .story-copy::after{content:'';display:block;width:85px;height:1px;background:#050505;transform:rotate(-12deg);transform-origin:left center;margin-top:40px}
.moments-link{display:inline-flex;align-items:center;gap:26px;min-height:56px;color:#050505;text-decoration:none;font:400 17px/1.3 var(--sans)}
.moments-link-arrow{display:grid;place-items:center;flex:none;width:56px;height:56px;border:1px solid #050505;border-radius:50%;transition:background .2s,color .2s,transform .2s}
.moments-link-arrow svg{width:23px;height:23px}
.moments-link:is(:hover,:focus-visible) .moments-link-arrow{background:#050505;color:#fff;transform:translate(2px,-2px)}
.moments-link:focus-visible{outline:2px solid #050505;outline-offset:6px}
.moments-paper .story-picture{position:relative;min-width:0;min-height:0;overflow:hidden;align-self:stretch;border-radius:2px}
.moments-paper .story-photo{display:block;width:100%;height:100%;object-fit:cover}
.festival-home .visit-home-section{background:#050505;color:#fff}
.festival-home .visit-all a{background:#fff;color:#050505;border-color:#fff;transition:background .2s,color .2s,transform .2s}
.festival-home .visit-all a svg{transition:transform .2s}
.festival-home .visit-all a:is(:hover,:focus-visible){background:#050505;color:#fff;border-color:#fff;box-shadow:none}
.festival-home .visit-all a:is(:hover,:focus-visible) svg{transform:translate(3px,-3px)}
.festival-home .visit-all a:active{transform:scale(.97);background:#fff;color:#050505}
/* Keep the fixed header readable as moving photographs pass through a white gallery. */
.home-paper-surface:not(.menu-open):not(.menu-transition) .header-section-surface{background:transparent}
@media(max-width:1000px){
 .moments-paper .story-frame{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4vw}
 .moments-paper .story-copy h2{font-size:clamp(39px,5.6vw,60px)}
}
@media(max-width:760px){
 .festival-home{--home-cut:30px}
 .festival-home .home-gallery{padding-block:85px 90px}
 .festival-home .home-media-showcase{padding-top:35px}
 .festival-home .moments-paper{padding-block:65px 70px}
 .moments-paper .story-frame{inset:18px 24px!important;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);gap:26px;border-radius:0!important}
 .moments-paper .story-copy{padding:5px 0 0;align-self:start}
 .moments-paper .moments-kicker{margin-bottom:18px;font-size:11px}
 .moments-paper .story-copy h2{font-size:clamp(37px,9.4vw,58px);margin-bottom:24px}
 .moments-paper .story-copy::after{content:none}
 .moments-link{font-size:16px;gap:22px;min-height:48px}.moments-link-arrow{width:48px;height:48px}
 .moments-paper .story-picture{border-radius:2px}
}
@media(prefers-reduced-motion:reduce),(max-height:560px){.moments-paper .story-runway{height:auto}.moments-paper .story-sticky{position:relative;top:0;height:clamp(650px,88svh,900px)}}
@media(prefers-reduced-motion:reduce){.festival-home .visit-all a,.festival-home .visit-all a svg,.moments-link-arrow{transition:none}}
.website-scene-caption p{max-width:42ch;margin-inline:auto;text-wrap:balance;line-height:1.3}
/* A quiet invitation: fine underline, clear touch target and a small open arrow. */
.festival-home .support-invitation{justify-content:center;gap:20px;min-height:44px;padding:8px 0;border:0;border-bottom:1px solid #ffffff70;border-radius:0;background:transparent;color:#fff;font-size:17px;font-weight:400;line-height:1.35;text-align:start;text-decoration:none;transition:border-color .2s}
.festival-home .support-invitation:hover{background:transparent;color:#fff;border-bottom-color:#fff}
.support-invitation-mark{display:grid;place-items:center;flex:none;width:20px;height:20px;transition:transform .2s}
.support-invitation-mark svg{width:20px;height:20px}
.support-invitation:is(:hover,:focus-visible) .support-invitation-mark{transform:translate(2px,-2px)}
.festival-home .support-invitation:focus-visible{outline:2px solid #fff;outline-offset:6px}
@media(prefers-reduced-motion:reduce){.festival-home .support-invitation,.support-invitation-mark{transition:none}}
@media(max-width:760px){.festival-home .support-scene{min-height:0}.festival-home .support-scene-copy{padding-block:95px 80px}}
/* Let the entire retrospective leave together, without a blank pinned runway. */
@media(max-width:760px){
 .moments-paper .story-runway{height:auto}
 .moments-paper .story-sticky{position:relative;top:0;height:auto;overflow:visible}
 .moments-paper .story-frame{position:relative;inset:auto!important;margin-inline:24px;grid-template-rows:auto auto;overflow:visible}
 .moments-paper .story-picture{aspect-ratio:4/5;height:calc((100vw - 48px)*1.25)}
 .moments-paper .story-photo{position:absolute;inset:0;transform:none}
}
