/* Cloud Services — NIGHTSHIFT page-specific rules */
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes growY{from{transform:scaleY(0)}to{transform:scaleY(1)}}
/* hero */
.hero{position:relative;min-height:clamp(760px,100svh,1160px);overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding:150px 0 90px}
.hero-bg{position:absolute;inset:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:60% 50%}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(90deg,#05070C 18%,rgba(5,7,12,.86) 38%,rgba(5,7,12,.3) 64%,rgba(5,7,12,.05) 82%),linear-gradient(180deg,rgba(5,7,12,.72) 0%,rgba(5,7,12,.1) 26%,rgba(5,7,12,.2) 60%,#05070C 100%)}
.sweep{position:absolute;top:0;bottom:0;left:0;width:260px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.07),transparent);animation:sweep 5.5s var(--ease) 1.4s 1 both;pointer-events:none}
.w{display:inline-block}
.hero h1.disp{font-size:clamp(48px,8.3vw,120px)}
.hero-grid{display:grid;grid-template-columns:1fr minmax(0,520px);gap:clamp(40px,7vw,100px);align-items:start;margin-top:clamp(36px,3.6vw,52px)}
.meta{margin-top:56px;padding-top:24px;border-top:1px solid var(--line);font-size:15px;color:var(--ink2);display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;max-width:520px}
.meta .mono{color:var(--blue-text)}
/* pipeline panel (extends shared .dash) */
.stages{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:22px}
.stage{padding:14px 12px 14px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.02)}
.stage .ic{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;border:1px solid var(--line2);color:var(--ink2);margin-bottom:14px}
.stage .ic svg{width:15px;height:15px}
.stage.done .ic{color:var(--blue-text);border-color:rgba(147,166,255,.45)}
.stage.active{border-color:rgba(79,107,255,.7);background:rgba(23,54,255,.14)}
.stage.active .ic{background:var(--blue);border-color:var(--blue);color:#fff;animation:pulse 2.2s ease-out infinite}
.stage.pending{opacity:.5}
.stage .n{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.stage .d{font-family:'Geist Mono','Geist Mono Fallback',ui-monospace,monospace;font-size:11px;color:var(--ink3);margin-top:4px;white-space:nowrap}
.log{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.log .row{display:grid;grid-template-columns:72px 16px 1fr;gap:12px;align-items:center;font-family:'Geist Mono','Geist Mono Fallback',ui-monospace,monospace;font-size:12.5px;color:var(--ink2);padding:6px 0;font-variant-numeric:tabular-nums}
.log .row .t{color:var(--ink3)}
.log .row svg{width:14px;height:14px;color:var(--blue-text)}
.log .row.now{color:var(--ink)}
.spin{animation:spin 2.4s linear infinite;transform-origin:center}
.status{display:inline-flex;align-items:center;gap:8px;margin-top:12px;color:var(--blue-text);font-family:'Geist Mono','Geist Mono Fallback',ui-monospace,monospace;font-size:12px;letter-spacing:.06em}
.envs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px}
.env{padding:12px 14px;border-radius:8px;border:1px solid var(--line);background:rgba(255,255,255,.02)}
.env .n{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);font-weight:600}
.env .d{font-family:'Geist Mono','Geist Mono Fallback',ui-monospace,monospace;font-size:12px;color:var(--ink2);margin-top:6px;white-space:nowrap}
.env.now{border-color:rgba(79,107,255,.6);background:rgba(23,54,255,.12)}
.env.now .n{color:var(--blue-text)}
.env.now .d{color:var(--ink)}
/* two-column section heads */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5.5vw,80px);align-items:end}
/* four jobs */
.jobs{border-top:1px solid var(--line)}
.job{display:grid;grid-template-columns:120px 1fr 1fr;gap:clamp(24px,3.3vw,48px);padding:clamp(36px,3.6vw,52px) 0;border-bottom:1px solid var(--line);align-items:start}
.job .n{font-family:'Geist Mono','Geist Mono Fallback',ui-monospace,monospace;font-size:14px;color:var(--blue-text);padding-top:16px;letter-spacing:.06em}
.job h3.disp{font-size:clamp(34px,3.6vw,52px);letter-spacing:-.03em;max-width:12ch}
.job .h{font-size:clamp(20px,1.7vw,24px);font-weight:600;color:var(--ink);line-height:1.3;margin-bottom:14px;letter-spacing:-.01em}
/* cloud optic */
.optic{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,5.5vw,80px);align-items:start}
.optic-side{padding-top:120px}
.optic-bg{position:absolute;right:-140px;top:-60px;width:1000px;max-width:none;height:auto;opacity:.45;pointer-events:none;mask-image:linear-gradient(90deg,transparent,#000 30%);-webkit-mask-image:linear-gradient(90deg,transparent,#000 30%)}
.feats{margin-top:44px;border-top:1px solid var(--line)}
.feats .feat{display:grid;grid-template-columns:24px 1fr;gap:16px;padding:22px 0;border-bottom:1px solid var(--line)}
.feats .feat svg{width:18px;height:18px;color:var(--blue-text);margin-top:5px}
.feats .feat .h{font-weight:600;color:var(--ink);font-size:18px;line-height:1.4}
.feats .feat .b{font-size:15px;color:var(--ink3);margin-top:4px;line-height:1.5}
.optic .kpis{grid-template-columns:repeat(2,1fr)}
.metric{padding:10px 0 6px}
.metric .v{font-size:clamp(64px,7.2vw,104px);color:#fff}
/* cinematic panel */
.cine{position:relative;min-height:clamp(640px,62vw,900px);overflow:hidden;display:flex;align-items:flex-end}
.cine img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 40%}
.cine .s{position:absolute;inset:0;background:linear-gradient(180deg,#05070C 0%,rgba(5,7,12,.25) 30%,rgba(5,7,12,.5) 60%,#05070C 100%),linear-gradient(90deg,rgba(5,7,12,.7) 0%,rgba(5,7,12,.2) 60%,rgba(5,7,12,0) 100%)}
.cine .c{position:relative;width:min(860px,100%);padding:clamp(140px,16vw,220px) clamp(20px,5.5vw,80px) clamp(64px,7.6vw,110px)}
.cine h2{font-size:clamp(40px,6.1vw,88px)}
.lead em{font-style:italic;font-weight:500;color:var(--blue-text)}
/* move2cloud */
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:28px;margin-top:72px;position:relative}
.steps::before{content:"";position:absolute;left:0;right:0;top:7px;height:1px;background:var(--line)}
.steps::after{content:"";position:absolute;left:0;right:0;top:7px;height:1px;background:linear-gradient(90deg,var(--blue-hi),rgba(79,107,255,.15));transform-origin:left;animation:grow 2.6s var(--ease) both}
@supports (animation-timeline: view()){.steps::after{animation-timeline:view();animation-range:entry 0% entry 60%}}
.step{position:relative;padding-top:40px}
.step::before{content:"";position:absolute;left:0;top:0;width:15px;height:15px;border-radius:50%;background:var(--bg);border:1px solid var(--line2);z-index:1}
.step:first-child::before{background:var(--blue);border-color:var(--blue);animation:pulse 2.2s ease-out infinite}
.step .n{font-family:'Geist Mono','Geist Mono Fallback',ui-monospace,monospace;font-size:13px;color:var(--blue-text);letter-spacing:.06em}
.step h3.disp{font-size:clamp(26px,2.3vw,32px);margin:12px 0 16px}
.step .h{font-weight:600;color:var(--ink);font-size:16px;line-height:1.45}
.step .b{font-size:15px;color:var(--ink3);margin-top:8px;line-height:1.5}
/* maturity ladder */
.ladder{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;align-items:end;margin-top:72px;border-bottom:1px solid var(--line2)}
.rung{position:relative;border-radius:12px 12px 0 0;border:1px solid var(--line);border-bottom:0;display:flex;flex-direction:column;justify-content:flex-end;padding:24px 22px 28px;transition:border-color .3s,background .3s}
.rung:hover{border-color:var(--line2)}
.rung .n{position:absolute;top:20px;left:22px;font-family:'Geist Mono','Geist Mono Fallback',ui-monospace,monospace;font-size:13px;color:var(--blue-text);letter-spacing:.06em}
.rung h3.disp{font-size:clamp(22px,2.1vw,28px);margin-bottom:10px}
.rung p{font-size:15px;color:var(--ink2);line-height:1.5}
.r1{height:260px;background:rgba(23,54,255,.03)}
.r2{height:300px;background:rgba(23,54,255,.06)}
.r3{height:340px;background:rgba(23,54,255,.09)}
.r4{height:380px;background:rgba(23,54,255,.13)}
.r5{height:420px;background:rgba(23,54,255,.2);border-color:rgba(79,107,255,.6)}
.r5 .n{color:#fff}
/* how we engage */
.engage{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(40px,7vw,100px);align-items:start}
.eng{display:grid;grid-template-columns:72px 1fr;gap:24px;padding:40px 0;border-top:1px solid var(--line)}
.eng:last-child{border-bottom:1px solid var(--line)}
.eng .n{font-family:'Geist Mono','Geist Mono Fallback',ui-monospace,monospace;color:var(--blue-text);font-size:14px;padding-top:10px;letter-spacing:.06em}
.eng h3.disp{font-size:clamp(26px,2.4vw,34px);margin-bottom:10px}
.eng .h{font-weight:600;color:var(--ink);font-size:18px}
.eng .b{color:var(--ink3);font-size:15px;margin-top:4px}
/* cta */
.cta h2{font-size:clamp(40px,5.8vw,84px);max-width:17ch}
/* responsive */
@media (max-width:980px){
  .hero-grid{grid-template-columns:1fr}
  .split{grid-template-columns:1fr;gap:24px}
  .job{grid-template-columns:1fr;gap:12px}
  .job .n{padding-top:0}
  .job h3.disp{margin-bottom:8px}
  .optic{grid-template-columns:1fr}
  .optic-side{padding-top:0}
  .optic-bg{display:none}
  .cine .s{background:linear-gradient(180deg,#05070C 0%,rgba(5,7,12,.55) 22%,rgba(5,7,12,.8) 48%,#05070C 100%)}
  .steps{grid-template-columns:1fr;gap:36px;margin-top:56px}
  .steps::before,.steps::after{top:0;bottom:0;left:7px;right:auto;width:1px;height:auto}
  .steps::after{background:linear-gradient(180deg,var(--blue-hi),rgba(79,107,255,.15));transform-origin:top;animation-name:growY}
  .step{padding:0 0 0 40px}
  .step::before{top:4px}
  .ladder{grid-template-columns:1fr;gap:12px;border-bottom:0;margin-top:56px}
  .rung,.r1,.r2,.r3,.r4,.r5{height:auto;border-radius:12px;border-bottom:1px solid var(--line)}
  .r5{border-bottom-color:rgba(79,107,255,.6)}
  .rung .n{position:static;margin-bottom:14px}
  .engage{grid-template-columns:1fr;gap:40px}
}
@media (max-width:700px){
  .hero{padding-top:120px}
  .stages{grid-template-columns:1fr 1fr}
  .envs{grid-template-columns:1fr}
  .dash{padding:20px 18px 18px}
  .eng{grid-template-columns:48px 1fr;gap:16px;padding:32px 0}
}
