/* V4 refinements: one automatic brand scene, full-bleed page banners, and a unified display face. */
.ts-v41{font-family:"Bahnschrift","Segoe UI",Arial,sans-serif}
.ts-v41 *, .ts-v41 *::before,.ts-v41 *::after{font-family:inherit}
.ts-v41 :is(h1,h2,h3,h4,.vision-label,.eyebrow){font-family:"Bahnschrift","Segoe UI",Arial,sans-serif;letter-spacing:-.045em}
.ts-v41 .vision-hero h1,.ts-v41 .manifesto-heading,.ts-v41 .vision-section-heading h2,.ts-v41 .vision-finale h2{font-weight:500;letter-spacing:-.075em}
.ts-v41 .vision-hero-foot .scene-modes,.ts-v41 .vision-hero-foot .vision-motion{display:none!important}
.ts-v41 main[data-experience-page] .modern-page-hero{position:relative;min-height:100svh;padding:0;display:flex;align-items:stretch;overflow:hidden;isolation:isolate;background:#080c11}
.ts-v41 main[data-experience-page] .modern-page-hero:before{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(ellipse at 80% 45%,#32695272,transparent 38%),linear-gradient(115deg,#081113,#0c1918 60%,#123529)}
.ts-v41 main[data-experience-page] .modern-page-hero:after{content:attr(data-chapter);position:absolute;right:3vw;bottom:-.22em;z-index:1;color:#d9fff10d;font-size:34vw;line-height:1;font-weight:600;letter-spacing:-.1em;pointer-events:none}
.ts-v41 main[data-experience-page] .modern-page-hero.has-image>.container{position:static;width:100%;max-width:none;padding:0;margin:0}
.ts-v41 main[data-experience-page] .modern-page-hero.has-image .split{display:block;min-height:100svh}
.ts-v41 main[data-experience-page] .modern-page-hero.has-image .split>div:first-child{position:relative;z-index:4;min-height:100svh;width:min(800px,58vw);padding:clamp(150px,18vh,220px) 0 100px max(7vw,30px);display:flex;flex-direction:column;justify-content:center}
.ts-v41 main[data-experience-page] .modern-page-hero.has-image .page-hero-image{position:absolute;inset:0;z-index:1;width:100%;height:100%;max-width:none;transform:none!important;border:0;border-radius:0;box-shadow:none}
.ts-v41 main[data-experience-page] .modern-page-hero.has-image .tech-gallery,.ts-v41 main[data-experience-page] .modern-page-hero.has-image .gallery-stage,.ts-v41 main[data-experience-page] .modern-page-hero.has-image .gallery-frame{position:absolute;inset:0;width:100%;height:100%;max-height:none;border-radius:0}
.ts-v41 main[data-experience-page] .modern-page-hero.has-image .gallery-frame img{width:100%;height:100%;object-fit:cover;border-radius:0;filter:brightness(.42) saturate(.78);transition:transform 1s cubic-bezier(.2,.72,.22,1)}
.ts-v41 main[data-experience-page] .modern-page-hero.has-image .gallery-frame:hover img{transform:scale(1.025)}
.ts-v41 main[data-experience-page] .modern-page-hero.has-image .page-hero-image:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#070b0ff5 0%,#070b0fe8 25%,#070b0f88 49%,#070b0f08 82%),linear-gradient(0deg,#070b0f75,transparent 28%)}
.ts-v41 main[data-experience-page] .modern-page-hero.has-image .gallery-frame figcaption{position:absolute;left:auto;right:8vw;bottom:98px;z-index:3;max-width:min(420px,30vw);color:#f5f8f4;background:#08100eb8;border:1px solid #ffffff24;padding:12px 16px;font-size:.73rem;letter-spacing:.04em}
.ts-v41 main[data-experience-page] .modern-page-hero.has-image .gallery-toolbar{position:absolute;z-index:5;right:7vw;bottom:32px;width:min(410px,38vw);background:#070d0de8;border:1px solid #ffffff25;border-radius:2px;color:#e9f1eb;padding:10px 14px}
.ts-v41 main[data-experience-page] .modern-page-hero h1{font-family:"Bahnschrift","Segoe UI",Arial,sans-serif;font-size:clamp(3.8rem,6.25vw,7.4rem);line-height:.94;letter-spacing:-.075em;font-weight:500;max-width:850px;margin:22px 0 25px;text-wrap:balance}
.ts-v41 main[data-experience-page] .modern-page-hero .eyebrow{font:500 10px monospace;letter-spacing:.2em;color:#b7efd0;text-transform:uppercase}
.ts-v41 main[data-experience-page] .modern-page-hero .lead{max-width:590px;color:#cad3ce;font-size:clamp(.92rem,1.1vw,1.05rem);line-height:1.85}
.ts-v41 main[data-experience-page] .modern-page-hero:not(.has-image)>.container{position:relative;z-index:2;width:min(1250px,86vw);margin:auto;padding:145px 0 100px}
.ts-v41 main[data-experience-page] .modern-page-hero:not(.has-image) h1{max-width:1000px}
.ts-v41 main[data-experience-page] .section h2,.ts-v41 main[data-experience-page] .section .section-heading h2{font-family:"Bahnschrift","Segoe UI",Arial,sans-serif;letter-spacing:-.065em;font-weight:500}
.ts-v41 main[data-experience-page] .section h3,.ts-v41 main[data-experience-page] .section .service-card h3{font-family:"Bahnschrift","Segoe UI",Arial,sans-serif;letter-spacing:-.04em;font-weight:500}
.ts-v41 main[data-experience-page] .section .eyebrow,.ts-v41 main[data-experience-page] .section .section-heading .eyebrow{font-family:Bahnschrift,"Segoe UI",sans-serif;letter-spacing:.12em}
.ts-v41 .site-header .nav-links>a{font-family:Bahnschrift,"Segoe UI",Arial,sans-serif;letter-spacing:-.02em}
.ts-v41 .vision-hero h1{font-family:"Bahnschrift","Segoe UI",Arial,sans-serif;font-weight:500;letter-spacing:-.09em}
@media(max-width:760px){.ts-v41 main[data-experience-page] .modern-page-hero{min-height:920px}.ts-v41 main[data-experience-page] .modern-page-hero.has-image .split{min-height:920px}.ts-v41 main[data-experience-page] .modern-page-hero.has-image .split>div:first-child{min-height:920px;width:100%;max-width:610px;padding:135px 24px 215px}.ts-v41 main[data-experience-page] .modern-page-hero h1{font-size:clamp(3.1rem,12vw,5rem);line-height:.98;margin:20px 0}.ts-v41 main[data-experience-page] .modern-page-hero .lead{font-size:.92rem;max-width:450px}.ts-v41 main[data-experience-page] .modern-page-hero.has-image .page-hero-image:after{background:linear-gradient(90deg,#070b0fee 0%,#070b0fb8 52%,#070b0f28 100%),linear-gradient(0deg,#070b0f9c,transparent 40%)}.ts-v41 main[data-experience-page] .modern-page-hero.has-image .gallery-frame figcaption{left:24px;right:auto;bottom:91px;max-width:58vw;font-size:.65rem}.ts-v41 main[data-experience-page] .modern-page-hero.has-image .gallery-toolbar{left:24px;right:24px;bottom:28px;width:auto}.ts-v41 main[data-experience-page] .modern-page-hero:not(.has-image)>.container{width:calc(100% - 48px);padding:120px 0 80px}.ts-v41 .vision-hero h1{font-size:clamp(3.8rem,13vw,6rem)}}
@media(prefers-reduced-motion:reduce){.ts-v41 .vision-hero *{animation:none!important;transition:none!important}}
.ts-v41 .x-brand-mark{overflow:visible}
.ts-v41 .x-brand-mark img{transition:opacity .35s ease;will-change:opacity}
.ts-v41 .x-brand-mark .brand-morph-canvas{position:absolute;inset:0;z-index:2;display:block;pointer-events:none;overflow:visible}
@media(prefers-reduced-motion:reduce){.ts-v41 .x-brand-mark img{opacity:1!important}.ts-v41 .x-brand-mark .brand-morph-canvas{display:none}}
.ts-v41{font-family:"Bahnschrift Light","Segoe UI Light","Segoe UI",Arial,sans-serif}
.ts-v41 :is(h1,h2,h3,h4){font-family:"Bahnschrift Light","Segoe UI Light","Segoe UI",Arial,sans-serif;font-weight:300}
.ts-v41 .x-hero h1,.ts-v41 .x-story h2,.ts-v41 .x-service-intro h2,.ts-v41 .x-project h2,.ts-v41 .x-digital h2,.ts-v41 .x-contact h2,.ts-v41 main[data-experience-page] .modern-page-hero h1,.ts-v41 main[data-experience-page] .section h2,.ts-v41 main[data-experience-page] .section h3{font-family:"Bahnschrift Light","Segoe UI Light","Segoe UI",Arial,sans-serif;font-weight:300}
/* Circuit traces and visible quote destination for the V4.1 experience */
.ts-v41 .x-circuit-lines{position:absolute;inset:0;width:100%;height:100%;z-index:2;overflow:visible;pointer-events:none;opacity:.54;mix-blend-mode:screen}
.ts-v41 .x-circuit-lines path,.ts-v41 .x-quote-lines path{fill:none;stroke:#57d8c0;stroke-width:1;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.ts-v41 .x-circuit-lines .trace-base path{opacity:.22}
.ts-v41 .x-circuit-lines .trace-pulse path{stroke:#8df8dc;stroke-width:1.6;stroke-dasharray:2 330;stroke-dashoffset:0;opacity:.9;filter:drop-shadow(0 0 4px #63f7d8);animation:ts-trace-flow 9s linear infinite}
.ts-v41 .x-circuit-lines .trace-pulse path:nth-child(2){animation-delay:-2s}.ts-v41 .x-circuit-lines .trace-pulse path:nth-child(3){animation-delay:-4s}.ts-v41 .x-circuit-lines .trace-pulse path:nth-child(4){animation-delay:-6s}.ts-v41 .x-circuit-lines .trace-pulse path:nth-child(5){animation-delay:-1s}
.ts-v41 .x-circuit-lines .trace-nodes circle,.ts-v41 .x-quote-lines .quote-nodes circle{fill:#81f5d6;filter:drop-shadow(0 0 5px #4de7c4);animation:ts-node-beat 2.8s ease-in-out infinite alternate}
.ts-v41 .x-circuit-lines .trace-nodes circle:nth-child(even){animation-delay:-1.4s}
.ts-v41 .x-hero-backdrop .x-brand-mark{z-index:1}.ts-v41 .x-hero-backdrop .x-orbit,.ts-v41 .x-hero-backdrop .x-crosshair,.ts-v41 .x-hero-backdrop .x-coordinate,.ts-v41 .x-hero-backdrop .x-index{z-index:3}
@keyframes ts-trace-flow{to{stroke-dashoffset:-332}}
@keyframes ts-node-beat{from{opacity:.25;transform:scale(.75);transform-origin:center}to{opacity:.95;transform:scale(1.35);transform-origin:center}}
.ts-v41 .x-quote{min-height:740px;position:relative;overflow:hidden;isolation:isolate;display:flex;align-items:center;padding:110px max(9vw,30px);background:radial-gradient(ellipse at 78% 45%,#154d45 0%,#0d2524 30%,#081113 72%);color:#f5f8f3}
.ts-v41 .x-quote:after{content:"05";position:absolute;right:5vw;bottom:-.28em;z-index:-1;color:#d8fff00a;font-size:42vw;line-height:1;letter-spacing:-.12em;font-weight:300;pointer-events:none}
.ts-v41 .x-quote-lines{position:absolute;inset:0;width:100%;height:100%;z-index:-1;opacity:.55;pointer-events:none}
.ts-v41 .x-quote-lines>g:first-child path{opacity:.27}
.ts-v41 .x-quote-lines .quote-nodes circle:nth-child(even){animation-delay:-1.6s}
.ts-v41 .x-quote-inner{position:relative;z-index:2;width:min(850px,75vw)}
.ts-v41 .x-quote .x-story-no,.ts-v41 .x-quote .x-overline{color:#a4d6c4}
.ts-v41 .x-quote .x-overline{margin-top:76px}
.ts-v41 .x-quote h2{font-size:clamp(4rem,9vw,8rem);font-weight:300;line-height:.9;letter-spacing:-.075em;margin:28px 0}
.ts-v41 .x-quote h2 em{font-style:normal;color:#a7e9cf}
.ts-v41 .x-quote-inner>p:not(.x-overline){max-width:560px;color:#c3d5cd;font-size:1rem;line-height:1.85;margin:0 0 30px}
.ts-v41 .x-quote .x-button{width:max-content}
.ts-v41 .x-quote-inner>small{display:block;margin-top:44px;color:#91b2a5;font-size:.62rem;letter-spacing:.18em}
.ts-v41 .nav-links .nav-quote{color:#9deacb;text-underline-offset:7px}
@media(max-width:650px){.ts-v41 .x-circuit-lines{inset:8% -30% 0 -5%;width:140%;height:82%;opacity:.4}.ts-v41 .x-quote{min-height:680px;padding:80px 24px}.ts-v41 .x-quote-inner{width:100%}.ts-v41 .x-quote .x-overline{margin-top:62px}.ts-v41 .x-quote h2{font-size:clamp(3.8rem,15vw,5.7rem)}.ts-v41 .x-quote-inner>p:not(.x-overline){font-size:.9rem}.ts-v41 .x-quote-inner>small{font-size:.52rem;line-height:1.8}.ts-v41 .x-quote:after{font-size:64vw;right:-6vw}}
@media(prefers-reduced-motion:reduce){.ts-v41 .x-circuit-lines *, .ts-v41 .x-quote-lines *{animation:none!important}}
.ts-v41 .x-circuit-lines{inset:-6% -56.25% -3% 0;width:156.25%;height:109%;opacity:.62}
.ts-v41 .x-circuit-lines .trace-base path{opacity:.3}
.ts-v41 .x-circuit-lines{inset:0;width:100%;height:100%;z-index:3;opacity:.72}
.ts-v41 .x-hero-content,.ts-v41 .x-hero-side,.ts-v41 .x-hero-bottom{z-index:4}
.ts-v41 .x-circuit-lines .trace-base path{opacity:.4;stroke-width:1.15}
.ts-v41 .x-circuit-lines .trace-pulse path{stroke-dasharray:12 330;stroke-width:2}
@media(max-width:650px){.ts-v41 .x-circuit-lines{inset:0;width:100%;height:100%;opacity:.48}}
/* Reuse the portada particle-to-emblem animation in the project and contact heroes. */
/* Animated T-Support identity accents for quote, projects and contact. */
.ts-v41 .x-quote-lines{z-index:0;opacity:.45}
.ts-v41 .x-quote-inner{z-index:2}
/* Section-specific motion: project systems, contact signals, and quote blueprint. */
.ts-v41 .page-hero-visual{position:absolute;right:5vw;top:50%;width:min(39vw,530px);height:min(62vh,560px);transform:translateY(-50%);z-index:2;pointer-events:none;filter:drop-shadow(0 12px 45px #49e7c12b)}
.ts-v41 .page-hero-visual>svg{width:100%;height:100%;overflow:visible}
.ts-v41 .page-project-visual .project-links path{fill:none;stroke:#87e9cc;stroke-width:2;stroke-dasharray:8 10;opacity:.56;animation:project-circuit 7s linear infinite}
.ts-v41 .page-project-visual .project-screen rect{fill:#102529d9;stroke:#72dabb;stroke-width:1.7}
.ts-v41 .page-project-visual .project-screen path{fill:none;stroke:#92efd0;stroke-width:3;stroke-linecap:round;opacity:.62}
.ts-v41 .page-project-visual .project-screen rect:first-child{fill:#0b161bd9;stroke:#a7f5d7;stroke-width:2.5}
.ts-v41 .page-project-visual .project-nodes circle{fill:#0d2427;stroke:#8ef1d0;stroke-width:2;filter:drop-shadow(0 0 8px #70e8c8);animation:project-node-pulse 2.6s ease-in-out infinite alternate}
.ts-v41 .page-project-visual .project-nodes circle:nth-child(even){animation-delay:-1.3s}
.ts-v41 .project-visual-label,.ts-v41 .contact-visual-label{position:absolute;left:12%;bottom:8%;font:9px monospace;letter-spacing:.2em;color:#abdfcc}
.ts-v41 .page-project-visual .project-screen{transform-origin:300px 240px;animation:project-dashboard-float 6s ease-in-out infinite}
@keyframes project-circuit{to{stroke-dashoffset:-72}}
@keyframes project-node-pulse{from{opacity:.48;transform:scale(.84);transform-origin:center}to{opacity:1;transform:scale(1.12);transform-origin:center}}
@keyframes project-dashboard-float{50%{transform:translateY(-8px)}}
.ts-v41 .page-contact-visual .contact-signal-ring{position:absolute;left:50%;top:47%;aspect-ratio:1;width:72%;border:1px solid #83e7cb5c;border-radius:50%;transform:translate(-50%,-50%) scale(.78);animation:contact-ripple 4s ease-out infinite}
.ts-v41 .page-contact-visual .ring-two{animation-delay:2s}
.ts-v41 .page-contact-visual .contact-dialogs path{fill:#0a171d8c;stroke:#a0edd1;stroke-width:2;stroke-dasharray:5 4;animation:contact-dialog-glow 3.4s ease-in-out infinite alternate}
.ts-v41 .page-contact-visual .contact-dialogs path:nth-child(2){animation-delay:-1.7s}
.ts-v41 .page-contact-visual .contact-wave path{fill:none;stroke:#8af2d3;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:10 9;filter:drop-shadow(0 0 8px #65f0d2);animation:project-circuit 5s linear infinite}
.ts-v41 .page-contact-visual .contact-sparks circle{fill:#b8ffe5;filter:drop-shadow(0 0 9px #8affdc);animation:project-node-pulse 1.8s ease-in-out infinite alternate}
.ts-v41 .page-contact-visual .contact-sparks circle:nth-child(2){animation-delay:-.9s}
@keyframes contact-ripple{0%{opacity:.6;transform:translate(-50%,-50%) scale(.58)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.16)}}
@keyframes contact-dialog-glow{to{filter:drop-shadow(0 0 12px #5ce6c2);opacity:.68}}
.ts-v41 .x-quote-visual{position:absolute;right:7vw;top:50%;width:min(36vw,500px);height:min(68%,520px);transform:translateY(-50%);z-index:1;perspective:900px;pointer-events:none}
.ts-v41 .quote-orbit{position:absolute;inset:8% 5%;border:1px solid #8be9c94a;border-radius:50%;transform:rotateX(67deg) rotate(-20deg);animation:quote-orbit-turn 18s linear infinite}
.ts-v41 .quote-orbit:before,.ts-v41 .quote-orbit:after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:#9ff5d6;box-shadow:0 0 16px #62e9c3;left:18%;top:10%}.ts-v41 .quote-orbit:after{left:auto;right:14%;top:auto;bottom:13%}
.ts-v41 .quote-sheet{position:absolute;border:1px solid #9aebd05a;border-radius:5px;background:linear-gradient(145deg,#163533dc,#0a1718ef);box-shadow:0 24px 75px #020b0a77,inset 0 0 36px #66e5bb0b}
.ts-v41 .quote-sheet-back{left:23%;top:18%;width:48%;height:62%;transform:rotate(9deg);animation:quote-sheet-drift 7s ease-in-out infinite}
.ts-v41 .quote-sheet-main{left:29%;top:20%;width:48%;height:65%;padding:10% 8%;transform:rotate(-4deg);animation:quote-sheet-front 6s ease-in-out infinite}
.ts-v41 .quote-sheet-main span{display:block;color:#b5f0d8;font:9px monospace;letter-spacing:.15em;margin-bottom:25%}
.ts-v41 .quote-sheet-main i{display:block;height:3px;margin:11% 0;background:linear-gradient(90deg,#93e8ce 0 70%,#4c8172 70%);opacity:.7}
.ts-v41 .quote-sheet-main b{position:absolute;right:9%;top:49%;display:grid;place-items:center;width:36px;height:36px;border:1px solid #a6f2d4;border-radius:50%;color:#a6f2d4;font-size:1.2rem;font-weight:400;box-shadow:0 0 24px #67eac32b}
.ts-v41 .quote-sheet-main small{position:absolute;bottom:9%;left:8%;color:#91b2a5;font:7px monospace;letter-spacing:.1em}
.ts-v41 .quote-scope{position:absolute;right:3%;bottom:14%;padding:12px 15px;border:1px solid #8be9c958;background:#0b1718d9;color:#baf1d9;font:8px/1.7 monospace;letter-spacing:.12em;animation:quote-scope-float 5s ease-in-out infinite}
.ts-v41 .x-quote-visual>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.ts-v41 .x-quote-visual>svg path{fill:none;stroke:#79d6b66b;stroke-width:1.2;stroke-dasharray:5 7;animation:project-circuit 8s linear infinite}
.ts-v41 .x-quote-visual>svg circle{fill:#adf5d8;filter:drop-shadow(0 0 7px #5ce6c2);animation:project-node-pulse 2.4s ease-in-out infinite alternate}
@keyframes quote-orbit-turn{to{transform:rotateX(67deg) rotate(340deg)}}
@keyframes quote-sheet-drift{50%{transform:rotate(12deg) translateY(-9px)}}
@keyframes quote-sheet-front{50%{transform:rotate(-1deg) translateY(-5px)}}
@keyframes quote-scope-float{50%{transform:translateY(-9px)}}
.ts-v41 .x-contact-network{position:absolute;right:4vw;top:50%;width:min(52vw,710px);height:76%;transform:translateY(-50%);z-index:1;overflow:visible;opacity:.8;pointer-events:none}
.ts-v41 .network-links path{fill:none;stroke:#80e7c7;stroke-width:1.5;stroke-dasharray:7 9;animation:project-circuit 8s linear infinite;opacity:.58}
.ts-v41 .network-links circle{fill:#0b1c1c;stroke:#8fe9cd;stroke-width:2;filter:drop-shadow(0 0 10px #59dcb6);animation:project-node-pulse 3s ease-in-out infinite alternate}
.ts-v41 .network-links circle:nth-child(even){animation-delay:-1.5s}
.ts-v41 .network-icons path{fill:none;stroke:#a9f0d4;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;opacity:.8}
.ts-v41 .network-pulses circle{fill:#b9ffe7;filter:drop-shadow(0 0 12px #66ffd0);animation:network-pulse 2.2s ease-in-out infinite}
.ts-v41 .network-pulses circle:nth-child(2){animation-delay:-.7s}.ts-v41 .network-pulses circle:nth-child(3){animation-delay:-1.4s}
@keyframes network-pulse{0%,100%{opacity:.25;transform:scale(.6);transform-origin:center}50%{opacity:1;transform:scale(1.6);transform-origin:center}}
@media(max-width:760px){.ts-v41 .page-hero-visual{top:auto;right:0;bottom:96px;width:210px;height:220px;transform:none;opacity:.45}.ts-v41 .project-visual-label,.ts-v41 .contact-visual-label{font-size:6px;left:4%;bottom:4%}.ts-v41 .x-quote-visual{top:auto;right:-12px;bottom:24px;width:220px;height:265px;transform:none;opacity:.38}.ts-v41 .x-contact-network{top:auto;right:-8vw;bottom:20px;width:90vw;height:280px;transform:none;opacity:.48}}
@media(prefers-reduced-motion:reduce){.ts-v41 .page-hero-visual *, .ts-v41 .x-quote-visual *, .ts-v41 .x-contact-network *{animation:none!important}}
.ts-v41 .x-contact-network{right:1vw;width:min(43vw,600px);opacity:.65}
@media(max-width:760px){.ts-v41 .x-contact-network{right:-2vw;bottom:12px;width:78vw;height:238px;opacity:.3}}
/* Moving circuit paths and light points in the four main destination banners. */
.ts-v41 .page-circuit-ambience{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none;overflow:visible;opacity:.42;mix-blend-mode:screen}
.ts-v41 .page-circuit-ambience .ambience-base path{fill:none;stroke:#75ddbe;stroke-width:1;vector-effect:non-scaling-stroke;opacity:.35}
.ts-v41 .page-circuit-ambience .ambience-pulse path{fill:none;stroke:#9df8d9;stroke-width:1.8;stroke-dasharray:12 340;stroke-linecap:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 5px #5ce8c0);animation:page-circuit-travel 10s linear infinite}
.ts-v41 .page-circuit-ambience .ambience-pulse path:nth-child(2){animation-delay:-2.5s}.ts-v41 .page-circuit-ambience .ambience-pulse path:nth-child(3){animation-delay:-5s}.ts-v41 .page-circuit-ambience .ambience-pulse path:nth-child(4){animation-delay:-7.5s}
.ts-v41 .page-circuit-ambience .ambience-orbits ellipse{fill:none;stroke:#7fe4c56b;stroke-width:1;stroke-dasharray:2 8;vector-effect:non-scaling-stroke;animation:page-orbit-breathe 7s ease-in-out infinite alternate}
.ts-v41 .page-circuit-ambience .ambience-orbits ellipse:nth-child(2){animation-delay:-3.5s;opacity:.6}
.ts-v41 .page-circuit-ambience .ambience-nodes circle{fill:#99f4d2;filter:drop-shadow(0 0 8px #6de9c2);animation:page-node-glow 2.8s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center}
.ts-v41 .page-circuit-ambience .ambience-nodes circle:nth-child(even){animation-delay:-1.4s}
@keyframes page-circuit-travel{to{stroke-dashoffset:-352}}
@keyframes page-orbit-breathe{from{opacity:.28;stroke-width:.8}to{opacity:.8;stroke-width:1.4}}
@keyframes page-node-glow{from{opacity:.28;transform:scale(.68)}to{opacity:1;transform:scale(1.38)}}
@media(max-width:760px){.ts-v41 .page-circuit-ambience{opacity:.3}.ts-v41 .page-circuit-ambience .ambience-orbits ellipse{stroke-dasharray:2 10}}
@media(prefers-reduced-motion:reduce){.ts-v41 .page-circuit-ambience *{animation:none!important}}

/* Tipografía renovada: geométrica en titulares y clara en lectura continua. */
.ts-v41{font-family:"Manrope","Segoe UI",Arial,sans-serif!important}
.ts-v41 :is(h1,h2,h3,h4){font-family:"Space Grotesk","Manrope","Segoe UI",Arial,sans-serif!important;font-weight:500;letter-spacing:-.045em}
.ts-v41 main[data-experience-page] .modern-page-hero h1{font-family:"Space Grotesk","Manrope","Segoe UI",Arial,sans-serif!important;font-weight:500;letter-spacing:-.055em}
.ts-v41 main[data-experience-page] .section h2,.ts-v41 main[data-experience-page] .section .section-heading h2,.ts-v41 main[data-experience-page] .section h3,.ts-v41 main[data-experience-page] .section .service-card h3{font-family:"Space Grotesk","Manrope","Segoe UI",Arial,sans-serif!important;font-weight:500}
.ts-v41 .vision-hero h1,.ts-v41 .manifesto-heading,.ts-v41 .vision-section-heading h2,.ts-v41 .vision-finale h2,.ts-v41 .x-hero h1,.ts-v41 .x-story h2,.ts-v41 .x-service-intro h2,.ts-v41 .x-project h2,.ts-v41 .x-digital h2,.ts-v41 .x-contact h2{font-family:"Space Grotesk","Manrope","Segoe UI",Arial,sans-serif!important;font-weight:500;letter-spacing:-.06em}
.ts-v41 .certificate-catalog{align-items:start;grid-auto-rows:auto}
.ts-v41 .certificate-catalog .certificate-card{align-self:start;box-sizing:border-box;height:570px;min-height:0}
.ts-v41 .certificate-catalog .certificate-card:has(.certificate-details[open]){height:auto;min-height:570px}
@media(max-width:760px){.ts-v41 .certificate-catalog .certificate-card{height:640px}.ts-v41 .certificate-catalog .certificate-card:has(.certificate-details[open]){height:auto;min-height:640px}}
@media(max-width:380px){.ts-v41 .certificate-catalog .certificate-card{height:680px}.ts-v41 .certificate-catalog .certificate-card:has(.certificate-details[open]){height:auto;min-height:680px}}

/* Refuerzo de contraste en las secciones claras del sitio. */
.ts-v41 main[data-experience-page] .section-soft .section-heading>p,
.ts-v41 main[data-experience-page] .section-soft>.container>p,
.ts-v41 main[data-experience-page] .section-soft .certificate-catalog-meta,
.ts-v41 main[data-experience-page] .section-soft .certificate-catalog-meta span,
.ts-v41 main[data-experience-page] .section-soft .faq-list details p,
.ts-v41 main[data-experience-page] .section-soft .about-point span,
.ts-v41 main[data-experience-page] .section-soft .certificate-note{color:#40544a!important}
.ts-v41 main[data-experience-page] .section-soft .certificate-catalog-meta p{color:#17221e!important}
.ts-v41 main[data-experience-page] .section-soft .section-heading .eyebrow,
.ts-v41 main[data-experience-page] .section-soft>.container>.eyebrow{color:#176247!important}
.ts-v41 main[data-experience-page="contacto"] .contact-social .social-link{color:#e7f3eb;background:#14251f;border-color:#718c7e}
.ts-v41 main[data-experience-page="contacto"] .contact-social .social-icon{color:#a8efd0}
.ts-v41 main[data-experience-page="contacto"] .contact-social .social-link:hover,
.ts-v41 main[data-experience-page="contacto"] .contact-social .social-link:focus-visible{color:#10231b;background:#a8efd0;border-color:#a8efd0}
.ts-v41 main[data-experience-page="contacto"] .contact-social .social-link:hover .social-icon,
.ts-v41 main[data-experience-page="contacto"] .contact-social .social-link:focus-visible .social-icon{color:#10231b}

.ts-v41 .brand-band{background:#f8faf8;border-bottom:1px solid #dce3df;padding-block:17px}
.ts-v41 .brand-band .brand-item{background:transparent}
.ts-v41 .brand-band .brand-logo-wrap img{filter:grayscale(1);opacity:.82;transition:filter .3s ease,opacity .3s ease}
.ts-v41 .brand-band .brand-item:hover img{filter:grayscale(0);opacity:1}
@media(max-width:760px){.ts-v41 .brand-band{padding-block:12px}}
