/* ============================================================
   SENTRY DIGITAL SERVICES — Brand System
   Extracted from approved brand assets
   ============================================================ */
:root{
  /* Core surfaces — deep navy / near-black */
  --bg:        #060A12;
  --bg-1:      #0A1020;   /* page base */
  --bg-2:      #0C1326;   /* panel */
  --bg-3:      #111A30;   /* raised panel */
  --bg-glow:   #0E1A33;

  /* Ink */
  --ink:       #EAF1FB;
  --ink-soft:  #C3CEDF;
  --muted:     #8A99B2;
  --muted-2:   #93A1B9;
  --faint:     #3A4761;

  /* Brand accents */
  --blue:      #2B7BF5;   /* primary electric blue */
  --blue-br:   #4F9BFF;   /* bright sky */
  --blue-deep: #1A4FB0;
  --cyan:      #33C6E8;
  --green:     #33CC85;   /* emerald growth */
  --green-br:  #56E3A6;

  /* Lines */
  --line:        rgba(118,150,205,0.14);
  --line-2:      rgba(118,150,205,0.22);
  --line-strong: rgba(120,165,230,0.40);

  /* Type */
  --sans: "Sora", system-ui, sans-serif;
  --body: "IBM Plex Sans", system-ui, sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, monospace;

  --page-w: 920px;
  --page-h: 1240px;
}

*{ box-sizing:border-box; }

/* ---- Reusable: shield logo ---- */
.sentry-logo{ display:inline-flex; align-items:center; gap:14px; }
.sentry-logo .shield{ display:block; }
.sentry-logo .wm{ display:flex; flex-direction:column; gap:5px; }
.sentry-logo .wm .name{
  font-family:var(--sans); font-weight:700; letter-spacing:.14em;
  color:var(--ink); line-height:1; font-size:22px;
}
.sentry-logo .wm .sub{
  font-family:var(--body); font-weight:500; letter-spacing:.34em;
  color:var(--muted); font-size:9px; text-transform:uppercase;
  display:flex; align-items:center; gap:8px; white-space:nowrap;
}
.sentry-logo .wm .sub::before,
.sentry-logo .wm .sub::after{ content:""; height:1px; flex:1; background:var(--line-2); }
.sentry-logo.sm .wm .name{ font-size:16px; }
.sentry-logo.sm .wm .sub{ font-size:7.5px; }

/* accent text spans used throughout */
.t-blue{ color:var(--blue-br); }
.t-cyan{ color:var(--cyan); }
.t-green{ color:var(--green-br); }
.t-ink{ color:var(--ink); }
/* ============================================================
   SENTRY DIGITAL SERVICES — Website layer
   Responsive layout built on the brochure brand tokens.
   Reuses --* from brand.css and the visual vocabulary of
   booklet.css (panels, gradients, accent meaning). Nothing
   here redefines a brand token — layout only.
   ============================================================ */

html{ scroll-behavior:smooth; }
body{ background:var(--bg); color:var(--ink); font-family:var(--body); line-height:1.6;
  -webkit-font-smoothing:antialiased; overflow-x:hidden; }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }

/* page-wide ambient field */
.bgfield{ position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(60% 50% at 78% -8%, rgba(43,123,245,.12), transparent 60%),
    radial-gradient(55% 45% at 6% 12%, rgba(51,198,232,.07), transparent 60%),
    radial-gradient(60% 60% at 50% 120%, rgba(51,204,133,.07), transparent 60%); }
.bgfield::after{ content:""; position:absolute; inset:0; opacity:.4;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:54px 54px;
  -webkit-mask-image:radial-gradient(120% 80% at 50% 0%,#000 30%,transparent 80%);
  mask-image:radial-gradient(120% 80% at 50% 0%,#000 30%,transparent 80%); }

.wrap{ width:min(1180px, 100% - 48px); margin-inline:auto; }

/* ---------------- nav ---------------- */
.nav{ position:sticky; top:0; z-index:100; backdrop-filter:blur(16px);
  background:rgba(6,10,18,.72); border-bottom:1px solid var(--line); }
.nav .wrap{ display:flex; align-items:center; justify-content:space-between; gap:24px; height:70px; }
.nav .brand img{ height:30px; width:auto; }
.nav .links{ display:flex; align-items:center; gap:30px; }
.nav .links a{ font-family:var(--mono); font-size:11.5px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--muted); transition:.16s; }
.nav .links a:hover{ color:var(--ink); }
.nav .navcta{ font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:#ffffff; font-weight:700; background:linear-gradient(180deg,#2a66e6,#1742a6); border:1px solid rgba(150,185,255,.55);
  border-radius:9px; padding:11px 17px; box-shadow:0 8px 24px rgba(43,123,245,.32); transition:.16s; white-space:nowrap; }
.nav .navcta:hover{ transform:translateY(-1px); box-shadow:0 12px 30px rgba(43,123,245,.42); }
.nav .burger{ display:none; flex-direction:column; gap:5px; cursor:pointer; padding:6px; }
.nav .burger i{ width:22px; height:2px; background:var(--ink-soft); border-radius:2px; }

/* ---------------- shared section furniture ---------------- */
section{ position:relative; }
.sec{ padding:108px 0; }
.sec.tight{ padding:84px 0; }
.kick{ font-family:var(--mono); font-size:12px; letter-spacing:.28em; text-transform:uppercase;
  color:var(--blue-br); display:inline-flex; align-items:center; gap:11px; margin:0 0 18px; }
.kick::before{ content:""; width:26px; height:1px; background:currentColor; opacity:.7; }
.kick.g{ color:var(--green-br); } .kick.c{ color:var(--cyan); }
h1,h2,h3,h4{ font-family:var(--sans); margin:0; letter-spacing:-.01em; text-wrap:balance; }
.h-xl{ font-weight:800; font-size:clamp(38px, 5.6vw, 66px); line-height:1.02; }
.h-lg{ font-weight:700; font-size:clamp(30px, 4vw, 46px); line-height:1.06; }
.lead{ font-size:clamp(16px,1.5vw,18.5px); line-height:1.62; color:var(--ink-soft); max-width:62ch; }
.t-blue{ color:var(--blue-br); } .t-cyan{ color:var(--cyan); } .t-green{ color:var(--green-br); }

.btn{ display:inline-flex; align-items:center; gap:10px; font-family:var(--mono); font-size:11.5px;
  letter-spacing:.13em; text-transform:uppercase; padding:14px 22px; border-radius:10px; cursor:pointer;
  transition:.16s; border:1px solid transparent; }
.btn .ico{ width:15px; height:15px; }
.btn-primary{ color:#ffffff; font-weight:600; background:linear-gradient(180deg,#2a66e6,#1742a6);
  border-color:rgba(150,185,255,.55); box-shadow:0 10px 30px rgba(43,123,245,.34); }
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 16px 38px rgba(43,123,245,.46); }
.btn-ghost{ color:var(--ink-soft); background:rgba(255,255,255,.03); border-color:var(--line-2); }
.btn-ghost:hover{ border-color:var(--line-strong); color:var(--ink); }

/* ---------------- hero ---------------- */
.hero{ padding:62px 0 96px; }
.hero .wrap{ display:grid; grid-template-columns:1.04fr .96fr; gap:54px; align-items:center; }
.hero .tagline{ font-family:var(--mono); font-size:11px; letter-spacing:.34em; text-transform:uppercase;
  color:var(--muted); margin:0 0 26px; }
.hero h1{ font-weight:800; font-size:clamp(40px,5.4vw,62px); line-height:1.0; }
.hero h1 .l2{ color:var(--blue-br); } .hero h1 .l3{ color:var(--cyan); }
.hero p.lead{ margin:24px 0 0; }
.hero .cta{ display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; }
.hero .figure{ position:relative; }
.hero .figure img{ width:100%; border-radius:18px;
  -webkit-mask-image:radial-gradient(82% 82% at 50% 46%,#000 60%,transparent 100%);
  mask-image:radial-gradient(82% 82% at 50% 46%,#000 60%,transparent 100%); }
.hero .figure .cap{ position:absolute; left:50%; bottom:-6px; transform:translateX(-50%);
  font-family:var(--mono); font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted-2); white-space:nowrap; }
.hero .trust{ display:flex; flex-wrap:wrap; gap:10px 26px; margin-top:30px;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--muted-2); }
.hero .trust span{ display:inline-flex; align-items:center; gap:9px; }
.hero .trust i{ width:6px; height:6px; border-radius:50%; background:var(--green-br); box-shadow:0 0 8px var(--green-br); }

/* ---------------- problem band ---------------- */
.band{ border-block:1px solid var(--line); background:linear-gradient(180deg,var(--bg-1),var(--bg)); }
.problem .grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; margin-top:44px; }
.symptom{ perspective:1100px; min-height:152px; border:0; padding:0; background:none; cursor:pointer; }
.symptom:focus-visible{ outline:2px solid var(--cyan); outline-offset:3px; border-radius:14px; }
.sym-inner{ position:relative; width:100%; height:100%; min-height:152px; transition:transform .55s cubic-bezier(.4,.15,.2,1); transform-style:preserve-3d; }
@media (hover:hover) and (pointer:fine){ .symptom:hover .sym-inner{ transform:rotateY(180deg); } }
.symptom:focus-visible .sym-inner, .symptom.flipped .sym-inner{ transform:rotateY(180deg); }
@media (prefers-reduced-motion: reduce){ .sym-inner{ transition:none; } }
.sym-face{ position:absolute; inset:0; backface-visibility:hidden; -webkit-backface-visibility:hidden;
  border:1px solid var(--line-2); border-radius:13px; padding:20px;
  background:linear-gradient(180deg,var(--bg-2),var(--bg-1)); display:flex; flex-direction:column; justify-content:center; }
.sym-back{ transform:rotateY(180deg); border-color:rgba(51,198,232,.42); }
.symptom .si{ width:38px; height:38px; border-radius:10px; display:grid; place-items:center; color:var(--blue-br);
  border:1px solid var(--line-strong); background:rgba(43,123,245,.06); margin-bottom:13px; }
.symptom h3{ font-weight:600; font-size:15px; margin:0; }
.symptom p{ margin:0; font-size:13px; color:var(--muted); line-height:1.5; }

/* ---------------- services ---------------- */
.svc-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:14px; margin-top:44px; }
.svc{ --c:var(--blue-br); position:relative; border:1px solid var(--line-2); border-radius:14px;
  padding:22px 22px 24px; background:linear-gradient(180deg,var(--bg-2),var(--bg-1)); overflow:hidden;
  transition:.18s; }
