/* V13. Motion is a narrative layer; the complete page remains usable without it. */
:root{--cinema-ease:cubic-bezier(.22,1,.36,1)}
.motion-story{position:relative;background:#0b0d10;color:#f3f5f7;scroll-margin-top:-18px}
.motion-stage{position:relative;height:740px;min-height:620px;overflow:clip;isolation:isolate;background:#0b0d10}
.motion-story[data-scroll-scene]{height:290svh}
.motion-story[data-scroll-scene] .motion-stage{position:sticky;top:82px;height:calc(100svh - 82px);min-height:580px;max-height:1000px}
.motion-accessible{padding-block:70px}.motion-accessible h2{max-width:850px}.motion-accessible p{max-width:700px;margin-top:24px;color:#b5bec6}.motion-accessible li{margin-top:12px}
.motion-story[data-enhanced] .motion-accessible{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.motion-story[data-enhanced] .motion-accessible a:focus{position:fixed;top:90px;left:22px;z-index:50;background:#fff;color:#101214;padding:12px}
.motion-top{position:absolute;z-index:5;top:28px;left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;align-items:center;gap:24px}
.motion-top .eyebrow{color:#c2c8ce}.motion-skip{font-size:11px;display:flex;align-items:center;gap:12px;min-height:44px}
.motion-headings{position:absolute;left:5%;right:5%;top:90px;z-index:4;height:180px;text-align:center;pointer-events:none}
.motion-headline{position:absolute;inset:0;font:600 clamp(50px,6.3vw,94px)/1.05 var(--font-display);letter-spacing:-.055em;opacity:0;transform:translateY(22px);text-wrap:balance}
.motion-headline:first-child{opacity:1;transform:none}.motion-headline em{font-style:normal;color:#ffb15a}.motion-headline small{display:block;font:450 14px/1.7 var(--font);letter-spacing:0;color:#b8c2ca;margin-top:19px}
.motion-headline:last-child{top:26%;text-shadow:0 2px 30px #0004}
.motion-desk{position:absolute;inset:0;perspective:1500px;z-index:2;pointer-events:none}
.motion-cards{position:absolute;left:50%;top:55%;width:1px;height:1px;transform-style:preserve-3d}
.motion-card{position:absolute;top:0;left:0;width:242px;height:228px;padding:23px;background:#edf0f2;color:#15202a;border:1px solid #ffffffa8;border-radius:13px;box-shadow:0 24px 55px #0005;transform:translate(-50%,-50%);backface-visibility:hidden;text-align:left;overflow:hidden}
.motion-card .motion-app{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:650;padding-bottom:18px;border-bottom:1px solid #d2d9df}
.motion-app b{width:27px;height:27px;display:grid;place-items:center;border:1px solid #c2cbd2;border-radius:7px;background:#fff;font:600 14px var(--font-display)}
.motion-card h3{font-size:20px;line-height:1.2;letter-spacing:-.035em;margin:20px 0 12px}.motion-card p{font-size:11px;line-height:1.7;color:#576671}
.motion-card small{font:8px var(--font-detail);color:#697782}
.motion-card .mini-lines{display:grid;gap:7px;margin-top:18px}.mini-lines i{height:4px;background:#c4cdd4;border-radius:2px}.mini-lines i:nth-child(2){width:78%}.mini-lines i:nth-child(3){width:54%}
.motion-output{width:212px;height:214px;opacity:0;background:#e8edf0}.motion-output .motion-app{color:#647581;font:9px var(--font-detail)}.motion-output .motion-app b{color:#1b2e3c;background:transparent;border:0;font-size:16px}
.motion-output h3{font-size:22px}.motion-output:nth-child(2){background:#ffb15a;color:#171c22;border-color:#ffc780}.motion-output:nth-child(2) .motion-app{border-color:#ba7a3690;color:#73491d}.motion-output:nth-child(2) p{color:#604124}
.motion-checks{display:grid;gap:9px;margin-top:16px}.motion-checks span{display:flex;align-items:center;gap:8px;font-size:10px}.motion-checks svg{width:13px;height:13px;stroke:#76501f}
.motion-core{position:absolute;left:50%;top:55%;width:220px;height:68px;border:1px solid #8496a3;border-radius:34px;background:#17222b;box-shadow:0 12px 70px #0009;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;gap:12px;font:600 13px var(--font);opacity:0}
.motion-core:before{content:'';width:7px;height:7px;background:#ffb15a;border-radius:50%;box-shadow:0 0 0 5px #ffb15a16}
.motion-photo{position:absolute;inset:0;z-index:0;clip-path:inset(46% 46% round 28px);opacity:0;overflow:hidden}
.motion-photo img{width:100%;height:100%;object-fit:cover;object-position:center 55%;transform:scale(1.12)}
.motion-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0b0d1080 0%,#0b0d101a 40%,#0b0d10a6 80%,#0b0d10df 100%)}
.motion-bottom{position:absolute;z-index:5;bottom:26px;left:var(--gutter);right:var(--gutter);display:flex;flex-direction:column;align-items:center;text-align:center;gap:20px}
.motion-caption{font-size:14px;line-height:1.7;color:#c0c8ce;max-width:580px;min-height:48px;text-wrap:balance}
.motion-dock{position:relative;display:flex;align-items:center;gap:4px;border:1px solid #ffffff32;border-radius:40px;padding:6px;background:#1c232be0;backdrop-filter:blur(16px)}
.motion-dock button{position:relative;z-index:1;min-height:42px;padding:9px 18px;border:0;background:none;border-radius:30px;font-size:11px;color:#acb7c0;transition:color 300ms}
.motion-dock button[aria-pressed=true]{color:#111a21}.motion-dock-indicator{position:absolute;top:6px;left:6px;height:42px;border-radius:30px;background:#f0f3f5;transition:transform 650ms var(--cinema-ease),width 650ms var(--cinema-ease);pointer-events:none}
.motion-footnote{position:absolute;bottom:9px;right:var(--gutter);color:#aab4bc;font:8px/1.5 var(--font-detail);z-index:6}
.motion-showcase-link{position:absolute;bottom:176px;left:50%;transform:translate(-50%,12px);z-index:5;opacity:0;visibility:hidden;white-space:nowrap;font-size:12px;border-bottom:1px solid #ffffff80;padding:8px 0;display:flex;align-items:center;gap:20px}
.motion-showcase-link[data-visible]{visibility:visible}
.motion-stage:after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;transform:scaleX(var(--scene-progress,0));transform-origin:left;background:#ffb15a;z-index:7}
.motion-story[data-compact] .motion-top .motion-skip{font-size:10px}
/* Kinetic typography, portrait depth and a soft aperture on the opening. */
.hero-line{display:block;overflow:clip;padding-bottom:.1em;margin-bottom:-.1em}.hero-line>span{display:block}
body[data-motion=on] .hero h1.hero-enter{animation:none}
body[data-motion=on] .hero-line>span{animation:name-unveil 1100ms var(--cinema-ease) both}.hero-line:nth-child(2)>span{animation-delay:110ms!important}
@keyframes name-unveil{from{transform:translateY(110%) rotate(3deg)}to{transform:translateY(0) rotate(0)}}
body[data-motion=on] .hero-visual .portrait-window{clip-path:inset(var(--portrait-crop,0%) round var(--portrait-radius,0px))}
body[data-motion=on] .hero-visual .portrait-window>img{transform:translateY(var(--portrait-y,0px)) scale(var(--portrait-scale,1));transition:none}
.motion-word{display:inline-block;overflow:clip;vertical-align:bottom;padding-block:.08em .15em;margin-block:-.08em -.15em}.motion-word>span{display:inline-block}
body[data-motion=on] .type-ready:not(.type-visible) .motion-word>span{transform:translateY(110%)}
body[data-motion=on] .type-visible .motion-word>span{animation:word-unveil 850ms var(--cinema-ease) both;animation-delay:calc(var(--word,0) * 38ms)}
@keyframes word-unveil{from{transform:translateY(110%)}to{transform:translateY(0)}}
body[data-motion=on] .perspective-card{transition:transform 700ms var(--cinema-ease),box-shadow 700ms var(--cinema-ease);transform:perspective(1200px) rotateY(var(--card-angle,0deg)) scale(var(--card-scale,1));transform-origin:center}
body[data-motion=on] .perspective-card>img{transform:scale(1.08) translateX(var(--card-image-x,0px));transition:none}
body[data-motion=on] .talk-dialog[open]{animation:dialog-unveil 500ms var(--cinema-ease) both}body[data-motion=on] .talk-dialog[open]::backdrop{animation:backdrop-unveil 450ms ease both}
body[data-motion=on] .case-enter .lab-surface{animation:work-unveil 650ms var(--cinema-ease) both;transform-origin:center top}
@keyframes work-unveil{from{opacity:.35;transform:perspective(1400px) translateY(24px) rotateX(3deg)}to{opacity:1;transform:none}}
@keyframes dialog-unveil{from{opacity:0;transform:translateY(40px) scale(.94);filter:blur(5px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes backdrop-unveil{from{opacity:0}to{opacity:1}}
.button{transition:background 280ms,transform 400ms var(--cinema-ease),box-shadow 400ms}.button:hover{box-shadow:0 5px 22px #0002}.button .ui-icon{transition:transform 450ms var(--cinema-ease)}.button:hover .ui-icon{transform:translate(2px,-2px)}
@media(hover:hover) and (pointer:fine){body[data-motion=on] .button:hover{transform:translateY(-2px)}body[data-motion=on] .card-open:hover{transform:rotate(90deg) scale(1.06);transition:transform 450ms var(--cinema-ease)}}
@media(min-width:901px){.funnel-story[data-scroll]{height:300svh}}
@media(max-height:760px) and (min-width:901px){.motion-headings{top:72px}.motion-headline{font-size:66px}.motion-headline small{font-size:12px;margin-top:12px}.motion-card{height:202px;padding:18px}.motion-card h3{margin-top:15px;font-size:19px}.motion-output{height:190px}.motion-cards,.motion-core{top:53%}.motion-bottom{gap:12px;bottom:23px}.motion-showcase-link{bottom:152px}}
@media(max-width:900px){
 .motion-story{scroll-margin-top:-18px}.motion-stage{height:690px;min-height:0}.motion-top{top:16px}.motion-top .eyebrow{font-size:8px}.motion-headings{top:90px;left:20px;right:20px;height:140px}.motion-headline{font-size:58px}.motion-headline small{font-size:12px;margin-top:14px}.motion-card{width:220px}.motion-output{width:190px}.motion-cards,.motion-core{top:52%}.motion-bottom{bottom:32px}.motion-caption{font-size:13px;max-width:440px}.motion-footnote{font-size:7px;right:0;width:100%;text-align:center;bottom:10px}
}
@media(max-width:600px){
 .motion-stage{height:660px;max-height:calc(100svh - 64px);min-height:570px}.motion-headings{top:87px;height:150px}.motion-headline{font-size:clamp(37px,10.7vw,52px)}.motion-headline small{font-size:11px;max-width:290px;margin:15px auto 0}.motion-top{left:22px;right:22px;gap:10px}.motion-top .motion-skip{font-size:10px}.motion-top .eyebrow{max-width:150px;font-size:8px;letter-spacing:0}
 .motion-cards,.motion-core{top:52%}.motion-card{width:190px;height:190px;padding:18px}.motion-card .motion-app{padding-bottom:12px;font-size:10px;gap:8px}.motion-card .motion-app b{width:23px;height:23px;font-size:12px}.motion-card h3{font-size:18px;margin:15px 0 9px}.motion-card p{font-size:10px}.motion-card .mini-lines{margin-top:12px}.motion-output{width:144px;height:131px;padding:12px;border-radius:9px}.motion-output .motion-app{font-size:8px;padding-bottom:7px;gap:6px}.motion-output .motion-app b{width:17px;height:17px;font-size:11px}.motion-output h3{font-size:16px;margin:10px 0 7px}.motion-output p{font-size:8px;line-height:1.6}.motion-output .mini-lines{display:none}.motion-checks{gap:4px;margin-top:8px}.motion-checks span{font-size:8px}.motion-checks svg{width:10px;height:10px}.motion-output .motion-checks span:last-child{display:none}
 .motion-bottom{left:22px;right:22px;bottom:31px;gap:13px}.motion-caption{font-size:11px;min-height:48px;max-width:310px}.motion-dock{width:100%;max-width:340px}.motion-dock button{flex:1;padding:9px 7px;font-size:10px;white-space:nowrap}.motion-photo img{object-position:44% center}.motion-showcase-link{bottom:172px;font-size:11px}.motion-headline:last-child{top:65%}.motion-core{width:200px;height:60px;font-size:12px}
 .motion-input{width:104px;height:156px;padding:13px 10px}.motion-input .motion-app{flex-direction:column;align-items:flex-start;font-size:9px;gap:7px;padding-bottom:12px}.motion-input h3{font-size:12px;line-height:1.2;margin-top:14px}.motion-input p,.motion-input .mini-lines{display:none}
 .motion-photo img{object-position:78% center}
 body[data-motion=on] .hero-line>span{animation-duration:850ms}.hero-line:nth-child(2)>span{animation-delay:80ms!important}
 body[data-motion=on] .hero-visual .portrait-window{clip-path:none}body[data-motion=on] .hero-visual .portrait-window>img{transform:none}
}
@media(prefers-reduced-motion:reduce){.motion-dock-indicator{transition:none}.hero-line>span,.motion-word>span{transform:none!important}.motion-story[data-scroll-scene]{height:auto}.motion-story[data-scroll-scene] .motion-stage{position:relative;top:auto}}
body[data-motion=off] .hero-line>span,body[data-motion=off] .motion-word>span{transform:none!important}

/* The approved two-line opening stays clear of the context cards. */
.motion-headline:first-child{font-size:clamp(45px,4.8vw,72px)}
@media(max-width:900px){.motion-headline:first-child{font-size:clamp(34px,5.5vw,50px)}}
@media(max-width:600px){.motion-headline:first-child{font-size:clamp(27px,8.1vw,44px)}}
