/* Individual translate preserves the existing opposite card rotations. */
.motion-reveal{transition:opacity .65s ease,translate .65s cubic-bezier(.2,.7,.2,1)}
.motion-reveal.motion-pending{opacity:0;translate:0 18px}
.hero-art>svg{transition:transform .35s ease-out}
.motion-enabled .path-map::before{transform-origin:top;transform:scaleY(var(--mission-progress,1))}
.hero-actions .arrow,.mission-contact .arrow,.home-stories .text-link span{display:inline-block;transition:transform .2s ease}
@media(hover:hover) and (pointer:fine){
  .hero-actions a:hover .arrow,.mission-contact a:hover .arrow,.home-stories a:hover span{transform:translate(3px,-3px)}
}
@media(prefers-reduced-motion:reduce){
  .motion-reveal.motion-pending{opacity:1;translate:none}
  .hero-art>svg{transform:none!important}
  .motion-enabled .path-map::before{transform:none}
}

/* Assemble the illustration once; individual transforms retain SVG rotations. */
.assembly-piece{transform-box:fill-box;transform-origin:center;--piece-x:0px;--piece-y:0px;--piece-turn:0deg;--piece-scale:1;--piece-delay:0s}
.assembly-backdrop{--piece-x:-35px;--piece-y:35px;--piece-scale:.84}
.assembly-notebook{--piece-x:-85px;--piece-y:55px;--piece-turn:-9deg;--piece-scale:.88;--piece-delay:.1s}
.assembly-pencil{--piece-x:110px;--piece-y:-55px;--piece-turn:20deg;--piece-delay:.3s}
.assembly-orbit{--piece-x:-95px;--piece-y:-80px;--piece-turn:-25deg;--piece-delay:.4s}
.assembly-sun{--piece-x:65px;--piece-y:-55px;--piece-scale:.6;--piece-delay:.15s}
.assembly-spark-right{--piece-x:80px;--piece-y:35px;--piece-turn:45deg;--piece-delay:.5s}
.assembly-spark-left{--piece-x:-65px;--piece-y:65px;--piece-turn:-45deg;--piece-delay:.55s}
.assembly-note{--piece-x:65px;--piece-y:65px;--piece-turn:8deg;--piece-delay:.65s}
.assembly-ready .assembly-piece{opacity:0;translate:var(--piece-x) var(--piece-y);rotate:var(--piece-turn);scale:var(--piece-scale)}
.assembly-enter .assembly-piece{animation:assemble-notebook 2.4s cubic-bezier(.22,.61,.36,1) var(--piece-delay) both}
@keyframes assemble-notebook{
  0%{opacity:0;translate:var(--piece-x) var(--piece-y);rotate:var(--piece-turn);scale:var(--piece-scale)}
  18%{opacity:1}
  100%{opacity:1;translate:0 0;rotate:0deg;scale:1}
}
@media(max-width:680px){.assembly-piece{--piece-x-mobile:0}.assembly-notebook{--piece-x:-40px;--piece-y:35px}.assembly-pencil{--piece-x:55px;--piece-y:-35px}.assembly-orbit{--piece-x:-45px;--piece-y:-40px}.assembly-note{--piece-x:35px;--piece-y:40px}}
@media(prefers-reduced-motion:reduce){.assembly-ready .assembly-piece,.assembly-enter .assembly-piece{animation:none;opacity:1;translate:none;rotate:0deg;scale:1}}
.hero-art svg .assembly-piece{transform-box:view-box;transform-origin:0 0}

/* Spin each star around its own center after the entrance has settled. */
.hero-art svg .notebook-star{transform-box:fill-box;transform-origin:center}
.assembly-enter .notebook-star{animation:notebook-star-spin 16s linear infinite;animation-play-state:paused}
.assembly-enter.orbit-visible .notebook-star{animation-play-state:running}
.assembly-enter .star-counterclockwise{animation-direction:reverse}
@keyframes notebook-star-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.assembly-enter .notebook-star{animation:none;transform:none}}


