/* Shared FLOW02 interaction layer, only on the 46-page composed preview.
   No hidden reveal baseline. Existing photo composition and CTA faces remain. */
.sui-page { --sui-ease:cubic-bezier(.22,.68,0,1); }
.sui-page :is(#flow02-preview,.lf-flow02,.fc-page,.sui-header,.sui-menu,.sui-footer) :is(a,button,summary,[tabindex="-1"]):focus:not(:focus-visible) {
 outline:none !important;
}
.sui-page :is(#flow02-preview,.lf-flow02,.fc-page,.sui-header,.sui-menu,.sui-footer) :focus-visible {
 outline:3px solid #267c92 !important; outline-offset:4px;
}
.sui-page :is(#flow02-preview,.lf-flow02,.fc-page,.sui-header,.sui-menu,.sui-footer) :is(a,button,summary) {
 -webkit-tap-highlight-color:transparent; touch-action:manipulation;
}
.sui-page :is(.sui-disclosure,.sui-map-details,.sf02-faq-item,.fl2-faq-item,.fc-faq) {
 transition:border-color .24s var(--sui-ease),box-shadow .24s var(--sui-ease);
}
.sui-page :is(.sui-disclosure,.sui-map-details,.sf02-faq-item,.fl2-faq-item,.fc-faq) > summary {
 transition:background-color .22s var(--sui-ease),color .22s var(--sui-ease);
}
.sui-page .sui-disclosure-body { display:flow-root; }
.sui-page [data-sui-expanded="false"] > summary .sui-plus::after { transform:rotate(90deg); }
.sui-page [data-sui-expanded="true"] > summary .sui-plus::after { transform:rotate(0); }
.sui-page .sui-plus::after { transition:transform .28s var(--sui-ease); }
.sui-page .sui-directory :is(.sui-disclosure,.sui-map-details)[open] { border-color:#8cb9c5; }
.sui-page .sui-directory summary:active { background:#dceef3; }
.sui-page :is(.sf02-button-face,.fc-button-face,.sui-button) { transition-timing-function:var(--sui-ease); }
.sui-page :is(.sf02-motion,.lf-motion,.fc-motion,.sui-motion-toggle) {
 display:none !important;
}
/* Without a stop control, eliminate perpetual drift; retain finite entrances.
   Cancel parallax through its variable, preserving existing photo rotations. */
.sui-page :is(.sf02-drift,.lf-hero-photo,.fc-hero-photo .fc-photo-motion,.bg-diagonal-lines) { animation:none !important; }
.sui-page .sf02-photo { --parallax:0px !important; }
/* The shared controller owns finite entrances only after successful setup.
   Legacy scripts still handle anchors/forms and remain the no-JS-file fallback. */
.sui-page:is([data-sui-choreography="v2"],[data-sui-choreography="v3"]) :is(.sf02-arrival,.sf02-scene-mask,.lf-arrival,.sf02-thread path,.sf02-hero h1>span) { animation:none !important; }
.sui-page .sui-bottom { flex-wrap:wrap; }
@media (hover:hover) and (pointer:fine) {
 .sui-page .sui-directory summary:hover { background:#e3f0f5; }
 .sui-page .sui-directory .sui-disclosure-links a:hover { background:#eff7f8; }
}
/* Hidden tabs rest. Reduced motion uses finite opacity-only WAAPI dissolves. */
.sui-page[data-sui-motion="off"] :is(#flow02-preview,.lf-flow02,.fc-page,.sui-header,.sui-menu,.sui-footer) *,
.sui-page[data-sui-motion="off"] :is(#flow02-preview,.lf-flow02,.fc-page,.sui-header,.sui-menu,.sui-footer) *::before,
.sui-page[data-sui-motion="off"] :is(#flow02-preview,.lf-flow02,.fc-page,.sui-header,.sui-menu,.sui-footer) *::after {
 animation:none !important; transition:none !important; scroll-behavior:auto !important;
}
@media (prefers-reduced-motion:reduce) {
 .sui-page :is(#flow02-preview,.lf-flow02,.fc-page,.sui-header,.sui-menu,.sui-footer) *,
 .sui-page :is(#flow02-preview,.lf-flow02,.fc-page,.sui-header,.sui-menu,.sui-footer) *::before,
 .sui-page :is(#flow02-preview,.lf-flow02,.fc-page,.sui-header,.sui-menu,.sui-footer) *::after {
  animation:none !important; transition:none !important; scroll-behavior:auto !important;
 }
}
/* Motion v3 (AD-150). States exist only after interaction.js marks elements
   below the first screen; without JS nothing here applies. transform-free
   individual properties keep existing rotations and mirrored curves intact. */
.sui-page { --sui-m-ease:cubic-bezier(.2,.7,.2,1); --sui-m-dist:16px; }
@media (max-width:600px) { .sui-page { --sui-m-dist:12px; } }
.sui-page [data-sui-m="pending"] { opacity:0 !important; }
.sui-page [data-sui-m="pending"]:is([data-sui-m-role="text"],[data-sui-m-role="card"]) { translate:0 var(--sui-m-dist) !important; }
.sui-page [data-sui-m="pending"][data-sui-m-role="photo"] { scale:.97 !important; }
.sui-page [data-sui-m="pending"][data-sui-m-role="mask"] { scale:.96 !important; clip-path:circle(28% at 50% 55%) !important; }
.sui-page [data-sui-m="in"] {
 transition:opacity .4s var(--sui-m-ease),translate .4s var(--sui-m-ease),scale .8s var(--sui-m-ease),clip-path .8s var(--sui-m-ease) !important;
 transition-delay:var(--sui-m-d,0ms) !important;
}
.sui-page [data-sui-m="in"][data-sui-m-role="card"] { transition-duration:.48s,.48s,.8s,.8s !important; }
.sui-page [data-sui-m="in"]:is([data-sui-m-role="photo"],[data-sui-m-role="mask"]) { transition-duration:.6s,.4s,.8s,.8s !important; }
.sui-page [data-sui-m="in"][data-sui-m-role="mask"] { clip-path:circle(75% at 50% 55%) !important; }
/* Section waves: rise once from the flat boundary into their curve (no hard wipe edge). */
.sui-page :is(.fc-curve,.lf-curve,.sf02-divider)[data-sui-mw],
.sui-page.tf-site .tf-section[data-sui-mw]::before { transform-origin:center bottom; }
.sui-page :is(.fc-curve,.lf-curve,.sf02-divider)[data-sui-mw="pending"],
.sui-page.tf-site .tf-section[data-sui-mw="pending"]::before { scale:1 .08 !important; }
.sui-page :is(.fc-curve,.lf-curve,.sf02-divider)[data-sui-mw="in"],
.sui-page.tf-site .tf-section[data-sui-mw="in"]::before { scale:1 1 !important; transition:scale 1.1s cubic-bezier(.3,.7,.2,1) !important; }
/* Reduced motion (owner choice A): opacity only, 0.3s. The never-matching id
   lifts specificity above the global reduced-motion "transition:none" rule. */
.sui-page[data-sui-motion-profile="reduced"] [data-sui-m]:is(#sui-m-reduced,[data-sui-m]) { translate:none !important; scale:none !important; clip-path:none !important; }
.sui-page[data-sui-motion-profile="reduced"] [data-sui-m="in"]:is(#sui-m-reduced,[data-sui-m]) { transition:opacity .3s ease-out !important; transition-delay:0ms !important; }
@media print {
 .sui-page [data-sui-m], .sui-page [data-sui-mw], .sui-page [data-sui-mw]::before { opacity:1 !important; translate:none !important; scale:none !important; clip-path:none !important; }
}
