/* Semantic visual library and content-aware cards. */
.rich-copy {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr));
  gap: 18px;
}

.rich-copy > p,
.rich-copy > .signal-list {
  grid-column: 1 / -1;
}

.info-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 220px;
  padding: 26px;
  overflow: hidden;
  isolation: isolate;
}

.info-card.card-wide { grid-column: 1 / -1; min-height: 250px; }
.info-card.card-compact { min-height: 185px; }
.info-card.card-contact { border-color: rgba(var(--accent-rgb), .24); }
.info-card-top { position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; margin-bottom: 38px; }
.info-card-top > b { color: var(--accent); font: 600 9px Space Grotesk, sans-serif; letter-spacing: .13em; }
.info-card-symbol { position: relative; display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(var(--accent-rgb), .34); border-radius: 13px; background: linear-gradient(145deg, rgba(var(--accent-rgb), .11), rgba(255,255,255,.015)); }
.info-card-symbol::before,.info-card-symbol::after { content:""; position:absolute; background:var(--accent); }
.info-card-symbol::before { width:12px; height:2px; border-radius:9px; }
.info-card-symbol::after { width:2px; height:12px; border-radius:9px; }
.info-card-symbol i { width:5px; height:5px; border-radius:50%; background:var(--accent); box-shadow:0 0 15px var(--accent); animation:cardPulse 2.4s ease-in-out infinite; }
.card-contact .info-card-symbol::before { width:15px; height:15px; border:1px solid var(--accent); border-radius:50%; background:transparent; }
.card-contact .info-card-symbol::after { width:7px; height:1px; transform:translate(8px,8px) rotate(45deg); }
.info-card h3 { position:relative; z-index:2; margin:0 0 13px; font-size:clamp(18px,1.5vw,23px); line-height:1.12; overflow-wrap:anywhere; text-wrap:balance; }
.info-card-body { position:relative; z-index:2; display:grid; gap:11px; min-width:0; }
.info-card-body p { margin:0; color:#aebabe; font-size:14px; line-height:1.68; overflow-wrap:anywhere; word-break:normal; }
.card-list { display:grid; grid-template-columns:1fr; gap:9px; list-style:none; padding:16px 0 0; margin:5px 0 0; border-top:1px solid var(--line); }
.card-wide .card-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
.card-list li { display:grid; grid-template-columns:17px minmax(0,1fr); gap:8px; color:#b9c4c7; font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.card-list li span { color:var(--accent); }
.info-card.card-wide::before { content:""; position:absolute; inset:auto 0 0 auto; width:42%; height:72%; background:linear-gradient(135deg,transparent,rgba(var(--accent-rgb),.065)); clip-path:polygon(100% 0,100% 100%,0 100%); }
.kind-contact .info-card-body p,.kind-contact .info-card h3 { overflow-wrap:anywhere; word-break:break-word; }

/* Common semantic visual framing. */
.hero-semantic {
  position: relative;
  width: min(100%, 520px);
  min-height: 470px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 32px;
  background: radial-gradient(circle at 78% 10%, rgba(var(--accent-rgb), .15), transparent 38%), linear-gradient(145deg, rgba(255,255,255,.045), rgba(255,255,255,.012));
  box-shadow: var(--shadow);
}
.hero-semantic::after,.semantic-visual::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(110deg,transparent 25%,rgba(255,255,255,.035) 48%,transparent 70%); transform:translateX(-110%); animation:visualSheen 9s ease-in-out infinite; }
.hero-visual-label,.semantic-head { position:relative; z-index:3; display:flex; justify-content:space-between; padding:22px 24px; border-bottom:1px solid var(--line); color:var(--accent); font-size:9px; text-transform:uppercase; letter-spacing:.15em; }
.hero-visual-stage { position:relative; z-index:2; display:grid; place-items:center; min-height:335px; padding:24px; }
.hero-visual-facts { position:relative; z-index:2; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); }
.hero-visual-facts span { min-width:0; padding:15px 13px; color:#c1cbce; font-size:9px; line-height:1.35; text-align:center; overflow-wrap:anywhere; }
.hero-visual-facts span+span { border-left:1px solid var(--line); }
.hero-visual-facts small { display:block; margin-bottom:4px; color:var(--accent); font-size:8px; }
.semantic-visual { min-height:420px; }
.semantic-stage { position:relative; z-index:2; display:grid; place-items:center; min-height:315px; padding:22px; }
.semantic-foot { position:relative; z-index:2; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:13px; padding:17px 22px; border-top:1px solid var(--line); color:#75858a; font-size:8px; text-transform:uppercase; letter-spacing:.1em; }
.semantic-foot i { height:1px; background:linear-gradient(90deg,var(--accent),transparent); }
.semantic-head span { color:var(--accent); }
.semantic-stage > div,.hero-visual-stage > div { width:100%; }
.visual-seed-1 .semantic-stage,.visual-seed-1 .hero-visual-stage { transform:rotate(-1deg); }
.visual-seed-2 .semantic-stage,.visual-seed-2 .hero-visual-stage { transform:scale(.96); }
.visual-seed-3 { --visual-shift:18px; }
.visual-seed-4 .semantic-stage,.visual-seed-4 .hero-visual-stage { transform:rotate(1deg) scale(.97); }
.visual-seed-5 { --visual-shift:-14px; }

/* Search visibility module. */
.viz-search { display:grid; gap:11px; }
.search-query { display:grid; grid-template-columns:12px minmax(0,1fr) 24px; align-items:center; gap:10px; padding:13px 15px; border:1px solid rgba(var(--accent-rgb),.28); border-radius:12px; background:rgba(5,11,14,.68); }
.search-query i { width:8px; height:8px; border:2px solid var(--accent); border-radius:50%; }
.search-query span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:#cbd3d5; font-size:10px; }
.search-query b { color:var(--accent); }
.serp-row { display:grid; grid-template-columns:34px minmax(0,1fr) 38px; align-items:center; gap:10px; padding:13px; border:1px solid var(--line); border-radius:11px; background:rgba(255,255,255,.018); }
.serp-row strong { color:var(--accent); font-size:11px; }
.serp-row span { height:6px; border-radius:9px; background:linear-gradient(90deg,rgba(var(--accent-rgb),.7),rgba(255,255,255,.06)); transform-origin:left; animation:searchGrow 4s ease-in-out infinite; }
.serp-row:nth-child(3) span { width:78%; animation-delay:-1.2s; }.serp-row:nth-child(4) span { width:58%; animation-delay:-2.4s; }
.serp-row em { color:#76dca8; font-style:normal; font-size:9px; }

/* Social graph. */
.viz-social,.viz-commerce,.viz-people,.viz-contact { position:relative; height:270px; }
.viz-social svg,.viz-commerce svg,.viz-people svg { position:absolute; inset:0; width:100%; height:100%; }
.viz-social svg path,.viz-commerce svg path,.viz-people svg path { fill:none; stroke:rgba(var(--accent-rgb),.24); stroke-width:1; stroke-dasharray:5 7; animation:contextDash 9s linear infinite; }
.social-core,.commerce-core,.people-core { position:absolute; z-index:2; left:50%; top:50%; translate:-50% -50%; display:grid; place-items:center; width:94px; height:94px; border-radius:50%; background:var(--accent); color:#071013; font:700 25px Space Grotesk; box-shadow:0 0 45px rgba(var(--accent-rgb),.25); }
.bubble,.channel,.person { position:absolute; z-index:3; display:grid; place-items:center; width:48px; height:48px; border:1px solid rgba(var(--accent-rgb),.34); border-radius:15px; background:rgba(7,14,17,.88); color:var(--accent); font-style:normal; font:700 10px Space Grotesk; animation:nodeFloat 5s ease-in-out infinite; }
.b1,.c1,.p1{left:5%;top:4%}.b2,.c2,.p2{right:4%;top:9%;animation-delay:-1s}.b3,.c3,.p3{left:8%;bottom:4%;animation-delay:-2s}.b4,.c4,.p4{right:6%;bottom:5%;animation-delay:-3s}
.viz-social>strong,.viz-commerce>p,.viz-people>p,.viz-contact>p { position:absolute; z-index:4; left:50%; bottom:0; translate:-50% 0; width:80%; margin:0; color:#c4cdcf; font:600 11px/1.35 Space Grotesk; text-align:center; overflow-wrap:anywhere; }

/* Web experience module. */
.viz-web { position:relative; height:275px; }
.browser { position:absolute; border:1px solid var(--line); border-radius:14px; background:#0b1216; box-shadow:0 24px 50px rgba(0,0,0,.3); }
.browser.b-back { inset:22px 4px 2px 62px; transform:rotate(4deg); background:rgba(var(--accent-rgb),.07); }
.browser.b-front { inset:0 36px 28px 0; padding:58px 22px 20px; overflow:hidden; }
.browser-bar { position:absolute; left:0; right:0; top:0; height:38px; display:flex; align-items:center; gap:6px; padding:0 13px; border-bottom:1px solid var(--line); }
.browser-bar i { width:6px; height:6px; border-radius:50%; background:var(--accent); opacity:.55; }
.browser strong { display:block; max-width:230px; font:600 16px/1.15 Space Grotesk; overflow-wrap:anywhere; }
.code-line { display:block; width:88%; height:6px; margin-top:20px; border-radius:9px; background:rgba(var(--accent-rgb),.45); }.code-line.short{width:55%;margin-top:9px;opacity:.55}
.web-blocks { display:grid; grid-template-columns:1.4fr .8fr .8fr; gap:7px; margin-top:24px; }.web-blocks i{height:54px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.025)}
.web-cursor { position:absolute; z-index:5; right:20px; bottom:14px; display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:var(--accent); color:#071013; animation:cursorMove 5s ease-in-out infinite; }

/* Analytics module. */
.viz-data { position:relative; height:275px; }
.data-metric { position:absolute; z-index:2; left:16px; top:4px; }.data-metric small{display:block;color:var(--accent);font-size:8px;letter-spacing:.13em}.data-metric strong{font:600 31px Space Grotesk}
.viz-data svg { position:absolute; inset:30px 0 15px; width:100%; height:230px; overflow:visible; }
.grid-line { fill:none; stroke:rgba(255,255,255,.06); stroke-width:1; }.data-line{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;filter:drop-shadow(0 0 8px rgba(var(--accent-rgb),.4));stroke-dasharray:500;animation:drawLine 5s ease-in-out infinite}.viz-data circle{fill:var(--bg);stroke:var(--accent);stroke-width:3}
.viz-data>p { position:absolute; right:6px; bottom:0; max-width:190px; margin:0; color:#b9c4c7; font:600 10px/1.35 Space Grotesk; text-align:right; overflow-wrap:anywhere; }

/* Content publishing stack. */
.viz-content { position:relative; height:275px; perspective:900px; }
.viz-content article { position:absolute; width:72%; min-height:165px; padding:20px; border:1px solid var(--line); border-radius:16px; background:#0b1216; box-shadow:var(--shadow); }
.viz-content article:nth-child(1){left:0;top:0;z-index:3}.viz-content article:nth-child(2){right:0;top:42px;z-index:2;transform:rotate(4deg);opacity:.8}.viz-content article:nth-child(3){left:18%;bottom:0;z-index:4;min-height:62px;width:55%;background:rgba(var(--accent-rgb),.12)}
.viz-content small{color:var(--accent);font-size:8px;letter-spacing:.12em}.viz-content strong{display:block;max-width:200px;margin-top:18px;font:600 15px/1.2 Space Grotesk;overflow-wrap:anywhere}.viz-content article>i{display:block;width:78%;height:5px;margin-top:12px;border-radius:8px;background:rgba(255,255,255,.09)}.viz-content article>i+ i{width:52%}.viz-content article>b{color:var(--accent);font-size:24px}

/* Commerce hub. */
.commerce-core { grid-template-rows:auto auto; background:linear-gradient(145deg,var(--accent),var(--gold)); }
.commerce-core small{font-size:7px;letter-spacing:.1em}.commerce-core strong{font-size:24px}.viz-commerce>p{bottom:-2px}

/* Fleet route. */
.viz-fleet { position:relative; height:275px; }
.fleet-stat { position:absolute; z-index:3; left:12px; top:4px; }.fleet-stat small{display:block;color:var(--accent);font-size:8px;letter-spacing:.12em}.fleet-stat strong{font:600 24px Space Grotesk}
.viz-fleet svg { position:absolute; inset:18px 0 20px; width:100%; height:250px; overflow:visible; }.viz-fleet .route{fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:7 8;animation:contextDash 7s linear infinite}.viz-fleet circle{fill:#0b1216;stroke:var(--accent);stroke-width:3}.vehicle{position:absolute;z-index:4;left:38%;top:37%;color:var(--accent);font-size:25px;filter:drop-shadow(0 0 9px rgba(var(--accent-rgb),.5));animation:vehicleMove 7s ease-in-out infinite}.viz-fleet>p{position:absolute;right:4px;bottom:0;max-width:190px;margin:0;color:#b9c4c7;font:600 10px/1.35 Space Grotesk;text-align:right;overflow-wrap:anywhere}

/* Utility gauges. */
.viz-utility { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; align-items:center; }
.gauge { position:relative; aspect-ratio:1; display:grid; place-content:center; text-align:center; border:10px solid rgba(255,255,255,.055); border-top-color:var(--accent); border-right-color:rgba(var(--accent-rgb),.45); border-radius:50%; animation:gaugeTurn 7s ease-in-out infinite; }.gauge:nth-child(2){animation-delay:-2s}.gauge:nth-child(3){animation-delay:-4s}.gauge strong,.gauge small{animation:gaugeCounter 7s ease-in-out infinite}.gauge strong{font:600 19px Space Grotesk}.gauge small{color:var(--accent);font-size:7px;letter-spacing:.1em}.viz-utility>p{grid-column:1/-1;margin:5px 0 0;color:#b9c4c7;font:600 10px Space Grotesk;text-align:center;overflow-wrap:anywhere}

/* Brand spectrum. */
.viz-brand { position:relative; height:270px; display:grid; place-content:center; text-align:center; }.brand-orb{position:absolute;border-radius:50%;mix-blend-mode:screen;filter:blur(2px);animation:brandMorph 8s ease-in-out infinite}.brand-orb.o1{width:150px;height:150px;left:13%;top:10%;background:rgba(var(--accent-rgb),.25)}.brand-orb.o2{width:145px;height:145px;right:14%;top:18%;background:rgba(247,127,0,.22);animation-delay:-2.5s}.brand-orb.o3{width:120px;height:120px;left:36%;bottom:5%;background:rgba(0,126,167,.25);animation-delay:-5s}.viz-brand strong{position:relative;z-index:3;font:600 70px/.8 Space Grotesk;letter-spacing:-.08em}.viz-brand span{position:relative;z-index:3;max-width:220px;margin-top:18px;font:600 11px/1.3 Space Grotesk;overflow-wrap:anywhere}.viz-brand>i{position:absolute;z-index:3;left:50%;bottom:0;translate:-50% 0;width:100%;color:var(--accent);font-size:7px;letter-spacing:.14em;font-style:normal}

/* People constellation. */
.people-core { grid-template-rows:auto auto; }.people-core strong{font-size:22px}.people-core small{font-size:6px;letter-spacing:.08em}.viz-people>p{bottom:-2px}

/* FAQ stack. */
.viz-faq { position:relative; display:grid; grid-template-columns:80px 1fr; gap:18px; align-items:center; }.viz-faq>span{display:grid;place-items:center;width:76px;height:76px;border-radius:24px;background:var(--accent);color:#071013;font:700 42px Space Grotesk;animation:faqTilt 5s ease-in-out infinite}.viz-faq>div{display:grid;gap:9px}.viz-faq p{display:grid;grid-template-columns:25px minmax(0,1fr) 18px;gap:8px;align-items:center;margin:0;padding:13px;border:1px solid var(--line);border-radius:11px;color:#b9c4c7;font-size:9px;overflow-wrap:anywhere}.viz-faq p b{color:var(--accent);font-size:8px}.viz-faq p i{color:var(--accent);font-style:normal;font-size:16px}

/* Contact beacon. */
.beacon { position:absolute;left:50%;top:46%;translate:-50% -50%;display:grid;place-items:center;width:104px;height:104px;border-radius:50%;background:var(--accent);color:#071013;box-shadow:0 0 50px rgba(var(--accent-rgb),.24)}.beacon i{position:absolute;inset:-34px;border:1px solid rgba(var(--accent-rgb),.22);border-radius:50%;animation:beacon 3s ease-out infinite}.beacon i:nth-child(2){inset:-70px;animation-delay:-1s}.beacon i:nth-child(3){inset:-106px;animation-delay:-2s}.contact-point{position:absolute;z-index:3;display:grid;place-items:center;width:45px;height:45px;border:1px solid rgba(var(--accent-rgb),.35);border-radius:50%;background:#0b1216;color:var(--accent);font:700 9px Space Grotesk}.cp1{left:5%;top:8%}.cp2{right:6%;top:21%}.cp3{left:16%;bottom:5%}.viz-contact>p{bottom:-2px}

/* Growth staircase. */
.viz-growth { height:270px; display:flex; align-items:end; gap:10px; position:relative; }.growth-step{flex:1;position:relative;height:28%;border:1px solid var(--line);border-radius:12px 12px 3px 3px;background:linear-gradient(to top,rgba(var(--accent-rgb),.08),rgba(var(--accent-rgb),.3));animation:stepGrow 5s ease-in-out infinite}.growth-step.s2{height:45%;animation-delay:-1s}.growth-step.s3{height:64%;animation-delay:-2s}.growth-step.s4{height:88%;animation-delay:-3s}.growth-step small{position:absolute;left:10px;top:9px;color:var(--accent);font-size:8px}.growth-step i{position:absolute;left:10px;right:10px;bottom:10px;height:3px;background:var(--accent);border-radius:8px}.viz-growth>strong{position:absolute;left:0;top:4px;max-width:240px;font:600 15px/1.2 Space Grotesk;overflow-wrap:anywhere}

/* Abstract fallbacks remain unique through seed transformations. */
.viz-abstract { position:relative;height:270px;display:grid;place-content:center;text-align:center}.shape{position:absolute;border:1px solid rgba(var(--accent-rgb),.32);animation:spin 16s linear infinite}.sh1{width:190px;height:190px;left:14%;top:5%;border-radius:38% 62% 48% 52%}.sh2{width:150px;height:150px;right:10%;bottom:4%;border-radius:50%;animation-direction:reverse}.sh3{width:80px;height:80px;left:50%;top:50%;translate:-50% -50%;background:rgba(var(--accent-rgb),.12);transform:rotate(45deg)}.viz-abstract>div{position:relative;z-index:3;max-width:230px}.viz-abstract small{color:var(--accent);font-size:8px;letter-spacing:.13em}.viz-abstract strong{display:block;margin-top:10px;font:600 17px/1.2 Space Grotesk;overflow-wrap:anywhere}
.visual-blueprint .viz-abstract { background-image:linear-gradient(rgba(var(--accent-rgb),.06) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--accent-rgb),.06) 1px,transparent 1px);background-size:28px 28px }.visual-blueprint .sh1,.visual-blueprint .sh2{border-radius:8px;transform:rotate(8deg)}
.visual-pulse .sh1,.visual-pulse .sh2,.visual-pulse .sh3{left:50%;top:50%;translate:-50% -50%;border-radius:50%;background:transparent;animation:pulseRings 4s ease-out infinite}.visual-pulse .sh2{animation-delay:-1.3s}.visual-pulse .sh3{animation-delay:-2.6s}
.visual-matrix .viz-abstract{background:repeating-linear-gradient(90deg,transparent 0 34px,rgba(var(--accent-rgb),.045) 35px 36px)}.visual-matrix .sh1,.visual-matrix .sh2,.visual-matrix .sh3{border-radius:5px;transform:none}.visual-matrix .sh1{width:120px;height:120px}.visual-matrix .sh2{width:90px;height:90px}.visual-matrix .sh3{width:55px;height:55px}
.visual-spectrum .sh1{background:conic-gradient(from 40deg,rgba(var(--accent-rgb),.3),rgba(247,127,0,.22),rgba(0,126,167,.25),rgba(var(--accent-rgb),.3));border:0;filter:blur(4px)}.visual-spectrum .sh2{border-style:dashed}.visual-spectrum .sh3{border-radius:50%;transform:none}
.visual-ledger .viz-abstract{background:repeating-linear-gradient(0deg,transparent 0 42px,rgba(255,255,255,.06) 43px 44px)}.visual-ledger .sh1{width:80%;height:1px;left:10%;top:30%;border:0;background:var(--accent);border-radius:0}.visual-ledger .sh2{width:58%;height:1px;right:10%;bottom:28%;border:0;background:rgba(var(--accent-rgb),.45);border-radius:0}.visual-ledger .sh3{width:44px;height:44px;left:18%;top:50%;border-radius:8px}
.visual-constellation .viz-abstract::before{content:"";position:absolute;inset:25px;background-image:radial-gradient(circle,var(--accent) 0 2px,transparent 3px);background-size:56px 56px;opacity:.7}.visual-constellation .sh1,.visual-constellation .sh2{border-style:dashed}

@keyframes cardPulse{50%{opacity:.35;transform:scale(.6)}}
@keyframes visualSheen{0%,65%{transform:translateX(-110%)}85%,100%{transform:translateX(110%)}}
@keyframes searchGrow{50%{transform:scaleX(.62);opacity:.5}}
@keyframes nodeFloat{50%{transform:translateY(-8px) rotate(3deg)}}
@keyframes cursorMove{50%{transform:translate(-36px,-22px) rotate(-8deg)}}
@keyframes drawLine{0%,15%{stroke-dashoffset:500}60%,100%{stroke-dashoffset:0}}
@keyframes vehicleMove{50%{transform:translate(88px,-54px) rotate(-15deg)}}
@keyframes gaugeTurn{50%{transform:rotate(22deg)}}
@keyframes gaugeCounter{50%{transform:rotate(-22deg)}}
@keyframes brandMorph{50%{transform:translate(18px,12px) scale(1.14);border-radius:35% 65% 58% 42%}}
@keyframes faqTilt{50%{transform:rotate(-8deg) translateY(-6px)}}
@keyframes beacon{0%{opacity:.8;transform:scale(.45)}100%{opacity:0;transform:scale(1.2)}}
@keyframes stepGrow{50%{transform:scaleY(.75);opacity:.65}}
@keyframes pulseRings{0%{opacity:.7;transform:scale(.45)}100%{opacity:0;transform:scale(1.22)}}

@media (max-width:1100px) {
  .hero-semantic { width:min(100%,620px); }
  .semantic-visual { min-height:390px; }
  .semantic-stage { min-height:285px; }
  .info-card.card-wide { grid-column:auto; }
  .card-wide .card-list { grid-template-columns:1fr; }
}

@media (max-width:720px) {
  .hero-semantic { min-height:410px; border-radius:24px; }
  .hero-visual-stage { min-height:285px; padding:17px; }
  .hero-visual-facts span { padding:12px 7px; font-size:8px; }
  .semantic-visual { min-height:350px; }
  .semantic-stage { min-height:250px; padding:16px; }
  .semantic-foot { padding:14px 16px; }
  .info-card,.info-card.card-wide,.info-card.card-compact { min-height:0; padding:22px; }
  .info-card-top { margin-bottom:27px; }
  .card-wide .card-list { grid-template-columns:1fr; }
  .viz-utility { gap:6px; }.gauge{border-width:7px}.gauge strong{font-size:15px}
}

@media (prefers-reduced-motion:reduce) {
  .hero-semantic *,.semantic-visual * { animation:none!important; }
}
