.ecosystem-home {
    --ecosystem-blue: #4f46e5;
    --ecosystem-telecom: #7c3aed;
    --ecosystem-fiber: #0891b2;
    --ecosystem-forensics: #4338ca;
    overflow: hidden;
}

.home-section { padding-block: clamp(2.75rem, 5vw, 4.25rem); }
.section-intro { max-width: 690px; }
.section-intro > p:last-child { color: #64748b; }
.section-heading { font-size: clamp(1.8rem, 3.5vw, 2.65rem); font-weight: 750; }

.ecosystem-hero {
    position: relative;
    border-bottom: 1px solid #e7eaf2;
    background: #f7f9ff;
}
.ecosystem-hero::before {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle, rgba(79, 70, 229, .13) 1px, transparent 1px);
    background-size: 24px 24px;
    mask-image: linear-gradient(to right, #000 0%, transparent 63%);
    content: "";
    pointer-events: none;
}
.ecosystem-hero .container { position: relative; z-index: 1; }
.ecosystem-hero-inner { padding-block: clamp(2.75rem, 5vw, 4rem); }
.ecosystem-hero h1 { max-width: 760px; color: #111827; font-size: clamp(2.65rem, 5.5vw, 4.65rem); line-height: 1; letter-spacing: -.06em; }
.hero-typewriter-visual { display: grid; }
.hero-typewriter-slot { display: inline-flex; min-width: 12.5ch; align-items: baseline; color: var(--ecosystem-blue); white-space: nowrap; }
.hero-typewriter-cursor { display: inline-block; width: .075em; height: .82em; margin-left: .08em; background: currentColor; animation: hero-cursor-blink .7s step-end infinite; }
@keyframes hero-cursor-blink { 0%, 45% { opacity: 1; } 46%, 100% { opacity: 0; } }
.ecosystem-hero-copy { max-width: 700px; color: #5b667a; font-size: clamp(1rem, 1.8vw, 1.18rem); line-height: 1.65; }
.ecosystem-search { max-width: 740px; padding: .38rem; border: 1px solid #dbe1ee; border-radius: 1rem; background: #fff; box-shadow: 0 10px 28px rgba(30, 41, 59, .07); }
.ecosystem-search .form-control { min-height: 2.7rem; border: 0; box-shadow: none; }
.ecosystem-search .btn { border-radius: .72rem; }

.ecosystem-orbit { position: relative; min-height: 350px; }
.ecosystem-orbit::before,
.ecosystem-orbit::after { position: absolute; border: 1px dashed rgba(79, 70, 229, .22); border-radius: 50%; content: ""; }
.ecosystem-orbit::before { inset: 38px 18px; }
.ecosystem-orbit::after { inset: 87px 70px; }
.ecosystem-orbit-core,
.orbit-node { position: absolute; z-index: 2; display: grid; place-items: center; border: 1px solid #dde3f0; background: #fff; box-shadow: 0 10px 26px rgba(30, 41, 59, .08); }
.ecosystem-orbit-core { top: 50%; left: 50%; width: 8.3rem; height: 8.3rem; padding: 1rem; border-radius: 1.7rem; transform: translate(-50%, -50%); }
.ecosystem-orbit-core i { color: var(--ecosystem-blue); font-size: 1.75rem; }
.ecosystem-orbit-core strong { font-size: 1.2rem; line-height: 1; }
.ecosystem-orbit-core span { color: #64748b; font-size: .68rem; text-transform: uppercase; letter-spacing: .1em; }
.orbit-node { width: 5.85rem; min-height: 4.75rem; padding: .65rem; border-radius: 1.05rem; color: #334155; font-size: .65rem; font-weight: 700; }
.orbit-node i { margin-bottom: .2rem; font-size: 1.3rem; }
.orbit-node-network { top: 0; left: 50%; color: var(--ecosystem-blue); transform: translateX(-50%); }
.orbit-node-telecom { top: 28%; right: 0; color: var(--ecosystem-telecom); }
.orbit-node-fiber { right: 12%; bottom: 0; color: var(--ecosystem-fiber); }
.orbit-node-forensics { bottom: 0; left: 10%; color: var(--ecosystem-forensics); }
.orbit-node-map { top: 28%; left: 0; color: #059669; }

.labs-showcase { border-bottom: 1px solid #e6eaf2; background: #f6f8fc; }
.lab-card {
    --lab-accent: var(--ecosystem-blue);
    display: flex;
    min-height: 180px;
    flex-direction: column;
    padding: clamp(1.1rem, 2vw, 1.35rem);
    border: 1px solid #e1e6f0;
    border-left: 3px solid var(--lab-accent);
    border-radius: 1.25rem;
    background: #fff;
    box-shadow: 0 4px 14px rgba(30, 41, 59, .035);
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.lab-card:hover { transform: translateY(-2px); border-color: #cbd5e1; border-left-color: var(--lab-accent); box-shadow: 0 8px 20px rgba(30, 41, 59, .06); }
.lab-card-network { --lab-accent: var(--ecosystem-blue); }
.lab-card-telecom { --lab-accent: var(--ecosystem-telecom); }
.lab-card-fiber { --lab-accent: var(--ecosystem-fiber); }
.lab-card-forensics { --lab-accent: var(--ecosystem-forensics); }
.lab-card-heading { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .65rem; }
.lab-card-icon { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border-radius: .75rem; background: #eef2ff; color: var(--lab-accent); font-size: 1.15rem; }
.lab-card-telecom .lab-card-icon { background: #f5f3ff; }
.lab-card-fiber .lab-card-icon { background: #ecfeff; }
.lab-beta-badge { display: inline-flex; align-items: center; gap: .35rem; padding: .28rem .52rem; border: 1px solid #c7d2fe; border-radius: 99rem; color: #4338ca; background: #eef2ff; font-size: .65rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.lab-beta-badge span { width: .34rem; height: .34rem; border-radius: 50%; background: #6366f1; }
.lab-card-body { display: grid; min-width: 0; flex: 1; grid-template-columns: minmax(0, 1fr) minmax(92px, 28%); align-items: center; gap: .85rem; }
.lab-card-copy { display: flex; min-width: 0; align-self: stretch; flex-direction: column; }
.lab-card h3 { margin: 0 0 .3rem; font-size: 1.18rem; font-weight: 750; letter-spacing: -.02em; }
.lab-card-copy > p { display: -webkit-box; margin: 0 0 .65rem; overflow: hidden; color: #64748b; font-size: .84rem; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.lab-card-footer { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.lab-feature-list { display: flex; min-width: 0; flex-wrap: wrap; gap: .28rem; }
.lab-feature-list li { color: #64748b; font-size: .68rem; font-weight: 650; }
.lab-feature-list li:not(:last-child)::after { margin-left: .28rem; color: #cbd5e1; content: "·"; }
.lab-open-link { flex: 0 0 auto; color: var(--lab-accent); font-size: .75rem; font-weight: 750; text-decoration: none; }
.lab-open-link:hover { text-decoration: underline; }
.lab-illustration { display: grid; width: 100%; max-width: 136px; justify-self: end; color: var(--lab-accent); opacity: .82; pointer-events: none; transition: transform .22s ease, opacity .22s ease; }
.lab-illustration-svg { display: block; width: 100%; height: auto; }
.lab-illustration-panel { fill: currentColor; opacity: .055; }
.lab-illustration-node { fill: #fff; }
.lab-illustration-signal { fill: currentColor; }
.lab-card:hover .lab-illustration { opacity: .9; transform: translateY(-2px) scale(1.02); }

.home-featured-tools .tool-card { min-height: 142px; padding: 1rem; box-shadow: 0 3px 12px rgba(30, 41, 59, .025); }
.home-featured-tools .tool-icon { width: 2.8rem; height: 2.8rem; border-radius: .8rem; font-size: 1.15rem; }
.home-featured-tools .tool-card-description { -webkit-line-clamp: 2; }

.home-categories .category-card { padding: 1.3rem; border-radius: 1.35rem; box-shadow: 0 3px 12px rgba(30, 41, 59, .025); }
.home-categories .category-card:hover { transform: translateY(-2px); box-shadow: 0 7px 18px rgba(30, 41, 59, .055); }
.home-categories .category-card-top { margin-bottom: 1rem; }
.home-categories .category-icon { width: 3rem; height: 3rem; border-radius: .85rem; font-size: 1.35rem; }
.home-categories .category-card-title { margin-bottom: .35rem; font-size: 1.3rem; }
.home-categories .category-card-description { display: -webkit-box; min-height: 3rem; overflow: hidden; font-size: .9rem; line-height: 1.5; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.home-categories .category-count { padding: .35rem .55rem; font-size: .7rem; }

.compact-tools-section { border-top: 1px solid #eef1f6; }
.compact-tools-section .tool-card { min-height: 92px; gap: .75rem; padding: .9rem; border-radius: 1rem; box-shadow: none; }
.compact-tools-section .tool-card:hover { transform: translateY(-1px); box-shadow: 0 5px 14px rgba(30, 41, 59, .045); }
.compact-tools-section .tool-icon { width: 2.55rem; height: 2.55rem; border-radius: .72rem; font-size: 1.05rem; }
.compact-tools-section .tool-card-category { margin-bottom: .2rem; font-size: .62rem; }
.compact-tools-section .tool-card-title { margin-bottom: .2rem; font-size: .95rem; }
.compact-tools-section:not(.new-tools-section) .tool-card-description { display: none; }
.new-tools-section { padding-top: 0; border-top: 0; }
.new-tools-section .tool-card-description { font-size: .78rem; -webkit-line-clamp: 2; }

.home-support-section { padding-bottom: clamp(2.25rem, 4vw, 3.5rem); }
.browser-privacy-card { display: flex; min-height: 70px; align-items: center; gap: .85rem; padding: 1rem 1.2rem; border: 1px solid #dce3ef; border-radius: 1.15rem; background: #f8faff; color: #475569; }
.browser-privacy-icon { display: grid; width: 2.35rem; height: 2.35rem; flex: 0 0 auto; place-items: center; border-radius: .72rem; background: #e0e7ff; color: var(--ecosystem-blue); font-size: 1.05rem; }
.browser-privacy-card strong { margin-right: auto; color: #172033; font-size: .95rem; }
.browser-trust-item { display: inline-flex; align-items: center; gap: .85rem; font-size: .8rem; white-space: nowrap; }
.browser-trust-item::before { color: #a5b4fc; content: "•"; }

.home-labs-promo-section { padding-bottom: clamp(2.25rem, 4vw, 3.5rem); }
.home-labs-promo { display: flex; min-height: 158px; align-items: center; gap: clamp(1rem, 2.5vw, 1.75rem); padding: clamp(1.2rem, 2.5vw, 1.65rem); border: 1px solid #dce3ef; border-radius: 1.35rem; background: #f8faff; }
.home-labs-promo-visual { display: grid; width: 116px; height: 104px; flex: 0 0 auto; grid-template-columns: repeat(2, 1fr); gap: .45rem; padding: .55rem; border: 1px solid #dbe3f3; border-radius: 1rem; background: #fff; color: var(--ecosystem-blue); }
.home-labs-promo-visual span { display: grid; place-items: center; border-radius: .65rem; background: #eef2ff; font-size: 1.05rem; }
.home-labs-promo-visual span:nth-child(2) { color: var(--ecosystem-telecom); background: #f5f3ff; }
.home-labs-promo-visual span:nth-child(3) { color: var(--ecosystem-fiber); background: #ecfeff; }
.home-labs-promo-visual span:nth-child(4) { color: var(--ecosystem-forensics); background: #eef2ff; }
.home-labs-promo-copy { min-width: 0; flex: 1; }
.home-labs-promo-copy > p:not(.hero-kicker) { max-width: 680px; color: #64748b; font-size: .88rem; }
.home-labs-promo-chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.home-labs-promo-chips li { display: inline-flex; align-items: center; gap: .35rem; padding: .3rem .55rem; border: 1px solid #dce3ef; border-radius: 99rem; background: #fff; color: #475569; font-size: .68rem; font-weight: 650; white-space: nowrap; }
.home-labs-promo-chips i { color: var(--ecosystem-blue); }
.home-labs-promo-cta { flex: 0 0 auto; white-space: nowrap; }

.home-cta-section { padding-bottom: clamp(2.75rem, 5vw, 4rem); }
.ecosystem-cta { display: flex; min-height: 116px; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.5rem 1.75rem; border-radius: 1.35rem; background: #172033; color: #fff; }
.ecosystem-cta .hero-kicker { color: #a5b4fc; }
.ecosystem-cta h2 { font-size: 1.5rem; }
.ecosystem-cta p:last-child { max-width: 720px; color: #cbd5e1; font-size: .9rem; }
.ecosystem-cta .btn { flex: 0 0 auto; }

@media (max-width: 991.98px) {
    .ecosystem-orbit { min-height: 310px; }
    .browser-privacy-card { flex-wrap: wrap; }
    .browser-privacy-card strong { flex: 1 0 calc(100% - 3.25rem); }
    .browser-trust-item:first-of-type { margin-left: 3.2rem; }
    .home-labs-promo { flex-wrap: wrap; }
    .home-labs-promo-copy { flex: 1 1 calc(100% - 150px); }
    .home-labs-promo-cta { margin-left: 132px; }
}

@media (max-width: 767.98px) {
    .home-section { padding-block: 3rem; }
    .lab-card { min-height: 170px; }
    .lab-card-body { grid-template-columns: minmax(0, 1fr) minmax(82px, 25%); gap: .65rem; }
    .home-categories .category-card-description { min-height: 0; }
}

@media (max-width: 575.98px) {
    .home-section { padding-block: 2.5rem; }
    .ecosystem-hero-inner { padding-block: 2.5rem; }
    .ecosystem-hero h1 { font-size: clamp(2.5rem, 13vw, 3.4rem); }
    .ecosystem-hero .btn-lg { width: 100%; }
    .ecosystem-hero .btn-link { width: 100%; padding-inline: 0; text-align: left; }
    .ecosystem-search .btn { min-height: 2.8rem; }
    .lab-card { min-height: 0; border-radius: 1.1rem; }
    .lab-card-body { grid-template-columns: minmax(0, 1fr) 88px; }
    .lab-illustration { align-self: start; opacity: .7; }
    .lab-card-footer { align-items: flex-start; flex-direction: column; gap: .55rem; }
    .compact-tools-section .tool-card { min-height: 86px; }
    .browser-privacy-card { gap: .65rem; }
    .browser-privacy-card strong { flex-basis: calc(100% - 3rem); }
    .browser-trust-item { flex: 1 0 100%; white-space: normal; }
    .browser-trust-item:first-of-type { margin-left: 0; }
    .browser-trust-item::before { width: 2.35rem; text-align: center; }
    .home-labs-promo { min-height: 0; align-items: flex-start; }
    .home-labs-promo-visual { width: 92px; height: 84px; }
    .home-labs-promo-copy { flex-basis: calc(100% - 110px); }
    .home-labs-promo-cta { width: 100%; margin-left: 0; }
    .ecosystem-cta { min-height: 0; align-items: flex-start; flex-direction: column; padding: 1.35rem; }
    .ecosystem-cta .btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .hero-typewriter-cursor { display: none; animation: none; }
    .lab-card { transition: none; }
    .lab-card:hover { transform: none; }
    .lab-illustration { transition: none; }
    .lab-card:hover .lab-illustration { opacity: .82; transform: none; }
}

@media (max-width: 419.98px) {
    .lab-card-body { display: block; }
    .lab-illustration { display: none; }
    .home-labs-promo { flex-direction: column; }
    .home-labs-promo-visual { width: 100%; height: 68px; grid-template-columns: repeat(4, 1fr); }
    .home-labs-promo-copy { flex-basis: auto; }
}