.svc::after{ content:""; position:absolute; left:0; top:0; height:2px; width:48px;
  background:linear-gradient(90deg,var(--c),transparent); }
.svc:hover{ transform:translateY(-3px); border-color:color-mix(in srgb,var(--c) 40%,var(--line-2)); }
.svc.g{ --c:var(--green-br); } .svc.c{ --c:var(--cyan); }
.svc .top{ display:flex; align-items:center; gap:13px; margin-bottom:13px; }
.svc .sring{ width:42px; height:42px; border-radius:11px; display:grid; place-items:center; flex:0 0 auto;
  color:var(--c); border:1px solid color-mix(in srgb,var(--c) 38%,var(--line-strong));
  background:color-mix(in srgb,var(--c) 8%,transparent); }
.svc .num{ margin-left:auto; font-family:var(--mono); font-size:12px; letter-spacing:.08em; color:color-mix(in srgb,var(--c) 80%,var(--muted)); }
.svc h3{ font-weight:600; font-size:16px; margin:0 0 7px; line-height:1.2; }
.svc p{ margin:0; font-size:13px; line-height:1.55; color:var(--muted); }
.svc-foot{ display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:0; margin-top:18px;
  border:1px solid var(--line-2); border-radius:13px; overflow:hidden;
  background:linear-gradient(180deg,var(--bg-2),var(--bg-1)); }
.svc-foot .cell{ padding:20px 22px; border-right:1px solid var(--line); display:flex; align-items:center; gap:11px;
  font-family:var(--sans); font-weight:600; font-size:14px; letter-spacing:.02em; text-transform:uppercase; }
.svc-foot .cell:last-child{ border-right:none; }

/* ---------------- approach ---------------- */
.steps{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:14px; margin-top:44px; }
.pstep{ --c:var(--blue-br); border:1px solid var(--line-2); border-top:3px solid var(--c); border-radius:13px;
  padding:24px 22px; background:linear-gradient(180deg,var(--bg-2),var(--bg-1)); }
.pstep.c{ --c:var(--cyan); } .pstep.g{ --c:var(--green-br); }
.pstep .n{ font-family:var(--mono); font-size:13px; letter-spacing:.1em; color:var(--c); }
.pstep h3{ font-weight:700; font-size:19px; margin:12px 0 9px; }
.pstep p{ margin:0; font-size:13.5px; line-height:1.55; color:var(--muted); }
.modes{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:14px; margin-top:16px; }
.mode{ border:1px solid var(--line-2); border-radius:13px; padding:24px 22px;
  background:linear-gradient(180deg,var(--bg-2),var(--bg-1)); }
.mode.feat{ border-color:rgba(51,204,133,.4); box-shadow:0 0 0 1px rgba(51,204,133,.12),0 18px 44px rgba(0,0,0,.4); }
.mode .mi{ width:44px; height:44px; border-radius:11px; display:grid; place-items:center; color:var(--blue-br);
  border:1px solid var(--line-strong); background:rgba(43,123,245,.06); margin-bottom:15px; }
.mode.feat .mi{ color:var(--green-br); border-color:rgba(51,204,133,.4); background:rgba(51,204,133,.07); }
.mode h3{ font-weight:600; font-size:18px; margin:0 0 8px; }
.mode p{ margin:0; font-size:13.5px; line-height:1.55; color:var(--muted); }
.freebar{ margin-top:18px; border:1px solid rgba(86,227,166,.3); border-radius:13px; padding:18px 24px;
  background:linear-gradient(90deg,rgba(86,227,166,.07),transparent 70%); display:flex; align-items:center; gap:16px;
  font-size:14.5px; line-height:1.5; color:var(--ink-soft); }
.freebar .fi{ color:var(--green-br); flex:0 0 auto; }
.freebar b{ color:var(--ink); }

/* ---------------- why sentry: comparison ---------------- */
.cmp{ border:1px solid var(--line-2); border-radius:14px; overflow:hidden; margin-top:44px; }
.cmp .row{ display:grid; grid-template-columns:1fr 1.28fr 1fr; }
.cmp .head{ background:rgba(43,123,245,.07); border-bottom:1px solid var(--line-2); }
.cmp .head > div{ padding:16px 22px; font-family:var(--mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase; }
.cmp .head .c1{ color:var(--muted); } .cmp .head .c3{ color:var(--green-br); }
.cmp .head .c2{ background:rgba(51,204,133,.16); color:var(--green-br); font-weight:600;
  display:flex; align-items:center; gap:9px; }
.cmp .head .c2::after{ content:"← this is us"; font-family:var(--mono); font-size:9px; letter-spacing:.1em; opacity:.8; margin-left:auto; }
.cmp .body .row{ border-top:1px solid var(--line); }
.cmp .body > .row > div{ padding:15px 22px; font-size:14px; line-height:1.5; }
.cmp .c1{ color:var(--muted-2); }
.cmp .c2{ color:var(--ink); font-weight:600; background:rgba(51,204,133,.06);
  border-inline:1px solid rgba(51,204,133,.34); }
.cmp .c3{ color:var(--ink-soft); }
.stats{ display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:0; margin-top:16px;
  border:1px solid var(--line-2); border-radius:14px; overflow:hidden;
  background:linear-gradient(180deg,var(--bg-2),var(--bg-1)); }
.stats .stat{ padding:24px 24px; border-right:1px solid var(--line); }
.stats .stat:last-child{ border-right:none; }
.stats .stat .n{ font-family:var(--sans); font-weight:800; font-size:clamp(30px,3.4vw,40px); color:var(--ink); letter-spacing:-.02em; }
.stats .stat .n em{ color:var(--blue-br); font-style:normal; }
.stats .stat .l{ font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-top:6px; }

/* ---------------- pricing ---------------- */
.price{ display:grid; grid-template-columns:340px 1fr; gap:30px; align-items:center; margin-top:44px; }
.pcard{ border:1px solid rgba(70,212,242,.42); border-radius:18px; padding:34px 30px; text-align:center;
  background:linear-gradient(180deg,rgba(70,212,242,.10),var(--bg-2)); box-shadow:0 0 60px rgba(70,212,242,.14); }
.pcard .from{ font-family:var(--mono); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--cyan); }
.pcard .amt{ font-family:var(--sans); font-weight:800; font-size:clamp(48px,6vw,62px); line-height:1; letter-spacing:-.02em; margin:12px 0 4px; }
.pcard .amt small{ font-size:20px; font-weight:600; color:var(--muted); letter-spacing:0; }
.pcard .sub{ font-size:13px; color:var(--muted); margin-top:10px; }
.pincl{ display:flex; flex-wrap:wrap; gap:11px 26px; margin-top:18px; }
.pincl span{ display:inline-flex; align-items:center; gap:10px; font-size:14px; color:var(--ink-soft); }
.pincl .ico{ color:var(--green-br); flex:0 0 auto; }
.tiers{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; margin-top:28px; }
.tier{ --c:var(--blue-br); border:1px solid var(--line-2); border-top:3px solid var(--c); border-radius:13px;
  padding:22px 22px; background:linear-gradient(180deg,var(--bg-2),var(--bg-1)); }
