/* C4Y motion system: a progressive enhancement over fully readable static pages. */
:root{--motion-ease:cubic-bezier(.2,.75,.2,1)}
.motion-toggle{position:fixed;right:22px;bottom:20px;z-index:40;display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #d0ded4;background:#f6faf4ed;backdrop-filter:blur(10px);color:#496759;border-radius:30px;box-shadow:0 3px 12px #183e3010;font-size:10px;line-height:1.4}.motion-toggle:hover{background:#e3f1e4}.motion-toggle:disabled{cursor:default}.motion-toggle-icon{font-size:11px}.reading-progress{position:absolute;bottom:-1px;left:0;width:100%;height:2px;background:#479b80;transform:scaleX(0);transform-origin:left;opacity:.65;pointer-events:none}
.hero{isolation:isolate}.hero-content{pointer-events:none}.hero-content a{pointer-events:auto}.hero-layers{position:absolute;inset:0;z-index:2;pointer-events:none}.floating-card{position:absolute;background:rgba(251,254,249,.9);backdrop-filter:blur(14px);border:1px solid #f9fff9;box-shadow:0 17px 45px #1842361c,0 2px 6px #18423608;border-radius:8px;padding:18px;width:205px;color:#345b4a;will-change:transform}.hero-lesson{right:54px;top:86px;transform:rotate(6deg)}.hero-insight{right:130px;top:501px;width:205px;transform:rotate(-7deg);padding:16px}.motion-kicker{display:block;font-size:7px;letter-spacing:.12em;color:#7c9c8a;line-height:1.7;font-weight:600}.floating-card strong,.assembly-card strong{display:block;font-family:var(--heading);font-size:14px;font-weight:550;letter-spacing:-.03em;line-height:1.5;margin:8px 0 12px}.mini-agenda{display:flex;align-items:center;gap:7px;font-size:8px;padding:7px 0;border-top:1px solid #e6eee3;color:#73907c}.mini-agenda i{width:5px;height:5px;border:1px solid #a7c4ae;border-radius:50%}.mini-agenda small{margin-left:auto;color:#abc0ac;font-size:7px}.mini-agenda b{font-size:8px;font-weight:400;color:#a1ba9e}.mini-progress{height:2px;background:#e2eddd;margin-top:9px;overflow:hidden}.mini-progress span{display:block;width:45%;height:100%;background:#79ad86;transform-origin:left}.hero-insight svg{display:block;width:100%;margin:10px 0 6px}.insight-caption{font-size:8px;color:#71907e}.hero-orbit{position:absolute;width:20px;height:20px;border:1px solid #a5c9b7;border-radius:4px;opacity:.5;transform:rotate(25deg)}.orbit-a{right:325px;top:135px}.orbit-b{right:50px;top:425px;width:10px;height:10px;border-radius:50%;background:#c7e6d4}
.motion-ready .hero-art{will-change:transform;transform:translate3d(calc(var(--pointer-x,0px) * -1),var(--hero-y,0px),0) scale(var(--hero-scale,1));transition:transform .14s linear}.motion-ready .hero-layers{transform:translate3d(var(--pointer-x,0px),var(--pointer-y,0px),0);transition:transform .25s ease-out;animation:layers-enter 1.5s .35s both var(--motion-ease)}.motion-ready .hero-lesson{animation:float-lesson 8s ease-in-out infinite;animation-play-state:paused}.motion-ready .hero-insight{animation:float-insight 10s ease-in-out infinite;animation-play-state:paused}.motion-ready .hero.is-inview .floating-card{animation-play-state:running}.hero-line-mask{display:block;overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em}.hero-line{display:block}.motion-ready .hero-line{animation:headline-enter 1.05s var(--motion-ease) both;animation-delay:calc(.1s + var(--line-index,0)*.13s)}.motion-ready .hero-title>p{animation:soft-enter .9s .4s both var(--motion-ease)}.motion-ready .hero-actions{animation:soft-enter .9s .55s both var(--motion-ease)}.motion-ready .announcement{animation:soft-enter .8s both var(--motion-ease)}.motion-ready .hero.is-inview .hero-curve{stroke-dasharray:100;animation:curve-loop 7s var(--motion-ease) infinite}.motion-ready .hero.is-inview .mini-progress span{animation:progress-loop 7s ease-in-out infinite}.motion-ready .hero.is-inview .orbit-a{animation:orbit-float 9s ease-in-out infinite}.motion-ready .hero.is-inview .orbit-b{animation:orbit-float 7s -3s ease-in-out infinite}
@keyframes headline-enter{from{transform:translateY(115%) rotate(1.8deg)}to{transform:translateY(0) rotate(0)}}@keyframes soft-enter{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes layers-enter{from{opacity:0;filter:blur(4px)}to{opacity:1;filter:blur(0)}}@keyframes float-lesson{0%,100%{transform:translateY(0) rotate(6deg)}50%{transform:translateY(-13px) rotate(3deg)}}@keyframes float-insight{0%,100%{transform:translateY(0) rotate(-7deg)}50%{transform:translateY(12px) rotate(-4deg)}}@keyframes orbit-float{0%,100%{translate:0 0;rotate:0deg}50%{translate:8px -16px;rotate:60deg}}@keyframes curve-loop{0%,10%{stroke-dashoffset:100;opacity:.3}45%,85%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}@keyframes progress-loop{0%,100%{transform:scaleX(.3)}55%,85%{transform:scaleX(2.2)}}
.motion-ready [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .8s var(--motion-ease),transform .9s var(--motion-ease);transition-delay:var(--reveal-delay,0ms)}.motion-ready [data-reveal].revealed{opacity:1;transform:none}.motion-ready .platform-grid>a:hover .feature-symbol{transform:translateY(-4px) rotate(-6deg)}.feature-symbol{transition:transform .35s var(--motion-ease)}.button{position:relative;overflow:hidden}.button:after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,#ffffff1c 45%,transparent 70%);transform:translateX(-130%);pointer-events:none}.motion-ready .button:hover:after{transform:translateX(130%);transition:transform .7s ease}.button span,.text-link span,.quiet-link span{transition:transform .3s var(--motion-ease)}.motion-ready :is(.button,.text-link,.quiet-link):hover>span:last-child{transform:translate(3px,-3px)}.nav-dropdown{transform-origin:top center}.motion-ready .nav-group.open .nav-dropdown{animation:menu-enter .22s var(--motion-ease)}@keyframes menu-enter{from{opacity:0;transform:translateY(-7px) scale(.98)}to{opacity:1;transform:none}}
.assembly-section{background:#e9eeea;position:relative}.assembly-sticky{padding:32px 0 25px;height:710px;min-height:610px;overflow:hidden}.assembly-shell{height:100%;display:flex;flex-direction:column}.assembly-heading{display:flex;justify-content:space-between;align-items:end;gap:35px;position:relative;z-index:3}.assembly-heading h2{font-size:40px;margin-top:12px}.assembly-copy{max-width:285px;padding-bottom:4px}.assembly-step-number{font-size:9px;color:#789985;letter-spacing:.12em}.assembly-description{font-size:13px;line-height:1.7;margin-top:9px;min-height:44px}.assembly-world{flex:1;position:relative;perspective:1300px;min-height:330px;isolation:isolate}.assembly-world .product-window{position:absolute;width:960px;left:50%;top:50%;transform:translate(-50%,-50%) scale(.8);transform-origin:50% 50%;z-index:2;will-change:transform}.assembly-world .product-layout{min-height:460px}.assembly-world .product-main{padding:22px 30px 15px}.assembly-world .class-header{margin-bottom:16px}.assembly-world .board-work{padding:16px 28px 31px}.assembly-world .board-work h3{font-size:22px}.assembly-world .graph{max-width:330px}.assembly-world .product-sidebar{padding:25px 17px}.assembly-glow{position:absolute;inset:5% 10%;background:radial-gradient(ellipse at center,#d4e3d0 0%,transparent 65%);filter:blur(30px);opacity:.8}.assembly-grid{position:absolute;inset:10% 5% -12%;background-image:linear-gradient(#93b89d1c 1px,transparent 1px),linear-gradient(90deg,#93b89d1c 1px,transparent 1px);background-size:55px 55px;transform:rotateX(60deg) translateY(70px);mask-image:radial-gradient(ellipse,black,transparent 70%);opacity:.5}.assembly-card{position:absolute;left:50%;top:50%;width:215px;padding:21px;background:#f8fcf5;border:1px solid white;border-radius:7px;box-shadow:0 18px 40px #254e3320;z-index:4;display:none;transform-style:preserve-3d;will-change:transform,opacity}.assembly-card small{font-size:9px;color:#7f9e86;line-height:1.7;display:block}.material-icon{font-size:34px;color:#77a189;margin:14px 0 5px}.assembly-material{width:175px}.assembly-feedback{width:240px;background:#f2f8e9}.feedback-tick{width:29px;height:29px;border-radius:50%;background:#daecd0;color:#598b53;text-align:center;margin-top:15px;font-size:16px;line-height:29px}.assembly-footer{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:35px;padding-top:12px}.assembly-chapters{display:flex;position:relative;gap:35px;padding-bottom:13px;font-size:10px;color:#8fa391}.assembly-chapters>span{transition:color .3s}.assembly-chapters>span.active{color:#275c46}.chapter-line{position:absolute;bottom:0;left:0;width:100%;height:2px;background:#d5e1d2}.chapter-line i{display:block;height:100%;background:#538966;width:100%;transform:scaleX(var(--assembly-progress,1));transform-origin:left}.assembly-footer>.text-link{font-size:11px;gap:15px;padding-block:4px}.scroll-cue{font-size:9px;color:#8fa391;display:none;gap:10px;align-items:center}.scroll-cue i{font-style:normal;font-size:17px}.motion-ready .assembly-section{height:260vh;height:260svh}.motion-ready .assembly-sticky{position:sticky;top:88px;height:calc(100vh - 88px);height:calc(100svh - 88px);min-height:570px}.motion-ready .assembly-world .product-window{overflow:visible;transform-style:preserve-3d;background:rgba(252,253,251,var(--shell-alpha,1));border-color:rgba(199,212,205,var(--shell-alpha,1));box-shadow:0 25px 70px rgba(23,63,45,.1)}.motion-ready .assembly-world .product-main{background:rgba(251,252,249,var(--shell-alpha,1));border-radius:0 0 9px 0}.motion-ready .assembly-world .window-bar{opacity:var(--shell-alpha,1);border-radius:9px 9px 0 0}.motion-ready .assembly-world .product-sidebar{transform:translate3d(calc(var(--separation,0)*-100px),calc(var(--separation,0)*-32px),calc(var(--separation,0)*40px));border-radius:6px}.motion-ready .assembly-world .class-header{transform:translate3d(calc(var(--separation,0)*20px),calc(var(--separation,0)*-75px),calc(var(--separation,0)*35px))}.motion-ready .assembly-world .board-visual{transform:translate3d(calc(var(--separation,0)*35px),calc(var(--separation,0)*25px),calc(var(--separation,0)*110px));box-shadow:0 15px 35px rgba(30,67,42,calc(var(--separation,0)*.1))}.motion-ready .assembly-world .class-bottom{transform:translateY(calc(var(--separation,0)*55px))}.motion-ready .assembly-card{display:block}.motion-ready .assembly-footer .scroll-cue{display:flex}.motion-ready .assembly-world .board-curve{stroke-dasharray:100;stroke-dashoffset:var(--graph-offset,0)}.motion-ready .assembly-section.is-inview .scroll-cue i{animation:scroll-nudge 1.8s ease-in-out infinite}@keyframes scroll-nudge{0%,100%{transform:translateY(-3px)}50%{transform:translateY(3px)}}
/* Detail sequences begin only when they enter the viewport. */
.motion-ready .planner.motion-scene .lesson-row{opacity:.45;transform:translateX(14px);transition:opacity .6s,transform .8s var(--motion-ease);transition-delay:calc(var(--row-index,0)*130ms)}.motion-ready .planner.motion-scene.scene-played .lesson-row{opacity:1;transform:none}.motion-ready .planner.motion-scene.scene-played .lesson-row i{color:#2c8560}.motion-ready .ai-visual.motion-scene .ai-request{clip-path:inset(0 100% 0 0);opacity:0;transition:clip-path 1.25s steps(30),opacity .2s}.motion-ready .ai-visual.motion-scene .ai-response{opacity:0;transform:translateY(12px);transition:opacity .6s 1.3s,transform .7s 1.3s var(--motion-ease)}.motion-ready .ai-visual.motion-scene .ai-items span{opacity:0;transform:translateY(7px);transition:opacity .4s,transform .5s var(--motion-ease);transition-delay:calc(1.7s + var(--item-index,0)*.18s)}.motion-ready .ai-visual.motion-scene .ai-actions{opacity:0;transition:opacity .5s 2.4s}.motion-ready .ai-visual.motion-scene.scene-played .ai-request{clip-path:inset(0);opacity:1}.motion-ready .ai-visual.motion-scene.scene-played .ai-response,.motion-ready .ai-visual.motion-scene.scene-played .ai-items span{opacity:1;transform:none}.motion-ready .ai-visual.motion-scene.scene-played .ai-actions{opacity:1}.scene-replay{margin-top:18px;border:0;background:none;color:#6c8c70;font-size:9px;display:block;padding:6px 0;cursor:pointer}.scene-replay span{display:inline-block;transition:transform .4s}.scene-replay:hover span{transform:rotate(-70deg)}.motion-ready .assignment-preview.motion-scene .feedback-note{opacity:0;transform:translateY(14px);transition:opacity .7s .35s,transform .8s .35s var(--motion-ease)}.motion-ready .assignment-preview.motion-scene .mock-status{opacity:0;transition:opacity .6s 1s}.motion-ready .assignment-preview.scene-played .feedback-note{opacity:1;transform:none}.motion-ready .assignment-preview.scene-played .mock-status{opacity:1}.motion-ready .recap-preview.motion-scene .recap-item{transform:translateY(15px);opacity:0;transition:opacity .6s,transform .8s var(--motion-ease);transition-delay:calc(.25s + var(--item-index,0)*.18s)}.motion-ready .recap-preview.scene-played .recap-item{transform:none;opacity:1}.motion-ready .recap-preview.motion-scene .recap-button{opacity:0;transition:opacity .6s .8s}.motion-ready .recap-preview.scene-played .recap-button{opacity:1}.motion-ready .closing{position:relative;overflow:hidden}.motion-ready .closing:before{content:'';position:absolute;width:600px;height:600px;right:-120px;top:-200px;background:radial-gradient(ellipse,#72c39a16,transparent 67%);transform:translateY(var(--closing-y,0px));pointer-events:none}.motion-ready .closing-inner{position:relative}.motion-ready .footer-big{transform:translateX(var(--footer-x,0px));will-change:transform}.motion-ready .tour-enter{animation:tour-enter .55s var(--motion-ease)}@keyframes tour-enter{from{opacity:.2;transform:translateY(10px)}to{opacity:1;transform:none}}
.motion-static [data-reveal]{opacity:1;transform:none}.motion-static .hero-line,.motion-static .floating-card,.motion-static .hero-layers{animation:none}.motion-static .hero-art,.motion-static .hero-layers,.motion-static .footer-big{transform:none!important}.motion-static .assembly-card{display:none}.motion-static .assembly-world .product-window{transform:translate(-50%,-50%) scale(.8)!important}.motion-static .scene-replay{display:none}.page-hidden *, .page-hidden *:before,.page-hidden *:after{animation-play-state:paused!important}
@media(max-width:1100px){.hero-lesson{right:30px;top:85px;width:185px}.hero-insight{right:55px;top:520px;width:190px}.orbit-a{right:270px}.assembly-heading h2{font-size:34px}.assembly-copy{max-width:255px}.assembly-footer{gap:20px}.assembly-chapters{gap:25px}.assembly-world .product-window{width:900px}.assembly-card{width:190px}.assembly-feedback{width:210px}.assembly-material{width:160px}}
@media(max-width:800px){.hero-layers .hero-lesson{width:148px;top:81px;right:18px;padding:12px;transform:rotate(5deg)}.hero-layers .hero-insight{display:none}.floating-card strong{font-size:11px;margin:6px 0}.motion-kicker{font-size:6px}.mini-agenda{font-size:6px;gap:5px;padding:5px 0}.mini-agenda small{font-size:6px}.hero-orbit{display:none}.hero-layers{z-index:1}.hero-content{z-index:2}.motion-ready .hero-art{transform:translate3d(0,var(--hero-y,0px),0) scale(var(--hero-scale,1))}.motion-ready .hero-layers{transform:none;animation:layers-enter 1.3s .4s both}.motion-toggle{right:12px;bottom:12px;padding:7px 10px;font-size:9px}.assembly-sticky{height:620px;min-height:570px;padding:25px 0}.motion-ready .assembly-section{height:210svh}.motion-ready .assembly-sticky{top:74px;height:calc(100svh - 74px);min-height:570px}.assembly-heading{display:block}.assembly-heading h2{font-size:31px;margin-top:12px}.assembly-heading .eyebrow{font-size:8px}.assembly-copy{max-width:100%;margin-top:18px;display:flex;align-items:start;gap:16px;padding:0}.assembly-step-number{font-size:7px;min-width:68px;line-height:1.8}.assembly-description{font-size:10px;line-height:1.8;margin:0;min-height:36px;max-width:210px}.assembly-world{min-height:290px}.assembly-world .product-window{width:760px;transform:translate(-50%,-50%) scale(.44)}.assembly-world .product-sidebar{display:flex}.assembly-world .product-layout{display:grid;grid-template-columns:145px 1fr;min-height:460px}.assembly-world .product-main{padding:22px 25px 15px}.assembly-world .class-header h3{font-size:25px}.assembly-card{width:170px;padding:16px}.assembly-material{width:150px}.assembly-feedback{width:185px}.assembly-card .motion-kicker{font-size:7px}.assembly-card strong{font-size:13px}.assembly-card .mini-agenda{font-size:8px}.assembly-footer{flex-wrap:wrap;gap:19px}.assembly-chapters{font-size:9px;gap:28px;width:100%;justify-content:space-between}.assembly-footer .text-link{font-size:10px}.scroll-cue{font-size:8px;margin-left:auto}.motion-static .assembly-world .product-window{transform:translate(-50%,-50%) scale(.44)!important}.hero-line-mask{padding-bottom:.12em}.hero-line{line-height:1.07}.scene-replay{font-size:10px}}
@media(max-width:360px){.assembly-world .product-window{transform:translate(-50%,-50%) scale(.37)}.motion-static .assembly-world .product-window{transform:translate(-50%,-50%) scale(.37)!important}.assembly-heading h2{font-size:27px}.hero-layers .hero-lesson{right:12px;width:135px;top:87px}}
@media(max-height:650px) and (min-width:801px){.motion-ready .assembly-sticky{min-height:480px}.assembly-heading h2{font-size:28px}.assembly-sticky{padding-block:15px}.assembly-world{min-height:250px}.assembly-description{font-size:11px;min-height:30px}.assembly-heading .eyebrow{font-size:8px}}
@media(prefers-reduced-motion:reduce){.assembly-section{height:auto!important}.assembly-sticky{position:relative!important;top:0!important;height:640px!important}.assembly-card{display:none!important}.hero-art,.hero-layers,.footer-big{transform:none!important}.hero-line,[data-reveal],.ai-response,.ai-items span,.ai-actions,.feedback-note,.mock-status,.recap-item,.recap-button,.lesson-row{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}.ai-request{opacity:1!important;clip-path:none!important}.board-curve,.hero-curve{stroke-dashoffset:0!important;animation:none!important}.scene-replay{display:none!important}}

.scene-reset .ai-request,.scene-reset .ai-response,.scene-reset .ai-items span,.scene-reset .ai-actions{transition:none!important}
