/* Revision 6: wide motion reel and numbered process. */
:root{--canvas:#faf9fd;--lime:#e4d9ff}
.welcome{padding:62px 0 42px}
.welcome h1{font-size:clamp(48px,6.8vw,96px);font-weight:500;line-height:1.06;letter-spacing:-.065em;margin:0 0 34px}
.welcome-line{display:block;transform-origin:left center}
.welcome-bottom{display:flex;align-items:center;justify-content:space-between;gap:48px}
.welcome-bottom p{font-size:19px;line-height:1.5;max-width:48ch;margin:0}
.welcome .hero-actions{margin:0;flex-shrink:0}
.showreel{position:relative;margin-bottom:84px;isolation:isolate;border-radius:32px;background:#ded0ff;overflow:hidden}
.showreel video{width:100%;aspect-ratio:16/9;display:block;object-fit:cover}
.reel-actions{display:flex;gap:10px;position:absolute;bottom:24px;right:24px;z-index:2}
.reel-actions button,.reel-actions a{color:#191622;background:#fff;border:1px solid #d0c5e1;border-radius:999px;text-decoration:none;font-size:14px;font-weight:600;min-height:48px;padding:12px 22px;display:inline-flex;align-items:center;justify-content:center}
.reel-actions button:hover,.reel-actions a:hover{background:#eee5ff}
.showreel:has(video[controls]) .reel-actions{position:static;padding:12px;justify-content:flex-end}
#preview-status:empty{display:none}
#preview-status{margin:0;padding:16px;background:#fff;font-size:14px}
.section-label{display:flex;align-items:center;gap:16px;font-size:16px!important;letter-spacing:0;text-transform:none;color:var(--ink)!important;margin:0 0 28px!important;max-width:none!important}
.section-label>span{font-size:25px;line-height:1;display:grid;place-items:center;min-width:60px;height:48px;border:1px solid #b5a4d3;border-radius:999px;font-variant-numeric:tabular-nums}
.section-top h2{font-size:clamp(36px,4.8vw,68px);letter-spacing:-.055em}
.section-top{margin-bottom:44px}
.section{padding:88px 0}
.process-list{display:grid;gap:14px}
.process-row{display:grid;grid-template-columns:140px 1fr 230px;gap:30px;align-items:center;border:1px solid #dcd1ef;background:#eee7fa;border-radius:28px;padding:34px 40px;min-height:220px;overflow:hidden}
.process-row:nth-child(2){background:#e5d9fa}
.process-row:nth-child(3){background:#dac8f8}
.process-number{font-size:clamp(70px,7vw,100px);line-height:1;letter-spacing:-.08em;color:#713cff;font-variant-numeric:tabular-nums}
.process-copy h3{font-size:clamp(28px,3vw,42px);font-weight:500;margin:0 0 15px}
.process-copy p{color:#191622;font-size:17px;margin:0;max-width:36ch}
.process-art{height:150px;position:relative;display:flex;align-items:center;justify-content:center;gap:8px;pointer-events:none}
.conversation{flex-direction:column;align-items:stretch;padding:12px}
.conversation span{padding:14px 22px;border-radius:20px 20px 20px 3px;background:white;font-size:18px;align-self:flex-start;transform:rotate(-5deg)}
.conversation span+span{background:#713cff;color:white;align-self:flex-end;border-radius:20px 20px 3px 20px;transform:rotate(5deg)}
.plan{flex-direction:column;transform:rotate(-8deg)}
.plan span{width:166px;background:white;border-radius:8px;padding:6px 16px;font-size:16px;box-shadow:0 6px 20px #32105f10}
.plan span:before{content:'';display:inline-block;width:10px;height:10px;background:#713cff;border-radius:3px;margin-right:12px}
.plan span:nth-child(2){transform:translateX(16px)}
.devices span:first-child{width:176px;height:113px;background:#713cff;border:8px solid #191622;border-bottom-width:16px;border-radius:12px;transform:rotate(-7deg)}
.devices span:last-child{position:absolute;right:4px;bottom:0;width:64px;height:112px;background:#eaddff;border:6px solid #191622;border-radius:13px;transform:rotate(10deg)}
.steps{gap:18px}
.step{position:relative;border:1px solid #ded4ee;background:#f0eafa;border-radius:24px;padding:28px;min-height:280px;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}
.step:nth-child(2){background:#e8def8}.step:nth-child(3){background:#e0d2f6}
.step .number{font-size:64px;font-weight:400;letter-spacing:-.06em;line-height:1;margin:0 0 72px}
.step h3{font-size:30px;line-height:1.12;margin:0;max-width:15ch;position:relative;z-index:1}
.step-shape{position:absolute;right:24px;top:30px;width:90px;height:90px}
.step-shape i{position:absolute;display:block;background:#713cff;border:3px solid #713cff;border-radius:14px;width:60px;height:60px;transform:rotate(-15deg)}
.step-shape i:nth-child(2){background:#c7adfa;left:18px;top:15px;transform:rotate(5deg)}
.step-shape i:nth-child(3){background:white;left:35px;top:30px;transform:rotate(20deg)}
.shape-1 i{border-radius:50%;width:52px;height:52px}.shape-2 i{height:20px;border-radius:4px}.shape-2 i:nth-child(2){top:26px;left:10px}.shape-2 i:nth-child(3){top:52px;left:20px}
.four .step{padding:24px}.four .step h3{font-size:25px}.four .step-shape{right:12px;transform:scale(.7);transform-origin:top right}
.four .number{font-size:55px}
.catalogue-grid .service:nth-child(3),.service:nth-child(3){background:#eee8f7}
.catalogue-tabs button span{font-size:15px;min-width:28px;height:28px}
.intro-dialog{width:min(1240px,calc(100% - 40px));max-height:calc(100dvh - 40px);margin:auto;padding:22px;border:1px solid #d9cdee;border-radius:26px;background:var(--canvas);color:var(--ink);overflow:auto;overscroll-behavior:contain}
.intro-dialog::backdrop{background:#171124e8}
.intro-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}
.intro-dialog h2{font-size:27px;margin:0}
.intro-close{display:flex;align-items:center;gap:14px;min-height:44px;padding:8px 15px;border:1px solid #aaa0b9;border-radius:30px;background:transparent;color:var(--ink);font-size:14px}
.intro-close span{font-size:24px;line-height:1}
.intro-dialog video{display:block;width:100%;aspect-ratio:16/9;border-radius:12px;background:#ded0ff;object-fit:contain}
#intro-play-status{font-size:14px;margin:14px 0 0}#intro-play-status:empty{display:none}
html:has(.intro-dialog[open]){overflow:hidden}
.final-cta h2{font-size:clamp(50px,7vw,100px)}
@media(prefers-reduced-motion:no-preference){
 .welcome-line{animation:headline-in 850ms cubic-bezier(.16,1,.3,1) both}.welcome-line:nth-child(2){animation-delay:120ms}
 .welcome-bottom{animation:headline-in 700ms 230ms cubic-bezier(.16,1,.3,1) both}
 .showreel{animation:reel-in 1000ms 100ms cubic-bezier(.16,1,.3,1) both}
 .js .reveal{transform:translateY(50px) rotate(1.5deg);transition:opacity 650ms ease,transform 850ms cubic-bezier(.16,1,.3,1)}
 .js .reveal.is-visible{transform:none}
 .process-row.is-visible .process-art{animation:art-in 900ms 120ms cubic-bezier(.16,1,.3,1) both}
 .process-row.is-visible .process-number{animation:number-in 700ms cubic-bezier(.16,1,.3,1) both}
 .button,.intro-close,.reel-actions>*{transition:scale 150ms ease-out,background-color 150ms ease-out}
 .button:not(:disabled):active,.intro-close:active,.reel-actions>*:active{scale:.96}
 .step-shape i,.process-art span{transition:transform 450ms cubic-bezier(.2,.8,.2,1)}
 @keyframes headline-in{from{opacity:0;clip-path:inset(100% 0 0);transform:translateY(60px) rotate(3deg)}to{opacity:1;clip-path:inset(0);transform:none}}
 @keyframes reel-in{from{opacity:0;transform:translateY(80px) scale(.92);border-radius:100px}to{opacity:1;transform:none;border-radius:32px}}
 @keyframes art-in{from{opacity:0;translate:100px 0;rotate:18deg;scale:.7}to{opacity:1;translate:0;rotate:0deg;scale:1}}
 @keyframes number-in{from{opacity:0;transform:translateY(90px)}to{opacity:1;transform:none}}
}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 .step:hover .step-shape i:first-child{transform:translate(-10px,-10px) rotate(-30deg)}
 .step:hover .step-shape i:last-child{transform:translate(10px,10px) rotate(30deg)}
 .process-row:hover .conversation span:first-child{transform:translate(-10px,-4px) rotate(-9deg)}
 .process-row:hover .conversation span:last-child{transform:translate(6px,4px) rotate(9deg)}
 .process-row:hover .plan span{transform:translateX(-12px)}.process-row:hover .plan span:nth-child(2){transform:translateX(28px)}
 .process-row:hover .devices span:first-child{transform:rotate(-13deg) translateX(-8px)}.process-row:hover .devices span:last-child{transform:rotate(17deg) translateX(4px)}
}
@media(max-width:1100px){.welcome-bottom{gap:30px}.welcome-bottom p{font-size:17px}.process-row{grid-template-columns:100px 1fr 180px;gap:24px;padding:30px}.process-art{transform:scale(.9)}.step h3{font-size:27px}.step-shape{transform:scale(.8);transform-origin:right top}}
@media(max-width:760px){
 .welcome{padding:36px 0 30px}.welcome h1{font-size:clamp(39px,8.7vw,64px);margin-bottom:24px;line-height:1.1}
 .welcome-bottom{display:block}.welcome-bottom p{font-size:17px;max-width:36ch}.welcome .hero-actions{margin-top:24px;gap:22px}
 .showreel{border-radius:20px;margin-bottom:48px}.reel-actions{position:static;padding:12px;justify-content:space-between;gap:8px}.reel-actions a,.reel-actions button{font-size:12px;min-height:44px;padding:10px 15px}
 .section{padding:56px 0}.section-label{font-size:15px!important;gap:12px;margin-bottom:22px!important}.section-label>span{font-size:22px;height:42px;min-width:54px}.section-top{margin-bottom:28px}
 .process-row{grid-template-columns:72px 1fr;gap:20px;padding:24px;min-height:0;border-radius:22px}.process-number{font-size:64px;align-self:start}.process-copy h3{font-size:28px;margin-bottom:12px}.process-copy p{font-size:16px}.process-art{grid-column:2;height:115px;max-width:200px;transform:none}.process-row .process-art{justify-self:start;width:100%}.conversation{padding:0}.conversation span{font-size:15px;padding:10px 18px}.devices span:first-child{width:150px;height:95px}.devices span:last-child{height:100px;width:58px}.plan span{font-size:14px;padding:4px 14px;width:150px}
 .step{min-height:240px;padding:26px}.step .number{font-size:64px;margin-bottom:56px}.step h3{font-size:30px;max-width:18ch}.step-shape{transform:none;right:30px}
 .four{grid-template-columns:1fr}.four .step h3{font-size:29px}.four .number{font-size:64px}.four .step-shape{transform:none;right:30px}
 .intro-dialog{width:calc(100% - 20px);max-height:calc(100dvh - 20px);padding:14px;border-radius:20px}.intro-dialog h2{font-size:21px;line-height:1.15}.intro-close{font-size:12px;gap:8px;padding:8px 12px;flex-shrink:0}.intro-dialog-head{gap:12px}.intro-dialog video{border-radius:8px}
 .catalogue-tabs button span{display:none}
}
@media(max-width:380px){.process-row{grid-template-columns:56px 1fr;padding:20px;gap:16px}.process-number{font-size:56px}.process-copy h3{font-size:25px}.welcome h1{font-size:37px}.step h3{font-size:28px}}
@media(prefers-reduced-motion:reduce){.welcome-line,.welcome-bottom,.showreel,.process-row *{animation:none!important;transform:none!important}.reveal{opacity:1!important;transform:none!important}}
@media(forced-colors:active){.process-row,.step,.section-label>span,.intro-dialog,.intro-close,.reel-actions>*{border:1px solid CanvasText}}

/* Color reel: explicit controls and a separate portrait composition. */
.showreel{margin-bottom:16px;background:#fff3e9}
.reel-actions{position:static;padding:14px 20px;justify-content:flex-end;background:#fff3e9}
.showreel video[data-layout="compact"],.intro-dialog video[data-layout="compact"]{aspect-ratio:4/5}
.intro-dialog:has(video[data-layout="compact"]){width:min(620px,calc(100% - 20px))}
.reel-transcript{border-bottom:1px solid #d0c5e1;margin:0 0 50px;padding:12px 0 20px}
.reel-transcript summary{font-size:16px;cursor:pointer;width:fit-content;padding:10px 0;min-height:44px}
.reel-transcript-body{max-width:78ch;font-size:16px;line-height:1.65;color:#171626}
.reel-transcript-body p,.reel-transcript-body li{color:#171626}
.reel-transcript-body ul{padding-left:24px}
.reel-transcript-body a{color:#4820b4;text-underline-offset:4px}
@media(max-width:760px){.reel-actions{padding:12px;justify-content:space-between}.reel-transcript{margin-bottom:28px}}