.tier.c{ --c:var(--cyan); } .tier.g{ --c:var(--green-br); }
.tier .pl{ font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--c); }
.tier .pct{ font-family:var(--sans); font-weight:800; font-size:34px; margin:10px 0 2px; letter-spacing:-.01em; }
.tier .pof{ font-family:var(--mono); font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted-2); }
.tier p{ margin:11px 0 0; font-size:13px; line-height:1.5; color:var(--muted); }

/* ---------------- contact / cta ---------------- */
.cta-final{ position:relative; overflow:hidden; border-top:1px solid var(--line); }
.cta-final .glowc{ position:absolute; border-radius:50%; filter:blur(90px); z-index:0; pointer-events:none; }
.cta-final .wrap{ position:relative; z-index:1; }
.cta-final h2{ font-weight:800; font-size:clamp(34px,5vw,56px); line-height:1.04; text-transform:uppercase; }
.contacts{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:6px 40px; margin-top:36px; }
.cline{ display:flex; align-items:center; gap:16px; padding:16px 0; border-bottom:1px solid var(--line); }
.cline .ci{ width:44px; height:44px; border-radius:11px; display:grid; place-items:center; color:var(--blue-br);
  border:1px solid var(--line-strong); background:rgba(43,123,245,.06); flex:0 0 auto; }
.cline .cl{ font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.cline .cv{ font-family:var(--sans); font-weight:600; font-size:17px; color:var(--ink); margin-top:3px; }

/* Footer styling lives in Footer.astro (scoped grid layout). The old global
   flex-row rules were removed — they out-specified the scoped grid and collapsed
   the footer link tap targets (a11y target-size). */

/* ---------------- reveal on scroll ---------------- */
@media (prefers-reduced-motion: no-preference){
  .reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
  .reveal.in{ opacity:1; transform:none; }
  /* LCP fix: above-the-fold content must paint immediately, not wait for JS to add .in.
     Hero/first-screen reveals render visible; scroll-reveal stays for below-the-fold. */
  .hero .reveal, .hero.reveal, .reveal.above-fold,
  .article .reveal, .article.reveal, .bp-article .reveal, .article-hero { opacity:1; transform:none; transition:none; }
}

/* ---------------- responsive ---------------- */
@media (max-width:920px){
  .hero .wrap{ grid-template-columns:1fr; gap:40px; }
  .hero .figure{ order:-1; }
  .price{ grid-template-columns:1fr; }
  .cmp .row{ grid-template-columns:1fr; }
  .cmp .head{ display:none; }
  .cmp .body > .row > div{ border-top:1px solid var(--line); }
  .cmp .body > .row > div::before{ content:attr(data-l); display:block; font-family:var(--mono); font-size:9px;
    letter-spacing:.14em; text-transform:uppercase; color:var(--muted-2); margin-bottom:5px; }
  .cmp .c2{ border-inline:none; }
}
@media (max-width:760px){
  .sec{ padding:74px 0; }
  .nav .links{ position:fixed; inset:70px 0 auto 0; flex-direction:column; align-items:flex-start; gap:0;
    background:rgba(8,12,22,.98); border-bottom:1px solid var(--line); padding:8px 24px 18px;
    transform:translateY(-130%); transition:transform .28s ease; }
  .nav .links.open{ transform:none; }
  .nav .links a{ padding:14px 0; width:100%; border-bottom:1px solid var(--line); font-size:13px; }
  .nav .links .navcta{ margin-top:14px; }
  .nav .burger{ display:flex; }
}

/* Warning-signs grid — a cyan "intelligence" highlight that travels box to box */
.problem .sym-front::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: linear-gradient(180deg, rgba(51,198,232,0.14), rgba(51,198,232,0.035));
  box-shadow: inset 0 0 0 1px rgba(51,198,232,0.55);
  opacity: 0;
}
@media (prefers-reduced-motion: no-preference) {
  .problem .sym-front::after { animation: symScan 9s ease-in-out infinite; animation-delay: calc(var(--i, 0) * 0.9s); }
}
@keyframes symScan { 0% { opacity: 0; } 4% { opacity: 1; } 9% { opacity: 1; } 13% { opacity: 0; } 100% { opacity: 0; } }

