/* Motion is progressive enhancement: the base document is always readable. */
[data-motion] { scroll-margin-top:calc(var(--header-height) + 22px); }
.motion-word { display:inline-block; }
@keyframes rb-arrive { from { opacity:.18; transform:translateY(24px); } to { opacity:1; transform:none; } }
@keyframes rb-word { from { opacity:.2; transform:translateY(.38em); } to { opacity:1; transform:none; } }
.motion-enter:not([data-motion=heading]) { animation:rb-arrive .7s cubic-bezier(.2,.7,.2,1) var(--motion-delay,0ms) both; }
.motion-enter[data-motion=heading] .motion-word { animation:rb-word .72s cubic-bezier(.2,.7,.2,1) var(--word-delay,0ms) both; }
.motion-enter:focus-within { animation:none; }
.motion-enter:focus-within .motion-word { animation:none; }
.project-section-head { grid-template-columns:1fr; }

/* Identical frames for the audience journey and production process. */
.scroll-story { position:relative; margin-block:22px 0; }
.story-frame { min-width:0; }
.story-frame h2 { margin:22px 0 28px; font-size:clamp(28px,4vw,55px); }
.story-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.story-step { min-width:0; padding:20px 0; border-top:1px solid var(--rb-border); }
.story-step .story-number { display:block; color:var(--rb-action); font-size:14px; font-weight:700; font-variant-numeric:tabular-nums; }
.story-step h3 { margin:16px 0; font-size:clamp(24px,3vw,42px); }
.story-step p { font-size:clamp(15px,1.4vw,19px); max-width:40ch; color:var(--rb-text-muted); }
.story-controls { display:none; }
.story-enhanced::after { content:""; display:block; height:var(--story-travel,400px); }
.story-enhanced .story-frame { position:sticky; top:calc(var(--header-height) + 14px); }
.story-enhanced .story-steps { grid-template-columns:1fr; min-height:190px; }
.story-enhanced .story-step { grid-area:1/1; opacity:0; visibility:hidden; transform:translateY(16px); transition:opacity .3s,transform .45s; }
.story-enhanced .story-step.is-current { opacity:1; visibility:visible; transform:none; }
.story-enhanced .story-controls { display:flex; gap:10px; margin-top:24px; }
.story-controls button { min-width:48px; min-height:44px; background:transparent; border:1px solid var(--rb-border); border-radius:999px; color:var(--rb-text); }
.story-controls button[aria-pressed=true] { border-color:var(--rb-action); background:var(--rb-action); color:#fff; }
.story-controls button:focus-visible { outline:2px solid var(--rb-focus); outline-offset:3px; }

.process-motion { background-image:url("/assets/process-white-v23.webp"); background-size:contain; background-position:center; background-repeat:no-repeat; }

/* Sharp portrait, small camera movement, and live text in the free part of frame. */
.founder-feature>img { transform:scale(var(--founder-zoom,1)); transform-origin:50% 42%; }
.founder-feature header,.founder-feature .founder-invitation { transform:translateY(var(--founder-copy-y,0px)); }
.founder-actions { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.founder-actions>.button { gap:18px; white-space:nowrap; }
.founder-socials { display:flex; gap:8px; }
.social-button { width:46px; height:46px; display:grid; place-items:center; border:1px solid #fff; border-radius:50%; color:#fff; background:#11111055; }
.social-button svg { width:23px; height:23px; }
.social-button:hover,.social-button:focus-visible { color:#fff; background:#D5221A; border-color:#D5221A; }

html[data-theme] .packages .package>.product-duration { color:#E52D20; font-size:clamp(28px,3.5vw,48px); line-height:1.15; letter-spacing:-.045em; }
.session-card h3 { font-size:clamp(23px,2.4vw,35px); line-height:1.12; }
.session-price { display:flex; flex-wrap:wrap; align-items:baseline; gap:10px 18px; }
.session-price del { color:#b7b7b0; font-size:18px; text-decoration-thickness:1.5px; white-space:nowrap; }
.session-price>span { color:#fff; font-size:30px; font-weight:650; white-space:nowrap; }
.booking-notice { color:var(--rb-text-muted); margin-top:14px; font-size:15px; }

/* A single gentle sheen when the questions enter view, or on focus/hover. */
.faq summary .question-label { color:inherit!important; font:inherit; letter-spacing:inherit; position:relative; }
@keyframes rb-sheen { from { background-position:180% 0; } to { background-position:-80% 0; } }
@supports (-webkit-background-clip:text) {
  .faq.sheen-once .question-label,.faq summary:is(:hover,:focus-visible) .question-label {
    background-image:linear-gradient(110deg,var(--rb-text) 37%,var(--rb-text-accent) 48%,var(--rb-text) 60%);
    background-size:240% 100%; -webkit-background-clip:text; background-clip:text;
    -webkit-text-fill-color:transparent; animation:rb-sheen 1.7s ease-in-out 1;
  }
}
/* SVG follows the actual foreground of its parent in both themes. */
.arrow-icon { flex:none; }
html[data-theme] .case-visual i { background:#fff; color:#111; }
html[data-theme] .case-card:is(:hover,:focus-visible) .case-visual i { color:#bf201a; }
html[data-theme] :is(a,button,.footer-contact,.full-menu,.booking,.inquiry-dialog,.session-invite,.final-cta) .arrow-icon { color:inherit!important; stroke:currentColor; filter:none; }
.final-cta>span .arrow-icon { width:30px; height:30px; }
.footer-contact a .arrow-icon { width:20px; height:20px; }

.menu-tagline { font:500 14px/1.4 Manrope,sans-serif; margin:0 50px 24px 0; color:var(--rb-text-muted); }
html[data-theme] .full-menu .menu-brand { margin-bottom:12px; }
.full-menu.drawer-ready { transform:translateX(-102%); transition:transform .32s cubic-bezier(.2,.7,.2,1); overscroll-behavior:contain; touch-action:pan-y; }
.full-menu.drawer-ready.drawer-open { transform:translateX(0); }
.full-menu.drawer-dragging,.menu-scrim.drawer-dragging { transition:none!important; }
.menu-scrim.drawer-ready { opacity:0; transition:opacity .32s ease; }
.menu-scrim.drawer-open { opacity:1; }
.menu-close { touch-action:manipulation; }
html[data-theme] .full-menu nav a { font-size:clamp(24px,3.4vw,44px); }
@media(max-width:760px) {
  .story-steps { grid-template-columns:1fr; gap:8px; }
  .story-frame { padding:23px 20px; }
  .story-enhanced .story-steps { min-height:210px; }
  .story-frame h2 { font-size:clamp(26px,6.8vw,40px); }
  .story-step h3 { font-size:clamp(26px,7.2vw,38px); }
  .story-step p { font-size:15px; }
  .founder-actions { gap:10px; }
  .founder-actions>.button { padding-inline:18px; }
  main { touch-action:pan-y pinch-zoom; }
  :is(.table-scroll,.filters,.tab-buttons,.slots) { touch-action:pan-x pan-y; }
  html[data-theme] .full-menu { padding:24px 22px; }
  .full-menu nav a { padding-block:10px; }
  .full-menu .menu-foot { margin-top:24px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .process-motion video { opacity:0; }
  [data-motion],.motion-word,.motion-enter,.faq .question-label { animation:none!important; transform:none!important; opacity:1!important; }
  .faq .question-label { -webkit-text-fill-color:currentColor!important; background:none!important; }
  .founder-feature>img,.founder-feature header,.founder-feature .founder-invitation { transform:none!important; }
  .full-menu.drawer-ready,.menu-scrim.drawer-ready { transition:none; }
  .story-enhanced::after { display:none; }
  .story-enhanced .story-frame { position:static; }
  .story-enhanced .story-steps { display:block; }
  .story-enhanced .story-step { opacity:1; visibility:visible; transform:none; }
  .story-controls { display:none!important; }
}
