  :root {
    box-sizing: border-box;
    padding-top: env(safe-area-inset-top, 0px);
    padding-bottom: env(safe-area-inset-bottom, 0px);
    color-scheme: light;
    --bg: #ffffff;
    --panel: #e6f5ea;
    --ink: #1e293b;
    --muted: #475569;
    --green: #00b050;
    --green-btn: #5cc16f;
    --green-deep: #00a152;
    --card: #f5f7fa;
    --card-line: #e5e9ef;
    --logo: #94a3b8;
    --fg: #5cc16f; --fg-hover: #4fb462; --fg-ink: #0f2a17; --fg-text: #2f8a41;
    --gap: clamp(.75rem, 2vw, 1.5rem);
    --nav-h: 64px;
  }
  html { scroll-behavior: smooth; scroll-padding-top: var(--nav-h); overflow-x: hidden; }
  *, *::before, *::after { box-sizing: inherit; margin: 0; }
  body {
    font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    color: var(--ink);
    background: var(--bg);
    padding: calc(var(--nav-h) + var(--gap)) var(--gap) var(--gap);
  }
  img { max-width: 100%; }
  .hero, .about, .features, .mss, .partners, .contact, .legal, .footer { overflow: hidden; overflow: clip; }
  .deck-anchor { display: block; height: 0; }
  .js .deck { position: sticky; top: calc(var(--nav-h) + var(--gap)); transform-origin: 50% 50%; }
  .js .deck.deck-last { position: relative; top: auto; }
  .js .hero.deck { animation: deckIntro 1s cubic-bezier(.2,.8,.2,1) backwards; }
  @keyframes deckIntro { from { opacity: 0; translate: 0 48px; scale: .97; } }
  .footer { z-index: 1; }
  .nav {
    position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
    background: rgba(255,255,255,.86); border-bottom: 1px solid transparent;
    -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px);
    transition: background .25s, box-shadow .25s, border-color .25s;
  }
  .nav.scrolled { background: rgba(255,255,255,.95); border-bottom-color: #d4efdc; box-shadow: 0 14px 34px -26px rgba(15,42,23,.4); }
  .nav-bar {
    display: flex; align-items: center; justify-content: space-between; gap: 1rem;
    height: var(--nav-h); padding: 0 calc(var(--gap) + clamp(1.5rem, 5vw, 4.5rem));
  }
  .nav-logo { flex: none; display: block; line-height: 0; }
  .nav-logo img { height: 30px; width: auto; }
  .nav-menu { list-style: none; padding: 0; display: flex; align-items: center; gap: .15rem; }
  .nav-menu a {
    display: block; padding: .55rem .85rem; border-radius: 999px; color: var(--muted);
    font-weight: 500; font-size: .92rem; text-decoration: none; transition: background .2s, color .2s;
  }
  .nav-menu a:hover { color: var(--ink); background: #e6f5ea; }
  .nav-menu a:focus-visible, .nav-cta:focus-visible, .nav-toggle:focus-visible { outline: 2px solid #2f8a41; outline-offset: 2px; }
  .nav-menu .nav-menu-cta { display: none; }
  .nav-actions { display: flex; align-items: center; gap: .5rem; }
  .nav-cta {
    display: inline-flex; align-items: center; gap: .6rem; padding: .62rem .65rem .62rem 1.15rem; border-radius: 999px;
    background: #5cc16f; color: #0f2a17; font-weight: 600; font-size: .92rem; text-decoration: none; white-space: nowrap;
    transition: background .2s, transform .2s;
  }
  .nav-cta:hover { background: #4fb462; transform: translateY(-1px); }
  .nav-toggle {
    display: none; width: 44px; height: 44px; border-radius: 12px; border: 1px solid #d4efdc; background: #fff; cursor: pointer;
    align-content: center; justify-content: center; gap: 4px; padding: 0;
  }
  .nav-toggle span { display: block; width: 18px; height: 2px; border-radius: 2px; background: #0f2a17; transition: transform .25s, opacity .2s; }
  .nav-toggle.active span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .nav-toggle.active span:nth-child(2) { opacity: 0; }
  .nav-toggle.active span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .nav-menu a.active { color: #2f8a41; background: #e6f5ea; }
  @media (max-width: 1024px) {
    .nav-toggle { display: grid; }
    .nav-bar { padding: 0 calc(var(--gap) + clamp(.5rem, 3vw, 1.5rem)); }
    .nav-menu {
      position: absolute; left: var(--gap); right: var(--gap); top: calc(100% + .5rem);
      flex-direction: column; align-items: stretch; gap: .2rem; padding: .6rem;
      background: #fff; border: 1px solid #d4efdc; border-radius: 20px; box-shadow: 0 24px 48px -28px rgba(15,42,23,.5);
      opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity .2s, transform .2s, visibility .2s;
      max-height: calc(100vh - var(--nav-h) - 3rem); overflow-y: auto;
    }
    .nav-menu.active { opacity: 1; visibility: visible; transform: none; }
    .nav-menu a { padding: .85rem 1rem; border-radius: 12px; font-size: 1rem; }
  }
  @media (max-width: 560px) {
    .nav-actions .nav-cta { display: none; }
    .nav-menu .nav-menu-cta { display: block; margin-top: .3rem; }
    .nav-menu .nav-menu-cta a { display: flex; justify-content: space-between; background: #5cc16f; color: #0f2a17; font-weight: 600; }
    .nav-logo img { height: 26px; }
  }

  .hero {
    background: var(--panel);
    border-radius: 24px;
    overflow: hidden;
    display: grid;
    grid-template-columns: 1fr 1.05fr;
    align-items: center;
    gap: clamp(2rem, 4vw, 3rem);
    padding: clamp(3.5rem, 7vw, 6rem) 0 clamp(4rem, 7vw, 6rem) clamp(1.5rem, 5vw, 4.5rem);
  }
  .hero-title {
    font-family: "Space Grotesk", "Inter", system-ui, sans-serif;
    font-weight: 700;
    font-size: clamp(2rem, 4.2vw, 3.6rem);
    line-height: 1.12;
    letter-spacing: -0.015em;
  }
  .hero-title .accent { color: var(--green); }
  .hero-sub {
    margin-top: 1.75rem;
    max-width: 36rem;
    font-size: clamp(1rem, 1.4vw, 1.2rem);
    line-height: 1.65;
    color: var(--ink);
  }
  .actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.5rem; }
  .btn {
    font: 500 1.05rem/1 "Inter", system-ui, sans-serif;
    padding: 1.1rem 1.5rem;
    border-radius: 6px;
    text-decoration: none;
    border: 1px solid transparent;
    transition: background .15s, border-color .15s;
  }
  .btn-primary { background: var(--green-btn); color: #0f2a17; }
  .btn-primary:hover { background: #4fb462; }
  .btn-ghost { border-color: var(--ink); color: var(--ink); }
  .btn-ghost:hover { background: rgba(0,0,0,.04); }
  .btn:focus-visible { outline: 3px solid var(--green-deep); outline-offset: 3px; }
  .dash {
    position: relative; z-index: 1;
    width: 115%;
    background: var(--bg);
    border: 1px solid var(--card-line);
    border-radius: 14px 0 0 14px;
    box-shadow: -20px 30px 60px -25px rgba(15,23,42,.3);
    overflow: hidden;
    transform: rotateY(-8deg) rotateX(3deg) rotateZ(-2deg);
    backface-visibility: hidden;
    will-change: transform;
    transform-origin: left center;
  }
  .dash img {
    display: block; width: 100%; height: auto;
    image-rendering: -webkit-optimize-contrast;
    backface-visibility: hidden;
    transform: translateZ(0);
  }
  .visual { position: relative; perspective: 1600px; }
  .stage { position: relative; transform-style: flat; transition: transform .25s ease-out; }
  .float {
    position: absolute; z-index: 5;
    background: #fff; color: #1e293b;
    border: 1px solid #e5e9ef; border-radius: 14px;
    box-shadow: 0 22px 44px -18px rgba(15,23,42,.35);
    transition: transform .25s ease-out;
    will-change: transform;
  }
  .float-inner { animation: bob 6s ease-in-out infinite; }
  .f-risk { left: -8%; bottom: -18%; width: 210px; padding: 16px 18px 14px; }
  .f-ports { left: 38%; top: -14%; padding: 14px 18px; display: flex; gap: 14px; align-items: center; }
  .f-ports .float-inner { animation-delay: -3s; display: flex; gap: 14px; align-items: center; }
  .f-risk h4 { font: 600 .95rem/1.2 "Inter", sans-serif; }
  .f-risk p { font-size: .72rem; color: #64748b; margin-top: 4px; }
  .gauge { position: relative; margin-top: 10px; }
  .gauge svg { display: block; width: 100%; height: auto; }
  .gauge .arc { transition: stroke-dashoffset 1.6s cubic-bezier(.2,.8,.2,1); }
  .gauge .val { position: absolute; left: 0; right: 0; bottom: 4px; text-align: center; }
  .gauge .val b { font: 700 2rem/1 "Space Grotesk", sans-serif; color: #e8590c; }
  .gauge .val b sup { font-size: .9rem; }
  .gauge .val small { display: block; font-size: .62rem; color: #64748b; letter-spacing: .06em; margin-top: 2px; }
  .gauge .val em { display: block; font-style: normal; font-weight: 600; font-size: .72rem; color: #e8590c; margin-top: 3px; }
  .icon-box { width: 44px; height: 44px; border-radius: 10px; background: #fff1e6; display: grid; place-items: center; color: #f97316; }
  .f-ports b { display: block; font: 700 1.6rem/1 "Space Grotesk", sans-serif; color: #f97316; }
  .f-ports span.l { display: block; font-weight: 600; font-size: .85rem; margin-top: 4px; }
  .f-ports span.s { display: block; font-size: .72rem; color: #64748b; margin-top: 2px; }
  .f-ports { border-left: 3px solid #f97316; }
  @keyframes bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
  @media (max-width: 960px) {
    .f-risk { left: 2%; bottom: -14%; width: 170px; }
    .f-ports { right: 2%; top: -12%; }
  }
  @media (max-width: 560px) {
    .f-risk { width: 118px; padding: 10px; left: -2%; bottom: -16%; }
    .f-risk h4 { font-size: .72rem; }
    .f-risk p, .gauge .val small { display: none; }
    .gauge .val b { font-size: 1.15rem; }
    .gauge .val b sup { font-size: .6rem; }
    .gauge .val em { font-size: .6rem; }
    .f-ports { padding: 8px 10px; top: -18%; left: auto; right: 0; }
    .f-ports .icon-box, .f-ports span.s { display: none; }
    .f-ports b { font-size: 1.1rem; }
    .f-ports span.l { font-size: .7rem; }
    .visual { margin-top: 1.5rem; }
  }
  @media (prefers-reduced-motion: reduce) {
    .float-inner { animation: none; }
    .stage, .float, .gauge .arc { transition: none; }
  }
  @media (max-width: 960px) {
    .hero { grid-template-columns: 1fr; padding-right: clamp(1.5rem, 5vw, 4.5rem); }
    .dash { width: 100%; transform: none; border-radius: 14px; }
  }
  @media (max-width: 560px) {
    .hero { padding-bottom: 5rem; }
    .actions .btn { flex: 1 1 auto; text-align: center; }
  }
  @media (prefers-reduced-motion: reduce) { .btn { transition: none; } }

  .features {
    --fg: #5cc16f; --fg-hover: #4fb462; --fg-ink: #0f2a17; --fg-text: #2f8a41;
    --fx-ink: var(--ink); --fx-mute: var(--muted); --fx-line: rgba(47,138,65,.18);
    position: relative; isolation: isolate;
    margin-top: var(--gap);
    border-radius: 24px; color: var(--fx-ink);
    background: #e6f5ea;
    padding: clamp(3.5rem, 7vw, 6rem) clamp(1.25rem, 4vw, 4rem);
  }
  .features::before {
    content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none;
    background: radial-gradient(circle at 1.5px 1.5px, rgba(47,138,65,.09) 1.5px, transparent 0) 0 0 / 22px 22px;
    -webkit-mask: linear-gradient(#000, transparent 70%); mask: linear-gradient(#000, transparent 70%);
  }
  .fx-inner { max-width: 1240px; margin: 0 auto; }
  .badge {
    display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px; border-radius: 999px;
    background: #fff; color: var(--fg-text); border: 1px solid #c6ebd2;
    font-size: .75rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
  }

  .fx-head { text-align: center; }
  .fx-title { margin-top: 1.1rem; font: 700 clamp(1.9rem, 3.4vw, 2.75rem)/1.18 "Space Grotesk", "Inter", sans-serif; letter-spacing: -0.015em; color: var(--ink); }
  .fx-title > span { display: inline-block; }
  @media (min-width: 1001px) { .fx-title { white-space: nowrap; font-size: clamp(1.6rem, 2.75vw, 2.6rem); } }
  .js .fx-l1, .js .fx-l2 { opacity: 0; transform: translateY(14px); }
  .fx-in .fx-l1 { animation: fxRise .7s cubic-bezier(.2,.8,.2,1) forwards; }
  .fx-in .fx-l2 { animation: fxRise .7s cubic-bezier(.2,.8,.2,1) .15s forwards; }
  @keyframes fxRise { to { opacity: 1; transform: none; } }
  .fx-hl { color: var(--fg); white-space: nowrap; }
  .fx-lede { margin: 1rem auto 0; max-width: 34rem; text-align: center; color: var(--fx-mute); line-height: 1.65; }

  .fx-story { margin-top: clamp(2.5rem, 5vw, 4rem); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); }
  .fx-side { position: relative; }
  .fx-stick { position: sticky; top: max(calc(var(--nav-h) + 1.5rem), calc(50vh - 300px)); }

  .fw { position: relative; width: 100%; max-width: 520px; aspect-ratio: 1; margin: 0 auto; }
  .fw-glow { position: absolute; inset: 4%; border-radius: 50%; background: radial-gradient(closest-side, rgba(255,255,255,.85), rgba(255,255,255,.35) 70%, transparent); }
  .fw-rot { position: absolute; inset: 0; transform: rotate(var(--rot)); transition: transform 1.1s cubic-bezier(.65,0,.25,1); }
  .fw-svg, .fw-fixed { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
  .fw-r1 { fill: none; stroke: rgba(47,138,65,.35); stroke-width: 1.2; stroke-dasharray: 2 7; }
  .fw-r2 { fill: rgba(92,193,111,.06); stroke: rgba(47,138,65,.2); }
  .fw-ticks line { stroke: rgba(47,138,65,.35); stroke-width: 1.2; }
  .fw-spoke { stroke: var(--fx-line); stroke-width: 1.3; }
  .fw-arc { fill: none; stroke: rgba(47,138,65,.18); stroke-width: 5; stroke-linecap: round; transition: stroke .5s, filter .5s; }
  .fw-arc.on { stroke: var(--fg); filter: drop-shadow(0 0 6px rgba(92,193,111,.6)); }
  .fw-beam { stroke: var(--fg); stroke-width: 2.4; stroke-dasharray: 6 7; animation: fwFlow .8s linear infinite; }
  @keyframes fwFlow { to { stroke-dashoffset: -13; } }
  .fw-pin { fill: var(--fg-text); }
  .fw-sweep {
    position: absolute; inset: 25%; border-radius: 50%; pointer-events: none;
    background: conic-gradient(from 0deg, transparent 0 290deg, rgba(92,193,111,.35) 360deg);
    animation: spin 6s linear infinite;
  }
  .fw-node {
    position: absolute; left: calc(var(--x) * 1%); top: calc(var(--y) * 1%);
    width: clamp(42px, 11%, 60px); aspect-ratio: 1; transform: translate(-50%, -50%);
    border-radius: 50%; padding: 0; cursor: pointer; display: grid; place-items: center;
    border: 1px solid #c6ebd2; background: #fff; color: var(--fg-text); box-shadow: 0 8px 16px -10px rgba(47,138,65,.5);
    transition: background .4s, color .4s, box-shadow .4s, opacity .4s, border-color .4s;
  }
  .fw-ni { display: grid; place-items: center; line-height: 0; transform: rotate(calc(var(--rot) * -1)); transition: transform 1.1s cubic-bezier(.65,0,.25,1); }
  .fw-node:hover { border-color: var(--fg); }
  .fw-node.dim { opacity: .45; }
  .fw-node.on { background: var(--fg); color: var(--fg-ink); border-color: var(--fg); box-shadow: 0 0 0 7px rgba(92,193,111,.22), 0 12px 28px -6px rgba(47,138,65,.6); }
  .fw-node:focus-visible { outline: 2px solid var(--fg-text); outline-offset: 3px; }
  .fw-core {
    position: absolute; left: 50%; top: 50%; width: 36%; height: 36%; transform: translate(-50%, -50%);
    border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
    padding: 0 7%; background: radial-gradient(circle at 50% 30%, #1d4a2b, #0a1d10 72%);
    box-shadow: 0 0 0 1px rgba(92,193,111,.4), 0 0 0 8px rgba(92,193,111,.07), 0 0 60px -8px rgba(92,193,111,.6);
  }
  .fw-core img { width: 22%; height: auto; }
  .fw-core b { margin-top: .3rem; font: 700 clamp(1.4rem, 2.8vw, 2.1rem)/1 "Space Grotesk", sans-serif; color: #fff; }
  .fw-core span { margin-top: .35rem; font-weight: 600; font-size: clamp(.7rem, 1.1vw, .85rem); line-height: 1.25; color: #eaf6ee; }
  .fw-core small { margin-top: .35rem; font-size: .62rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #9ff0b0; }
  .fw-core.swap b, .fw-core.swap span { animation: fwSwap .5s ease; }
  @keyframes fwSwap { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

  .fp { margin-top: 1.6rem; }
  .fp-meta { display: flex; align-items: baseline; gap: .4rem; }
  .fp-meta b { font: 700 1.4rem "Space Grotesk", sans-serif; color: var(--ink); }
  .fp-meta span { color: var(--fx-mute); font-size: .85rem; }
  .fp-meta em { margin-left: auto; font-style: normal; font-weight: 600; font-size: .85rem; color: var(--fg-text); }
  .fp-segs { margin-top: .7rem; display: flex; gap: 6px; }
  .fp-seg { flex: 1; min-width: 0; }
  .fp-bar { height: 4px; border-radius: 4px; background: rgba(47,138,65,.15); overflow: hidden; }
  .fp-bar i { display: block; height: 100%; width: 0; border-radius: 4px; background: var(--fg); transition: width .6s cubic-bezier(.2,.8,.2,1); }
  .fp-seg span { display: block; margin-top: .5rem; font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--fx-mute); transition: color .4s; }
  .fp-seg.on span { color: var(--ink); }

  .fx-chapters { position: relative; padding-left: 2.4rem; }
  .fxc-rail { position: absolute; left: 7px; top: 0; bottom: 0; width: 2px; background: rgba(47,138,65,.15); border-radius: 2px; }
  .fxc-rail i { display: block; width: 100%; height: 0; background: linear-gradient(#5cc16f, #2f8a41); border-radius: 2px; box-shadow: 0 0 8px rgba(92,193,111,.6); transition: height .6s cubic-bezier(.2,.8,.2,1); }
  .fxc {
    position: relative; min-height: 64vh; display: flex; flex-direction: column; justify-content: center;
    padding: 2.5rem 0; opacity: .35; transition: opacity .6s ease;
  }
  .fxc.on { opacity: 1; }
  .fxc::before {
    content: ""; position: absolute; left: calc(-2.4rem + 1px); top: 50%; width: 14px; height: 14px; margin-top: -7px;
    border-radius: 50%; background: #e6f5ea; border: 2px solid rgba(47,138,65,.4); transition: background .4s, box-shadow .4s, border-color .4s;
  }
  .fxc.on::before { background: var(--fg); border-color: var(--fg); box-shadow: 0 0 0 6px rgba(92,193,111,.25); }
  .fxc-top { display: flex; align-items: center; gap: 1rem; }
  .fxc-num { font: 700 clamp(3.2rem, 6vw, 4.8rem)/.9 "Space Grotesk", sans-serif; color: transparent; -webkit-text-stroke: 1.5px rgba(47,138,65,.45); letter-spacing: -0.02em; }
  .fxc.on .fxc-num { -webkit-text-stroke-color: var(--fg-text); }
  .fxc-phase {
    padding: 5px 12px; border-radius: 999px; background: #fff; border: 1px solid #c6ebd2;
    color: var(--fg-text); font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  }
  .fxc h3 { margin-top: 1rem; display: flex; align-items: center; gap: .75rem; font: 700 clamp(1.5rem, 2.6vw, 2.1rem)/1.15 "Space Grotesk", "Inter", sans-serif; color: var(--ink); letter-spacing: -0.01em; }
  .fxc-ic { flex: none; width: 44px; height: 44px; border-radius: 13px; display: grid; place-items: center; background: var(--fg); color: var(--fg-ink); }
  .fxc-desc { margin-top: .9rem; color: var(--fx-mute); line-height: 1.7; max-width: 36rem; }
  .fxc-list { list-style: none; padding: 0; margin-top: 1.1rem; display: grid; grid-template-columns: 1fr 1fr; gap: .55rem 1rem; }
  .fxc-list li { position: relative; padding-left: 1.6rem; font-size: .9rem; color: var(--fx-ink); line-height: 1.4; }
  .fxc-list li::before { content: ""; position: absolute; left: 0; top: .1em; width: 16px; height: 16px; border-radius: 5px; background: #fff; }
  .fxc-list li::after {
    content: ""; position: absolute; left: 5px; top: calc(.1em + 5px); width: 6px; height: 3px;
    border-left: 2px solid var(--fg-text); border-bottom: 2px solid var(--fg-text); transform: rotate(-45deg);
  }

  .fx-viz {
    margin-top: 1.4rem; padding: .95rem 1rem .85rem; border-radius: 18px; background: #fff; border: 1px solid #d4efdc; color: var(--ink);
    box-shadow: 0 30px 50px -34px rgba(47,138,65,.55); transform: translateY(12px); transition: transform .7s cubic-bezier(.2,.8,.2,1);
  }
  .fxc.on .fx-viz { transform: none; }
  .fx-viz-h { display: flex; justify-content: space-between; align-items: center; font-size: .75rem; font-weight: 600; color: var(--muted); }
  .fx-viz-h span:first-child { display: inline-flex; align-items: center; gap: 7px; }
  .fx-viz-h em { width: 7px; height: 7px; border-radius: 50%; background: var(--fg); animation: live 1.8s ease-out infinite; }
  .fx-viz-v { color: var(--fg-text); font-weight: 700; }
  .fx-svg { display: block; width: 100%; height: auto; margin-top: .6rem; overflow: visible; }
  .fx-panel.on .vz-draw { animation: vzDraw 2.4s ease-in-out infinite; }
  @keyframes vzDraw { 0% { stroke-dashoffset: 100; } 50%, 85% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: 0; opacity: .4; } }
  .fx-panel.on .vz-pulse { animation: vzPulse 2s ease-in-out infinite; }
  @keyframes vzPulse { 0%,100% { transform: scale(.85); opacity: .6; } 50% { transform: scale(1.1); opacity: 1; } }
  .fx-panel.on .vz-node { animation: vzNode 2.8s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
  @keyframes vzNode { 0%,100% { opacity: .45; } 15%,45% { opacity: 1; } }
  .fx-panel.on .vz-scan { animation: vzScan 2.8s linear infinite; }
  @keyframes vzScan { from { transform: translateX(-30px); } to { transform: translateX(320px); } }
  .fx-panel.on .vz-grow { animation: vzGrow 2.8s cubic-bezier(.2,.8,.2,1) infinite both; transform-box: fill-box; transform-origin: bottom; }
  @keyframes vzGrow { 0% { transform: scaleY(0); } 30%, 85% { transform: scaleY(1); } 100% { transform: scaleY(1); opacity: .6; } }
  .fx-panel.on .vz-type { animation: vzType 3s ease-out infinite both; transform-box: fill-box; transform-origin: left; }
  @keyframes vzType { 0% { transform: scaleX(0); } 30%, 90% { transform: scaleX(1); } 100% { transform: scaleX(1); } }
  .fx-panel.on .vz-stamp { animation: vzStamp 3s ease-out infinite; transform-box: fill-box; transform-origin: center; }
  @keyframes vzStamp { 0%, 45% { transform: scale(2); opacity: 0; } 55% { transform: scale(.9); opacity: 1; } 62%, 100% { transform: scale(1); opacity: 1; } }
  .fx-panel.on .vz-share { animation: vzBob 2s ease-in-out infinite; }
  @keyframes vzBob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
  .fx-panel.on .vz-bar { animation: vzBar 3.6s ease-out infinite both; transform-box: fill-box; transform-origin: left; }
  @keyframes vzBar { 0% { transform: scaleX(0); } 20%, 100% { transform: scaleX(1); } }
  .fx-panel.on .vz-res { animation: vzRes 3.6s ease-out infinite both; transform-box: fill-box; transform-origin: center; }
  @keyframes vzRes { 0%, 18% { transform: scale(0); } 26%, 100% { transform: scale(1); } }
  .fx-panel.on .vz-blink { animation: blink 1.6s ease-in-out infinite; }
  .fx-panel.on .vz-needle { animation: vzNeedle 4s ease-in-out infinite; }
  @keyframes vzNeedle { 0%,100% { transform: translate(120px, 0); } 40% { transform: translate(215px, 0); } 70% { transform: translate(180px, 0); } }
  .vz-needle { transform: translate(180px, 0); }
  .fx-panel.on .vz-card { animation: vzCard 4.5s ease-in-out infinite; }
  @keyframes vzCard { 0%, 15% { transform: translate(0, 0); } 35%, 50% { transform: translate(100px, -20px); } 70%, 100% { transform: translate(200px, -20px); } }
  .fx-panel.on .vz-del { animation: vzDel 3.6s ease-in-out infinite; }
  .fx-panel.on .vz-add { animation: vzAdd 3.6s ease-in-out infinite; }
  @keyframes vzDel { 0%, 30% { opacity: 1; } 45%, 100% { opacity: .35; } }
  @keyframes vzAdd { 0%, 40% { opacity: 0; transform: translateX(-8px); } 55%, 100% { opacity: 1; transform: none; } }
  @keyframes blink { 0%,100% { opacity: .35; } 50% { opacity: 1; } }
  @keyframes live { 0% { box-shadow: 0 0 0 0 rgba(92,193,111,.6); } 100% { box-shadow: 0 0 0 8px rgba(92,193,111,0); } }

  .fx-foot { margin-top: 2.5rem; display: flex; justify-content: center; }
  .fx-cta {
    display: inline-flex; align-items: center; gap: 10px; padding: 1rem 1.6rem; border-radius: 999px;
    background: var(--fg); color: var(--fg-ink); font-weight: 600; text-decoration: none; transition: background .2s, transform .2s;
  }
  .fx-cta:hover { background: var(--fg-hover); transform: translateY(-2px); }
  .fx-cta:focus-visible { outline: 2px solid var(--fg-text); outline-offset: 3px; }

  @media (max-width: 1000px) {
    .fx-story { grid-template-columns: 1fr; gap: 0; }
    .fx-side { position: sticky; top: var(--nav-h); z-index: 5; margin: 0 calc(-1 * clamp(1.25rem, 4vw, 4rem)); padding: .8rem clamp(1.25rem, 4vw, 4rem); background: rgba(230,245,234,.92); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-bottom: 1px solid rgba(47,138,65,.18); }
    .fx-stick { position: static; }
    .fw { display: none; }
    .fp { margin-top: 0; }
    .fxc { min-height: 0; padding: 2.4rem 0; opacity: 1; }
    .fx-viz { transform: none; }
  }
  @media (max-width: 560px) {
    .fx-chapters { padding-left: 1.8rem; }
    .fxc::before { left: calc(-1.8rem + 1px); top: 3.6rem; }
    .fxc-list { grid-template-columns: 1fr; }
    .fp-seg span { font-size: .58rem; letter-spacing: .06em; }
    .fp-meta em { max-width: 55%; text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  }
  @media (prefers-reduced-motion: reduce) {
    .js .fx-l1, .js .fx-l2 { opacity: 1; transform: none; animation: none !important; }
    .fw-rot, .fw-ni, .fxc, .fx-viz, .fp-bar i, .fxc-rail i, .fw-node, .fw-arc { transition: none; }
    .fw-sweep, .fw-beam, .fx-viz-h em, .fw-core.swap b, .fw-core.swap span { animation: none; }
    .fx-svg * { animation: none !important; opacity: 1; }
    .vz-pkts, .fw-sweep { display: none; }
  }

  .mss {
    margin-top: var(--gap);
    background: #e6f5ea; border-radius: 24px;
    padding: clamp(3rem, 6vw, 5rem) clamp(1.5rem, 5vw, 4.5rem);
  }
  .mss-inner { max-width: 1280px; margin: 0 auto; }
  .mss .badge { background: #fff; color: #2f8a41; border: 1px solid #c6ebd2; }
  .mss-head { display: block; text-align: center; }
  .mss-title { margin-top: 1rem; font: 700 clamp(1.8rem, 3.2vw, 2.6rem)/1.15 "Space Grotesk", "Inter", sans-serif; letter-spacing: -0.015em; }
  .mss-title .accent { color: #5cc16f; }
  .mss-sub { color: var(--muted); line-height: 1.7; }
  .mss-tabs {
    margin-top: 2.2rem; display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 5px;
    background: #fff; border: 1px solid #c6ebd2; border-radius: 999px;
  }
  .mss-tabs button {
    border: 0; background: transparent; cursor: pointer; font: 600 .88rem "Inter", sans-serif; color: var(--muted);
    padding: .6rem 1.05rem; border-radius: 999px; display: inline-flex; align-items: center; gap: 8px;
    transition: background .2s, color .2s;
  }
  .mss-tabs button b { font-size: .72rem; padding: 1px 7px; border-radius: 999px; background: #e6f5ea; color: #2f8a41; }
  .mss-tabs button:hover { color: var(--ink); }
  .mss-tabs button.on { background: #5cc16f; color: #0f2a17; }
  .mss-tabs button.on b { background: rgba(255,255,255,.55); color: #0f2a17; }
  .mss-tabs button:focus-visible { outline: 2px solid #2f8a41; outline-offset: 2px; }

  .svc-grid { margin-top: 1.6rem; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1rem; }
  .svc {
    position: relative; isolation: isolate; overflow: hidden;
    display: flex; flex-direction: column; padding: 1.4rem 1.3rem 1.2rem;
    background: #fff; border: 1px solid #d4efdc; border-radius: 18px;
    color: var(--ink); text-decoration: none;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease, opacity .3s ease;
  }
  .svc::before {
    content: ""; position: absolute; inset: 0; z-index: -1;
    background:
      linear-gradient(rgba(92,193,111,.08) 1px, transparent 1px) 0 0 / 16px 16px,
      linear-gradient(90deg, rgba(92,193,111,.08) 1px, transparent 1px) 0 0 / 16px 16px;
    -webkit-mask: radial-gradient(circle at 100% 0, #000, transparent 70%);
            mask: radial-gradient(circle at 100% 0, #000, transparent 70%);
  }
  .svc::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
    background: linear-gradient(90deg, #2f8a41, #5cc16f); transform: scaleX(0); transform-origin: left;
    transition: transform .35s ease;
  }
  .svc:hover { transform: translateY(-5px); border-color: #5cc16f; box-shadow: 0 22px 40px -24px rgba(47,138,65,.55); }
  .svc:hover::after { transform: scaleX(1); }
  .svc:focus-visible { outline: 2px solid #2f8a41; outline-offset: 3px; }
  .svc-top { display: flex; justify-content: space-between; align-items: flex-start; }
  .svc-icon {
    width: 54px; height: 54px; border-radius: 15px; display: grid; place-items: center;
    background: #e6f5ea; color: #2f8a41; transition: background .25s, color .25s, transform .25s;
  }
  .svc:hover .svc-icon { background: #5cc16f; color: #0f2a17; transform: rotate(-6deg) scale(1.05); }
  .svc-num { font: 700 1.6rem/1 "Space Grotesk", sans-serif; color: transparent; -webkit-text-stroke: 1.2px #b7e4c4; transition: -webkit-text-stroke-color .25s; }
  .svc:hover .svc-num { -webkit-text-stroke-color: #5cc16f; }
  .svc h3 { margin-top: 1.1rem; font: 600 1.08rem/1.3 "Space Grotesk", "Inter", sans-serif; }
  .svc p { margin-top: .5rem; font-size: .85rem; line-height: 1.55; color: var(--muted); }
  .svc-bot { margin-top: auto; padding-top: 1.1rem; display: flex; justify-content: space-between; align-items: center; }
  .svc-tag { font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #2f8a41; background: #e6f5ea; padding: 4px 10px; border-radius: 999px; }
  .svc-go {
    width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center;
    border: 1px solid #c6ebd2; color: #2f8a41; transition: background .25s, color .25s, border-color .25s, transform .25s;
  }
  .svc:hover .svc-go { background: #0f2a17; border-color: #0f2a17; color: #5cc16f; transform: rotate(-45deg); }
  .svc-cta {
    position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: center;
    padding: 1.6rem 1.4rem; border-radius: 18px; text-decoration: none; color: #0f2a17;
    background:
      radial-gradient(circle at 1px 1px, rgba(15,42,23,.14) 1px, transparent 0) 0 0 / 14px 14px,
      linear-gradient(135deg, #5cc16f, #4fb462);
    transition: transform .25s ease, box-shadow .25s ease;
  }
  .svc-cta:hover { transform: translateY(-5px); box-shadow: 0 22px 40px -22px rgba(47,138,65,.8); }
  .svc-cta-k { font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; opacity: .8; }
  .svc-cta h3 { margin-top: 0; font: 700 1.25rem/1.25 "Space Grotesk", sans-serif; }
  .svc-cta p { margin-top: .5rem; font-size: .88rem; line-height: 1.55; color: #16361f; }
  .svc-cta-btn {
    margin-top: 1.1rem; align-self: flex-start; display: inline-flex; align-items: center; gap: 8px;
    padding: .65rem 1rem; border-radius: 999px; background: #0f2a17; color: #5cc16f; font-weight: 600; font-size: .88rem;
  }
  .svc.hide { display: none; }
  .svc.show { animation: svcIn .35s ease both; }
  @keyframes svcIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
  @media (max-width: 900px) { .mss-head { grid-template-columns: 1fr; } }
  @media (max-width: 560px) { .mss-tabs { border-radius: 16px; } }
  @media (prefers-reduced-motion: reduce) {
    .svc, .svc-cta, .svc::after, .svc-icon, .svc-go, .mss-tabs button { transition: none; }
    .svc:hover, .svc:hover .svc-icon, .svc:hover .svc-go { transform: none; }
    .svc.show { animation: none; }
  }

  .about {
    background: #e6f5ea; border-radius: 24px;
    margin-top: var(--gap);
    padding: clamp(3rem, 6vw, 5rem) clamp(1.5rem, 5vw, 4.5rem);
  }
  .about-inner { max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
  .about-media {
    position: relative; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: auto auto;
    gap: 1.25rem; align-items: end;
  }
  .tile { margin: 0; border-radius: 22px; overflow: hidden; background: linear-gradient(#f3faf5, #ffffff); box-shadow: 0 20px 40px -26px rgba(15,23,42,.35); border: 1px solid var(--card-line); }
  .tile img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top center; }
  .tile-tall { grid-row: 1 / span 2; height: clamp(360px, 42vw, 540px); align-self: center; margin-top: 3rem; }
  .tile-a { height: clamp(170px, 20vw, 260px); }
  .tile-b { height: clamp(170px, 20vw, 260px); }
  .tile svg { display: block; width: 100%; height: 100%; }
  .d-sweep { animation: spin 4s linear infinite; }
  .d-lock { animation: blink 1.4s ease-in-out infinite; }
  .d-alert { animation: blink 2.8s ease-in-out infinite; }
  .d-wave { animation: wave 4s linear infinite; }
  .d-log { animation: logIn 6s ease-in-out infinite; }
  .d-log.l2 { animation-delay: .6s; }
  @keyframes wave { to { transform: translateX(-240px); } }
  @keyframes logIn { 0% { opacity: 0; transform: translateX(-8px); } 10%, 85% { opacity: 1; transform: none; } 100% { opacity: 0; } }
  .ping { animation: ping 2s ease-out infinite; transform-box: fill-box; transform-origin: center; }
  .blip { animation: blink 2s ease-in-out infinite; }
  .blip.b2 { animation-delay: .7s; } .blip.b3 { animation-delay: 1.3s; }
  .p-field { animation: spin 12s linear infinite; }
  .p-field2 { animation: spin 20s linear infinite reverse; }
  .p-shield { animation: pulse 3.2s ease-in-out infinite; }
  .p-scan { animation: scan 2.8s ease-in-out infinite; }
  @keyframes scan { 0% { transform: translateY(0); opacity: 0; } 15% { opacity: 1; } 85% { opacity: 1; } 100% { transform: translateY(110px); opacity: 0; } }
  .s-ring-a { animation: spin 14s linear infinite; }
  .s-ring-b { animation: spin 9s linear infinite reverse; }
  .s-key-glow { animation: blink 2.4s ease-in-out infinite; }
  .s-key-dot { animation: blink 1.6s ease-in-out infinite; }
  @keyframes ping { 0% { transform: scale(.6); opacity: 1; } 100% { transform: scale(2.2); opacity: 0; } }
  @keyframes pulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.05); } }
  @media (prefers-reduced-motion: reduce) { .d-sweep, .d-lock, .d-alert, .d-wave, .d-log, .ping, .blip, .p-field, .p-field2, .p-shield, .p-scan, .s-ring-a, .s-ring-b, .s-key-glow, .s-key-dot { animation: none; } .s-packets, .p-pulses { display: none; } }
  .seal {
    position: absolute; left: 50%; top: 50%; transform: translate(-50%, -38%);
    width: clamp(120px, 13vw, 160px); aspect-ratio: 1; border-radius: 50%;
    background: #5cc16f; box-shadow: 0 16px 36px -14px rgba(47,138,65,.55);
    display: grid; place-items: center; z-index: 2;
  }
  .seal-ring { position: absolute; inset: 0; width: 100%; height: 100%; animation: spin 18s linear infinite; }
  .seal-ring text { fill: #0f2a17; font: 700 16px "Space Grotesk", "Inter", sans-serif; letter-spacing: 2px; }
  .seal-core { width: 58%; aspect-ratio: 1; border-radius: 50%; background: #fff; display: grid; place-items: center; color: #2f8a41; }
  .seal-core img { width: 62%; height: auto; display: block; }
  @keyframes spin { to { transform: rotate(360deg); } }

  .about-text .badge { background: #fff; color: #2f8a41; border: 1px solid #c6ebd2; }
  .about-title {
    margin-top: 1.1rem; font: 700 clamp(1.9rem, 3.4vw, 2.9rem)/1.15 "Space Grotesk", "Inter", sans-serif; letter-spacing: -0.015em;
  }
  .about-title .accent { color: #5cc16f; }
  .about-sub { margin-top: 1.1rem; color: var(--muted); line-height: 1.75; max-width: 38rem; }
  .about-sub.about-sub2 { margin-top: .7rem; }
  .about-banner {
    position: relative; margin-top: 1.8rem; padding: 2px; border-radius: 22px; overflow: hidden; isolation: isolate;
    box-shadow: 0 24px 44px -26px rgba(47,138,65,.7);
    transition: transform .25s ease, box-shadow .25s ease;
  }
  .about-banner::before {
    content: ""; position: absolute; left: 50%; top: 50%; width: 200%; aspect-ratio: 1; z-index: -1;
    transform: translate(-50%, -50%);
    background: conic-gradient(from 0deg, #5cc16f, #c6ebd2 25%, #2f8a41 50%, #c6ebd2 75%, #5cc16f);
    animation: borderSpin 6s linear infinite;
  }
  .about-banner:hover { transform: translateY(-3px); box-shadow: 0 30px 50px -26px rgba(47,138,65,.85); }
  .ab-inner {
    position: relative; display: flex; align-items: center; gap: 1.4rem;
    padding: 1.4rem 1.6rem; border-radius: 20px;
    background:
      linear-gradient(rgba(92,193,111,.07) 1px, transparent 1px) 0 0 / 18px 18px,
      linear-gradient(90deg, rgba(92,193,111,.07) 1px, transparent 1px) 0 0 / 18px 18px,
      linear-gradient(120deg, #ffffff, #f3faf5);
    overflow: hidden;
  }
  .ab-inner::after {
    content: ""; position: absolute; right: -60px; top: -60px; width: 180px; height: 180px; border-radius: 50%;
    background: radial-gradient(closest-side, rgba(92,193,111,.28), transparent); pointer-events: none;
  }
  .ab-visual { flex: none; width: 92px; height: 92px; }
  .ab-visual svg { width: 100%; height: 100%; overflow: visible; }
  .ab-orbit { transform-origin: 48px 48px; animation: spin 5s linear infinite; }
  .ab-draw { stroke-dasharray: 100; stroke-dashoffset: 100; animation: draw 4s ease-in-out infinite; }
  .ab-check { animation-delay: .5s; }
  @keyframes draw { 0% { stroke-dashoffset: 100; } 35%, 80% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: -100; } }
  @keyframes borderSpin { to { transform: translate(-50%, -50%) rotate(360deg); } }
  .ab-text { position: relative; z-index: 1; }
  .ab-kicker {
    display: inline-flex; align-items: center; gap: 7px; padding: 4px 11px; border-radius: 999px;
    background: #e6f5ea; color: #2f8a41; font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  }
  .ab-kicker i { width: 6px; height: 6px; border-radius: 50%; background: #5cc16f; box-shadow: 0 0 0 0 rgba(92,193,111,.6); animation: live 1.8s ease-out infinite; }
  .about-banner h4 { margin-top: .5rem; font: 700 1.3rem/1.2 "Space Grotesk", sans-serif; color: var(--ink); }
  .about-banner p { margin-top: .35rem; font-size: .92rem; line-height: 1.55; color: var(--muted); max-width: 30rem; }
  .ab-values { margin-top: .85rem; display: flex; flex-wrap: wrap; gap: .5rem; }
  .ab-values span {
    display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 999px;
    background: #5cc16f; color: #0f2a17; font-size: .78rem; font-weight: 600;
    transition: transform .2s;
  }
  .ab-values span:hover { transform: translateY(-2px); }
  .about-foot { margin-top: 2rem; display: grid; grid-template-columns: 1.1fr 1fr; gap: 1.5rem 2rem; align-items: center; }
  .about-list { list-style: none; padding: 0; display: grid; gap: .9rem; }
  .about-list li { display: flex; align-items: center; gap: .7rem; color: var(--muted); font-size: .95rem; }
  .about-list svg { flex: none; color: #2f8a41; }
  .about-cta { display: grid; gap: 1.1rem; justify-items: start; }
  .about-contact {
    display: flex; align-items: center; gap: .8rem; width: 100%; padding-bottom: 1rem;
    border-bottom: 1px solid #c6ebd2; color: var(--ink); text-decoration: none; font-weight: 600; font-size: 1.05rem; word-break: break-all;
  }
  .ring { flex: none; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; color: #0f2a17; background: #5cc16f; }
  .about-btn {
    display: inline-flex; align-items: center; gap: .7rem; padding: .95rem 1.2rem .95rem 1.6rem; border-radius: 999px;
    background: #5cc16f; color: #0f2a17; text-decoration: none; font-weight: 600;
    transition: transform .2s, box-shadow .2s, background .2s;
  }
  .about-btn:hover { background: #4fb462; transform: translateY(-2px); box-shadow: 0 12px 24px -12px rgba(47,138,65,.6); }
  .about-btn:focus-visible, .f-btn:focus-visible, .ct-btn:focus-visible, .svc-cta:focus-visible { outline: 2px solid #2f8a41; outline-offset: 3px; }
  .dot-arrow { width: 22px; height: 22px; border-radius: 50%; background: #0f2a17; color: #5cc16f; display: grid; place-items: center; }
  @media (max-width: 1000px) { .about-inner { grid-template-columns: 1fr; } }
  @media (max-width: 560px) {
    .about-foot { grid-template-columns: 1fr; }
    .ab-inner { flex-direction: column; text-align: center; }
    .ab-values { justify-content: center; }
    .tile-tall { margin-top: 1.5rem; }
    .about-media { gap: .75rem; }
  }
  @media (prefers-reduced-motion: reduce) { .seal-ring, .about-banner::before, .ab-orbit, .ab-kicker i { animation: none; } .ab-draw { animation: none; stroke-dashoffset: 0; } .about-btn, .about-banner { transition: none; } }

  .contact {
    margin-top: clamp(.75rem, 2vw, 1.5rem);
    background: #e6f5ea; border-radius: 24px;
    padding: clamp(3rem, 6vw, 5rem) clamp(1.5rem, 5vw, 4.5rem);
  }
  .ct-inner { max-width: 1180px; margin: 0 auto; }
  .ct-head { text-align: center; }
  .ct-badge { display: inline-block; padding: 7px 16px; border-radius: 999px; background: #fff; color: #2f8a41; border: 1px solid #c6ebd2; font-size: .85rem; font-weight: 600; }
  .ct-title { margin-top: 1rem; font: 700 clamp(1.8rem, 3.4vw, 2.8rem)/1.15 "Space Grotesk", "Inter", sans-serif; letter-spacing: -0.015em; }
  .ct-title .accent { color: #5cc16f; }

  .ct-shell {
    margin-top: 2.6rem; display: grid; grid-template-columns: .9fr 1.35fr;
    background: #fff; border: 1px solid #d4efdc; border-radius: 26px; overflow: hidden;
    box-shadow: 0 40px 70px -48px rgba(47,138,65,.65);
  }

  .ct-side { position: relative; overflow: hidden; background: #0f2a17; color: #e7f5ec; display: flex; flex-direction: column; }
  .ct-map {
    position: relative; height: 210px; flex: none;
    background:
      radial-gradient(circle at 1.5px 1.5px, rgba(92,193,111,.35) 1.5px, transparent 0) 0 0 / 16px 16px;
    -webkit-mask: radial-gradient(ellipse at 50% 55%, #000 35%, transparent 75%);
            mask: radial-gradient(ellipse at 50% 55%, #000 35%, transparent 75%);
  }
  .ct-ping { position: absolute; left: 52%; top: 52%; width: 0; height: 0; }
  .ct-ping span { position: absolute; left: -7px; top: -7px; width: 14px; height: 14px; border-radius: 50%; background: #5cc16f; box-shadow: 0 0 18px 4px rgba(92,193,111,.7); }
  .ct-ping b { position: absolute; left: -10px; top: -10px; width: 20px; height: 20px; border-radius: 50%; border: 2px solid #5cc16f; opacity: 0; animation: ctRing 3s ease-out infinite; }
  .ct-ping b:nth-child(2) { animation-delay: 1s; } .ct-ping b:nth-child(3) { animation-delay: 2s; }
  @keyframes ctRing { 0% { transform: scale(.4); opacity: .9; } 100% { transform: scale(7); opacity: 0; } }
  .ct-nodes i { position: absolute; left: calc(var(--x) * 1%); top: calc(var(--y) * 1%); width: 6px; height: 6px; border-radius: 50%; background: #b7e4c4; animation: blink 2.4s ease-in-out infinite; }
  .ct-nodes i:nth-child(2n) { animation-delay: .8s; } .ct-nodes i:nth-child(3n) { animation-delay: 1.5s; }
  .ct-side-body { position: relative; padding: 0 clamp(1.3rem, 3vw, 2rem) clamp(1.5rem, 3vw, 2rem); margin-top: -1.5rem; }
  .ct-live { display: inline-flex; align-items: center; gap: 8px; padding: 5px 12px; border-radius: 999px; background: rgba(92,193,111,.15); color: #9ff0b0; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
  .ct-live i { width: 7px; height: 7px; border-radius: 50%; background: #5cc16f; animation: live 1.8s ease-out infinite; }
  .ct-side h3 { margin-top: .8rem; font: 700 1.45rem/1.2 "Space Grotesk", sans-serif; color: #fff; }
  .ct-ch { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; }
  .ct-ch li {
    display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .85rem;
    padding: .8rem .9rem; border-radius: 14px; background: rgba(255,255,255,.05); border: 1px solid rgba(92,193,111,.18);
    transition: background .2s, border-color .2s;
  }
  .ct-ch li:hover { background: rgba(92,193,111,.1); border-color: rgba(92,193,111,.45); }
  .ct-ic { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; background: #5cc16f; color: #0f2a17; }
  .ct-chx small { display: block; font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #8fbf9b; }
  .ct-chx a, .ct-chx b { display: block; margin-top: 2px; color: #fff; font-weight: 600; font-size: .95rem; text-decoration: none; word-break: break-word; }
  .ct-chx a:hover { color: #9ff0b0; }
  .ct-copy {
    position: relative; width: 36px; height: 36px; border-radius: 10px; border: 1px solid rgba(92,193,111,.35);
    background: transparent; color: #9ff0b0; display: grid; place-items: center; cursor: pointer; transition: background .2s;
  }
  .ct-copy:hover { background: rgba(92,193,111,.18); }
  .ct-copy:focus-visible { outline: 2px solid #5cc16f; outline-offset: 2px; }
  .ct-copy em {
    position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translate(-50%, 4px); white-space: nowrap;
    padding: 3px 8px; border-radius: 6px; background: #5cc16f; color: #0f2a17; font: 700 .68rem "Inter", sans-serif; font-style: normal;
    opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s;
  }
  .ct-copy.done em { opacity: 1; transform: translate(-50%, 0); }

  .ct-wiz { padding: clamp(1.4rem, 3.2vw, 2.4rem); display: flex; flex-direction: column; }
  .ct-steps { display: flex; justify-content: space-between; gap: .5rem; }
  .ct-steps span { display: inline-flex; align-items: center; gap: 8px; font-size: .82rem; font-weight: 600; color: #94a3b8; transition: color .3s; }
  .ct-steps b { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font: 700 .75rem "Space Grotesk", sans-serif; background: #f1f5f2; color: #94a3b8; transition: background .3s, color .3s; }
  .ct-steps span.on { color: var(--ink); }
  .ct-steps span.on b { background: #5cc16f; color: #0f2a17; }
  .ct-steps span.done b { background: #0f2a17; color: #5cc16f; }
  .ct-track { margin-top: .9rem; height: 4px; border-radius: 4px; background: #e6f5ea; overflow: hidden; }
  .ct-track i { display: block; height: 100%; width: 33.33%; border-radius: 4px; background: linear-gradient(90deg, #2f8a41, #5cc16f); transition: width .45s cubic-bezier(.2,.8,.2,1); }

  .ct-step { border: 0; padding: 0; margin: 1.6rem 0 0; min-width: 0; }
  .ct-step[hidden] { display: none; }
  .ct-step.on { animation: ctIn .4s cubic-bezier(.2,.8,.2,1); }
  @keyframes ctIn { from { opacity: 0; transform: translateX(14px); } to { opacity: 1; transform: none; } }
  .ct-step legend { padding: 0; font: 700 1.3rem/1.25 "Space Grotesk", sans-serif; color: var(--ink); }
  .ct-hint { margin: .35rem 0 0; font-size: .85rem; color: var(--muted); }

  .ct-chips { margin-top: 1.1rem; display: grid; grid-template-columns: repeat(2, 1fr); gap: .65rem; }
  .ct-chip { position: relative; cursor: pointer; }
  .ct-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
  .ct-chip span {
    display: flex; align-items: center; gap: .7rem; padding: .85rem 1rem; border-radius: 14px;
    border: 1.5px solid #d4efdc; background: #f7fcf8; font-weight: 600; font-size: .92rem; color: var(--ink);
    transition: border-color .2s, background .2s, transform .2s, box-shadow .2s;
  }
  .ct-chip span svg { flex: none; color: #2f8a41; }
  .ct-chip:hover span { border-color: #5cc16f; transform: translateY(-2px); }
  .ct-chip input:checked + span { border-color: #5cc16f; background: #5cc16f; color: #0f2a17; box-shadow: 0 12px 22px -16px rgba(47,138,65,.9); }
  .ct-chip input:checked + span svg { color: #0f2a17; }
  .ct-chip input:focus-visible + span { outline: 2px solid #2f8a41; outline-offset: 2px; }

  .ct-grid { margin-top: 1.1rem; display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; }
  .ct-f { position: relative; }
  .ct-f input, .ct-f textarea {
    width: 100%; font: 400 .98rem "Inter", system-ui, sans-serif; color: var(--ink);
    padding: 1.35rem 1rem .55rem; border-radius: 14px; border: 1.5px solid #d4efdc; background: #f7fcf8;
    transition: border-color .2s, box-shadow .2s, background .2s;
  }
  .ct-f textarea { resize: vertical; min-height: 140px; padding-top: .9rem; }
  .ct-f label {
    position: absolute; left: 1rem; top: 1rem; font-size: .95rem; color: #7b8a99; pointer-events: none;
    transition: top .18s, font-size .18s, color .18s; transform-origin: left;
  }
  .ct-f input:focus + label, .ct-f input:not(:placeholder-shown) + label,
  .ct-f textarea:focus + label, .ct-f textarea:not(:placeholder-shown) + label { top: .45rem; font-size: .72rem; font-weight: 600; color: #2f8a41; }
  .ct-f input:focus, .ct-f textarea:focus { outline: none; border-color: #5cc16f; background: #fff; box-shadow: 0 0 0 4px rgba(92,193,111,.2); }
  .ct-f [aria-invalid="true"] { border-color: #e03131; box-shadow: 0 0 0 4px rgba(224,49,49,.12); }
  .ct-sum { margin: .8rem 0 .9rem; display: flex; flex-wrap: wrap; gap: .4rem; }
  .ct-sum span { padding: 4px 10px; border-radius: 999px; background: #e6f5ea; color: #2f8a41; font-size: .76rem; font-weight: 700; }
  .ct-step[data-step="3"] .ct-f { margin-top: 1rem; }
  .ct-count { margin-top: .35rem; text-align: right; font-size: .75rem; color: var(--muted); }
  .ct-err { min-height: 1.2em; margin: .8rem 0 0; font-size: .85rem; color: #c92a2a; }

  .ct-nav { margin-top: auto; padding-top: 1rem; display: flex; justify-content: flex-end; gap: .7rem; }
  .ct-back {
    margin-right: auto; display: inline-flex; align-items: center; gap: 6px; cursor: pointer;
    padding: .8rem 1.1rem; border-radius: 999px; border: 1.5px solid #d4efdc; background: #fff; color: var(--ink); font: 600 .95rem "Inter", sans-serif;
    transition: border-color .2s;
  }
  .ct-back:hover { border-color: #5cc16f; }
  .ct-back[hidden], .ct-btn[hidden] { display: none; }
  .ct-btn {
    display: inline-flex; align-items: center; gap: .7rem; cursor: pointer;
    padding: .9rem 1.1rem .9rem 1.5rem; border: 0; border-radius: 999px;
    background: #5cc16f; color: #0f2a17; font: 600 1rem "Inter", sans-serif; transition: background .2s, transform .2s;
  }
  .ct-btn:hover { background: #4fb462; transform: translateY(-2px); }
  .ct-btn:focus-visible, .ct-back:focus-visible { outline: 2px solid #2f8a41; outline-offset: 3px; }
  .ct-btn span { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: #0f2a17; color: #5cc16f; }

  @media (max-width: 900px) { .ct-shell { grid-template-columns: 1fr; } .ct-map { height: 150px; } }
  @media (max-width: 560px) {
    .ct-chips, .ct-grid { grid-template-columns: 1fr; }
    .ct-steps span { font-size: 0; gap: 0; } .ct-steps b { font-size: .75rem; }
    .ct-nav { flex-wrap: wrap; } .ct-btn { flex: 1; justify-content: center; }
  }
  @media (prefers-reduced-motion: reduce) {
    .ct-ping b, .ct-nodes i, .ct-live i, .ct-step.on { animation: none; }
    .ct-track i, .ct-chip span, .ct-btn, .ct-f input, .ct-f textarea, .ct-f label, .ct-copy em { transition: none; }
    .ct-btn:hover, .ct-chip:hover span { transform: none; }
  }
  .ct-hp { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
  .ct-btn:disabled { cursor: progress; opacity: .8; transform: none; }
  .ct-btn .spin { width: 16px; height: 16px; border-radius: 50%; border: 2px solid rgba(15,42,23,.25); border-top-color: #0f2a17; animation: spin .7s linear infinite; }
  .ct-wiz .ct-status { margin-top: .8rem; }
  @media (max-width: 560px) {
    .contact { padding-left: 1rem; padding-right: 1rem; }
    .ct-side-body { padding-left: .9rem; padding-right: .9rem; }
    .ct-ch li { gap: .65rem; padding: .7rem; }
    .ct-ch .ct-ic { width: 36px; height: 36px; border-radius: 10px; }
    .ct-chx a, .ct-chx b { font-size: .86rem; word-break: normal; overflow-wrap: anywhere; }
    .ct-copy { width: 32px; height: 32px; }
  }
  .ct-status { margin: 0; display: flex; align-items: flex-start; gap: .6rem; padding: .8rem .95rem; border-radius: 12px; font-size: .88rem; line-height: 1.5; font-weight: 500; }
  .ct-status[hidden] { display: none; }
  .ct-status svg { flex: none; margin-top: 2px; }
  .ct-status.ok { background: #e6f5ea; border: 1px solid #c6ebd2; color: #1f6b30; }
  .ct-status.err { background: #fdecec; border: 1px solid #f3c4c4; color: #c92a2a; }

  .footer {
    position: relative; isolation: isolate; margin-top: var(--gap); border-radius: 24px; background: #0f2a17; color: #a9c9b3;
    padding: clamp(3rem, 5vw, 4.5rem) clamp(1.5rem, 5vw, 4.5rem) 1.5rem;
  }
  .footer::before {
    content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
    background:
      linear-gradient(rgba(92,193,111,.07) 1px, transparent 1px) 0 0 / 22px 22px,
      linear-gradient(90deg, rgba(92,193,111,.07) 1px, transparent 1px) 0 0 / 22px 22px;
    -webkit-mask: radial-gradient(circle at 100% 0, #000 10%, transparent 60%);
            mask: radial-gradient(circle at 100% 0, #000 10%, transparent 60%);
  }
  .footer::after {
    content: ""; position: absolute; left: -120px; bottom: -160px; width: 420px; height: 420px; border-radius: 50%; z-index: -1;
    background: radial-gradient(closest-side, rgba(92,193,111,.18), transparent);
  }
  .ft-inner { max-width: 1280px; margin: 0 auto; }
  .ft-main { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2.5rem 4rem; }
  .ft-logo { display: inline-block; line-height: 0; }
  .ft-logo img { height: 34px; width: auto; }
  .ft-brand p { margin-top: 1.1rem; max-width: 24rem; font-size: .92rem; line-height: 1.7; }
  .ft-pillars { margin-top: 1.3rem; display: flex; flex-wrap: wrap; gap: .5rem; }
  .ft-pillars span {
    display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px;
    background: rgba(92,193,111,.14); border: 1px solid rgba(92,193,111,.3); color: #9ff0b0; font-size: .78rem; font-weight: 600; letter-spacing: .04em;
  }
  .ft-links { display: grid; grid-template-columns: max-content max-content max-content minmax(0, 14rem); gap: 1.5rem 2.5rem; }
  .ft-contact li, .ft-contact a { display: flex; align-items: flex-start; gap: .65rem; color: #c9dfd0; font-size: .9rem; line-height: 1.5; }
  .ft-contact a { word-break: break-word; }
  .ft-ic { flex: none; width: 30px; height: 30px; margin-top: -4px; border-radius: 9px; display: grid; place-items: center; background: rgba(92,193,111,.16); color: #5cc16f; transition: background .2s, color .2s; }
  .ft-contact a:hover .ft-ic { background: #5cc16f; color: #0f2a17; }
  .ft-col h4 { font: 700 .74rem "Inter", sans-serif; letter-spacing: .12em; text-transform: uppercase; color: #5cc16f; }
  .ft-col ul { list-style: none; padding: 0; margin-top: 1rem; display: grid; gap: .65rem; }
  .ft-col a, .ft-legal a { color: #c9dfd0; text-decoration: none; font-size: .9rem; transition: color .2s; }
  .ft-col a:hover, .ft-legal a:hover { color: #fff; }
  .ft-col a:focus-visible, .ft-legal a:focus-visible, .ft-logo:focus-visible { outline: 2px solid #5cc16f; outline-offset: 3px; border-radius: 4px; }
  .ft-bottom {
    margin-top: 2.5rem; padding-top: 1.3rem; border-top: 1px solid rgba(198,235,210,.14);
    display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .8rem; font-size: .84rem;
  }
  .ft-legal { display: flex; flex-wrap: wrap; gap: 1.2rem; }
  @media (min-width: 601px) { .ft-bottom { padding-right: 84px; } }
  @media (max-width: 1280px) { .ft-main { grid-template-columns: 1fr; } .ft-brand p { max-width: 36rem; } .ft-links { justify-content: space-between; } }
  @media (max-width: 1000px) { .ft-links { grid-template-columns: 1fr 1fr; gap: 2rem 1.5rem; } .ft-contact { grid-column: 1 / -1; } }
  @media (max-width: 600px) { .ft-bottom { flex-direction: column; align-items: flex-start; } }

  .partners {
    margin-top: var(--gap); background: #e6f5ea; border-radius: 24px;
    padding: clamp(3rem, 6vw, 5rem) clamp(1.5rem, 5vw, 4.5rem);
  }
  .pt-inner { max-width: 1280px; margin: 0 auto; }
  .pt-head { display: grid; grid-template-columns: 1.1fr 1fr; gap: 1.5rem 3rem; align-items: end; }
  .pt-marquee {
    margin-top: 2.5rem; overflow: hidden;
    -webkit-mask: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
            mask: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
  }
  .pt-track { list-style: none; padding: .5rem 0; display: flex; gap: 1rem; width: max-content; animation: ptScroll 32s linear infinite; }
  .pt-marquee:hover .pt-track { animation-play-state: paused; }
  @keyframes ptScroll { to { transform: translateX(calc(-50% - .5rem)); } }
  .pt-logo {
    position: relative; overflow: hidden; isolation: isolate; flex: none; width: clamp(160px, 18vw, 210px); height: clamp(84px, 9vw, 104px);
    display: grid; place-items: center; padding: 1rem 1.2rem; border-radius: 18px; background: #fff; border: 1px solid #d4efdc;
    transition: border-color .25s, box-shadow .25s, transform .25s;
  }
  .pt-logo::before {
    content: ""; position: absolute; inset: 0; z-index: -1;
    background:
      linear-gradient(rgba(92,193,111,.08) 1px, transparent 1px) 0 0 / 16px 16px,
      linear-gradient(90deg, rgba(92,193,111,.08) 1px, transparent 1px) 0 0 / 16px 16px;
    -webkit-mask: radial-gradient(circle at 100% 0, #000, transparent 70%);
            mask: radial-gradient(circle at 100% 0, #000, transparent 70%);
  }
  .pt-logo:hover { transform: translateY(-4px); border-color: #5cc16f; box-shadow: 0 18px 32px -22px rgba(47,138,65,.6); }
  .pt-logo img { max-width: 100%; max-height: 100%; object-fit: contain; filter: grayscale(1); opacity: .75; transition: filter .25s, opacity .25s; }
  .pt-logo:hover img { filter: none; opacity: 1; }
  .pt-ph {
    display: grid; place-items: center; width: 100%; height: 100%; border-radius: 12px; border: 1.5px dashed #c6ebd2;
    color: #8fbf9b; font: 700 .72rem "Space Grotesk", sans-serif; letter-spacing: .12em; text-transform: uppercase;
  }
  @media (max-width: 900px) { .pt-head { grid-template-columns: 1fr; } }
  @media (prefers-reduced-motion: reduce) {
    .pt-track { animation: none; flex-wrap: wrap; width: auto; justify-content: center; }
    .pt-track li[aria-hidden="true"] { display: none; }
    .pt-logo { transition: none; }
  }

  .legal {
    background: #e6f5ea; border-radius: 24px;
    padding: clamp(3rem, 6vw, 5rem) clamp(1.5rem, 5vw, 4.5rem);
  }
  .lg-inner { max-width: 920px; margin: 0 auto; }
  .lg-head { text-align: center; }
  .lg-back {
    display: inline-flex; align-items: center; gap: .5rem; margin-bottom: 1.4rem; padding: .5rem .9rem; border-radius: 999px;
    background: #fff; border: 1px solid #c6ebd2; color: #2f8a41; font-size: .85rem; font-weight: 600; text-decoration: none;
    transition: background .2s, transform .2s;
  }
  .lg-back:hover { background: #f3faf5; transform: translateX(-2px); }
  .lg-title { margin-top: 1rem; font: 700 clamp(2rem, 4.4vw, 3.4rem)/1.12 "Space Grotesk", "Inter", sans-serif; letter-spacing: -0.015em; }
  .lg-title .accent { color: #5cc16f; }
  .lg-meta { margin-top: .9rem; color: var(--muted); font-size: .92rem; }
  .lg-card {
    position: relative; overflow: hidden; isolation: isolate; margin-top: 2.5rem;
    padding: clamp(1.5rem, 4vw, 3rem); border-radius: 22px; background: #fff; border: 1px solid #d4efdc;
    box-shadow: 0 30px 60px -40px rgba(47,138,65,.55);
  }
  .lg-card::before {
    content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
    background:
      linear-gradient(rgba(92,193,111,.08) 1px, transparent 1px) 0 0 / 22px 22px,
      linear-gradient(90deg, rgba(92,193,111,.08) 1px, transparent 1px) 0 0 / 22px 22px;
    -webkit-mask: radial-gradient(circle at 100% 0, #000 5%, transparent 45%);
            mask: radial-gradient(circle at 100% 0, #000 5%, transparent 45%);
  }
  .lg-card h2 {
    position: relative; margin-top: 2.2rem; padding-left: 1.1rem;
    font: 700 clamp(1.2rem, 2.2vw, 1.45rem)/1.3 "Space Grotesk", "Inter", sans-serif; color: var(--ink);
  }
  .lg-card h2::before { content: ""; position: absolute; left: 0; top: .15em; bottom: .15em; width: 4px; border-radius: 4px; background: linear-gradient(#5cc16f, #2f8a41); }
  .lg-card > h2:first-child { margin-top: 0; }
  .lg-card h3 { font: 700 1.2rem/1.3 "Space Grotesk", "Inter", sans-serif; }
  .lg-card p, .lg-card li { color: var(--muted); line-height: 1.75; font-size: .96rem; }
  .lg-card p { margin-top: .8rem; }
  .lg-card strong { color: var(--ink); }
  .lg-card a { color: #2f8a41; font-weight: 600; text-underline-offset: 3px; }
  .lg-card a:hover { color: #1f6b30; }
  .lg-card ul { list-style: none; padding: 0; margin-top: .9rem; display: grid; gap: .55rem; }
  .lg-card ul li { position: relative; padding: .65rem .9rem .65rem 2.4rem; border-radius: 12px; background: #f3faf5; border: 1px solid #e0f2e6; }
  .lg-card ul li::before { content: ""; position: absolute; left: .9rem; top: 1.05rem; width: 16px; height: 16px; border-radius: 50%; background: #5cc16f; }
  .lg-card ul li::after { content: ""; position: absolute; left: calc(.9rem + 5px); top: calc(1.05rem + 5px); width: 6px; height: 3px; border-left: 2px solid #0f2a17; border-bottom: 2px solid #0f2a17; transform: rotate(-45deg); }
  .lg-card table { width: 100%; margin-top: 1rem; border-collapse: separate; border-spacing: 0; border: 1px solid #d4efdc; border-radius: 14px; overflow: hidden; font-size: .92rem; }
  .lg-card th { text-align: left; padding: .8rem 1rem; background: #e6f5ea; color: #2f8a41; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
  .lg-card td { padding: .8rem 1rem; border-top: 1px solid #e0f2e6; color: var(--muted); vertical-align: top; }
  .lg-card .highlight-box { margin-top: 1.2rem; padding: 1rem 1.2rem; border-radius: 14px; background: #f3faf5; border: 1px solid #c6ebd2; border-left: 4px solid #5cc16f; }
  .lg-card .highlight-box p { margin: 0; }
  .lg-card .contact-box {
    margin-top: 2.4rem; padding: clamp(1.3rem, 3vw, 1.8rem); border-radius: 18px; color: #0f2a17;
    background:
      radial-gradient(circle at 1px 1px, rgba(15,42,23,.14) 1px, transparent 0) 0 0 / 14px 14px,
      linear-gradient(135deg, #5cc16f, #4fb462);
  }
  .lg-card .contact-box p { color: #16361f; }
  .lg-card .contact-box strong { color: #0f2a17; }
  .lg-card .contact-box a { color: #0f2a17; text-decoration: underline; }
  @media (max-width: 560px) {
    .lg-card th, .lg-card td { padding: .7rem .75rem; }
    .lg-card ul li { padding-right: .75rem; }
  }

  .js [data-reveal] { opacity: 0; }
  .js [data-reveal].revealed { animation: reveal-up .9s cubic-bezier(.2,.8,.2,1) var(--rd, 0s) both; }
  .js [data-reveal="left"].revealed { animation-name: reveal-left; }
  .js [data-reveal="right"].revealed { animation-name: reveal-right; }
  .js [data-reveal="zoom"].revealed { animation-name: reveal-zoom; }
  .js [data-reveal="fade"].revealed { animation-name: reveal-fade; }
  @keyframes reveal-up { from { opacity: 0; translate: 0 44px; } to { opacity: 1; translate: 0 0; } }
  @keyframes reveal-left { from { opacity: 0; translate: -64px 0; } to { opacity: 1; translate: 0 0; } }
  @keyframes reveal-right { from { opacity: 0; translate: 64px 0; } to { opacity: 1; translate: 0 0; } }
  @keyframes reveal-zoom { from { opacity: 0; scale: .9; translate: 0 20px; } to { opacity: 1; scale: 1; translate: 0 0; } }
  @keyframes reveal-fade { from { opacity: 0; } to { opacity: 1; } }
  @media (max-width: 560px) {
    .js [data-reveal="left"].revealed, .js [data-reveal="right"].revealed { animation-name: reveal-up; }
  }

  @media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .js .deck { position: relative; top: auto; }
    .js .hero.deck { animation: none; }
    .js [data-reveal] { opacity: 1; }
    .js [data-reveal].revealed { animation: none; }
    .nav-cta, .nav, .nav-menu, .nav-toggle span, .lg-back, .ft-col a, .ft-ic { transition: none; }
  }