/* Francesco's note settles into its existing two-degree tilt once. */
.story-note.motion-reveal{transition:opacity 1s ease,translate 1s cubic-bezier(.22,.61,.36,1),rotate 1s cubic-bezier(.22,.61,.36,1)}
.story-note.motion-reveal.motion-pending{translate:32px 48px;rotate:7deg}
.story-note.motion-reveal:not(.motion-pending){translate:0 0;rotate:0deg}
@media(max-width:680px){.story-note.motion-reveal.motion-pending{translate:16px 32px;rotate:5deg}}
@media(prefers-reduced-motion:reduce){.story-note.motion-reveal.motion-pending,.story-note.motion-reveal:not(.motion-pending){opacity:1;translate:none;rotate:0deg;transition:none}}

/* Class A and B backgrounds stay in their final shape throughout assembly. */
.assembly-ready .assembly-backdrop,.assembly-enter .assembly-backdrop,.assembly-ready .water-shape,.assembly-enter .water-shape{animation:none;opacity:1;translate:none;rotate:0deg;scale:1;transform-box:view-box;transform-origin:0 0}
/* Compact contact actions and an automatically scrolling photo strip. */
.mission-contact .mission-contact-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mission-contact .mission-contact-buttons .button{padding:12px 13px;font-size:12px;gap:7px;min-width:0;justify-content:center}
.method-grid>.mission-contact{gap:23px;padding-inline:25px}
.mission-gallery{min-width:0;width:100%}
.mission-gallery-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;color:var(--petrol);font-size:11px}
.gallery-motion-toggle{border:0;background:none;color:var(--petrol);padding:4px 0;font-size:10px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.mission-gallery-window{overflow-x:auto;border-radius:12px;scrollbar-width:thin}
.mission-gallery-track{display:flex;width:max-content;gap:0}
.mission-gallery-group{display:flex;gap:12px;padding-right:12px;flex-shrink:0}
.mission-photo{display:block;width:180px;height:118px;flex-shrink:0;border-radius:10px;overflow:hidden;border:1px solid var(--line)}
.mission-photo img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.mission-photo:hover img{transform:scale(1.04)}
.mission-gallery-caption{font-size:10px;margin-top:8px;line-height:1.5}
.mission-gallery .gallery-copy{display:none}
.mission-gallery.is-running .gallery-copy{display:flex}
.mission-gallery.is-running .mission-gallery-window{overflow:hidden}
.mission-gallery.is-running .mission-gallery-track{animation:mission-photos 240s linear infinite}
.mission-gallery:hover .mission-gallery-track,.mission-gallery:focus-within .mission-gallery-track,.mission-gallery.is-paused .mission-gallery-track,.image-viewer-open .mission-gallery-track{animation-play-state:paused}
@keyframes mission-photos{to{transform:translateX(-50%)}}
@media(max-width:380px){.mission-contact .mission-contact-buttons .button{font-size:11px;padding-inline:8px}}
@media(prefers-reduced-motion:reduce){.mission-gallery.is-running .mission-gallery-track{animation:none}.mission-gallery.is-running .mission-gallery-window{overflow-x:auto}.mission-gallery.is-running .gallery-copy{display:none}.gallery-motion-toggle{display:none}}

/* Reviews use the same assembly, star rotations and pointer motion as the home. */
.review-connections>svg{display:block;width:100%;height:auto;transition:transform .35s ease-out;overflow:visible}
.review-connections svg .assembly-piece{transform-box:view-box;transform-origin:0 0}
.review-connections svg .notebook-star{transform-box:fill-box;transform-origin:center}
@media(prefers-reduced-motion:reduce){.review-connections>svg{transform:none!important}}

.faq-intro-grid{display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:55px}.faq-intro-grid .page-intro-copy{max-width:none}.faq-community{max-width:430px}
@media(max-width:900px){.faq-intro-grid{gap:25px;grid-template-columns:1.2fr .8fr}}
@media(max-width:680px){.faq-intro-grid{grid-template-columns:1fr;gap:22px}.faq-community{max-width:300px;justify-self:center}}
