/* ThunderCode 1.1.7 | scroll-driven 3D public experience. Additive to v1.1.6. */
body.tc-immersive {--tc-depth-blue:#3577ff;--tc-depth-cyan:#10d9ff;--tc-depth-violet:#8b72ff}
/* An illuminated grid drifts behind the existing website, without covering content. */
body.tc-immersive main{position:relative;isolation:isolate}
body.tc-immersive main::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.45;background:radial-gradient(circle at 12% 27%,rgba(46,138,248,.10),transparent 24%),radial-gradient(circle at 89% 66%,rgba(130,91,255,.08),transparent 24%);background-size:100% 100%}
.tc-scrolllab{--tc-lab-p:0;--tc-lab-x:0px;--tc-lab-y:0px;position:relative;height:auto;margin:0;background:#edf5ff;isolation:isolate}
.tc-scrolllab-pin{position:relative;top:0;min-height:740px;height:100svh;max-height:1100px;overflow:hidden;background:radial-gradient(ellipse at 65% 37%,rgba(47,97,200,.16),transparent 37%),radial-gradient(ellipse at 30% 100%,rgba(65,142,218,.12),transparent 48%),linear-gradient(125deg,#f9fcff 0%,#e9f3ff 56%,#f9fbff 100%)}
.tc-scrolllab-pin::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.7;background-image:linear-gradient(rgba(40,98,178,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(40,98,178,.08) 1px,transparent 1px);background-size:58px 58px;mask-image:linear-gradient(100deg,transparent 17%,#000 80%)}
.tc-scrolllab-pin::after{content:"";position:absolute;left:50%;top:60%;width:860px;height:860px;border:1px solid rgba(57,121,206,.13);border-radius:50%;box-shadow:0 0 0 110px rgba(53,133,236,.025),0 0 0 226px rgba(53,133,236,.02);pointer-events:none;transform:translate(-4%,-50%)}
.tc-scrolllab-inner{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);height:100%;gap:clamp(14px,4vw,68px);align-items:center;padding-top:clamp(96px,9vh,145px);padding-bottom:65px;max-width:1600px!important}
.tc-scrolllab-copy{max-width:600px;align-self:center}
.tc-scrolllab-eyebrow{display:flex;align-items:center;gap:11px;margin-bottom:18px;font:800 10px/1.6 Inter,system-ui,sans-serif;letter-spacing:.21em;color:#346099}
.tc-scrolllab-status{width:8px;height:8px;display:inline-block;border-radius:50%;background:#11bfa4;box-shadow:0 0 0 7px rgba(17,191,164,.1)}
.tc-scrolllab-index{margin-left:auto;font-variant-numeric:tabular-nums;color:#7a90aa}
.tc-scrolllab-copy h2{font:800 clamp(44px,4.8vw,82px)/.97 'Space Grotesk',Inter,system-ui,sans-serif;letter-spacing:-.07em;color:#0d1a33;margin:0 0 19px}
.tc-scrolllab-copy h2 em{font-style:normal;background:linear-gradient(105deg,#1472d7,#5d55e8 68%,#1cafc6);background-clip:text;-webkit-text-fill-color:transparent}
.tc-scrolllab-intro{color:#546b8a;font:500 clamp(14px,1.15vw,17px)/1.65 Inter,system-ui,sans-serif;max-width:475px;margin:0 0 28px}
.tc-scrolllab-steps{margin:0;padding:0;list-style:none;display:grid;gap:5px;max-width:445px}
.tc-scrolllab-steps li{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;padding:12px 16px 12px 8px;min-height:63px;align-items:center;border:1px solid transparent;border-radius:14px;opacity:.78;transition:opacity .3s,background .3s,box-shadow .3s,border-color .3s,transform .3s}
.tc-scrolllab-steps li.is-active{opacity:1;transform:translateX(5px);background:rgba(255,255,255,.88);border-color:rgba(59,123,231,.13);box-shadow:0 14px 40px rgba(26,78,152,.09)}
.tc-scrolllab-stepnumber{font:800 13px Inter,system-ui,sans-serif;color:#397ce4;letter-spacing:.06em}
.tc-scrolllab-steps strong{display:block;font:750 16px/1.4 Inter,system-ui,sans-serif;color:#172945}
.tc-scrolllab-steps small{display:block;color:#667d9b;font:500 11px/1.5 Inter,system-ui,sans-serif}
.tc-scrolllab-cta{display:inline-flex;align-items:center;gap:10px;font:750 13px Inter,system-ui,sans-serif;color:#1b5eb8;margin-top:24px;text-decoration:none;border-bottom:1px solid rgba(29,89,184,.3);padding-bottom:5px}
.tc-scrolllab-cta:hover{color:#0a92b8}
.tc-scrolllab-cta .icon{height:17px;width:17px}
.tc-scrolllab-visual{height:min(620px,76vh);min-height:460px;position:relative;perspective:1100px;transform-style:preserve-3d;transform:translate3d(var(--tc-lab-x),var(--tc-lab-y),0)}
.tc-scrolllab-glow{position:absolute;left:15%;top:17%;width:75%;height:68%;border-radius:50%;background:radial-gradient(circle,rgba(47,130,240,.34) 0%,rgba(106,75,246,.16) 31%,transparent 68%);filter:blur(28px)}
.tc-scrolllab-orbit{position:absolute;top:52%;left:52%;border:1px solid rgba(32,113,233,.18);border-radius:50%;transform:translate(-50%,-50%) rotate(-23deg)}
.tc-scrolllab-orbit-one{width:570px;height:370px}
.tc-scrolllab-orbit-two{width:620px;height:510px;border-style:dashed;opacity:.6}
.tc-scrolllab-stage-floor{position:absolute;left:8%;bottom:4%;width:90%;height:30%;border-radius:50%;background:radial-gradient(ellipse,rgba(16,70,175,.17),transparent 70%);filter:blur(15px)}
.tc-scrolllab-panel{position:absolute;border-radius:23px;transform-style:preserve-3d;backface-visibility:hidden}
.tc-scrolllab-panel-back{width:66%;height:65%;left:5%;top:13%;z-index:2;border:1px solid #b7d7fa;background:linear-gradient(145deg,rgba(253,255,255,.96),rgba(218,236,255,.98));box-shadow:12px 32px 70px rgba(23,71,157,.15),inset 0 1px 0 #fff;transform:perspective(1100px) translate3d(calc(-40px + var(--tc-lab-p)*52px),calc(-10px - var(--tc-lab-p)*22px),calc(-95px + var(--tc-lab-p)*55px)) rotateY(calc(13deg - var(--tc-lab-p)*16deg)) rotateX(8deg) rotateZ(-5deg);transition:box-shadow .3s}
.tc-scrolllab-mini-header{height:41px;border-bottom:1px solid rgba(72,129,197,.16);display:flex;align-items:center;gap:5px;padding:0 13px}
.tc-scrolllab-mini-header b{height:7px;width:7px;background:#b6cbea;border-radius:50%}
.tc-scrolllab-mini-header b:first-child{background:#ff998e}.tc-scrolllab-mini-header b:nth-child(2){background:#facb76}.tc-scrolllab-mini-header b:nth-child(3){background:#62c9b1}
.tc-scrolllab-mini-header span{margin-left:auto;color:#617d9d;font:700 9px Inter,system-ui,sans-serif;letter-spacing:.13em}
.tc-scrolllab-wireframe{height:calc(100% - 41px);display:grid;grid-template-columns:26% 1fr;gap:10px;padding:16px}
.tc-wire-left{border-right:1px solid #d5e3f5;display:grid;align-content:start;gap:12px;padding:12px 12px 0 3px}
.tc-wire-left i{display:block;height:9px;width:85%;background:linear-gradient(90deg,#abc6ed,#cfe3fa);border-radius:6px}
.tc-wire-left i:nth-child(3){width:65%}.tc-wire-left i:last-child{width:75%}
.tc-wire-content{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:35% 35% 1fr;gap:9px}
.tc-wire-content>i{border-radius:12px;background:linear-gradient(135deg,#c4defa,#e8f2ff);box-shadow:inset 0 1px 1px #fff}
.tc-wire-content>i:nth-child(2){background:linear-gradient(130deg,#ded8ff,#f4f1ff)}
.tc-wire-graph{grid-column:1/-1;border-radius:10px;background:linear-gradient(160deg,rgba(125,181,240,.2),rgba(103,133,224,.08)),repeating-linear-gradient(90deg,transparent 0 20px,rgba(63,119,190,.1) 21px 22px)}
.tc-scrolllab-panel-center{width:73%;height:68%;top:20%;left:13%;z-index:5;overflow:hidden;border:1px solid rgba(145,184,255,.33);background:linear-gradient(145deg,#18284a 4%,#08162f 60%,#112959);color:#f1f7ff;box-shadow:20px 45px 85px rgba(3,20,69,.35),0 0 0 8px rgba(255,255,255,.16),inset 0 1px 0 rgba(255,255,255,.22);transform:perspective(1100px) translate3d(calc(2px + var(--tc-lab-p)*22px),calc(8px - var(--tc-lab-p)*32px),calc(25px + var(--tc-lab-p)*90px)) rotateY(calc(-14deg + var(--tc-lab-p)*23deg)) rotateX(calc(10deg - var(--tc-lab-p)*6deg)) rotateZ(calc(3deg - var(--tc-lab-p)*4deg))}
.tc-scrolllab-appbar{height:58px;display:flex;align-items:center;gap:12px;padding:0 19px;border-bottom:1px solid rgba(255,255,255,.12)}
.tc-scrolllab-monogram{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:linear-gradient(120deg,#338dfd,#7759f0);color:white;font:900 13px Inter,system-ui,sans-serif}
.tc-scrolllab-appbar span:nth-child(2){display:grid;line-height:1.2}.tc-scrolllab-appbar strong{font:800 12px Inter,system-ui,sans-serif}.tc-scrolllab-appbar small{font:500 9px Inter,system-ui,sans-serif;color:#a0b9e2;margin-top:4px}
.tc-scrolllab-window-dot{width:10px;height:10px;border-radius:50%;margin-left:auto;background:#39d8b0;box-shadow:0 0 0 6px rgba(57,216,176,.08),0 0 14px rgba(57,216,176,.6)}
.tc-scrolllab-app-metric{display:flex;justify-content:space-between;padding:22px 24px 10px;align-items:center}.tc-scrolllab-app-metric small{display:block;font:800 9px Inter,system-ui,sans-serif;letter-spacing:.16em;color:#68ccf8}
.tc-scrolllab-app-metric strong{display:block;margin-top:7px;font:760 clamp(19px,2.3vw,28px) 'Space Grotesk',Inter,sans-serif}.tc-scrolllab-app-metric>span{font-size:24px;color:#6fa5fd}
.tc-scrolllab-stat-row{display:flex;gap:8px;padding:7px 24px 16px}
.tc-scrolllab-stat-row span{display:flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid rgba(130,171,245,.2);border-radius:999px;color:#b6cef1;font:600 10px Inter,system-ui,sans-serif;background:rgba(255,255,255,.05)}
.tc-scrolllab-stat-row i{height:5px;width:5px;border-radius:50%;background:#5bcff9}
.tc-scrolllab-bars{height:32%;min-height:80px;margin:0 24px;padding:15px;display:flex;gap:7px;align-items:flex-end;border:1px solid rgba(111,156,245,.16);background:linear-gradient(180deg,rgba(67,107,182,.17),rgba(14,34,73,.42));border-radius:15px}
.tc-scrolllab-bars i{height:var(--h,50%);background:linear-gradient(180deg,#4cdfff,#617aff);flex:1;border-radius:6px 6px 2px 2px;box-shadow:0 0 15px rgba(73,138,253,.23)}
.tc-scrolllab-bars i:nth-child(1){--h:35%}.tc-scrolllab-bars i:nth-child(2){--h:47%}.tc-scrolllab-bars i:nth-child(3){--h:60%}.tc-scrolllab-bars i:nth-child(4){--h:45%}.tc-scrolllab-bars i:nth-child(5){--h:83%}.tc-scrolllab-bars i:nth-child(6){--h:65%}.tc-scrolllab-bars i:nth-child(7){--h:88%}.tc-scrolllab-bars i:nth-child(8){--h:75%}.tc-scrolllab-bars i:nth-child(9){--h:96%}
.tc-scrolllab-app-bottom{display:flex;align-items:center;justify-content:space-between;margin:16px 24px;color:#b5cbea;font:600 10px Inter,system-ui,sans-serif}.tc-scrolllab-app-bottom b{display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;background:#32cda5}
.tc-scrolllab-phone{position:absolute;right:2%;bottom:7%;width:30%;height:59%;z-index:8;border:6px solid #1e3056;border-radius:29px;background:linear-gradient(160deg,#142c5d,#071026 85%);color:white;box-shadow:12px 26px 44px rgba(2,17,54,.32),inset 0 0 0 2px rgba(149,187,255,.28);padding:32px 14px 18px;transform:perspective(900px) translate3d(calc(-30px + var(--tc-lab-p)*11px),calc(18px - var(--tc-lab-p)*56px),calc(55px + var(--tc-lab-p)*100px)) rotateY(calc(-19deg + var(--tc-lab-p)*26deg)) rotateX(7deg) rotateZ(9deg)}
.tc-scrolllab-phone-camera{position:absolute;width:42%;height:14px;background:#070e20;border-radius:0 0 13px 13px;top:0;left:29%;box-shadow:0 1px 2px rgba(255,255,255,.08)}
.tc-scrolllab-phone-kicker{font:700 8px Inter,system-ui,sans-serif;letter-spacing:.09em;color:#a9cafa}
.tc-scrolllab-phone>strong{display:block;margin:21px 0 8px;font:800 clamp(18px,1.7vw,28px)/1.1 'Space Grotesk',Inter,sans-serif;letter-spacing:-.03em}
.tc-scrolllab-phone>strong em{font-style:normal;color:#59d2fe}
.tc-scrolllab-phone-orb{display:grid;place-items:center;height:29%;max-height:100px;width:72%;margin:20px auto 10px;border-radius:50%;background:radial-gradient(circle,#72f8dd 0%,#406dfe 43%,rgba(88,65,195,.08) 70%,transparent);box-shadow:0 0 30px rgba(79,146,255,.42);color:white;font-size:26px}
.tc-scrolllab-phone-dock{display:flex;justify-content:space-evenly;align-items:center;border:1px solid rgba(176,216,255,.18);border-radius:12px;height:45px;margin-top:18px;background:rgba(255,255,255,.07)}.tc-scrolllab-phone-dock span{width:20px;height:20px;background:linear-gradient(135deg,#508cff,#52dcec);border-radius:7px}
.tc-scrolllab-phone-dock span:nth-child(2){background:linear-gradient(135deg,#c46dfe,#648cff)}.tc-scrolllab-phone-dock span:last-child{background:linear-gradient(135deg,#2bdabb,#4d97f7)}
.tc-scrolllab-chip{position:absolute;z-index:12;display:flex;gap:8px;align-items:center;border:1px solid rgba(35,99,211,.15);background:rgba(255,255,255,.95);backdrop-filter:blur(18px);border-radius:999px;box-shadow:0 12px 35px rgba(28,78,156,.16);color:#2a547b;padding:10px 14px;font:800 9px Inter,system-ui,sans-serif;letter-spacing:.12em}
.tc-scrolllab-chip span{color:#3179dd;font-size:15px}
.tc-scrolllab-chip-a{left:5%;top:8%;transform:translate3d(0,calc(var(--tc-lab-p)*32px),0)}
.tc-scrolllab-chip-b{right:2%;top:15%;transform:translate3d(0,calc(var(--tc-lab-p)*-25px),0)}
.tc-scrolllab-chip-c{left:10%;bottom:12%;transform:translate3d(0,calc(var(--tc-lab-p)*-36px),0)}
.tc-scrolllab-progressbar{position:absolute;z-index:20;left:0;bottom:0;width:100%;height:4px;background:rgba(36,89,176,.1)}
.tc-scrolllab-progressbar span{display:block;width:calc(var(--tc-lab-p)*100%);height:100%;background:linear-gradient(90deg,#217df8,#38d2c5,#9168ff);box-shadow:0 0 14px rgba(31,121,240,.4)}
.tc-scrolllab-cornerlabel{position:absolute;bottom:19px;right:clamp(20px,4vw,80px);z-index:6;color:#6e85a8;font:800 10px Inter,system-ui,sans-serif;letter-spacing:.19em}.tc-scrolllab-cornerlabel span{margin-left:9px;color:#1677e1}
/* Depth on preexisting frontend elements, gently applied, with no modification to click targets. */
body.tc-immersive .tc-editorial-service,body.tc-immersive .tc-product-card,body.tc-immersive .tc-work-showcase-card,body.tc-immersive .tc-quote-card{transform-style:preserve-3d;transition:box-shadow .42s cubic-bezier(.2,.9,.15,1),transform .42s cubic-bezier(.2,.9,.15,1),border-color .35s}
@media(hover:hover) and (pointer:fine){body.tc-immersive .tc-editorial-service:hover,body.tc-immersive .tc-product-card:hover,body.tc-immersive .tc-work-showcase-card:hover,body.tc-immersive .tc-quote-card:hover{transform:perspective(1200px) translateY(-7px) rotateX(2deg);box-shadow:0 30px 70px rgba(28,74,153,.19)}}
@media(max-width:1250px){.tc-scrolllab-inner{grid-template-columns:1fr 1.1fr}.tc-scrolllab-visual{transform:scale(.88);transform-origin:center left}.tc-scrolllab-copy h2{font-size:clamp(42px,4.6vw,70px)}}
@media(max-width:960px){.tc-scrolllab{height:auto}.tc-scrolllab-pin{position:relative;top:auto;height:auto;min-height:0;max-height:none;overflow:hidden}.tc-scrolllab-inner{grid-template-columns:1fr;gap:8px;padding:88px 0 68px}.tc-scrolllab-copy{max-width:720px}.tc-scrolllab-copy h2{font-size:clamp(44px,6.5vw,64px)}.tc-scrolllab-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:100%;gap:8px}.tc-scrolllab-steps li{opacity:1;background:rgba(255,255,255,.72);border-color:rgba(33,96,185,.12);transform:none!important}.tc-scrolllab-visual{height:490px;max-width:670px;width:100%;margin:12px auto 0;transform:scale(.9);transform-origin:center}.tc-scrolllab-cornerlabel{display:none}.tc-scrolllab-pin::after{left:25%;top:70%}}
@media(max-width:620px){.tc-scrolllab-inner{padding-top:72px;padding-bottom:10px}.tc-scrolllab-copy h2{font-size:clamp(40px,11vw,58px)}.tc-scrolllab-intro{font-size:14px}.tc-scrolllab-steps{grid-template-columns:1fr}.tc-scrolllab-steps li{padding:9px 11px;min-height:54px}.tc-scrolllab-stepnumber{font-size:12px}.tc-scrolllab-steps strong{font-size:14px}.tc-scrolllab-visual{height:360px;min-height:360px;width:100%;transform:scale(.73);transform-origin:top left;margin:12px 0 -85px;width:140%}.tc-scrolllab-panel-center{height:78%;width:70%}.tc-scrolllab-panel-back{height:73%}.tc-scrolllab-phone{height:66%;width:29%;right:4%;padding:30px 11px 10px}.tc-scrolllab-phone>strong{font-size:17px}.tc-scrolllab-app-metric{padding:12px 14px 8px}.tc-scrolllab-stat-row{padding:4px 12px}.tc-scrolllab-bars{margin:0 12px;min-height:60px;height:28%}.tc-scrolllab-app-bottom{margin:9px 12px}.tc-scrolllab-chip{font-size:8px}.tc-scrolllab-progressbar{display:none}}
@media(prefers-reduced-motion:reduce){.tc-scrolllab{height:auto!important}.tc-scrolllab-pin{position:relative;height:auto;min-height:0;max-height:none}.tc-scrolllab-inner{padding-block:95px 65px}.tc-scrolllab-steps li{opacity:1;transform:none!important}.tc-scrolllab-visual{transform:none!important}.tc-scrolllab-panel-back{transform:translate3d(0,0,-40px) rotateY(8deg)!important}.tc-scrolllab-panel-center{transform:translate3d(0,0,20px) rotateY(-10deg)!important}.tc-scrolllab-phone{transform:translate3d(0,0,40px) rotateY(-12deg)!important}}
/* Keep readable screen content above rear planes on all GPU compositors. */
.tc-scrolllab-visual,.tc-scrolllab-panel{transform-style:flat}
.tc-scrolllab-panel-back{z-index:1}
.tc-scrolllab-panel-center{z-index:5}
.tc-scrolllab-phone{z-index:9}
/* Inner pages: depth follows scroll on existing 3D service / portfolio / studio artwork. */
body.tc-immersive .tc-directory-visual.reveal.visible{transform:perspective(1300px) translate3d(0,calc(var(--tc-global-depth,0)*-20px),0) rotateY(calc(var(--tc-global-depth,0)*-5deg));transition:transform .45s ease}
body.tc-immersive .tc-about-stamp.reveal.visible{transform:perspective(1200px) translateY(calc(var(--tc-global-depth,0)*-18px)) rotateY(calc(var(--tc-global-depth,0)*-6deg));transition:transform .45s ease}
body.tc-immersive :is(.tc-directory-service-card,.tc-portfolio-project,.tc-other-card,.career-job-card,.career-values article){transform-style:preserve-3d;transition:transform .42s cubic-bezier(.22,.9,.28,1),box-shadow .42s,border-color .3s}
@media(hover:hover) and (pointer:fine){body.tc-immersive :is(.tc-directory-service-card,.tc-portfolio-project,.tc-other-card,.career-job-card,.career-values article):hover{transform:perspective(1150px) translateY(-7px) rotateX(2deg);box-shadow:0 25px 60px rgba(25,80,161,.15)}}
@media(max-width:960px),(prefers-reduced-motion:reduce){body.tc-immersive .tc-directory-visual.reveal.visible,body.tc-immersive .tc-about-stamp.reveal.visible{transform:none!important}}

/* Existing CMS animation setting can disable the scroll-driven chapter. */
body[data-animation="minimal"] .tc-scrolllab{height:auto!important}
body[data-animation="minimal"] .tc-scrolllab-pin{position:relative!important;height:auto!important;min-height:0;max-height:none}
body[data-animation="minimal"] .tc-scrolllab-inner{padding-block:95px 65px}
body[data-animation="minimal"] .tc-scrolllab-steps li{opacity:1;transform:none!important}
body[data-animation="minimal"] .tc-scrolllab-visual{transform:none!important}

/* Native scroll pinning is enabled only after JavaScript initializes. */
.tc-scrolllab.tc-lab-ready{height:245vh}
.tc-scrolllab.tc-lab-ready>.tc-scrolllab-pin{position:sticky}
