/* Layered photography and scroll-driven card dealing, inspired by the supplied reference. */
.cm-photo-window{position:relative;perspective:1000px;background:#dbe4cb;isolation:isolate}
.cm-photo-slide{position:absolute;inset:0;overflow:hidden;backface-visibility:hidden;transform-origin:50% 100%;transition:transform 1.1s cubic-bezier(.22,.75,.17,1),opacity .7s;will-change:transform;opacity:0;transform:translateX(80%) rotateY(-55deg) rotateZ(8deg) scale(.85)}
.cm-photo-slide.is-current{z-index:2;opacity:1;transform:translateX(0) rotateY(0) rotateZ(0) scale(1)}
.cm-photo-slide.is-previous{z-index:1;opacity:0;transform:translateX(-85%) rotateY(60deg) rotateZ(-8deg) scale(.85)}
.cm-photo-slide .cm-primary-photo{height:100%;width:100%;object-fit:cover;transform:scale(1.06);transition:transform 7s ease-out}
.cm-photo-slide.is-current .cm-primary-photo{transform:scale(1)}
.cm-photo-switch{bottom:-15px;left:50%;transform:translateX(-50%);align-items:center;gap:5px;z-index:5}
.cm-photo-switch button{width:43px;height:44px;padding:0;border-radius:0;background:transparent;position:relative;font-size:12px;color:#8b967b;font-weight:500}
.cm-photo-switch button:after{content:'';position:absolute;left:8px;right:8px;bottom:1px;border-bottom:2px solid #d3dbc5}
.cm-photo-switch button.on{width:43px;background:transparent;color:#435f3c}.cm-photo-switch button.on:after{border-color:#78915b}
.cm-photo-switch .cm-motion-toggle{border:1px solid #dbe3ce;width:40px;height:40px;border-radius:50%;margin-left:8px;font-size:15px}.cm-motion-toggle:after{display:none}
.cm-scene-blob{transform:translate3d(calc(var(--scene-drift,0px) * -.3),calc(var(--scroll-depth) * .25),0) rotate(-12deg);transition:transform .4s ease-out}
.cm-scene-disc{transform:translateY(calc(var(--scroll-depth) * -.45));transition:transform .4s ease-out}
.cm-photo-back{transform:translateY(calc(var(--scroll-depth) * .15)) rotate(calc(-9deg + var(--scene-roll,0deg)));transition:transform .5s ease-out}
.cm-photo-main{animation:cm-photo-arrive 1.3s cubic-bezier(.2,.7,.2,1) both}
.cm-photo-small{animation:cm-small-arrive 1.4s .12s cubic-bezier(.2,.7,.2,1) both}
.cm-float-family span,.cm-float-educator span{display:inline-block;animation:cm-soft-bob 5.5s ease-in-out infinite}
.cm-float-educator span{animation-delay:-2.5s}
.cm-scene-flower{animation-duration:30s}.cm-scene-spark{animation:cm-spark-breathe 6s ease-in-out infinite}
.cm-story-watermark{transform:translateY(var(--story-drift,0px));transition:transform .2s linear}
.cm-story-flower{animation:cm-soft-bob 6s ease-in-out infinite}
.cm-brand-grid{position:relative;isolation:isolate;perspective:1600px}
.cm-motion-ready .cm-brand-card{opacity:1;translate:none;transform:translate3d(var(--deal-x,0px),var(--deal-y,0px),var(--deal-depth,0px)) rotateZ(var(--deal-angle,0deg)) rotateY(var(--deal-turn,0deg)) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .25s ease-out,box-shadow .3s;will-change:transform}
.cm-motion-ready .cm-brand-card.cm-visible:hover,.cm-motion-ready .cm-brand-card:focus-visible{transform:translate3d(var(--deal-x,0px),calc(var(--deal-y,0px) - 12px),40px) rotateZ(var(--deal-angle,0deg)) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));box-shadow:0 30px 60px #34462c25;z-index:8}
.cm-brand-image img{transition:transform .9s cubic-bezier(.2,.7,.2,1)}.cm-brand-card:hover .cm-brand-image img{transform:scale(1.09)}
.cm-brand-card{transform-style:flat}.cm-brand-card .cm-brand-body,.cm-brand-card .cm-brand-image{transform:none}
.cm-orbit-map.cm-visible .cm-orbit-node{animation:cm-node-arrive .8s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--node-delay,0ms)}
.cm-orbit-node:hover,.cm-orbit-node:focus-visible{scale:1.05;box-shadow:0 12px 30px #52633924}
.cm-connection-lines path{stroke-dasharray:5 9;animation:cm-connection-flow 4s linear infinite}
.cm-connection-lines path.active{stroke-dasharray:8 6;animation-duration:2s;stroke:#859e67}
.cm-ring-two{animation:cm-orbit-breathe 8s ease-in-out infinite}
.cm-stat{transition:transform .4s,box-shadow .4s}.cm-stat:hover{transform:translateY(-7px) rotate(-1deg);box-shadow:0 15px 30px #34462c10}
.cm-journey-flower{animation:cm-journey-turn 40s linear infinite}
.cm-connection-detail>div{animation:cm-detail-arrive .45s ease both}
.cm-scroll-link span{animation:cm-scroll-cue 2s ease-in-out infinite}
@keyframes cm-photo-arrive{from{opacity:0;translate:55px 40px;rotate:12deg}to{opacity:1;translate:0 0;rotate:0deg}}
@keyframes cm-small-arrive{from{opacity:0;translate:-55px 50px;rotate:-15deg}to{opacity:1;translate:0 0;rotate:0deg}}
@keyframes cm-soft-bob{50%{translate:0 -5px}}
@keyframes cm-spark-breathe{50%{transform:rotate(15deg) scale(.86)}}
@keyframes cm-node-arrive{from{opacity:0;scale:.7;filter:blur(3px)}to{opacity:1;scale:1;filter:blur(0)}}
@keyframes cm-connection-flow{to{stroke-dashoffset:-56}}
@keyframes cm-orbit-breathe{50%{scale:.95;opacity:.5}}
@keyframes cm-journey-turn{to{transform:rotate(380deg)}}
@keyframes cm-detail-arrive{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
@keyframes cm-scroll-cue{50%{translate:0 4px}}
@media(max-width:1150px){
 .cm-motion-ready .cm-brand-card{opacity:0;transform:translateY(60px) rotateY(-16deg) rotateZ(3deg);transition:opacity .8s,transform 1s cubic-bezier(.2,.7,.2,1)}
 .cm-motion-ready .cm-brand-card:nth-child(even){transform:translateY(60px) rotateY(16deg) rotateZ(-3deg)}
 .cm-motion-ready .cm-brand-card.cm-visible{opacity:1;transform:translateY(0) rotateY(0) rotateZ(0)}
 .cm-motion-ready .cm-brand-card.cm-visible:hover{transform:translateY(-8px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg))}
}
@media(max-width:700px){.cm-photo-switch{bottom:0}.cm-photo-slide{transition-duration:.85s}.cm-motion-ready .cm-brand-card{transform:translateY(55px) rotateY(-13deg) rotateZ(2deg)}.cm-motion-ready .cm-brand-card:nth-child(even){transform:translateY(55px) rotateY(13deg) rotateZ(-2deg)}}
@media(prefers-reduced-motion:reduce){
 .community-page *, .community-page *:before,.community-page *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .cm-motion-ready [data-cm-reveal],.cm-motion-ready .cm-brand-card{opacity:1!important;translate:none!important;transform:none!important}
 .cm-photo-main,.cm-photo-small{translate:none!important;rotate:none!important;opacity:1!important}
 .cm-photo-slide{transform:none!important}.cm-photo-slide:not(.is-current){visibility:hidden}.cm-photo-slide .cm-primary-photo{transform:none}
 .cm-motion-toggle{display:none}.cm-photo-back,.cm-scene-blob,.cm-scene-disc{transform:none}.cm-orbit-node:hover,.cm-orbit-node:focus-visible{scale:1}
}
