/* Dream RP motion: composed transforms; a custom cursor only while its controller is active. */
.motion-surface {position:relative;isolation:isolate;transition:box-shadow .4s ease}
html[data-motion="full"].motion-ready .motion-surface:not([data-reveal]),
html[data-motion="full"].motion-ready .motion-surface[data-reveal].is-visible {
  transform:perspective(1200px) translate3d(var(--motion-x,0px),var(--motion-y,0px),0) rotateX(var(--motion-rx,0deg)) rotateY(var(--motion-ry,0deg))!important;
  transition:opacity .65s ease,filter .65s ease,box-shadow .3s ease;
}
.motion-surface.is-motion-running,.motion-magnetic.is-motion-running {will-change:transform}
.motion-surface.motion-emblem.is-cursor-active {box-shadow:none!important}
.motion-surface>.motion-spotlight {position:absolute;inset:0;z-index:8;border-radius:inherit;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .25s;contain:layout paint}
.motion-spotlight::before {content:"";position:absolute;top:0;left:0;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,#b896ff33,transparent 68%);transform:translate3d(var(--light-x,0px),var(--light-y,0px),0) translate(-50%,-50%);pointer-events:none}
.is-motion-running>.motion-spotlight::before {will-change:transform}
.manifesto-tile.motion-surface::before,.roadmap-step.motion-surface::before {display:none}
.motion-surface.is-cursor-active>.motion-spotlight {opacity:1}
/* A continuous table stays flat; its shared light reaches every divider
   instead of being clipped and displaced by the hovered cell. */
html[data-motion="full"].motion-ready .platform-specs.motion-surface,
html[data-motion="full"].motion-ready .platform-specs.motion-surface[data-reveal].is-visible {transform:none!important}
html[data-motion="full"].motion-ready .platform__credentials.motion-surface {transform:none!important}
.platform-specs.motion-surface>.motion-spotlight {z-index:8}
html[data-motion="full"].motion-ready .motion-magnetic {transform:translate3d(var(--motion-x,0px),calc(var(--motion-y,0px) + var(--magnet-lift,0px)),0)!important;transition:box-shadow .3s,background .3s,color .3s,border-color .3s}
.motion-magnetic.is-cursor-active {--magnet-lift:-2px}
.vision__scene {transform:translate3d(var(--depth-x,0px),var(--depth-y,0px),0) scale(1.08)}
.character-layer--vision {transform:translate3d(var(--cast-x,0px),var(--cast-y,0px),0)}
html[data-motion="full"] #experiencePanel .showcase-panel__photo[data-scene] {transform:translate3d(var(--depth-x,0px),var(--depth-y,0px),0) scale(1.06)!important}
.dream-cursor-bloom {position:fixed;left:0;top:0;width:320px;height:320px;border-radius:50%;z-index:90;pointer-events:none;opacity:0;background:radial-gradient(circle,#a67bff1a,transparent 65%);transition:opacity .25s;will-change:transform;contain:layout paint}
.dream-cursor-bloom.is-visible {opacity:1}
html[data-motion="full"].cursor-motion .dream-cursor-aura {display:block!important;width:42px;height:42px;border-color:#a88bdd88;background:#a788ed08;box-shadow:0 0 24px #9c70ef14}
html.cursor-motion .dream-cursor-aura.is-interactive {width:70px;height:70px;border-color:#b799ee;background:#b78dff16}
html[data-motion="full"].cursor-motion,html[data-motion="full"].cursor-motion * {cursor:none!important}
html[data-motion="full"].cursor-motion .dream-cursor-aura {contain:layout paint;transition:opacity .08s,width .2s,height .2s,border-color .2s;box-shadow:none}
.dream-cursor-aura::after {content:"";position:absolute;top:50%;left:50%;width:6px;height:6px;border-radius:50%;background:#a67bf0;transform:translate(-50%,-50%)}
/* A transformed dialog would offset and clip its fixed cursor. Fade the modal
   without transforming its coordinate system, including during entry. */
.music-dialog[open].has-custom-cursor {animation-name:cursorDialogEnter;transform:none;will-change:auto}
@keyframes cursorDialogEnter {from {opacity:0} to {opacity:1}}
html[data-theme="dark"] .dream-cursor-aura::after {background:#d2bbff}
/* Animated glass filters force the changing scenes beneath them to be resampled. */
.motion-hero .floating-note,.motion-hero .visual-frame__top>span {backdrop-filter:none;-webkit-backdrop-filter:none}
.motion-hero.is-motion-running .hero__halo,.motion-hero.is-motion-running .floating-note,.motion-hero.is-motion-running .character-layer--hero {will-change:transform}
.motion-surface.is-motion-running .vision__scene,.motion-surface.is-motion-running .character-layer--vision,.motion-surface.is-motion-running .showcase-panel__photo {will-change:transform}
html[data-theme="light"] .dream-cursor-bloom {background:radial-gradient(circle,#824edf18,transparent 65%)}
html[data-motion="full"] .motion-hero .scene-picture img,html[data-motion="full"] .cinema .scene-picture img,html[data-motion="full"] .vision__scene img,html[data-motion="full"] .showcase-panel .scene-picture img {animation:dream-scene-drift 18s ease-in-out infinite alternate;animation-play-state:paused}
html[data-motion="full"] .motion-hero .character-layer img,html[data-motion="full"] .vision__art .character-layer img {animation:dream-cast-breathe 6s ease-in-out infinite alternate;animation-play-state:paused}
html[data-motion="full"] .motion-in-view .scene-picture img,html[data-motion="full"] .motion-in-view .character-layer img {animation-play-state:running}
.motion-hero .floating-note>svg {animation:dream-symbol-turn 12s linear infinite;animation-play-state:paused}
.motion-hero.motion-in-view .floating-note>svg {animation-play-state:running}
.platform__orb.motion-in-view .platform__orb-ring--one {animation:dream-orbit 22s linear infinite}
.platform__orb.motion-in-view .platform__orb-ring--two {animation:dream-orbit 30s linear infinite reverse}
.join__art.motion-in-view>img {animation:dream-mark-float 7s ease-in-out infinite}
.hero__tag .tag-dot {animation:dream-status-pulse 3s ease-in-out infinite;animation-play-state:paused}
.hero.motion-in-view .tag-dot {animation-play-state:running}
@keyframes dream-scene-drift {from{transform:scale(1.025) translate3d(-.5%,0,0)}to{transform:scale(1.085) translate3d(.5%,-.7%,0)}}
@keyframes dream-cast-breathe {from{transform:translate3d(0,0,0) rotate(-.3deg)}to{transform:translate3d(0,-7px,0) rotate(.35deg)}}
@keyframes dream-mark-float {0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-12px) rotate(3deg)}}
@keyframes dream-orbit {to{transform:rotate(360deg)}}
@keyframes dream-symbol-turn {to{transform:rotate(360deg)}}
@keyframes dream-status-pulse {0%,100%{box-shadow:0 0 0 0 #a47bf000}50%{box-shadow:0 0 0 6px #a47bf022}}
/* A hybrid device can have a coarse primary pointer and still receive a real mouse. */
html[data-motion="full"].cursor-motion .hero__visual .visual-frame {transform:perspective(1300px) rotateX(var(--hero-rx,0deg)) rotateY(var(--hero-ry,0deg))!important}
html[data-motion="full"].cursor-motion .hero__visual .visual-frame__photography {transform:translate3d(var(--photo-x,0px),calc(var(--photo-y,0px) + var(--photo-scroll,0px)),0) scale(1.13)!important}
html[data-motion="full"].cursor-motion .character-layer--hero {transform:translate3d(var(--character-x,0px),var(--character-y,0px),0)!important}
html[data-motion="full"].cursor-motion .hero__halo {transform:translate3d(var(--halo-x,0px),var(--halo-y,0px),0) rotate(-8deg)!important}
html[data-motion="full"].cursor-motion .floating-note--top {transform:translate3d(var(--top-x,0px),var(--top-y,0px),0)!important}
html[data-motion="full"].cursor-motion .floating-note--bottom {transform:translate3d(var(--bottom-x,0px),var(--bottom-y,0px),0)!important}
/* An explicit site choice can opt into these effects even when the OS reduces motion. */
html[data-motion="full"] .scene-picture img {animation-duration:18s!important;animation-iteration-count:infinite!important}
html[data-motion="full"] .character-layer img {animation-duration:6s!important;animation-iteration-count:infinite!important}
html[data-motion="full"] .join__art>img {animation-duration:7s!important;animation-iteration-count:infinite!important}
html[data-motion="full"] .hero__tag .tag-dot {animation-duration:3s!important;animation-iteration-count:infinite!important}
html[data-motion="full"] .floating-note>svg {animation-duration:12s!important;animation-iteration-count:infinite!important}
html[data-motion="full"] .platform__orb-ring {animation-duration:22s!important;animation-iteration-count:infinite!important}
html.motion-paused .motion-in-view img,html.motion-paused .platform__orb-ring,html.motion-paused .hero__tag .tag-dot,html.motion-paused .floating-note>svg {animation-play-state:paused!important}
html[data-motion="reduced"] .hero__visual .visual-frame,html[data-motion="reduced"] .floating-note,html[data-motion="reduced"] .motion-surface,html[data-motion="reduced"] .motion-magnetic,html[data-motion="reduced"] .vision__scene,html[data-motion="reduced"] .character-layer--vision,html[data-motion="reduced"] .showcase-panel__photo {transform:none!important}
html[data-motion="reduced"] .motion-hero img,html[data-motion="reduced"] .cinema img,html[data-motion="reduced"] .vision__art img,html[data-motion="reduced"] .showcase-panel img,html[data-motion="reduced"] .platform__orb-ring,html[data-motion="reduced"] .join__art img,html[data-motion="reduced"] .hero__tag .tag-dot,html[data-motion="reduced"] .floating-note>svg {animation:none!important}
html[data-motion="reduced"] .dream-cursor-aura,html[data-motion="reduced"] .dream-cursor-bloom,html[data-motion="reduced"] .motion-spotlight {display:none!important}
.motion-meta {display:flex;flex-wrap:wrap;align-items:center;gap:9px 16px}
/* Shares the theme switch silhouette; its state follows motion, independently of theme. */
.motion-toggle {position:fixed;right:24px;bottom:calc(20px + var(--dream-player-offset,0px) + env(safe-area-inset-bottom,0px));z-index:105;min-height:44px;height:44px;max-width:calc(100vw - 32px);cursor:pointer}
.motion-toggle .motion-toggle__rail {--switch-width:53px;--switch-thumb-size:23px;width:var(--switch-width);height:28px;background:#f3eefd;border-color:#e4d8fb}
.motion-toggle .motion-toggle__rail svg {fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8;transform:translateY(-50%);color:#7855ad}
.motion-toggle__pause {left:calc(var(--switch-edge) + (var(--switch-thumb-size) - 16px)/2);opacity:1}
.motion-toggle__play {right:calc(var(--switch-edge) + (var(--switch-thumb-size) - 16px)/2);opacity:.35}
.motion-toggle .motion-toggle__thumb {width:23px;height:23px;transform:translateX(0);background:#fff;box-shadow:0 2px 9px #4c28783d}
.motion-toggle .motion-toggle__label {display:block;padding-right:5px}
html[data-theme="dark"] .motion-toggle .motion-toggle__rail {background:#49336e;border-color:#6e4da8}
html[data-theme="dark"] .motion-toggle .motion-toggle__rail svg {color:#ddc7ff}
html[data-theme="dark"] .motion-toggle .motion-toggle__thumb {background:#d2c1ff;box-shadow:0 2px 12px #ae8cff7a}
html[data-motion="full"] .motion-toggle .motion-toggle__thumb {transform:translateX(var(--switch-travel))}
html[data-motion="reduced"] .motion-toggle .motion-toggle__thumb {transform:translateX(0)}
html[data-motion="full"] .motion-toggle__pause {opacity:.35}
html[data-motion="full"] .motion-toggle__play {opacity:1}
html[data-theme="dark"][data-motion="full"] .motion-toggle .motion-toggle__play,
html[data-theme="dark"][data-motion="reduced"] .motion-toggle .motion-toggle__pause {color:#49336e}
@media(max-width:640px){.motion-meta{gap:8px}.motion-toggle{right:16px;bottom:calc(16px + var(--dream-player-offset,0px) + env(safe-area-inset-bottom,0px));padding:7px}}


html[data-motion="reduced"] .visual-frame__photography {transform:scale(1.08)!important}
