.service-principles{padding:95px var(--p) 40px;position:relative;background:#051a2f;color:white;--chapter:0;--chapter-progress:0}.principles-intro{display:flex;justify-content:space-between;align-items:end;gap:40px;padding-bottom:65px;border-bottom:1px solid #c8ddf130}.principles-intro h2{font:400 clamp(42px,5.5vw,82px)/1.1 Anton;letter-spacing:-.015em;margin-top:25px;text-transform:uppercase}.principles-intro>p{max-width:370px;color:#c8ddf1;font-size:15px;line-height:1.8}.principles-body{display:grid;grid-template-columns:1fr 1fr;gap:8vw;position:relative}.principles-visual-wrap{position:sticky;top:0;height:100svh;min-height:650px;display:flex;align-items:center;flex-direction:column;justify-content:center;overflow:hidden}.principles-number{font:400 115px/1 Anton;color:#9d89fc;position:absolute;left:0;top:8%;opacity:.4;transform:translateY(calc(var(--chapter-progress)*-20px))}.principles-art{position:relative;width:100%;aspect-ratio:1;perspective:900px;display:grid;place-items:center}.principles-orbit{position:absolute;inset:13%;border:1px solid #9d89fc60;border-radius:50%;transform:rotate(calc(var(--chapter-progress)*100deg + var(--chapter)*75deg));transition:transform .3s}.principles-orbit:before{content:'';position:absolute;top:-4px;left:50%;width:8px;height:8px;background:#c8ddf1;border-radius:50%;box-shadow:0 0 20px #9d89fc}.principles-orbit.orbit-two{inset:0;transform:rotateX(55deg) rotateY(20deg) rotate(calc(var(--chapter-progress)*-120deg + var(--chapter)*90deg));border-style:dashed;opacity:.6}.principles-glow{position:absolute;inset:0;background:radial-gradient(circle,#5401ff38,transparent 65%);transform:scale(calc(.8 + var(--chapter-progress)*.25))}.principle-symbol{position:absolute;width:40%;height:40%;opacity:0;transform:translateY(40px) scale(.75) rotate(-15deg);transition:opacity .6s,transform .9s cubic-bezier(.2,.8,.2,1)}.principle-symbol.active{opacity:1;transform:translateY(0) scale(1) rotate(0)}.symbol-vision{clip-path:polygon(50% 0,100% 100%,0 100%);background:linear-gradient(135deg,#c8ddf1,#9d89fc 40%,#5401ff);filter:drop-shadow(0 20px 30px #5401ff60)}.symbol-build{background:linear-gradient(135deg,#c8ddf150,#9d89fc90);border:1px solid #9d89fc;transform-style:preserve-3d;border-radius:18px;box-shadow:20px 20px 0 -1px #051a2f,20px 20px 0 0 #9d89fc80,-20px -20px 0 -1px #051a2f,-20px -20px 0 0 #9d89fc50}.symbol-integrate{border:1px solid #9d89fc;border-radius:50%;background:radial-gradient(circle,#c8ddf1 0%,#9d89fc 10%,#5401ff20 30%,transparent 60%)}.symbol-integrate:before,.symbol-integrate:after{content:'';position:absolute;inset:-23%;border:1px solid #9d89fc70;border-radius:50%;transform:rotateX(65deg) rotate(35deg)}.symbol-integrate:after{transform:rotateY(65deg) rotate(-35deg)}.principles-caption{font-size:9px;letter-spacing:2px;color:#c8ddf1;margin-top:20px;text-align:center}.principles-progress{display:flex;gap:12px;width:150px;margin-top:28px}.principles-progress span{height:2px;background:#c8ddf130;flex:1;transition:background .5s}.principles-progress span.active{background:#9d89fc}.principle-story{min-height:92svh;padding:95px 0;display:flex;flex-direction:column;justify-content:center;border-bottom:1px solid #c8ddf130}.principle-story .eyebrow{color:#9d89fc}.principle-story h3{font:400 clamp(38px,4vw,64px)/1.1 Anton;text-transform:uppercase;letter-spacing:-.015em;margin:24px 0 28px}.principle-story h3 em{color:#9d89fc}.principle-story>p{color:#c8ddf1;font-size:17px;line-height:1.9;margin-bottom:22px}.principle-story ul{padding:0;list-style:none;margin:5px 0 25px}.principle-story li{padding:15px 0;border-bottom:1px solid #c8ddf120;color:#c8ddf1;font-size:13px;display:flex;gap:15px}.principle-story li:before{content:'↗';color:#9d89fc}.principle-story>a{align-self:start;border-bottom:1px solid #9d89fc70;padding:8px 0;font-size:12px}.principle-story>a:hover{color:#9d89fc}
.brand-ending{--ending:0;position:relative;height:155svh;min-height:1100px;background:#051a2f;isolation:isolate;color:white;scroll-margin-top:0}.brand-ending-sticky{height:100svh;min-height:760px;position:sticky;top:0;display:flex;flex-direction:column;overflow:hidden;background:#051a2f;padding:55px var(--p) 25px;isolation:isolate}.ending-wash{position:absolute;inset:0;z-index:-2;background:linear-gradient(125deg,#051a2f -25%,#351284 40%,#5401ff 100%);opacity:var(--ending);transition:opacity .1s;pointer-events:none}.ending-aura{position:absolute;z-index:-1;width:105vw;height:105vw;left:-35vw;bottom:-70vw;background:radial-gradient(circle,#9d89fc95 0%,#9d89fc45 23%,#5401ff10 50%,transparent 65%);border-radius:50%;transform:translate(calc(var(--ending)*28vw),calc(var(--ending)*-25vw)) scale(calc(.6 + var(--ending)*.7));pointer-events:none}.ending-aura-two{left:35vw;bottom:0;width:75vw;height:75vw;opacity:.45;transform:translateY(calc((1 - var(--ending))*30vh));background:radial-gradient(circle,#9d89fc60,transparent 65%)}.ending-topline{display:flex;justify-content:space-between;gap:20px;font-size:9px;letter-spacing:2px;color:#c8ddf1}.ending-topline i{display:inline-block;width:5px;height:5px;background:#9d89fc;border-radius:50%;margin-right:8px}.ending-main{display:flex;justify-content:space-between;gap:5vw;align-items:end;flex:1;padding:35px 0 45px;position:relative}.ending-title{font:400 clamp(65px,8.2vw,135px)/1.05 Anton;letter-spacing:-.015em;margin:0;text-transform:uppercase;transform:translateY(calc((1 - var(--ending))*35px));max-width:850px}.ending-title em{color:#c8ddf1}.ending-side{max-width:255px;padding-bottom:8px}.ending-side p{color:#c8ddf1;font-size:15px;line-height:1.8}.ending-contact{display:inline-flex;gap:24px;align-items:center;border-radius:30px;padding:16px 23px;background:white;color:#051a2f;font-size:12px;font-weight:600;margin-top:24px;transition:gap .4s;white-space:nowrap}.ending-contact:hover{gap:35px}.ending-service-links{display:flex;border-top:1px solid #ffffff40;border-bottom:1px solid #ffffff40}.ending-service-links a{display:flex;align-items:center;justify-content:space-between;gap:20px;flex:1;padding:24px 25px 24px 0;color:white;font:400 clamp(21px,2.5vw,37px) Anton;text-transform:uppercase;position:relative;overflow:hidden}.ending-service-links a+a{padding-left:25px;border-left:1px solid #ffffff25}.ending-service-links a span{position:relative;z-index:1;transition:transform .4s}.ending-service-links a small{font:9px 'DM Sans';letter-spacing:1px;margin-right:14px;color:#c8ddf1}.ending-service-links a b{font:300 26px 'DM Sans';transition:transform .4s}.ending-service-links a:before{content:'';position:absolute;inset:0;background:#ffffff0d;transform:translateY(100%);transition:transform .4s}.ending-service-links a:hover:before{transform:none}.ending-service-links a:hover b{transform:translate(4px,-4px)}.ending-footer{display:grid!important;grid-template-columns:1fr auto;align-items:start;margin:0!important;padding:30px 0 0!important;border:0!important;gap:25px!important}.ending-footer .logo img{width:175px;height:auto}.ending-nav{display:flex;gap:24px;flex-wrap:wrap;font-size:11px;color:#c8ddf1;align-items:center;justify-content:end}.ending-nav a:hover{color:white}.ending-footer-bottom{grid-column:1/-1;display:flex;justify-content:space-between;gap:20px;font-size:9px;letter-spacing:.5px;color:#c8ddf1;padding-top:15px}.ending-footer-bottom a{font-size:9px!important;color:#c8ddf1!important}.ending-orbit{position:absolute;width:45vw;height:45vw;right:-15vw;top:-10vw;border:1px solid #c8ddf120;border-radius:50%;pointer-events:none;transform:translateY(calc((1 - var(--ending))*50vh)) rotate(calc(var(--ending)*90deg));z-index:-1}.ending-orbit:after{content:'';position:absolute;inset:12%;border:1px solid #c8ddf120;border-radius:50%}
@media(max-width:900px){.principles-body{gap:5vw}.principle-story>p{font-size:15px}.ending-main{gap:20px}.ending-title{font-size:8.6vw}.ending-side{max-width:230px}.ending-side p{font-size:13px}.ending-service-links a{font-size:25px}.ending-nav{gap:15px}.ending-title{max-width:65%}.principles-intro>p{max-width:300px}}
@media(max-width:600px){.service-principles{padding-top:65px}.principles-intro{display:block;padding-bottom:35px}.principles-intro h2{font-size:11vw}.principles-intro>p{margin-top:25px;font-size:14px;max-width:none}.principles-body{display:block}.principles-visual-wrap{height:270px;min-height:0;top:0;background:#051a2ff5;z-index:2;padding:15px 0;border-bottom:1px solid #9d89fc30}.principles-art{width:220px;height:220px;aspect-ratio:1}.principles-number{font-size:64px;top:30px}.principles-caption{position:absolute;bottom:15px;font-size:7px}.principles-progress{position:absolute;bottom:0;width:90px;margin:0}.principle-story{min-height:65svh;padding:45px 0 60px;scroll-margin-top:290px}.principle-story h3{font-size:10vw}.principle-story>p{font-size:15px;line-height:1.8}.principle-story li{font-size:12px}.brand-ending{height:150svh;min-height:1150px}.brand-ending-sticky{min-height:780px;padding-top:30px;padding-bottom:20px}.ending-topline{font-size:7px;letter-spacing:1px}.ending-topline>span:last-child{display:none}.ending-main{display:flex;flex-direction:column;align-items:start;justify-content:center;gap:24px;padding:30px 0}.ending-title{font-size:17vw;max-width:100%}.ending-side{max-width:100%;padding:0}.ending-side p{font-size:13px;max-width:275px}.ending-contact{margin-top:16px;padding:13px 20px;font-size:11px}.ending-service-links a{font-size:17px;padding:18px 10px 18px 0;gap:3px;flex-direction:column;align-items:start}.ending-service-links a+a{padding-left:12px}.ending-service-links a small{display:block;font-size:7px;margin:0 0 5px}.ending-service-links a b{position:absolute;right:8px;top:12px;font-size:17px}.ending-footer{padding-top:25px!important;grid-template-columns:1fr!important;gap:20px!important}.ending-footer .logo img{width:140px}.ending-nav{justify-content:start;gap:12px 19px;font-size:10px}.ending-footer-bottom{font-size:7px;padding-top:0}.ending-footer-bottom a{font-size:8px!important}.ending-aura{width:160vw;height:160vw;left:-60vw;bottom:-60vw}.ending-aura-two{left:20vw;bottom:40vh}.ending-orbit{width:90vw;height:90vw;top:10vh;right:-50vw}}
@media(prefers-reduced-motion:reduce){.brand-ending{height:auto;min-height:0;--ending:1!important}.brand-ending-sticky{position:relative;height:auto;min-height:780px}.ending-main{padding:60px 0}.ending-title,.ending-orbit,.ending-aura{transform:none}.principles-orbit,.principle-symbol{transition:none}.principles-number{transform:none}}

/* Shared opening animation in both numbered scroll explanations. */
.step-universe.universe-film,.journey-universe.universe-film{height:auto;min-height:0;width:100%;aspect-ratio:1;position:relative;background:transparent;overflow:hidden;isolation:isolate;border-radius:0}.step-universe .film-canvas,.journey-universe .film-canvas{z-index:0}.step-universe .step-universe-pause,.journey-universe .step-universe-pause{position:absolute;bottom:0;left:50%;transform:translateX(-50%);z-index:1;white-space:nowrap;font-size:9px;padding:9px 13px}.step-universe .step-universe-pause{bottom:6%}.principles-caption{font-size:8px;line-height:1.7;letter-spacing:1.1px}.principles-art.step-universe{perspective:none}.journey-universe .film-canvas{background:transparent}.service-dialog h2:focus{outline:none}
@media(max-width:600px){.principles-art.step-universe{width:260px;height:230px;aspect-ratio:auto}.step-universe .step-universe-pause{bottom:7%;font-size:8px;padding:7px 10px}.principles-visual-wrap{height:295px;padding-top:0}.principles-caption{font-size:6px;bottom:13px}.principles-number{font-size:45px;top:24px}.journey-universe.universe-film{width:300px;height:285px;max-width:100%;margin:0 auto;flex-shrink:0}.journey-universe .step-universe-pause{font-size:8px;bottom:0}.principle-story{scroll-margin-top:310px}}
.principles-number{z-index:2;pointer-events:none}

/* A slow drift and a soft pulse keep the two footer orbits alive. */
.ending-orbit{animation:ending-orbit-drift 30s ease-in-out infinite;animation-play-state:paused;will-change:translate}
.ending-orbit:after{animation:ending-inner-breathe 23s ease-in-out infinite;animation-play-state:paused;transform-origin:50% 50%}
.brand-ending.is-in-view .ending-orbit,.brand-ending.is-in-view .ending-orbit:after{animation-play-state:running}
@keyframes ending-orbit-drift{0%,100%{translate:0 0}50%{translate:-10px 15px}}
@keyframes ending-inner-breathe{0%,100%{transform:scale(1);opacity:.65}50%{transform:scale(.955);opacity:1}}
@media(prefers-reduced-motion:reduce){.ending-orbit,.ending-orbit:after{animation:none;will-change:auto}}

/* A restrained, slowly revolving galaxy within the footer orbits. */
.ending-orbit{overflow:visible}
.ending-galaxy{position:absolute;inset:-12%;transform:rotateX(48deg) rotateZ(-20deg);pointer-events:none;opacity:.52}
.ending-galaxy-spin{position:absolute;inset:0;animation:ending-galaxy-turn 160s linear infinite;animation-play-state:paused;transform-origin:center}
.brand-ending.is-in-view .ending-galaxy-spin{animation-play-state:running}
.ending-galaxy-star{position:absolute;left:var(--star-x);top:var(--star-y);width:var(--star-size);height:var(--star-size);border-radius:50%;background:#c8ddf1;opacity:var(--star-alpha);box-shadow:0 0 5px #c8ddf150}
.ending-galaxy-star:nth-child(3n){background:#9d89fc;box-shadow:0 0 7px #9d89fc80}
.ending-galaxy-core{position:absolute;inset:36%;border-radius:50%;background:radial-gradient(circle,#c8ddf1a0 0%,#9d89fc50 8%,#9d89fc18 30%,transparent 70%)}
@keyframes ending-galaxy-turn{to{transform:rotate(360deg)}}
@media(max-width:600px){.ending-galaxy{opacity:.4}}
@media(prefers-reduced-motion:reduce){.ending-galaxy-spin{animation:none}}

/* The footer is revealed by the same upward planetary circle. */
.brand-ending-sticky{clip-path:circle(var(--ending-radius,0%) at 50% 110%)}
.brand-ending-sticky .ending-wash{opacity:1}
@media(prefers-reduced-motion:reduce){.brand-ending-sticky{clip-path:none}}

/* Luminous horizontal counterpart on the purple closing scene. */
@supports ((background-clip:text) or (-webkit-background-clip:text)){
 .ending-title{background-image:linear-gradient(90deg,#e1e8ff 0%,#c6b7ff 48%,#9d89fc 100%);background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
 .ending-title em{color:inherit;-webkit-text-fill-color:inherit}
}
