/* Generous footer, shared by the landing pages and learning previews. */
.full-footer{display:block;max-width:1600px;margin:65px auto 0;padding:0 6%;background:var(--soft);color:var(--ink);border-top:1px solid var(--line);overflow:hidden}.footer-invitation{display:flex;align-items:center;justify-content:space-between;gap:40px;padding:58px 0 45px;border-bottom:1px solid var(--line)}.footer-kicker{font-size:8px;letter-spacing:1.9px;display:block;margin-bottom:20px}.footer-invitation h2{font-size:clamp(28px,3.1vw,46px);line-height:1.3;margin:0}.footer-cta{display:flex;align-items:center;justify-content:space-between;gap:25px;font-size:11px;background:var(--accent);color:var(--bg);padding:19px 23px;white-space:nowrap;flex-shrink:0}.footer-cta span{font-size:22px;line-height:1}.footer-columns{display:grid;grid-template-columns:1.45fr .8fr .9fr 1.15fr;gap:45px;padding:48px 0}.footer-brand .brand{font-size:56px;display:inline-block}.footer-brand .brand span{font-size:7px;letter-spacing:1.5px}.full-footer .footer-brand>p{font-size:11px;line-height:1.9;color:var(--muted);margin:22px 0;max-width:270px}.full-footer .footer-social{display:inline-flex;align-items:center;gap:10px;padding:10px 0;font-size:10px}.footer-social>span{font-size:22px}.footer-social>b{font-size:14px;font-weight:400}.full-footer h3{font-family:Manrope,Arial,sans-serif;font-size:11px;font-weight:700;margin:5px 0 23px}.footer-columns nav{display:flex;flex-direction:column;align-items:flex-start;gap:15px}.footer-columns nav h3{margin-bottom:8px}.footer-columns nav a{font-size:10px;color:var(--muted);position:relative;padding-bottom:3px}.footer-columns nav a::after,.footer-contact>a::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s ease}.full-footer .footer-contact p{font-size:11px;line-height:1.9;color:var(--muted);margin:0 0 18px}.footer-contact>a{font-size:10px;display:inline-block;position:relative;padding-bottom:5px}.footer-demo-note{display:block;margin-top:25px;font-size:8px;line-height:1.8;color:var(--muted)}.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:23px 0;border-top:1px solid var(--line);font-size:8px;color:var(--muted)}.footer-bottom>div{display:flex;align-items:center;gap:20px}.motion-toggle{padding:8px 0;background:transparent;color:var(--muted);font-size:8px}.back-to-top{white-space:nowrap;font-size:9px}.noir .full-footer{background:#222723;border-color:#414b3b}.noir .footer-cta{color:#20251c}.noir .footer-invitation h2 em{color:#d7b68b}.play .full-footer{background:#e8dff8;border:0;border-radius:35px 35px 0 0}.play .footer-invitation h2{font-weight:800;letter-spacing:-1.5px}.play .footer-cta{border-radius:35px;color:white}.play .footer-social{border:1px solid #c5b6e0;border-radius:30px;padding:8px 14px}.learning .full-footer{margin-top:30px;padding-inline:28px}.learning .footer-columns{grid-template-columns:1.2fr .8fr .9fr;gap:30px}.learning .footer-contact{grid-column:1/-1;display:grid;grid-template-columns:1fr 2fr 1fr;gap:20px;align-items:start;border-top:1px solid var(--line);padding-top:25px}.learning .footer-contact h3{margin:3px 0}.learning .footer-demo-note{grid-column:2/4;margin-top:0}.learning .footer-invitation h2{font-size:32px}.learning .footer-invitation{padding-block:38px}.learning .footer-brand .brand{font-size:44px}.learning .full-footer p{display:block}.learning .footer-bottom{flex-wrap:wrap}.learning .footer-bottom>span:nth-child(2){display:none}
/* Different rhythms, same accessible motion system. Everything settles after entry. */
body{--motion-duration:760ms;--motion-distance:22px;--motion-ease:cubic-bezier(.2,.7,.2,1)}body.noir{--motion-duration:950ms;--motion-distance:16px;--motion-ease:cubic-bezier(.16,.7,.2,1)}body.play{--motion-duration:620ms;--motion-distance:26px;--motion-ease:cubic-bezier(.2,.8,.2,1.05)}.animations-on .motion-item{opacity:0;translate:0 var(--motion-distance);transition:opacity var(--motion-duration) ease var(--motion-delay,0ms),translate var(--motion-duration) var(--motion-ease) var(--motion-delay,0ms)}.animations-on .motion-visible,.animations-on .motion-item:focus-within{opacity:1;translate:0 0}.animations-on .hero-image{animation:image-intro 2.6s cubic-bezier(.2,.65,.3,1) both}.animations-on .welcome-art img{animation:image-intro 2.2s ease-out both}.animations-on .learning-course .progress-track i{transform:scaleX(0);transform-origin:left;transition:transform 1.1s cubic-bezier(.15,.8,.25,1) .3s}.animations-on .learning-course.motion-visible .progress-track i{transform:scaleX(1)}.animations-on .motion-visible .mini-cover>b{animation:cover-intro 1.1s ease-out both}.animations-on .learning-stats>div.motion-visible>strong{animation:number-intro .8s ease both}.animations-on .studio{animation:bar-intro .45s ease both}.animations-on .image-badge{animation:badge-intro .8s ease .4s both}.animations-on .practice-paper.motion-visible{animation:paper-intro 1s ease-out both}.animations-on .footer-social,.animations-on .footer-cta,.animations-on .sidebar nav a,.animations-on .resource,.animations-on .lesson-row,.animations-on .learning-course .mini-cover,.animations-on .mini-action,.animations-on .play-symbol,.animations-on .view-switch a,.animations-on .button,.animations-on .course-link span{transition:translate .25s ease,scale .3s ease,background-color .25s ease,box-shadow .3s ease,color .25s ease}.animations-on .footer-cta span{transition:translate .25s ease}.animations-on .welcome-art{transition:rotate .4s ease}.animations-on .hero-art{transition:box-shadow .4s ease}.animations-on .footer-columns nav a:hover::after,.animations-on .footer-contact>a:hover::after{transform:scaleX(1)}.animations-on .button:active,.animations-on .footer-cta:active{scale:.98}.animations-off *,.animations-off *::before,.animations-off *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.animations-off .motion-item{opacity:1;translate:none}.animations-off .progress-track i{transform:none!important}
@keyframes image-intro{from{transform:scale(1.07)}to{transform:scale(1)}}@keyframes badge-intro{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}@keyframes cover-intro{from{opacity:.15;transform:rotate(-16deg) scale(.85)}to{opacity:.6;transform:rotate(0) scale(1)}}@keyframes number-intro{from{opacity:0;translate:0 9px}to{opacity:1;translate:0 0}}@keyframes bar-intro{from{opacity:.3;translate:0 -8px}to{opacity:1;translate:0 0}}@keyframes paper-intro{from{rotate:-3deg}to{rotate:0deg}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.animations-on .footer-cta:hover,.animations-on .footer-social:hover{translate:0 -3px;box-shadow:0 9px 25px #00000010}.animations-on .footer-cta:hover span,.animations-on .course-link:hover span{translate:3px -3px}.animations-on .sidebar nav a:hover{translate:3px 0}.animations-on .resource:hover,.animations-on .lesson-row:hover{background:var(--soft);translate:3px 0}.animations-on .learning-course:hover .mini-cover{translate:0 -4px;box-shadow:0 12px 22px #00000012}.animations-on .learning-course:hover .mini-action{translate:4px 0}.animations-on .play-symbol:hover{scale:1.1}.animations-on.play .welcome-art:hover{rotate:2deg}.animations-on .hero-art:hover{box-shadow:0 20px 45px #00000015}.animations-on .view-switch a:hover{background:#e5e5df}}
@media(max-width:1000px){.footer-columns{gap:25px;grid-template-columns:1.2fr 1fr 1fr}.footer-contact{grid-column:1/-1;display:grid;grid-template-columns:1fr 2fr 1fr;gap:20px;align-items:start;border-top:1px solid var(--line);padding-top:25px}.footer-demo-note{grid-column:2/4;margin-top:0}.footer-invitation{gap:25px}.footer-cta{padding:16px;font-size:10px}.footer-bottom{flex-wrap:wrap}.learning .full-footer{padding-inline:23px}}
@media(max-width:650px){.full-footer{margin-top:35px;padding-inline:6%}.footer-invitation,.learning .footer-invitation{align-items:flex-start;flex-direction:column;padding:35px 0;gap:25px}.footer-invitation h2,.learning .footer-invitation h2{font-size:29px}.footer-kicker{font-size:7px}.footer-columns,.learning .footer-columns{grid-template-columns:1fr 1fr;gap:30px 18px;padding:32px 0}.footer-brand{grid-column:1/-1}.full-footer .footer-brand>p{max-width:100%;font-size:11px}.footer-brand .brand{font-size:46px}.footer-columns nav a{font-size:11px}.full-footer h3{font-size:12px}.footer-contact,.learning .footer-contact{display:block;grid-column:1/-1}.full-footer .footer-contact h3{margin-bottom:16px}.footer-demo-note,.learning .footer-demo-note{margin-top:20px}.footer-bottom{align-items:flex-start;gap:15px;font-size:8px;padding:23px 0}.footer-bottom>span:nth-child(2){display:none}.footer-bottom>div{width:100%;justify-content:space-between}.motion-toggle{font-size:9px}.back-to-top{font-size:10px}.learning .full-footer{padding-inline:20px}.full-footer .footer-brand>p,.full-footer .footer-contact p{display:block}.play .full-footer{border-radius:24px 24px 0 0}.animations-on .motion-item{--motion-distance:14px}}
@media(prefers-reduced-motion:reduce){.motion-item{opacity:1!important;translate:none!important}.progress-track i{transform:none!important}.full-footer *{animation:none!important;transition:none!important}html{scroll-behavior:auto!important}}
/* Keep decorative rotations within the viewport on narrow screens. */
body{overflow-x:clip}
/* Icons are vectors, never platform emoji. */
.ui-icon{display:inline-block;width:1em;height:1em;min-width:1em;vertical-align:-.13em;flex-shrink:0;overflow:visible}.course-art>b .ui-icon,.course-link .ui-icon,.hero-actions .ui-icon,.view-switch .ui-icon{stroke-width:1.5}.mini-cover>b .ui-icon{width:.85em;height:.85em}.play-symbol .ui-icon{width:.85em;height:.85em}.footer-social .ui-icon{vertical-align:middle}
