/* ALTAVISTA V6 · Editorial Experience Layer
   Inspired by the visual grammar of the CV reference: grids, indices,
   oversized typography, orbital diagrams, timelines and responsive reveals. */
.editorial-page{--ed-grid:rgba(76,132,180,.105);overflow-x:hidden;background:#020811}
.editorial-page:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;opacity:.16;background-image:linear-gradient(var(--ed-grid) 1px,transparent 1px),linear-gradient(90deg,var(--ed-grid) 1px,transparent 1px);background-size:54px 54px;mask-image:linear-gradient(180deg,#000 0%,transparent 82%)}
.editorial-page .page-hero{min-height:68vh;padding:86px 7%;display:grid;grid-template-columns:1.03fr .97fr;align-items:center;gap:5vw;position:relative;overflow:hidden;background:radial-gradient(circle at 76% 46%,rgba(17,47,101,.52),transparent 27%),linear-gradient(180deg,#020811,#030b15);border-bottom:1px solid #142337}
.editorial-page .page-hero>div:first-child{position:relative;z-index:3;max-width:760px}
.editorial-page .page-hero .kicker{display:flex;align-items:center;gap:10px;font-size:9px;letter-spacing:2.2px;color:#8feaff;font-weight:800;margin-bottom:20px}
.editorial-page .page-hero .kicker:before{content:"";display:block;width:30px;height:2px;background:linear-gradient(90deg,#f30a9c,#ff9700)}
.editorial-page .page-hero h1{font-size:clamp(52px,7.4vw,104px);line-height:.86;letter-spacing:-5px;margin:0 0 28px;font-weight:900;max-width:850px;text-wrap:balance}
.editorial-page .page-hero h1 span{color:#10d9ff;text-shadow:0 0 35px rgba(16,217,255,.12)}
.editorial-page .page-hero p{max-width:690px;color:#aebdcd;line-height:1.85;font-size:14px;margin:0}
.editorial-hero-index{position:absolute!important;left:7%;top:26px!important;z-index:4!important;font-size:8px!important;letter-spacing:2px;color:#607086!important}
.editorial-hero-visual{position:relative;min-height:470px;display:grid;place-items:center;overflow:visible}
.editorial-hero-visual .hero-big-number{position:absolute;font-size:clamp(150px,20vw,290px);font-weight:900;line-height:.8;letter-spacing:-.12em;color:rgba(255,255,255,.025);right:-10px;top:50%;transform:translateY(-50%);user-select:none}
.editorial-orbit{position:absolute;border:1px solid rgba(16,217,255,.19);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);animation:edSpin 28s linear infinite}
.editorial-orbit.o1{width:min(530px,90%);aspect-ratio:1;border-right-color:rgba(243,10,156,.35)}
.editorial-orbit.o2{width:min(380px,66%);aspect-ratio:1;border-top-color:transparent;border-bottom-color:rgba(255,151,0,.35);animation-direction:reverse;animation-duration:19s}
.editorial-orbit.o3{width:min(245px,43%);aspect-ratio:1;border-style:dashed;border-color:rgba(138,92,255,.35);animation-duration:13s}
.editorial-core{width:128px;height:128px;border-radius:50%;display:grid;place-content:center;text-align:center;border:1px solid rgba(16,217,255,.72);background:radial-gradient(circle at 35% 30%,rgba(16,217,255,.23),#030a12 68%);box-shadow:0 0 70px rgba(16,217,255,.12),inset 0 0 35px rgba(16,217,255,.08);position:relative;z-index:4}
.editorial-core b{font-size:32px;line-height:1;letter-spacing:-2px}.editorial-core small{font-size:6px;letter-spacing:1.8px;color:#8c9aab;margin-top:7px}
.editorial-node{position:absolute;padding:9px 11px;border:1px solid rgba(255,255,255,.16);background:rgba(3,10,18,.78);backdrop-filter:blur(8px);font-size:7px;font-weight:800;letter-spacing:1.4px;z-index:5;transition:.25s ease}
.editorial-node:hover{transform:translateY(-3px);border-color:#10d9ff;color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.editorial-node.north{top:9%;left:50%;transform:translateX(-50%);color:#10d9ff;border-color:rgba(16,217,255,.38)}
.editorial-node.east{right:3%;top:50%;transform:translateY(-50%);color:#f30a9c;border-color:rgba(243,10,156,.38)}
.editorial-node.south{bottom:9%;left:50%;transform:translateX(-50%);color:#ff9700;border-color:rgba(255,151,0,.38)}
.editorial-node.west{left:3%;top:50%;transform:translateY(-50%);color:#9b78ff;border-color:rgba(155,120,255,.38)}
.editorial-node.north:hover{transform:translateX(-50%) translateY(-3px)}.editorial-node.east:hover,.editorial-node.west:hover{transform:translateY(-50%) translateX(0)}.editorial-node.south:hover{transform:translateX(-50%) translateY(-3px)}
.editorial-connector{position:absolute;height:1px;width:26%;left:50%;top:50%;transform-origin:left;background:linear-gradient(90deg,rgba(16,217,255,.02),rgba(16,217,255,.55));z-index:2}.editorial-connector.c1{transform:rotate(-90deg)}.editorial-connector.c2{transform:rotate(0)}.editorial-connector.c3{transform:rotate(90deg)}.editorial-connector.c4{transform:rotate(180deg)}
@keyframes edSpin{to{transform:translate(-50%,-50%) rotate(360deg)}}
.editorial-domain-rail{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #132337;border-bottom:1px solid #132337;background:#030b15}
.editorial-domain-rail a{padding:18px 6%;border-right:1px solid #132337;display:flex;justify-content:space-between;align-items:center;gap:15px;transition:.22s ease}
.editorial-domain-rail a:last-child{border-right:0}.editorial-domain-rail a:hover,.editorial-domain-rail a.active{background:linear-gradient(90deg,rgba(16,217,255,.07),rgba(243,10,156,.03));transform:translateY(-1px)}
.editorial-domain-rail small{font-size:7px;letter-spacing:1.7px;color:#65758a}.editorial-domain-rail strong{font-size:12px;letter-spacing:.8px}.editorial-domain-rail em{font-style:normal;font-size:15px;color:#10d9ff}
.editorial-page .content-section{position:relative;padding:92px 7%;border-bottom:1px solid #122136;overflow:hidden}
.editorial-page .content-section:before{content:"";position:absolute;right:-220px;top:40px;width:520px;height:520px;border-radius:50%;border:1px solid rgba(16,217,255,.055);pointer-events:none}
.editorial-page .content-section>h2{font-size:clamp(38px,5vw,72px);line-height:.92;letter-spacing:-3px;max-width:950px;margin:0 0 20px;position:relative;z-index:1}
.editorial-page .content-section>p{font-size:13px;line-height:1.85;max-width:820px;color:#94a3b5;position:relative;z-index:1}
.editorial-section-index{font-size:8px;letter-spacing:2px;color:#63738a;margin-bottom:28px;position:relative;z-index:1}.editorial-section-index:after{content:"";display:inline-block;width:34px;height:1px;background:linear-gradient(90deg,#10d9ff,transparent);margin-left:10px;vertical-align:middle}
.editorial-page .cap-grid{grid-template-columns:repeat(3,1fr);gap:0;margin-top:50px;border-top:1px solid #1a2b40;border-left:1px solid #1a2b40;position:relative;z-index:1}
.editorial-page .cap-card{min-height:235px;padding:25px 24px 28px;border:0;border-right:1px solid #1a2b40;border-bottom:1px solid #1a2b40;background:linear-gradient(145deg,rgba(7,17,30,.9),rgba(3,9,16,.92));transition:transform .25s ease,background .25s ease,border-color .25s ease;position:relative}
.editorial-page .cap-card:hover{transform:translateY(-5px);background:linear-gradient(145deg,rgba(10,27,44,.98),rgba(5,11,19,.98));z-index:2;box-shadow:0 20px 55px rgba(0,0,0,.2)}
.editorial-card-no{display:block!important;font-size:8px!important;letter-spacing:1.8px!important;color:#10d9ff!important;margin-bottom:48px!important;min-height:0!important}
.editorial-page .cap-card h3{font-size:18px;line-height:1.08;letter-spacing:-.4px;margin:0 0 10px;max-width:260px}.editorial-page .cap-card p{font-size:10px;line-height:1.7;color:#7f8e9f;max-width:310px}
.editorial-page .cap-card:after{content:"↗";position:absolute;right:18px;bottom:17px;font-size:16px;color:rgba(16,217,255,.5);opacity:.45;transition:.25s}.editorial-page .cap-card:hover:after{opacity:1;transform:translate(3px,-3px)}
.editorial-page .tag-row{position:relative;z-index:1}.editorial-page .tag{transition:.2s ease;background:rgba(5,12,23,.35)}.editorial-page .tag:hover{border-color:#10d9ff;color:#fff;transform:translateY(-2px)}
.editorial-page .campaign-band{position:relative;z-index:1}.editorial-page .campaign-step{transition:.25s ease;position:relative;overflow:hidden}.editorial-page .campaign-step:hover{transform:translateY(-5px);border-color:rgba(16,217,255,.35)}.editorial-page .campaign-step:after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:linear-gradient(90deg,#10d9ff,#f30a9c);transition:.35s ease}.editorial-page .campaign-step:hover:after{width:100%}
.editorial-page .credential-section{background:radial-gradient(circle at 82% 20%,rgba(138,92,255,.13),transparent 29%),radial-gradient(circle at 10% 80%,rgba(16,217,255,.07),transparent 27%)}
.editorial-page .credential-card{transition:transform .35s ease;cursor:default}.editorial-page .credential-stage:hover .credential-card{transform:rotate(-2deg) translateY(-8px) rotateX(3deg) rotateY(-3deg)}
.editorial-page .case-visual{position:relative;z-index:1;box-shadow:0 30px 90px rgba(0,0,0,.25);transition:.3s ease}.editorial-page .case-visual:hover{transform:translateY(-4px);border-color:rgba(16,217,255,.4)}
.editorial-page .contact-grid{position:relative;z-index:1}.editorial-page .contact-form input,.editorial-page .contact-form textarea,.editorial-page .contact-form select{transition:.2s;border-color:#1e3148}.editorial-page .contact-form input:focus,.editorial-page .contact-form textarea:focus,.editorial-page .contact-form select:focus{outline:0;border-color:#10d9ff;box-shadow:0 0 0 1px rgba(16,217,255,.12),0 0 30px rgba(16,217,255,.05)}
.editorial-scroll-rail{position:fixed;right:14px;top:50%;transform:translateY(-50%);width:2px;height:120px;background:#18293c;z-index:30;display:block}.editorial-scroll-rail i{display:block;width:2px;height:22%;background:linear-gradient(#10d9ff,#f30a9c);transition:height .12s ease}.editorial-scroll-rail small{position:absolute;right:8px;top:0;transform:translateY(-2px);font-size:6px;letter-spacing:1px;color:#617189;white-space:nowrap;opacity:0;transition:.2s}.editorial-scroll-rail:hover small{opacity:1}
.editorial-reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}.editorial-reveal.is-visible{opacity:1;transform:none}.editorial-stagger-1{transition-delay:.05s}.editorial-stagger-2{transition-delay:.1s}.editorial-stagger-3{transition-delay:.15s}.editorial-stagger-4{transition-delay:.2s}
.editorial-page .page-hero,.editorial-page .content-section{scroll-margin-top:74px}
@media(max-width:900px){.editorial-page .page-hero{grid-template-columns:1fr;padding:80px 6% 60px;min-height:auto}.editorial-hero-visual{min-height:380px;margin-top:10px}.editorial-page .page-hero h1{font-size:clamp(48px,10vw,80px)}.editorial-domain-rail{grid-template-columns:repeat(2,1fr)}.editorial-domain-rail a:nth-child(2){border-right:0}.editorial-domain-rail a{border-bottom:1px solid #132337}.editorial-page .cap-grid{grid-template-columns:repeat(2,1fr)}.editorial-scroll-rail{display:none}}
@media(max-width:600px){.editorial-page .page-hero{padding:72px 22px 35px}.editorial-hero-index{left:22px;top:20px!important}.editorial-hero-visual{min-height:320px}.editorial-orbit.o1{width:320px}.editorial-orbit.o2{width:235px}.editorial-orbit.o3{width:155px}.editorial-core{width:105px;height:105px}.editorial-core b{font-size:26px}.editorial-node{font-size:6px;padding:7px 8px}.editorial-page .content-section{padding:65px 22px}.editorial-page .content-section>h2{font-size:clamp(36px,12vw,56px);letter-spacing:-2.5px}.editorial-page .cap-grid{grid-template-columns:1fr}.editorial-page .cap-card{min-height:200px}.editorial-card-no{margin-bottom:35px!important}.editorial-domain-rail{grid-template-columns:1fr}.editorial-domain-rail a,.editorial-domain-rail a:nth-child(2){border-right:0}.editorial-page .campaign-flow{grid-template-columns:1fr}.editorial-page .credential-stage{min-height:320px}}
@media(prefers-reduced-motion:reduce){.editorial-orbit{animation:none}.editorial-reveal{opacity:1;transform:none;transition:none}.editorial-page .cap-card,.editorial-page .campaign-step,.editorial-page .case-visual{transition:none}}

/* ALTAVISTA V6.1 · Motion layer — ambient movement inspired by the CV reference */
@keyframes edGridDrift{0%{background-position:0 0,0 0}100%{background-position:54px 54px,54px 54px}}
@keyframes edFloatA{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-9px,0)}}
@keyframes edFloatB{0%,100%{transform:translate3d(0,0,0) rotate(0deg)}50%{transform:translate3d(7px,-5px,0) rotate(1deg)}}
@keyframes edFloatC{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(-6px,7px,0)}}
@keyframes edPulse{0%,100%{box-shadow:0 0 0 0 rgba(16,217,255,.05),0 0 70px rgba(16,217,255,.10),inset 0 0 35px rgba(16,217,255,.08)}50%{box-shadow:0 0 0 13px rgba(16,217,255,0),0 0 95px rgba(16,217,255,.18),inset 0 0 42px rgba(16,217,255,.12)}}
@keyframes edCoreGlow{0%,100%{opacity:.45;transform:scale(.9)}50%{opacity:.9;transform:scale(1.12)}}
@keyframes edSheen{0%,28%{transform:translateX(-125%) skewX(-18deg)}58%,100%{transform:translateX(125%) skewX(-18deg)}}
@keyframes edBeam{0%,100%{opacity:.12;transform:scaleX(.75)}50%{opacity:.65;transform:scaleX(1)}}
@keyframes edServiceFloat{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-4px) rotate(.4deg)}}
@keyframes edArrowNudge{0%,100%{transform:translate(0,0)}50%{transform:translate(4px,-3px)}}

/* Slowly moving technical grid, as in the CV reference. */
.editorial-page:before{animation:edGridDrift 20s linear infinite}
/* Give the orbital system a living center instead of only spinning rings. */
.editorial-core:after{content:"";position:absolute;inset:22%;border-radius:50%;background:rgba(16,217,255,.18);filter:blur(14px);animation:edCoreGlow 4.5s ease-in-out infinite;pointer-events:none;z-index:-1}
.editorial-core{animation:edPulse 4.8s ease-in-out infinite}
.editorial-node.north{animation:edFloatA 4.8s ease-in-out infinite}
.editorial-node.east{animation:edFloatB 5.6s ease-in-out infinite .4s}
.editorial-node.south{animation:edFloatC 5.1s ease-in-out infinite .8s}
.editorial-node.west{animation:edFloatA 5.3s ease-in-out infinite 1.1s}
.editorial-connector.c1{animation:edBeam 4s ease-in-out infinite}
.editorial-connector.c2{animation:edBeam 4.6s ease-in-out infinite .5s}
.editorial-connector.c3{animation:edBeam 5s ease-in-out infinite 1s}
.editorial-connector.c4{animation:edBeam 4.3s ease-in-out infinite 1.4s}

/* Hero visual breathes very subtly so the page feels alive before interaction. */
.editorial-hero-visual{animation:edFloatB 8s ease-in-out infinite}
.editorial-big-number,.hero-big-number{animation:edFloatC 10s ease-in-out infinite}

/* Moving light across cards, used sparingly so it feels premium rather than noisy. */
.editorial-page .cap-card:before,
.editorial-page .campaign-step:before,
.editorial-page .case-visual:before,
.editorial-page .tag:before{content:"";position:absolute;top:-25%;left:0;width:22%;height:150%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.07),transparent);transform:translateX(-125%) skewX(-18deg);pointer-events:none}
.editorial-page .cap-card:before{animation:edSheen 7.5s ease-in-out infinite}
.editorial-page .campaign-step:before{animation:edSheen 8.5s ease-in-out infinite 1.5s}
.editorial-page .case-visual:before{animation:edSheen 9s ease-in-out infinite 2s}
.editorial-page .tag:before{animation:edSheen 10s ease-in-out infinite 3s}
.editorial-page .cap-card{overflow:hidden}
.editorial-page .campaign-step,.editorial-page .case-visual{overflow:hidden}

/* Service cards on the home page get a slow cinematic lift and a live accent. */
.services .service{overflow:hidden}
.services .service .service-bg{transform:scale(1.015);transition:transform 1.2s cubic-bezier(.2,.8,.2,1),filter 1.2s ease}
.services .service:hover .service-bg{transform:scale(1.07);filter:saturate(1.12)}
.services .service .hex{animation:edServiceFloat 5.5s ease-in-out infinite}
.services .service:nth-child(2) .hex{animation-delay:.8s}
.services .service:nth-child(3) .hex{animation-delay:1.5s}
.services .service:nth-child(4) .hex{animation-delay:2.2s}
.services .service:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,#10d9ff,transparent);transform:scaleX(.2);opacity:.35;animation:edBeam 5s ease-in-out infinite}

/* Small navigation arrows subtly move on their own. */
.editorial-page .cap-card:after{animation:edArrowNudge 2.8s ease-in-out infinite}

/* A restrained ambient glow for the home hero. */
.hero .hero-visual:after{content:"";position:absolute;width:260px;height:260px;right:10%;top:16%;border-radius:50%;background:radial-gradient(circle,rgba(16,217,255,.10),transparent 68%);filter:blur(8px);pointer-events:none;animation:edCoreGlow 7s ease-in-out infinite}

@media(prefers-reduced-motion:reduce){
  .editorial-page:before,.editorial-core,.editorial-core:after,.editorial-node,.editorial-connector,.editorial-hero-visual,.editorial-big-number,.hero-big-number,.editorial-page .cap-card:before,.editorial-page .campaign-step:before,.editorial-page .case-visual:before,.editorial-page .tag:before,.services .service .hex,.services .service:after,.editorial-page .cap-card:after,.hero .hero-visual:after{animation:none!important}
}
.editorial-hero-visual{--ed-px:0px;--ed-py:0px;will-change:transform;transform:translate3d(var(--ed-px),var(--ed-py),0)}
@media(prefers-reduced-motion:reduce){.editorial-hero-visual{transform:none!important}}

/* V8 micro-interactions */
.editorial-page .cap-card,.editorial-page .tag,.editorial-page .campaign-band,.editorial-page .credential-card{position:relative;overflow:hidden}
.editorial-page .cap-card:after,.editorial-page .campaign-band:after,.editorial-page .credential-card:after{content:"";position:absolute;top:-30%;left:-45%;width:28%;height:160%;background:linear-gradient(90deg,transparent,rgba(16,217,255,.08),transparent);transform:skewX(-18deg);transition:transform .8s ease;pointer-events:none}
.editorial-page .cap-card:hover:after,.editorial-page .campaign-band:hover:after,.editorial-page .credential-card:hover:after{transform:translateX(480%) skewX(-18deg)}
.editorial-page .cap-card:hover{transform:translateY(-5px);border-color:#2a4e6e}
.editorial-page .tag{transition:transform .25s ease,border-color .25s ease,background .25s ease}.editorial-page .tag:hover{transform:translateY(-3px);border-color:#10d9ff;background:rgba(16,217,255,.06)}
.case-reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease}.case-reveal.is-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.editorial-page .cap-card:hover{transform:none}.case-reveal{opacity:1;transform:none;transition:none}}