/* Service "Why this matters" — functional / value-stream / inverted cost-of-inaction */
.why-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 26px; }
.why-card { border: 1px solid var(--line-2); border-top: 2px solid var(--line-strong); border-radius: 14px; padding: 20px; background: linear-gradient(180deg, var(--bg-2), var(--bg-1)); }
.why-card .why-k { display: inline-flex; align-items: center; gap: 7px; font-family: var(--mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted-2); margin-bottom: 12px; }
.why-card p { font-size: 13.5px; line-height: 1.62; color: var(--ink-soft); margin: 0; }
.why-card.b { border-top-color: #2B7BF5; } .why-card.b .why-k { color: #4F9BFF; } .why-card.b .why-k svg { color: #4F9BFF; }
.why-card.c { border-top-color: #33C6E8; } .why-card.c .why-k { color: #33C6E8; } .why-card.c .why-k svg { color: #33C6E8; }
.why-card.warn { border-top-color: #F2555A; background: linear-gradient(180deg, rgba(242,85,90,0.06), var(--bg-1)); } .why-card.warn .why-k { color: #F2555A; } .why-card.warn .why-k svg { color: #F2555A; }
@media (max-width: 820px) { .why-grid { grid-template-columns: 1fr; } }

/* Reusable sequential "story" sweep — a cyan highlight travels box to box to guide the eye.
   Add class "sweep" to any grid; children auto-index and light in order. */
.sweep > * { position: relative; }
.sweep > *:nth-child(1){--i:0}.sweep > *:nth-child(2){--i:1}.sweep > *:nth-child(3){--i:2}.sweep > *:nth-child(4){--i:3}
.sweep > *:nth-child(5){--i:4}.sweep > *:nth-child(6){--i:5}.sweep > *:nth-child(7){--i:6}.sweep > *:nth-child(8){--i:7}
.sweep > *:nth-child(9){--i:8}.sweep > *:nth-child(10){--i:9}.sweep > *:nth-child(11){--i:10}.sweep > *:nth-child(12){--i:11}.sweep > *:nth-child(13){--i:12}.sweep > *:nth-child(14){--i:13}.sweep > *:nth-child(15){--i:14}.sweep > *:nth-child(16){--i:15}.sweep > *:nth-child(17){--i:16}.sweep > *:nth-child(18){--i:17}
@media (prefers-reduced-motion: no-preference) {
  .sweep > * { animation: sweepGlow 7.2s ease-in-out infinite; animation-delay: calc(var(--i, 0) * 0.8s); }
}
@keyframes sweepGlow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(51,198,232,0), inset 0 0 0 0 rgba(51,198,232,0); }
  4%, 9% { box-shadow: 0 16px 44px -16px rgba(51,198,232,0.5), inset 0 0 0 1px rgba(51,198,232,0.55); }
  13% { box-shadow: 0 0 0 0 rgba(51,198,232,0), inset 0 0 0 0 rgba(51,198,232,0); }
}

/* Homepage services grid — reserve two title lines so descriptions align across the row */
.svc-services .svc h3 { min-height: 42px; }

/* Maturity guided tour — shade each level box, then each issue/benefit chip inside it, level by level. */
.chip-sweep > *:nth-child(1){--j:0}.chip-sweep > *:nth-child(2){--j:1}.chip-sweep > *:nth-child(3){--j:2}.chip-sweep > *:nth-child(4){--j:3}
@media (prefers-reduced-motion: no-preference) {
  .level-tour .matrow { animation: tourGlow 15s ease-in-out infinite; animation-delay: calc(var(--i, 0) * 3s); }
  .level-tour .matrow-chips > * { animation: tourGlow 15s ease-in-out infinite; animation-delay: calc((var(--i, 0) * 4 + var(--j, 0) + 1) * 0.75s); }
}
@keyframes tourGlow {
  0%, 100% { box-shadow: inset 0 0 0 0 transparent, 0 0 0 0 transparent; }
  1%, 5% { box-shadow: inset 0 0 0 1px var(--mc), 0 0 34px -6px var(--mc); }
  7% { box-shadow: inset 0 0 0 0 transparent, 0 0 0 0 transparent; }
}

/* Resources — listings, cards, article hero, case-study grid */
.res-filters { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px; align-items: center; }
.res-filters select { background: var(--bg-2); color: var(--ink-soft); border: 1px solid var(--line-2); border-radius: 9px; padding: 9px 12px; font-family: var(--mono); font-size: 12px; }
.res-filters .btn { padding: 9px 14px; }
.res-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; margin-top: 22px; }
.res-card { display: flex; flex-direction: column; border: 1px solid var(--line-2); border-radius: 15px; overflow: hidden; background: linear-gradient(180deg, var(--bg-2), var(--bg-1)); text-decoration: none; color: inherit; transition: .16s; }
.res-card:hover { transform: translateY(-3px); border-color: var(--line-strong); }
.res-img { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: #0a1020; }
.res-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.res-b { display: block; padding: 18px 18px 20px; }
.res-meta { font-family: var(--mono); font-size: 11px; letter-spacing: .06em; color: var(--muted-2); text-transform: uppercase; }
.res-card h3 { font-size: 17px; line-height: 1.25; margin: 8px 0; }
.res-card p { font-size: 13px; line-height: 1.55; color: var(--muted); margin: 0 0 12px; }
.res-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.rtag { font-family: var(--mono); font-size: 9.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-soft); border: 1px solid var(--line-2); border-radius: 6px; padding: 4px 8px; }
.rtag.c { color: #33C6E8; border-color: color-mix(in srgb, #33C6E8 40%, var(--line-2)); }
.article-hero { width: 100%; height: auto; border-radius: 16px; margin: 22px 0 6px; border: 1px solid var(--line-2); }
.cs-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 24px; }
.cs-card { border: 1px solid var(--line-2); border-top: 2px solid var(--line-strong); border-radius: 14px; padding: 18px; background: linear-gradient(180deg, var(--bg-2), var(--bg-1)); }
.cs-card .cs-k { font-family: var(--mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted-2); display: block; margin-bottom: 8px; }
.cs-card p { font-size: 13.5px; line-height: 1.6; color: var(--ink-soft); margin: 0; }
.cs-card.warn { border-top-color: #F2555A; } .cs-card.warn .cs-k { color: #F2555A; }
.cs-card.c { border-top-color: #33C6E8; } .cs-card.c .cs-k { color: #33C6E8; }
.cs-card.g { border-top-color: #33CC85; } .cs-card.g .cs-k { color: #33CC85; }
@media (max-width: 720px) { .cs-grid { grid-template-columns: 1fr; } }

/* Light-orange sweep for the Services mega-menu footer (All Services · Blueprints · Technology).
   Indices continue from the 4 cyan category columns above (--i 4,5,6) so the walk-through is one
   continuous top-to-bottom motion, synced to the same 7.2s cycle as .sweep. */
.sweep-amber > * { position: relative; }
.sweep-amber > *:nth-child(1){--i:4}.sweep-amber > *:nth-child(2){--i:5}.sweep-amber > *:nth-child(3){--i:6}
@media (prefers-reduced-motion: no-preference) {
  .sweep-amber > * { animation: sweepAmber 7.2s ease-in-out infinite; animation-delay: calc(var(--i, 0) * 0.8s); }
}
@keyframes sweepAmber {
  0%, 100% { box-shadow: 0 0 0 0 rgba(244,162,89,0), inset 0 0 0 0 rgba(244,162,89,0); }
  4%, 9% { box-shadow: 0 14px 40px -16px rgba(244,162,89,0.5), inset 0 0 0 1px rgba(244,162,89,0.6); }
  13% { box-shadow: 0 0 0 0 rgba(244,162,89,0), inset 0 0 0 0 rgba(244,162,89,0); }
}

/* Per-service Capability Maturity rank (1-5), mapped to the maturity model palette */
.cm-bar { display: grid; grid-template-columns: repeat(5, minmax(0, 74px)); gap: 7px; margin-top: 10px; }
.cm-seg { height: 30px; border-radius: 8px; background: var(--bg-2); border: 1px solid var(--line-2); display: grid; place-items: center; font-family: var(--mono); font-size: 12px; color: var(--muted-2); }
.cm-seg.l1.on { background: rgba(242,85,90,.16); border-color: #F2555A; color: #F2555A; }
.cm-seg.l2.on { background: rgba(232,162,61,.16); border-color: #E8A23D; color: #E8A23D; }
.cm-seg.l3.on { background: rgba(43,123,245,.16); border-color: #2B7BF5; color: #4F9BFF; }
.cm-seg.l4.on { background: rgba(51,198,232,.16); border-color: #33C6E8; color: #33C6E8; }
.cm-seg.l5.on { background: rgba(51,204,133,.18); border-color: #33CC85; color: #56E3A6; }
.cm-seg.now { box-shadow: inset 0 0 0 1px currentColor, 0 8px 22px -10px currentColor; font-weight: 700; }

/* Growth Engine — grouped stack (by capability) + separated business-specific platforms */
.eng-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; margin-top: 14px; }
.eng-group { border: 1px solid var(--line-2); border-radius: 14px; padding: 16px 16px 18px; background: linear-gradient(180deg, var(--bg-2), var(--bg-1)); }
.eng-group h3 { font-family: var(--mono); font-weight: 500; font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--cyan); margin: 0 0 12px; }

/* Capability Maturity — bigger bar, walking pulse 1->5, per-level labels revealed only on pulse */
.cm-bar { grid-template-columns: repeat(5, minmax(0, 118px)); gap: 9px; }
.cm-seg { height: 46px; font-size: 16px; transform-origin: center; }
.cm-lab { position: relative; height: 24px; margin-top: 12px; }
.cm-lv { position: absolute; left: 0; top: 0; opacity: 0; font-size: 13.5px; color: var(--ink-soft); }
@media (prefers-reduced-motion: no-preference) {
  .cap-walk .cm-seg { animation: cmPulse 13s ease-in-out infinite; animation-delay: calc(var(--p, 0) * 2.6s); }
  .cap-walk .cm-lv { animation: cmLab 13s ease-in-out infinite; animation-delay: calc(var(--p, 0) * 2.6s); }
}
@keyframes cmPulse {
  0%, 19%, 100% { transform: scale(1); box-shadow: none; }
  3%, 15% { transform: scale(1.08); box-shadow: 0 0 0 1px currentColor, 0 12px 30px -8px currentColor; }
}
@keyframes cmLab {
  0% { opacity: 0; transform: translateY(5px); }
  3% { opacity: 1; transform: none; }
  15% { opacity: 1; }
  19%, 100% { opacity: 0; }
}

/* Homepage hero badge — entry point to the Growth Engine service */
.hero-badge { display: inline-flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: #33C6E8; border: 1px solid color-mix(in srgb, #33C6E8 40%, var(--line-2)); background: rgba(51,198,232,.06); border-radius: 999px; padding: 7px 14px; text-decoration: none; margin-bottom: 16px; transition: .16s; }
.hero-badge:hover { background: rgba(51,198,232,.12); border-color: #33C6E8; transform: translateY(-1px); }

/* Migrations — from → to logo rows */
.mig-logos { display: flex; align-items: center; gap: 7px; margin-top: 12px; flex-wrap: wrap; }
.mig-logos img { width: 18px; height: 18px; opacity: .9; }
.mig-arrow { color: var(--muted-2); font-family: var(--mono); margin: 0 3px; }

/* Homepage featured-post headline link */
.feat-post { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; border: 1px solid var(--line-2); border-radius: 14px; padding: 14px 18px; background: linear-gradient(180deg, rgba(51,198,232,.06), var(--bg-1)); text-decoration: none; color: inherit; transition: .16s; }
.feat-post:hover { border-color: color-mix(in srgb, #33C6E8 45%, var(--line-2)); transform: translateY(-1px); }
.feat-post .fp-tag { font-family: var(--mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: #33C6E8; border: 1px solid color-mix(in srgb, #33C6E8 40%, var(--line-2)); border-radius: 6px; padding: 3px 8px; white-space: nowrap; }

/* ---------------- article / editorial typography ---------------- */
.article { max-width: 768px; margin-inline: auto; }
.prose { font-size: 17px; line-height: 1.78; color: var(--ink-soft); }
.prose > * + * { margin-top: 1.15em; }
.prose > p:first-of-type { font-size: 19.5px; line-height: 1.7; color: var(--ink); }
.prose h2 { font-family: var(--sans); font-weight: 700; font-size: clamp(22px, 3vw, 28px); line-height: 1.22; letter-spacing: -0.01em; color: var(--ink); margin: 1.9em 0 0; padding-top: 1.1em; border-top: 1px solid var(--line); }
.prose h2:first-child { border-top: 0; padding-top: 0; margin-top: 0; }
.prose h3 { font-weight: 600; font-size: clamp(18px, 2.3vw, 21px); line-height: 1.3; color: var(--ink); margin: 1.6em 0 0; }
.prose h2 + *, .prose h3 + * { margin-top: 0.6em; }
.prose p { color: var(--ink-soft); }
.prose strong, .prose b { color: var(--ink); font-weight: 600; }
.prose em { color: var(--ink-soft); }
.prose a { color: var(--blue-br); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; transition: color 0.15s; }
.prose a:hover { color: var(--cyan); }
.prose ul, .prose ol { padding-left: 1.3em; }
.prose li { margin-bottom: 0.55em; line-height: 1.7; }
.prose li::marker { color: var(--blue-br); }
.prose li > ul, .prose li > ol { margin-top: 0.5em; }
.prose blockquote { margin: 1.7em 0; padding: 6px 0 6px 22px; border-left: 3px solid var(--blue-br); color: var(--ink); font-size: 18.5px; font-style: italic; }
.prose blockquote p { color: var(--ink); }
.prose code { font-family: var(--mono); font-size: 0.86em; background: var(--bg-2); border: 1px solid var(--line-2); border-radius: 5px; padding: 2px 6px; color: var(--cyan); }
.prose pre { background: var(--bg-2); border: 1px solid var(--line-2); border-radius: 12px; padding: 18px 20px; overflow-x: auto; margin: 1.5em 0; }
.prose pre code { background: none; border: 0; padding: 0; color: var(--ink-soft); font-size: 13.5px; line-height: 1.6; }
.prose img { width: 100%; border-radius: 12px; border: 1px solid var(--line-2); margin: 1.6em 0; }
.prose hr { border: 0; border-top: 1px solid var(--line); margin: 2.4em 0; }
.prose table { width: 100%; border-collapse: collapse; margin: 1.5em 0; font-size: 14.5px; }
.prose th, .prose td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--line-2); }
.prose th { font-family: var(--mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--cyan); }
.prose { margin-top: 26px; }
/* sora-latin-ext-400-normal */
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/_astro/sora-latin-ext-400-normal.Twk1CgKs.woff2) format('woff2'), url(/_astro/sora-latin-ext-400-normal.BmhJC382.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* sora-latin-400-normal */
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/_astro/sora-latin-400-normal.CRt88UEn.woff2) format('woff2'), url(/_astro/sora-latin-400-normal.OW7qkl5a.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* sora-latin-ext-600-normal */
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/_astro/sora-latin-ext-600-normal.Cue1zdhl.woff2) format('woff2'), url(/_astro/sora-latin-ext-600-normal.DLOJK0Ta.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* sora-latin-600-normal */
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/_astro/sora-latin-600-normal.Cdg4DaK0.woff2) format('woff2'), url(/_astro/sora-latin-600-normal.1_7fyUAY.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* sora-latin-ext-700-normal */
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/_astro/sora-latin-ext-700-normal.DM0oy5s8.woff2) format('woff2'), url(/_astro/sora-latin-ext-700-normal.Oc7uZIYt.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* sora-latin-700-normal */
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/_astro/sora-latin-700-normal.9waGdLWo.woff2) format('woff2'), url(/_astro/sora-latin-700-normal.BKPfQAnC.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* sora-latin-ext-800-normal */
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-display: swap;
  font-weight: 800;
  src: url(/_astro/sora-latin-ext-800-normal.YDFYE6t9.woff2) format('woff2'), url(/_astro/sora-latin-ext-800-normal.BvAfeed7.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* sora-latin-800-normal */
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-display: swap;
  font-weight: 800;
  src: url(/_astro/sora-latin-800-normal.2tKLL3qT.woff2) format('woff2'), url(/_astro/sora-latin-800-normal.c3Huklug.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* ibm-plex-sans-cyrillic-ext-400-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/_astro/ibm-plex-sans-cyrillic-ext-400-normal.g30qAdWV.woff2) format('woff2'), url(/_astro/ibm-plex-sans-cyrillic-ext-400-normal.Dsrv2Tcn.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

/* ibm-plex-sans-cyrillic-400-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/_astro/ibm-plex-sans-cyrillic-400-normal.DZqxrq2p.woff2) format('woff2'), url(/_astro/ibm-plex-sans-cyrillic-400-normal.BTotfTJu.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

/* ibm-plex-sans-greek-400-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/_astro/ibm-plex-sans-greek-400-normal._efipK4i.woff2) format('woff2'), url(/_astro/ibm-plex-sans-greek-400-normal.D9ESIMu3.woff) format('woff');
  unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;
}

/* ibm-plex-sans-vietnamese-400-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/_astro/ibm-plex-sans-vietnamese-400-normal.DG4YqDda.woff2) format('woff2'), url(/_astro/ibm-plex-sans-vietnamese-400-normal.fK1oJ5dG.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* ibm-plex-sans-latin-ext-400-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/_astro/ibm-plex-sans-latin-ext-400-normal.C5H60-Va.woff2) format('woff2'), url(/_astro/ibm-plex-sans-latin-ext-400-normal.RBey6euL.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ibm-plex-sans-latin-400-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2) format('woff2'), url(/_astro/ibm-plex-sans-latin-400-normal.CYLoc0-x.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* ibm-plex-sans-cyrillic-ext-500-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/_astro/ibm-plex-sans-cyrillic-ext-500-normal.Cs5J6C77.woff2) format('woff2'), url(/_astro/ibm-plex-sans-cyrillic-ext-500-normal.DB5PtV2g.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

/* ibm-plex-sans-cyrillic-500-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/_astro/ibm-plex-sans-cyrillic-500-normal.CocWQlwt.woff2) format('woff2'), url(/_astro/ibm-plex-sans-cyrillic-500-normal.ByOcLdNv.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

/* ibm-plex-sans-greek-500-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/_astro/ibm-plex-sans-greek-500-normal.JMMifIXV.woff2) format('woff2'), url(/_astro/ibm-plex-sans-greek-500-normal.CuWXN6rf.woff) format('woff');
  unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;
}

/* ibm-plex-sans-vietnamese-500-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/_astro/ibm-plex-sans-vietnamese-500-normal.e4dixQRQ.woff2) format('woff2'), url(/_astro/ibm-plex-sans-vietnamese-500-normal.BEb3_waV.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* ibm-plex-sans-latin-ext-500-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/_astro/ibm-plex-sans-latin-ext-500-normal.DakdToA3.woff2) format('woff2'), url(/_astro/ibm-plex-sans-latin-ext-500-normal.D0aIdm-b.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ibm-plex-sans-latin-500-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/_astro/ibm-plex-sans-latin-500-normal.6ng42L7E.woff2) format('woff2'), url(/_astro/ibm-plex-sans-latin-500-normal.BgVn5rGT.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* ibm-plex-sans-cyrillic-ext-600-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/_astro/ibm-plex-sans-cyrillic-ext-600-normal.DUMzJB7m.woff2) format('woff2'), url(/_astro/ibm-plex-sans-cyrillic-ext-600-normal.Bz0x94Yp.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

/* ibm-plex-sans-cyrillic-600-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/_astro/ibm-plex-sans-cyrillic-600-normal.71GNu3SW.woff2) format('woff2'), url(/_astro/ibm-plex-sans-cyrillic-600-normal.BGq0mW3O.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

/* ibm-plex-sans-greek-600-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/_astro/ibm-plex-sans-greek-600-normal.DzTrcv_p.woff2) format('woff2'), url(/_astro/ibm-plex-sans-greek-600-normal.D-CqTdkO.woff) format('woff');
  unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;
}

/* ibm-plex-sans-vietnamese-600-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/_astro/ibm-plex-sans-vietnamese-600-normal.DpPYBSTl.woff2) format('woff2'), url(/_astro/ibm-plex-sans-vietnamese-600-normal.DgdngZtN.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* ibm-plex-sans-latin-ext-600-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/_astro/ibm-plex-sans-latin-ext-600-normal.DOrvGEcy.woff2) format('woff2'), url(/_astro/ibm-plex-sans-latin-ext-600-normal.DIrixKbi.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ibm-plex-sans-latin-600-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/_astro/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2) format('woff2'), url(/_astro/ibm-plex-sans-latin-600-normal.Cu4Hd6ag.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* ibm-plex-mono-cyrillic-ext-400-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2) format('woff2'), url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

/* ibm-plex-mono-cyrillic-400-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/_astro/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2) format('woff2'), url(/_astro/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

/* ibm-plex-mono-vietnamese-400-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/_astro/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2) format('woff2'), url(/_astro/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* ibm-plex-mono-latin-ext-400-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2) format('woff2'), url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ibm-plex-mono-latin-400-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2) format('woff2'), url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* ibm-plex-mono-cyrillic-ext-500-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BqneJy0T.woff2) format('woff2'), url(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BIfNGwUT.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

/* ibm-plex-mono-cyrillic-500-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/_astro/ibm-plex-mono-cyrillic-500-normal.Bq9vWWag.woff2) format('woff2'), url(/_astro/ibm-plex-mono-cyrillic-500-normal.Ael50iVv.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

/* ibm-plex-mono-vietnamese-500-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/_astro/ibm-plex-mono-vietnamese-500-normal.DZ4AoWbu.woff2) format('woff2'), url(/_astro/ibm-plex-mono-vietnamese-500-normal.C8zxqsMH.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* ibm-plex-mono-latin-ext-500-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/_astro/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2) format('woff2'), url(/_astro/ibm-plex-mono-latin-ext-500-normal.CZ70TYgx.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ibm-plex-mono-latin-500-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2) format('woff2'), url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}.nav[data-astro-cid-dmqpwcec] .brand[data-astro-cid-dmqpwcec]{display:inline-flex;align-items:center}.nav[data-astro-cid-dmqpwcec] .brand[data-astro-cid-dmqpwcec] .brandlogo[data-astro-cid-dmqpwcec]{height:42px;width:auto;display:block;mix-blend-mode:screen}.navgroup[data-astro-cid-dmqpwcec]{position:relative;display:inline-flex}.nav[data-astro-cid-dmqpwcec] .links[data-astro-cid-dmqpwcec] .navtop[data-astro-cid-dmqpwcec]{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--muted);transition:color 0.16s}.nav[data-astro-cid-dmqpwcec] .links[data-astro-cid-dmqpwcec] .navtop[data-astro-cid-dmqpwcec]:hover{color:var(--ink)}.navgroup[data-astro-cid-dmqpwcec] .chev[data-astro-cid-dmqpwcec]{opacity:0.7;transition:transform 0.18s}.navgroup[data-astro-cid-dmqpwcec]:hover .chev[data-astro-cid-dmqpwcec],.navgroup[data-astro-cid-dmqpwcec]:focus-within .chev[data-astro-cid-dmqpwcec]{transform:rotate(180deg)}.dropdown[data-astro-cid-dmqpwcec]{position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(8px);min-width:272px;padding:10px;border-radius:14px;background:rgba(10,16,32,0.97);border:1px solid var(--line-2);box-shadow:0 24px 60px rgba(0,0,0,0.5);backdrop-filter:blur(16px);display:flex;flex-direction:column;gap:2px;opacity:0;visibility:hidden;transition:opacity 0.18s,transform 0.18s;z-index:200}.dropdown[data-astro-cid-dmqpwcec]::before{content:"";position:absolute;bottom:100%;left:0;right:0;height:16px}.navgroup[data-astro-cid-dmqpwcec]:hover .dropdown[data-astro-cid-dmqpwcec],.navgroup[data-astro-cid-dmqpwcec]:focus-within .dropdown[data-astro-cid-dmqpwcec]{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}.dropdown[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec]{display:flex;flex-direction:column;gap:3px;padding:11px 13px;border-radius:10px;transition:background 0.14s;text-transform:none;letter-spacing:normal}.dropdown[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec]:hover{background:rgba(43,123,245,0.1)}.dropdown[data-astro-cid-dmqpwcec] .dl[data-astro-cid-dmqpwcec]{font-family:var(--sans);font-weight:600;font-size:14px;color:var(--ink)}.dropdown[data-astro-cid-dmqpwcec] .dd[data-astro-cid-dmqpwcec]{font-size:12px;color:var(--muted)}.nav[data-astro-cid-dmqpwcec] .links[data-astro-cid-dmqpwcec] .navtop[data-astro-cid-dmqpwcec].active{color:var(--ink)}.dropdown[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec].active,.mega-svc[data-astro-cid-dmqpwcec].active{background:rgba(43,123,245,0.16);box-shadow:inset 2px 0 0 var(--blue-br)}.dropdown[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec].active .dl[data-astro-cid-dmqpwcec],.mega-svc[data-astro-cid-dmqpwcec].active{color:var(--ink)}.dropdown[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec].active .dd[data-astro-cid-dmqpwcec]{color:var(--ink-soft)}.dropdown[data-astro-cid-dmqpwcec].mega{min-width:520px}.mega-h[data-astro-cid-dmqpwcec]{font-family:var(--mono);font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:var(--cyan);margin:4px 8px 8px}.dropdown[data-astro-cid-dmqpwcec].mega{min-width:min(680px,92vw)}.mega-grid[data-astro-cid-dmqpwcec]{display:grid;grid-template-columns:repeat(4,minmax(146px,1fr));gap:10px}.mega-col[data-astro-cid-dmqpwcec]{display:flex;flex-direction:column;gap:1px}.mega-cat[data-astro-cid-dmqpwcec]{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);padding:2px 13px 7px}.mega-svc[data-astro-cid-dmqpwcec]{font-family:var(--sans);font-weight:600;font-size:13.5px;color:var(--ink-soft);padding:9px 13px;border-radius:9px}.mega-svc[data-astro-cid-dmqpwcec]:hover{background:rgba(43,123,245,0.1);color:var(--ink)}.mega-extra[data-astro-cid-dmqpwcec]{display:grid;grid-template-columns:1fr 1fr 1fr;gap:2px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}@media (max-width: 860px){.nav[data-astro-cid-dmqpwcec] .brand[data-astro-cid-dmqpwcec] .brandlogo[data-astro-cid-dmqpwcec]{height:36px}.nav[data-astro-cid-dmqpwcec] .links[data-astro-cid-dmqpwcec]{position:fixed;inset:70px 0 auto 0;flex-direction:column;align-items:stretch;gap:0;background:rgba(8,12,22,0.99);border-bottom:1px solid var(--line);padding:10px 24px 22px;transform:translateY(-130%);transition:transform 0.28s ease;max-height:calc(100dvh - 70px);overflow-y:auto}.nav[data-astro-cid-dmqpwcec] .links[data-astro-cid-dmqpwcec].open{transform:none}.navgroup[data-astro-cid-dmqpwcec]{display:block}.nav[data-astro-cid-dmqpwcec] .links[data-astro-cid-dmqpwcec] .navtop[data-astro-cid-dmqpwcec]{width:100%;padding:15px 0 9px;border-bottom:1px solid var(--line)}.navgroup[data-astro-cid-dmqpwcec] .chev[data-astro-cid-dmqpwcec]{display:none}.dropdown[data-astro-cid-dmqpwcec],.dropdown[data-astro-cid-dmqpwcec].mega{position:static;opacity:1;visibility:visible;transform:none;min-width:0;background:transparent;border:none;box-shadow:none;backdrop-filter:none;padding:6px 0 12px;gap:0}.dropdown[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec]{padding:9px 12px}.dropdown[data-astro-cid-dmqpwcec] .dd[data-astro-cid-dmqpwcec]{display:none}.mega-grid[data-astro-cid-dmqpwcec],.mega-extra[data-astro-cid-dmqpwcec]{grid-template-columns:1fr 1fr}.nav[data-astro-cid-dmqpwcec] .links[data-astro-cid-dmqpwcec]>.navcta[data-astro-cid-dmqpwcec]{margin-top:16px;text-align:center}.nav[data-astro-cid-dmqpwcec] .burger[data-astro-cid-dmqpwcec]{display:flex}}@media (min-width: 861px){.nav[data-astro-cid-dmqpwcec] .burger[data-astro-cid-dmqpwcec]{display:none}}footer[data-astro-cid-sz7xmlte].foot-site{border-top:1px solid var(--line);padding:56px 0 28px;margin-top:0}.foot-main[data-astro-cid-sz7xmlte]{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr 1fr;gap:32px}.foot-brand[data-astro-cid-sz7xmlte] .footlogo[data-astro-cid-sz7xmlte]{height:38px;width:auto;display:block;mix-blend-mode:screen}.foot-brand[data-astro-cid-sz7xmlte] .foot-tag[data-astro-cid-sz7xmlte]{font-family:var(--mono);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted-2);margin:16px 0 0}.foot-brand[data-astro-cid-sz7xmlte] .foot-desc[data-astro-cid-sz7xmlte]{font-size:13px;line-height:1.55;color:var(--muted);margin:12px 0 0;max-width:30ch}.foot-col[data-astro-cid-sz7xmlte]{display:flex;flex-direction:column;gap:2px}.foot-col[data-astro-cid-sz7xmlte] .foot-h[data-astro-cid-sz7xmlte]{font-family:var(--mono);font-size:10.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 4px}.foot-col[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{display:flex;align-items:center;min-height:26px;padding:8px 0;line-height:1.3;font-size:13.5px;color:var(--muted);transition:color 0.16s}.foot-col[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--ink)}.foot-bar[data-astro-cid-sz7xmlte]{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:44px;padding-top:22px;border-top:1px solid var(--line);font-family:var(--mono);font-size:10.5px;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted-2)}.foot-bar[data-astro-cid-sz7xmlte] .built[data-astro-cid-sz7xmlte]{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.foot-bar[data-astro-cid-sz7xmlte] .built[data-astro-cid-sz7xmlte] .bi[data-astro-cid-sz7xmlte]{vertical-align:middle;opacity:0.95}@media (max-width: 920px){.foot-main[data-astro-cid-sz7xmlte]{grid-template-columns:1fr 1fr;gap:28px}.foot-brand[data-astro-cid-sz7xmlte]{grid-column:1 / -1}}@media (max-width: 540px){.foot-main[data-astro-cid-sz7xmlte]{grid-template-columns:1fr;gap:24px}.foot-bar[data-astro-cid-sz7xmlte]{justify-content:flex-start}}.sp-consent[data-astro-cid-raj4j2g4][hidden],.sp-nudge[data-astro-cid-raj4j2g4][hidden]{display:none!important}.sp-consent[data-astro-cid-raj4j2g4]{position:fixed;left:16px;right:16px;bottom:16px;z-index:900;display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;max-width:940px;margin:0 auto;padding:14px 18px;border:1px solid var(--line-strong);border-radius:14px;background:rgba(10,16,30,0.97);backdrop-filter:blur(8px);box-shadow:0 18px 50px rgba(0,0,0,.5)}.sp-consent[data-astro-cid-raj4j2g4] span[data-astro-cid-raj4j2g4]{font-size:13px;color:var(--ink-soft);line-height:1.5}.sp-consent[data-astro-cid-raj4j2g4] a[data-astro-cid-raj4j2g4]{color:#33C6E8;text-decoration:none}.sp-cbtns[data-astro-cid-raj4j2g4]{display:flex;gap:10px;flex:0 0 auto}.sp-cbtns[data-astro-cid-raj4j2g4] .btn[data-astro-cid-raj4j2g4]{padding:8px 16px;font-size:12px}.sp-nudge[data-astro-cid-raj4j2g4]{position:fixed;right:18px;bottom:18px;z-index:850;width:308px;max-width:calc(100vw - 36px);padding:16px 16px 18px;border:1px solid var(--line-2);border-left:3px solid var(--cyan);border-radius:14px;background:linear-gradient(180deg,var(--bg-2),var(--bg-1));box-shadow:0 18px 44px rgba(0,0,0,.45)}.sp-nudge[data-astro-cid-raj4j2g4] .sp-k[data-astro-cid-raj4j2g4]{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2);margin:0 0 8px}.sp-ai[data-astro-cid-raj4j2g4]{font-size:12.5px;color:var(--ink-soft);line-height:1.5;margin:0 0 10px}.sp-path[data-astro-cid-raj4j2g4]{display:flex;flex-direction:column;gap:6px;margin:0 0 12px}.sp-step[data-astro-cid-raj4j2g4]{display:flex;gap:9px;align-items:flex-start;text-decoration:none;padding:8px 10px;border:1px solid var(--line-2);border-radius:9px;background:rgba(255,255,255,0.02);transition:border-color .16s}.sp-step[data-astro-cid-raj4j2g4]:hover{border-color:var(--line-strong)}.sp-step-n[data-astro-cid-raj4j2g4]{flex:0 0 auto;width:18px;height:18px;border-radius:6px;display:grid;place-items:center;font-family:var(--mono);font-size:10px;color:var(--cyan);border:1px solid var(--line-strong);margin-top:1px}.sp-step-t[data-astro-cid-raj4j2g4]{display:flex;flex-direction:column;gap:1px}.sp-step-t[data-astro-cid-raj4j2g4] b[data-astro-cid-raj4j2g4]{font-size:12.5px;color:var(--ink);font-weight:600;line-height:1.25}.sp-step-w[data-astro-cid-raj4j2g4]{font-size:11px;color:var(--muted-2);line-height:1.35}.sp-rec[data-astro-cid-raj4j2g4]{display:block;font-weight:600;font-size:14px;color:var(--cyan);text-decoration:none;line-height:1.3}.sp-rec[data-astro-cid-raj4j2g4]:hover{text-decoration:underline}.sp-hs[data-astro-cid-raj4j2g4]{display:flex;flex-direction:column;gap:5px}.sp-hs[data-astro-cid-raj4j2g4] a[data-astro-cid-raj4j2g4]{font-size:12.5px;color:var(--ink-soft);text-decoration:none}.sp-hs[data-astro-cid-raj4j2g4] a[data-astro-cid-raj4j2g4]:hover{color:var(--cyan)}#sp-hs-h[data-astro-cid-raj4j2g4]{margin-top:14px}.sp-close[data-astro-cid-raj4j2g4]{position:absolute;top:8px;right:10px;background:none;border:none;color:var(--muted-2);font-size:20px;line-height:1;cursor:pointer}.sp-close[data-astro-cid-raj4j2g4]:hover{color:var(--ink)}@media (max-width: 560px){.sp-consent[data-astro-cid-raj4j2g4]{flex-direction:column;align-items:flex-start}.sp-nudge[data-astro-cid-raj4j2g4]{display:none}}.sp-rescue[data-astro-cid-ndjmk2rp][hidden]{display:none!important}.sp-rescue[data-astro-cid-ndjmk2rp]{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(5,8,16,0.72);backdrop-filter:blur(4px)}.sp-rescue-card[data-astro-cid-ndjmk2rp]{position:relative;max-width:440px;width:100%;border:1px solid var(--line-strong);border-left:4px solid var(--cyan);border-radius:18px;padding:30px 28px 26px;background:linear-gradient(180deg,var(--bg-2),var(--bg-1));box-shadow:0 28px 70px rgba(0,0,0,.6)}.sp-rescue-k[data-astro-cid-ndjmk2rp]{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan);margin:0 0 10px}.sp-rescue-h[data-astro-cid-ndjmk2rp]{font-family:var(--sans);font-weight:800;font-size:22px;line-height:1.25;color:var(--ink);margin:0 0 12px}.sp-rescue-p[data-astro-cid-ndjmk2rp]{font-size:14px;line-height:1.55;color:var(--ink-soft);margin:0 0 22px}.sp-rescue-cta[data-astro-cid-ndjmk2rp]{display:flex;gap:12px;flex-wrap:wrap}.sp-rescue-x[data-astro-cid-ndjmk2rp]{position:absolute;top:12px;right:14px;background:none;border:none;color:var(--muted-2);font-size:22px;line-height:1;cursor:pointer}.sp-rescue-x[data-astro-cid-ndjmk2rp]:hover{color:var(--ink)}.sp-welcome[data-astro-cid-mmc7otgs][hidden]{display:none!important}.sp-welcome[data-astro-cid-mmc7otgs]{position:fixed;left:18px;bottom:18px;z-index:840;width:286px;max-width:calc(100vw - 36px);padding:14px 16px 16px;border:1px solid var(--line-2);border-left:3px solid var(--green-br);border-radius:13px;background:linear-gradient(180deg,var(--bg-2),var(--bg-1));box-shadow:0 14px 40px rgba(0,0,0,.4);animation:sp-wel-in .35s ease}@keyframes sp-wel-in{from{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.sp-welcome-k[data-astro-cid-mmc7otgs]{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--green-br);margin:0 0 6px}.sp-welcome-t[data-astro-cid-mmc7otgs]{font-size:13px;line-height:1.5;color:var(--ink-soft);margin:0 0 11px}.sp-welcome-acts[data-astro-cid-mmc7otgs]{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.sp-welcome-go[data-astro-cid-mmc7otgs]{font-weight:600;font-size:13.5px;color:var(--cyan);text-decoration:none}.sp-welcome-go[data-astro-cid-mmc7otgs]:hover{text-decoration:underline}.sp-welcome-own[data-astro-cid-mmc7otgs]{background:none;border:0;padding:0;font-size:12.5px;color:var(--muted-2);cursor:pointer}.sp-welcome-own[data-astro-cid-mmc7otgs]:hover{color:var(--ink-soft)}.sp-welcome-x[data-astro-cid-mmc7otgs]{position:absolute;top:8px;right:10px;background:none;border:none;color:var(--muted-2);font-size:18px;line-height:1;cursor:pointer}.sp-welcome-note[data-astro-cid-mmc7otgs]{font-size:10.5px;line-height:1.45;color:var(--muted-2);margin:10px 0 0;padding-top:9px;border-top:1px solid var(--line)}@media (max-width: 560px){.sp-welcome[data-astro-cid-mmc7otgs]{display:none}}.sa-launch[data-astro-cid-hq4cd7lc]{position:fixed;right:18px;bottom:78px;z-index:845;display:inline-flex;align-items:center;gap:8px;padding:10px 15px;border-radius:999px;border:1px solid var(--line-strong);background:linear-gradient(180deg,var(--blue),#1f5fd0);color:#fff;font-family:var(--sans);font-weight:600;font-size:13px;cursor:pointer;box-shadow:0 12px 30px rgba(43,123,245,.35)}.sa-launch[data-astro-cid-hq4cd7lc] svg[data-astro-cid-hq4cd7lc]{color:#cfe0ff}.sa-panel[data-astro-cid-hq4cd7lc][hidden]{display:none!important}.sa-panel[data-astro-cid-hq4cd7lc]{position:fixed;right:18px;bottom:18px;z-index:950;width:360px;max-width:calc(100vw - 24px);height:520px;max-height:calc(100vh - 36px);display:flex;flex-direction:column;border:1px solid var(--line-strong);border-radius:16px;background:linear-gradient(180deg,var(--bg-2),var(--bg-1));box-shadow:0 24px 64px rgba(0,0,0,.55);overflow:hidden}.sa-head[data-astro-cid-hq4cd7lc]{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line-2)}.sa-k[data-astro-cid-hq4cd7lc]{font-family:var(--sans);font-weight:700;font-size:15px;color:var(--ink);margin:0}.sa-sub[data-astro-cid-hq4cd7lc]{font-size:11.5px;color:var(--muted-2);margin:2px 0 0}.sa-x[data-astro-cid-hq4cd7lc]{background:none;border:none;color:var(--muted-2);font-size:22px;line-height:1;cursor:pointer}.sa-x[data-astro-cid-hq4cd7lc]:hover{color:var(--ink)}.sa-msgs[data-astro-cid-hq4cd7lc]{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.sa-chips[data-astro-cid-hq4cd7lc]{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 8px}.sa-form[data-astro-cid-hq4cd7lc]{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line-2)}.sa-form[data-astro-cid-hq4cd7lc] input[data-astro-cid-hq4cd7lc]{flex:1;background:var(--bg-2);border:1px solid var(--line-2);border-radius:10px;padding:10px 12px;color:var(--ink);font-family:var(--body);font-size:13.5px;outline:none}.sa-form[data-astro-cid-hq4cd7lc] input[data-astro-cid-hq4cd7lc]:focus{border-color:var(--line-strong)}.sa-send[data-astro-cid-hq4cd7lc]{flex:0 0 auto;width:40px;border:none;border-radius:10px;background:var(--blue);color:#fff;cursor:pointer;display:grid;place-items:center}.sa-send[data-astro-cid-hq4cd7lc]:hover{background:#1f5fd0}@media (max-width: 560px){.sa-launch[data-astro-cid-hq4cd7lc]{bottom:74px}}:root { --muted-2: #97A4BC; }
      .skip-link { position: absolute; left: 12px; top: -60px; z-index: 1000; padding: 10px 16px; background: var(--blue); color: #fff; border-radius: 9px; font-family: var(--mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; transition: top .16s; }
      .skip-link:focus { top: 12px; }
      :focus-visible { outline: 2px solid var(--blue-br); outline-offset: 3px; border-radius: 4px; }
      a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--blue-br); outline-offset: 2px; }
      .fab { position: fixed; right: 18px; bottom: 18px; z-index: 300; display: inline-flex; align-items: center; gap: 9px; padding: 13px 18px; border-radius: 999px; font-family: var(--mono); font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: #eaf3ff; background: linear-gradient(180deg, var(--blue-br), var(--blue)); border: 1px solid rgba(120,170,255,.5); box-shadow: 0 12px 30px rgba(43,123,245,.4); transition: transform .16s, box-shadow .16s; }
      .fab:hover { transform: translateY(-2px); box-shadow: 0 16px 38px rgba(43,123,245,.5); }
      .fab svg { width: 16px; height: 16px; }
      .fab .fab-txt { display: inline; }
      @media (max-width: 600px) { .fab { padding: 13px; } .fab .fab-txt { display: none; } }
      @media print { .fab { display: none; } }