/* Portada — Circuito Cantarero */
.ic-hero { position: relative; min-height: 100svh; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(126px, 14vh, 170px) 0 25px; overflow: hidden; background: var(--ic-paper); }
.ic-hero::before { position: absolute; inset: 0; content: ""; opacity: .28; pointer-events: none; background-image: linear-gradient(rgba(16,24,43,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(16,24,43,.08) 1px, transparent 1px); background-size: 72px 72px; -webkit-mask-image: linear-gradient(to bottom, #000 0%, transparent 80%); mask-image: linear-gradient(to bottom, #000 0%, transparent 80%); }
.ic-hero::after { position: absolute; top: 0; right: 0; width: 47%; height: 100%; content: ""; pointer-events: none; background: linear-gradient(135deg, transparent 20%, rgba(56,182,255,.08), rgba(81,112,255,.13)); clip-path: polygon(26% 0, 100% 0, 100% 100%, 0 100%); }
.ic-hero__coordinates { position: absolute; z-index: 2; top: 112px; right: var(--ic-pad); display: flex; gap: 17px; color: rgba(16,24,43,.45); font-family: var(--ic-mono); font-size: .54rem; letter-spacing: .08em; writing-mode: vertical-rl; }
.ic-hero__layout { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, .94fr) minmax(480px, 1.06fr); align-items: center; gap: clamp(45px, 6vw, 95px); }
.ic-hero__copy { max-width: 700px; }
.ic-hero h1 { max-width: 780px; margin: 0; font-size: clamp(4rem, 7.2vw, 7.4rem); font-weight: 620; letter-spacing: -.075em; line-height: .92; }
.ic-hero h1 .ic-word { display: inline-block; overflow: hidden; vertical-align: top; }
.ic-hero h1 .ic-word > span { display: inline-block; }
.ic-hero h1 .ic-word:nth-last-child(-n+4) { color: var(--ic-signal); }
.ic-hero__lead { max-width: 610px; margin: 34px 0 0; color: var(--ic-steel); font-size: clamp(1rem, 1.4vw, 1.18rem); line-height: 1.7; }
.ic-hero .ic-action-row { margin-top: 38px; }

.ic-hero-system { position: relative; min-width: 0; overflow: hidden; color: var(--ic-ink); background: rgba(255,255,255,.42); border: 1px solid rgba(81,112,255,.18); border-radius: 18px; box-shadow: 0 30px 90px rgba(33,55,110,.08); isolation: isolate; backdrop-filter: blur(12px); }
.ic-system-caption { min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 clamp(18px, 3vw, 28px); border-bottom: 1px solid var(--ic-line); font-family: var(--ic-mono); font-size: clamp(.68rem, .75vw, .76rem); letter-spacing: .08em; }
.ic-system-caption b { display: flex; align-items: center; gap: 8px; color: var(--ic-signal-dark); font-weight: 700; }
.ic-system-caption b::before { width: 6px; height: 6px; content: ""; background: var(--ic-sky); border-radius: 50%; box-shadow: 0 0 0 5px rgba(56,182,255,.12); }
.ic-system-body { position: relative; min-height: 460px; display: grid; grid-template-columns: minmax(0, 1fr) 148px minmax(0, 1fr); align-items: center; gap: clamp(24px, 3vw, 48px); padding: clamp(34px, 4.5vw, 58px); }
.ic-system-body::before { position: absolute; z-index: -1; left: 20%; right: 20%; top: 50%; height: 1px; content: ""; background: linear-gradient(90deg, transparent, rgba(81,112,255,.25) 14%, rgba(56,182,255,.55) 50%, rgba(81,112,255,.25) 86%, transparent); }
.ic-system-input, .ic-output-field { position: relative; z-index: 2; min-width: 0; }
.ic-system-stage { display: flex; align-items: center; gap: 9px; margin: 0 0 18px; color: var(--ic-signal-dark); font-family: var(--ic-mono); font-size: clamp(.68rem, .75vw, .76rem); font-weight: 700; letter-spacing: .08em; }
.ic-system-stage span { width: 25px; height: 25px; display: grid; place-items: center; color: var(--ic-white); background: var(--ic-signal); border-radius: 50%; font-size: .61rem; }
.ic-fragment-field { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.ic-fragment { position: relative; min-width: 0; display: inline-flex; align-items: center; min-height: 42px; padding: 8px 10px; overflow: hidden; color: rgba(16,24,43,.72); background: rgba(255,255,255,.72); border: 1px solid rgba(16,24,43,.13); border-radius: 8px; font-family: var(--ic-mono); font-size: clamp(.68rem, .72vw, .75rem); line-height: 1.25; letter-spacing: .01em; text-overflow: ellipsis; box-shadow: 0 8px 24px rgba(16,24,43,.045); backdrop-filter: blur(8px); }
.ic-fragment::before { width: 5px; height: 5px; margin-right: 7px; content: ""; background: #c3cad6; border-radius: 50%; }
.ic-system-axis { position: absolute; z-index: 1; left: 31%; right: 31%; top: 50%; height: 1px; background: linear-gradient(90deg, rgba(81,112,255,.12), var(--ic-signal), rgba(81,112,255,.12)); transform: translateY(-50%); }
.ic-system-axis span, .ic-system-axis i, .ic-system-axis b { position: absolute; top: -3px; width: 7px; height: 7px; background: var(--ic-sky); border-radius: 50%; box-shadow: 0 0 0 7px rgba(56,182,255,.1); }
.ic-system-axis span { left: 0; }
.ic-system-axis i { left: 50%; }
.ic-system-axis b { right: 0; }
.ic-system-core { position: relative; z-index: 4; width: 136px; height: 136px; display: grid; place-items: center; justify-self: center; background: rgba(255,255,255,.86); border: 1px solid rgba(81,112,255,.42); border-radius: 50%; box-shadow: 0 22px 80px rgba(81,112,255,.2); backdrop-filter: blur(15px); }
.ic-system-core__halo { position: absolute; inset: -24px; border: 1px solid rgba(81,112,255,.13); border-radius: 50%; }
.ic-system-core__halo::before, .ic-system-core__halo::after { position: absolute; inset: -27px; content: ""; border: 1px dashed rgba(81,112,255,.12); border-radius: 50%; }
.ic-system-core__halo::after { inset: -60px; border-style: solid; opacity: .45; }
.ic-system-core img { width: 52px; height: 78px; object-fit: contain; }
.ic-system-core small { position: absolute; top: calc(100% + 18px); left: 50%; display: flex; align-items: center; gap: 7px; color: var(--ic-signal-dark); font-family: var(--ic-mono); font-size: clamp(.66rem, .7vw, .72rem); font-weight: 700; letter-spacing: .1em; white-space: nowrap; transform: translateX(-50%); }
.ic-system-core small span { width: 22px; height: 22px; display: grid; place-items: center; color: var(--ic-white); background: var(--ic-signal); border-radius: 50%; font-size: .56rem; }
.ic-output-list { display: grid; gap: 7px; }
.ic-output-list > span { position: relative; min-height: 42px; display: flex; align-items: center; padding: 9px 12px 9px 30px; color: rgba(16,24,43,.62); background: rgba(255,255,255,.52); border: 1px solid rgba(16,24,43,.1); border-radius: 8px; font-family: var(--ic-mono); font-size: clamp(.68rem, .72vw, .75rem); letter-spacing: .03em; transition: color .3s, background .3s, border-color .3s; }
.ic-output-list > span::before { position: absolute; left: 11px; top: 50%; width: 6px; height: 6px; content: ""; background: #c2c9d6; border-radius: 50%; transform: translateY(-50%); }
.ic-output-list > span.is-active { color: var(--ic-ink); background: rgba(81,112,255,.1); border-color: rgba(81,112,255,.24); }
.ic-output-list > span.is-active::before { background: var(--ic-signal); box-shadow: 0 0 0 5px rgba(81,112,255,.12); }
.ic-signal-pulse { position: absolute; z-index: 3; left: 31%; top: calc(50% - 4px); width: 8px; height: 8px; background: var(--ic-white); border: 2px solid var(--ic-sky); border-radius: 50%; box-shadow: 0 0 18px var(--ic-sky); }
.ic-hero__footer { position: relative; z-index: 3; display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 20px; padding-top: 25px; color: rgba(16,24,43,.52); border-top: 1px solid var(--ic-line); font-family: var(--ic-mono); font-size: .54rem; letter-spacing: .08em; }
.ic-hero__footer-line { height: 1px; overflow: hidden; background: rgba(16,24,43,.1); }
.ic-hero__footer-line i { display: block; width: 30%; height: 100%; background: var(--ic-signal); }
.ic-hero__footer a { color: var(--ic-ink); font-weight: 700; }

/* Diagnostic map */
.ic-noise-map { background: var(--ic-white); }
.ic-editorial-heading { max-width: 1140px; }
.ic-display-copy { margin: 0; font-size: clamp(3.3rem, 6.6vw, 7rem); font-weight: 530; letter-spacing: -.07em; line-height: .98; }
.ic-display-copy .ic-line-mask { display: block; overflow: hidden; }
.ic-display-copy .ic-line-mask > span { display: block; }
.ic-diagnostic-surface { position: relative; min-height: 690px; margin-top: clamp(70px, 9vw, 130px); overflow: hidden; color: var(--ic-white); background: var(--ic-deep); border-radius: var(--ic-radius); }
.ic-diagnostic-surface::before { position: absolute; inset: 0; content: ""; opacity: .3; background-image: linear-gradient(rgba(255,255,255,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.07) 1px, transparent 1px); background-size: 56px 56px; }
.ic-diagnostic-surface__header { position: relative; z-index: 2; min-height: 60px; display: flex; align-items: center; justify-content: space-between; gap: 25px; padding: 0 22px; color: rgba(255,255,255,.48); border-bottom: 1px solid var(--ic-line-light); font-family: var(--ic-mono); font-size: .53rem; letter-spacing: .08em; }
.ic-noise-node { position: absolute; z-index: 2; width: min(270px, 27%); padding: 15px; background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.16); backdrop-filter: blur(10px); }
.ic-noise-node::after { position: absolute; content: ""; background: rgba(255,255,255,.13); }
.ic-noise-node small { display: block; margin-bottom: 18px; color: var(--ic-sky); font-family: var(--ic-mono); font-size: .5rem; letter-spacing: .1em; }
.ic-noise-node strong { display: block; max-width: 210px; color: rgba(255,255,255,.8); font-size: .82rem; font-weight: 560; line-height: 1.4; }
.ic-noise-node i { position: absolute; right: 10px; top: 8px; color: rgba(255,255,255,.26); font-family: var(--ic-mono); font-size: .5rem; font-style: normal; }
.ic-noise-node--one { left: 7%; top: 23%; transform: rotate(-2deg); }
.ic-noise-node--one::after { right: -190px; top: 45%; width: 190px; height: 1px; }
.ic-noise-node--two { left: 26%; bottom: 14%; transform: rotate(1deg); }
.ic-noise-node--two::after { right: -120px; top: -100px; width: 1px; height: 130px; transform: rotate(-40deg); }
.ic-noise-node--three { right: 8%; top: 19%; transform: rotate(1.5deg); }
.ic-noise-node--three::after { left: -210px; top: 58%; width: 210px; height: 1px; }
.ic-noise-node--four { right: 20%; bottom: 13%; transform: rotate(-1deg); }
.ic-noise-node--five { left: 4%; top: 57%; transform: rotate(2deg); }
.ic-diagnostic-lens { position: absolute; z-index: 4; left: 52%; top: 48%; width: 220px; height: 220px; display: grid; place-items: center; color: var(--ic-white); background: rgba(81,112,255,.14); border: 1px solid rgba(56,182,255,.65); border-radius: 50%; box-shadow: inset 0 0 60px rgba(56,182,255,.1), 0 0 80px rgba(56,182,255,.12); transform: translate(-50%, -50%); backdrop-filter: blur(5px); }
.ic-diagnostic-lens::before, .ic-diagnostic-lens::after { position: absolute; content: ""; border-radius: 50%; }
.ic-diagnostic-lens::before { inset: 19px; border: 1px dashed rgba(255,255,255,.2); }
.ic-diagnostic-lens::after { inset: -42px; border: 1px solid rgba(56,182,255,.18); }
.ic-diagnostic-lens span { font-family: var(--ic-mono); font-size: .57rem; font-weight: 700; letter-spacing: .14em; }
.ic-diagnostic-lens b { position: absolute; left: 50%; top: 50%; width: 1px; height: 54%; background: linear-gradient(transparent, var(--ic-sky), transparent); transform: translate(-50%,-50%) rotate(35deg); }
.ic-diagnostic-surface__legend { position: absolute; z-index: 3; left: 22px; right: 22px; bottom: 20px; display: flex; justify-content: flex-end; gap: 22px; color: rgba(255,255,255,.42); font-family: var(--ic-mono); font-size: .49rem; letter-spacing: .04em; }
.ic-diagnostic-surface__legend span { display: flex; align-items: center; gap: 6px; }
.ic-diagnostic-surface__legend i { width: 5px; height: 5px; background: var(--ic-sky); border-radius: 50%; }
.ic-noise-conclusion { display: grid; grid-template-columns: .35fr 1fr auto; align-items: start; gap: 45px; padding: 34px 0; border-bottom: 1px solid var(--ic-line); }
.ic-noise-conclusion > span { color: var(--ic-signal-dark); font-family: var(--ic-mono); font-size: .56rem; letter-spacing: .1em; text-transform: uppercase; }
.ic-noise-conclusion p { max-width: 650px; margin: 0; font-size: clamp(1.3rem, 2vw, 1.75rem); font-weight: 560; letter-spacing: -.035em; line-height: 1.25; }

/* Services ledger */
.ic-services { background: var(--ic-paper); }
.ic-service-ledger { border-top: 1px solid var(--ic-line); }
.ic-service { position: relative; display: grid; grid-template-columns: 110px minmax(230px, .72fr) minmax(430px, 1.25fr) 150px 46px; align-items: start; gap: clamp(22px, 3.2vw, 52px); padding: 44px 0; overflow: hidden; border-bottom: 1px solid var(--ic-line); transition: color .5s var(--ic-ease), padding .5s var(--ic-ease); }
.ic-service::before { position: absolute; z-index: 0; inset: 0; content: ""; background: var(--ic-deep); transform: scaleY(0); transform-origin: bottom center; transition: transform .55s var(--ic-ease); }
.ic-service > * { position: relative; z-index: 1; }
.ic-service:hover { color: rgba(255,255,255,.72); padding-inline: 24px; }
.ic-service:hover::before { transform: scaleY(1); }
.ic-service__index { display: grid; gap: 30px; color: var(--ic-signal-dark); font-family: var(--ic-mono); font-size: .52rem; letter-spacing: .06em; }
.ic-service__index i { color: rgba(16,24,43,.24); font-size: 1.4rem; font-style: normal; font-weight: 300; }
.ic-service:hover .ic-service__index { color: var(--ic-sky); }
.ic-service:hover .ic-service__index i { color: rgba(255,255,255,.2); }
.ic-service__title h3 { margin: 0; font-size: clamp(2rem, 3.5vw, 3.65rem); font-weight: 580; }
.ic-service:hover h3 { color: var(--ic-white); }
.ic-service__story { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.ic-service__story > div { padding-right: 20px; }
.ic-service__story small { display: block; margin-bottom: 10px; color: var(--ic-signal-dark); font-family: var(--ic-mono); font-size: .48rem; font-weight: 700; letter-spacing: .09em; }
.ic-service__story p { margin: 0; color: var(--ic-steel); font-size: .78rem; line-height: 1.55; }
.ic-service__story .ic-service__result { grid-column: 1 / -1; padding-top: 18px; border-top: 1px solid var(--ic-line); }
.ic-service__result p { color: var(--ic-ink); font-size: .86rem; font-weight: 650; }
.ic-service:hover .ic-service__story small { color: var(--ic-sky); }
.ic-service:hover .ic-service__story p { color: rgba(255,255,255,.62); }
.ic-service:hover .ic-service__result { border-color: var(--ic-line-light); }
.ic-service:hover .ic-service__result p { color: var(--ic-white); }
.ic-service__tools { display: flex; flex-wrap: wrap; gap: 6px; }
.ic-service__tools span { padding: 5px 7px; color: rgba(16,24,43,.58); border: 1px solid var(--ic-line); font-family: var(--ic-mono); font-size: .45rem; }
.ic-service:hover .ic-service__tools span { color: rgba(255,255,255,.55); border-color: var(--ic-line-light); }
.ic-service > a { width: 42px; height: 42px; display: grid; place-items: center; color: var(--ic-white); background: var(--ic-signal); border-radius: 50%; }
.ic-service > a span { position: absolute; clip: rect(0,0,0,0); }
.ic-service > a i { font-style: normal; transition: transform .3s; }
.ic-service:hover > a i { transform: rotate(45deg); }

/* Connected demo */
.ic-connected { min-height: 1050px; overflow: hidden; color: rgba(255,255,255,.72); background: var(--ic-deep); }
.ic-connected__grid { position: absolute; inset: 0; opacity: .35; background-image: linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px); background-size: 64px 64px; -webkit-mask-image: linear-gradient(to bottom, transparent, #000 15%, #000 82%, transparent); mask-image: linear-gradient(to bottom, transparent, #000 15%, #000 82%, transparent); }
.ic-connected::before { position: absolute; right: -20%; top: 10%; width: 70vw; height: 70vw; content: ""; background: radial-gradient(circle, rgba(81,112,255,.16), transparent 62%); pointer-events: none; }
.ic-connected__head { position: relative; display: grid; grid-template-columns: .45fr 1.55fr; gap: clamp(50px, 9vw, 150px); margin-bottom: 100px; }
.ic-connected__head h2 { max-width: 900px; margin: 0 0 24px; color: var(--ic-white); font-size: clamp(3.4rem, 6.8vw, 7.2rem); font-weight: 560; }
.ic-connected__head > div > p { max-width: 630px; color: rgba(255,255,255,.55); }
.ic-flow-demo { position: relative; display: grid; grid-template-columns: minmax(230px, 300px) minmax(0, 1fr); gap: clamp(24px, 4vw, 52px); padding: clamp(20px, 3vw, 36px); background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.16); border-radius: 18px; box-shadow: 0 40px 120px rgba(0,0,0,.18); backdrop-filter: blur(18px); }
.ic-flow-demo__rail { position: absolute; left: calc(clamp(20px, 3vw, 36px) + 13px); top: calc(clamp(20px, 3vw, 36px) + 21px); bottom: calc(clamp(20px, 3vw, 36px) + 22px); width: 1px; overflow: hidden; background: rgba(255,255,255,.16); }
.ic-flow-demo__rail::before { position: absolute; inset: 0; content: ""; background: var(--ic-sky); opacity: .12; }
.ic-flow-demo__rail span { display: block; width: 100%; height: 18%; background: linear-gradient(transparent, var(--ic-sky), transparent); box-shadow: 0 0 20px var(--ic-sky); }
.ic-flow-nodes { position: relative; list-style: none; padding: 0; margin: 0; }
.ic-flow-nodes li { position: relative; display: grid; grid-template-columns: 28px 1fr; align-items: center; gap: 16px; min-height: 86px; padding: 9px 12px 9px 0; color: rgba(255,255,255,.68); border-radius: 10px; transition: color .35s, background .35s, padding .35s; }
.ic-flow-nodes li > i { position: relative; z-index: 2; width: 27px; height: 27px; display: grid; place-items: center; color: rgba(255,255,255,.78); background: var(--ic-deep); border: 1px solid rgba(255,255,255,.48); border-radius: 50%; font-family: var(--ic-mono); font-size: .56rem; font-style: normal; }
.ic-flow-nodes li > span { display: grid; align-content: center; min-width: 0; }
.ic-flow-nodes small { margin-bottom: 5px; font-family: var(--ic-mono); font-size: clamp(.64rem, .67vw, .7rem); letter-spacing: .09em; }
.ic-flow-nodes strong { color: inherit; font-size: clamp(1.05rem, 1.35vw, 1.3rem); font-weight: 600; letter-spacing: -.035em; }
.ic-flow-nodes em { margin-top: 2px; color: rgba(255,255,255,.64); font-size: clamp(.72rem, .75vw, .78rem); font-style: normal; }
.ic-flow-nodes li.is-active { color: var(--ic-white); }
.ic-flow-nodes li.is-active { padding-inline: 9px 12px; background: rgba(56,182,255,.085); }
.ic-flow-nodes li.is-active > i { color: var(--ic-deep); background: var(--ic-sky); border-color: var(--ic-sky); box-shadow: 0 0 0 7px rgba(56,182,255,.1); }
.ic-flow-nodes li.is-active small { color: var(--ic-sky); }
.ic-flow-nodes li.is-active em { color: rgba(255,255,255,.55); }
.ic-demo-panel { align-self: stretch; min-width: 0; min-height: 0; height: 100%; padding: clamp(22px, 3vw, 30px); color: var(--ic-white); background: linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.038)); border: 1px solid rgba(255,255,255,.16); border-radius: 13px; box-shadow: 0 30px 80px rgba(0,0,0,.2); }
.ic-demo-panel__top { display: flex; justify-content: space-between; gap: 25px; padding-bottom: 18px; color: rgba(255,255,255,.58); border-bottom: 1px solid var(--ic-line-light); font-family: var(--ic-mono); font-size: clamp(.65rem, .7vw, .74rem); letter-spacing: .08em; }
.ic-demo-panel__top b { display: flex; align-items: center; gap: 7px; color: var(--ic-sky); }
.ic-demo-panel__top b::before { width: 6px; height: 6px; content: ""; background: var(--ic-sky); border-radius: 50%; }
.ic-demo-panel__notice { max-width: 620px; margin: 16px 0 0; color: rgba(255,255,255,.55); font-size: clamp(.72rem, .78vw, .82rem); line-height: 1.55; }
.ic-demo-panel__metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin-top: 20px; overflow: hidden; background: var(--ic-line-light); border: 1px solid var(--ic-line-light); border-radius: 10px; }
.ic-demo-panel__metrics > div { display: grid; padding: clamp(18px, 2.5vw, 25px); background: rgba(7,16,36,.86); }
.ic-demo-panel__metrics small { color: rgba(255,255,255,.58); font-family: var(--ic-mono); font-size: clamp(.65rem, .68vw, .72rem); letter-spacing: .06em; text-transform: uppercase; }
.ic-demo-panel__metrics strong { margin: 11px 0 3px; font-size: clamp(3rem, 5.2vw, 5rem); font-weight: 350; letter-spacing: -.08em; line-height: 1; }
.ic-demo-panel__metrics em { color: var(--ic-sky); font-family: var(--ic-mono); font-size: clamp(.62rem, .66vw, .7rem); font-style: normal; }
.ic-demo-chart { position: relative; height: 230px; display: flex; align-items: end; gap: clamp(10px, 2vw, 23px); padding: 36px 20px 0; border-bottom: 1px solid var(--ic-line-light); }
.ic-demo-chart__grid { position: absolute; inset: 24px 0 0; background: repeating-linear-gradient(to bottom, rgba(255,255,255,.1) 0 1px, transparent 1px calc(33.333%)); pointer-events: none; }
.ic-demo-chart span { position: relative; flex: 1; height: var(--h); background: linear-gradient(to top, var(--ic-signal), var(--ic-sky)); transform-origin: bottom center; }
.ic-demo-chart span::after { position: absolute; left: 50%; top: -5px; width: 9px; height: 9px; content: ""; background: var(--ic-white); border: 2px solid var(--ic-sky); border-radius: 50%; transform: translateX(-50%); }
.ic-demo-chart__labels { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0 0; color: rgba(255,255,255,.38); font-family: var(--ic-mono); font-size: clamp(.58rem, .62vw, .66rem); letter-spacing: .06em; }
.ic-demo-panel__footer { display: flex; justify-content: space-between; gap: 20px; padding-top: 18px; color: rgba(255,255,255,.55); font-family: var(--ic-mono); font-size: clamp(.62rem, .66vw, .7rem); }
.ic-demo-panel__footer span:first-child { display: flex; align-items: center; gap: 7px; }
.ic-demo-panel__footer i { width: 5px; height: 5px; background: var(--ic-sky); border-radius: 50%; }
.ic-demo-panel__footer b { color: var(--ic-white); }
.ic-tech-line { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-top: 110px; padding: 25px 0; overflow: hidden; color: rgba(255,255,255,.38); border-top: 1px solid var(--ic-line-light); border-bottom: 1px solid var(--ic-line-light); font-family: var(--ic-mono); font-size: .57rem; letter-spacing: .1em; white-space: nowrap; }
.ic-tech-line i { flex: 0 0 4px; width: 4px; height: 4px; background: var(--ic-sky); border-radius: 50%; }

/* Route */
.ic-route { background: var(--ic-paper); }
.ic-route__layout { display: grid; grid-template-columns: .75fr 1.25fr; align-items: start; gap: clamp(70px, 11vw, 170px); }
.ic-route__intro { position: sticky; top: 135px; }
.ic-route__intro h2 { max-width: 570px; margin: 0 0 25px; font-size: clamp(3.1rem, 5.4vw, 5.5rem); }
.ic-route__intro > p:not(.ic-kicker) { max-width: 490px; color: var(--ic-steel); }
.ic-route__intro .ic-text-link { margin-top: 22px; }
.ic-route__track { position: relative; }
.ic-route__line { position: absolute; left: 21px; top: 25px; bottom: 25px; width: 1px; overflow: hidden; background: var(--ic-line); }
.ic-route__line span { display: block; width: 100%; height: 100%; background: linear-gradient(var(--ic-sky), var(--ic-signal)); transform: scaleY(0); transform-origin: top center; }
.ic-route-step { position: relative; min-height: 185px; display: grid; grid-template-columns: 44px 1fr auto; gap: 30px; padding: 8px 0 45px; color: var(--ic-steel); }
.ic-route-step > i { position: relative; z-index: 2; width: 44px; height: 44px; display: grid; place-items: center; color: var(--ic-steel); background: var(--ic-paper); border: 1px solid var(--ic-line); border-radius: 50%; font-family: var(--ic-mono); font-size: .52rem; font-style: normal; transition: color .3s, background .3s, border-color .3s; }
.ic-route-step h3 { margin: 0 0 12px; color: inherit; font-size: clamp(1.7rem, 3vw, 2.8rem); }
.ic-route-step p { max-width: 520px; margin: 0; font-size: .82rem; }
.ic-route-step > span { padding-top: 13px; color: rgba(16,24,43,.32); font-family: var(--ic-mono); font-size: .45rem; letter-spacing: .08em; }
.ic-route-step.is-active { color: var(--ic-ink); }
.ic-route-step.is-active > i { color: var(--ic-white); background: var(--ic-signal); border-color: var(--ic-signal); box-shadow: 0 0 0 8px rgba(81,112,255,.1); }
.ic-route-step.is-active > span { color: var(--ic-signal-dark); }

/* Risk */
.ic-risk { background: var(--ic-white); }
.ic-principle-list { border-top: 1px solid var(--ic-line); }
.ic-principle-list article { display: grid; grid-template-columns: 80px .8fr 1fr; align-items: baseline; gap: 40px; padding: 30px 0; border-bottom: 1px solid var(--ic-line); }
.ic-principle-list span { color: var(--ic-signal-dark); font-family: var(--ic-mono); font-size: .55rem; }
.ic-principle-list h3 { margin: 0; font-size: clamp(1.45rem, 2.4vw, 2.25rem); }
.ic-principle-list p { max-width: 580px; margin: 0; color: var(--ic-steel); font-size: .82rem; }
.ic-proof-note { display: grid; grid-template-columns: 170px 1fr; gap: 60px; margin-top: 52px; padding: 28px; background: var(--ic-paper); border-left: 2px solid var(--ic-sky); }
.ic-proof-note span { color: var(--ic-signal-dark); font-family: var(--ic-mono); font-size: .55rem; font-weight: 700; letter-spacing: .08em; }
.ic-proof-note p { max-width: 860px; margin: 0; color: var(--ic-steel); font-size: .84rem; }

/* Investment */
.ic-investment { isolation: isolate; overflow: hidden; color: rgba(255,255,255,.7); background: radial-gradient(circle at 50% 42%, rgba(81,112,255,.17), transparent 34%), linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px), var(--ic-deep); background-size: auto, 56px 56px, 56px 56px, auto; }
.ic-investment .ic-kicker { color: #9ecbff; }
.ic-investment .ic-section-head h2 { color: var(--ic-white); }
.ic-investment .ic-section-head > p { color: rgba(255,255,255,.66); }
.ic-investment-path { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: clamp(16px,2.2vw,30px); }
.ic-investment-path article { position: relative; min-height: 510px; display: flex; align-items: stretch; flex-direction: column; gap: 24px; padding: clamp(26px,3vw,40px); overflow: hidden; background: linear-gradient(155deg, rgba(255,255,255,.07), rgba(255,255,255,.025)); border: 1px solid rgba(255,255,255,.15); border-radius: 18px; box-shadow: 0 28px 80px rgba(0,0,0,.24); backdrop-filter: blur(14px); transition: transform .35s var(--ic-ease), border-color .35s var(--ic-ease), box-shadow .35s var(--ic-ease); }
.ic-investment-path article:nth-child(2) { background: radial-gradient(circle at 80% 10%, rgba(56,182,255,.19), transparent 34%), linear-gradient(155deg, rgba(81,112,255,.24), rgba(81,112,255,.07)); border-color: rgba(56,182,255,.56); transform: translateY(-10px); }
.ic-investment-path article:hover { border-color: rgba(56,182,255,.66); box-shadow: 0 38px 105px rgba(0,0,0,.34); transform: translateY(-6px); }
.ic-investment-path article:nth-child(2):hover { transform: translateY(-14px); }
.ic-investment-path article > div > span { display: inline-flex; align-items: center; gap: 9px; width: fit-content; padding: 8px 12px; color: #b9dcff; background: rgba(56,182,255,.09); border: 1px solid rgba(56,182,255,.2); border-radius: 999px; font-family: var(--ic-mono); font-size: .61rem; font-weight: 700; letter-spacing: .08em; }
.ic-investment-path article > div > span::before { width: 7px; height: 7px; content: ""; background: var(--ic-sky); border-radius: 50%; box-shadow: 0 0 0 5px rgba(56,182,255,.1); }
.ic-investment-path h3 { min-height: 2.1em; margin: 24px 0 12px; color: var(--ic-white); font-size: clamp(1.75rem,2.25vw,2.45rem); }
.ic-investment-path p { max-width: 650px; margin: 0; color: rgba(255,255,255,.66); font-size: .92rem; }
.ic-investment-path > article > strong { margin-top: auto; padding-top: 22px; color: rgba(255,255,255,.6); border-top: 1px solid rgba(255,255,255,.12); font-size: .76rem; font-weight: 500; }
.ic-investment-path > article > strong b { display: block; color: var(--ic-white); font-size: clamp(1.75rem,3vw,2.65rem); font-weight: 720; letter-spacing: -.05em; }
.ic-investment-path ul { margin: auto 0 0; padding: 15px 0; color: rgba(255,255,255,.66); border-top: 1px solid rgba(255,255,255,.12); border-bottom: 1px solid rgba(255,255,255,.12); list-style: none; font-size: .78rem; }
.ic-investment-path li { display: flex; justify-content: space-between; gap: 16px; margin: 8px 0; }
.ic-investment-path li b { color: var(--ic-white); }
.ic-investment-path article > a { width: 100%; min-height: 56px; display: grid; place-items: center; margin-top: auto; padding: 12px 18px; color: var(--ic-white); background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.28); border-radius: 999px; font-size: .76rem; font-weight: 750; }
.ic-investment-note { max-width: 780px; margin: 28px 0 0 auto; color: rgba(255,255,255,.52); font-family: var(--ic-mono); font-size: .55rem; letter-spacing: .03em; }

/* ROI */
.ic-roi { overflow: hidden; background: #dff3ff; }
.ic-roi::before { position: absolute; left: -20%; top: -60%; width: 80vw; height: 80vw; content: ""; background: radial-gradient(circle, rgba(81,112,255,.15), transparent 60%); pointer-events: none; }
.ic-roi__layout { position: relative; display: grid; grid-template-columns: .85fr 1.15fr; align-items: center; gap: clamp(70px, 11vw, 170px); }
.ic-roi__dial { position: relative; min-height: 520px; display: grid; place-items: center; }
.ic-roi__dial::before, .ic-roi__dial::after { position: absolute; content: ""; border: 1px solid rgba(16,24,43,.13); border-radius: 50%; }
.ic-roi__dial::before { width: 470px; height: 470px; }
.ic-roi__dial::after { width: 360px; height: 360px; border-style: dashed; }
.ic-roi__dial > div { position: relative; z-index: 2; width: 270px; height: 270px; display: grid; place-items: center; align-content: center; text-align: center; background: rgba(255,255,255,.55); border: 1px solid rgba(16,24,43,.16); border-radius: 50%; backdrop-filter: blur(12px); }
.ic-roi__dial span, .ic-roi__dial small { color: var(--ic-steel); font-family: var(--ic-mono); font-size: .49rem; letter-spacing: .08em; }
.ic-roi__dial b { margin: 11px 0; color: var(--ic-signal); font-size: 5rem; font-weight: 360; line-height: 1; }
.ic-roi__dial > i, .ic-roi__dial > em { position: absolute; z-index: 3; left: 50%; top: 50%; width: 7px; height: 7px; background: var(--ic-signal); border-radius: 50%; transform-origin: 0 -235px; transform: rotate(55deg) translateY(-235px); box-shadow: 0 0 0 7px rgba(81,112,255,.12); }
.ic-roi__dial > em { background: var(--ic-sky); transform: rotate(230deg) translateY(-180px); }
.ic-roi__copy h2 { max-width: 740px; margin: 0 0 25px; font-size: clamp(3.2rem, 6vw, 6.4rem); }
.ic-roi__copy > p:not(.ic-kicker) { max-width: 610px; color: var(--ic-steel); }
.ic-roi__copy .ic-button { margin-top: 25px; }

/* Final CTA */
.ic-final-cta { position: relative; min-height: 820px; display: flex; align-items: center; padding: 130px 0; overflow: hidden; color: rgba(255,255,255,.6); background: var(--ic-deep); }
.ic-final-cta::before { position: absolute; inset: 0; content: ""; opacity: .28; background-image: linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px); background-size: 70px 70px; }
.ic-final-cta__signal { position: absolute; right: -12%; top: 50%; width: 60vw; height: 60vw; border: 1px solid rgba(56,182,255,.13); border-radius: 50%; transform: translateY(-50%); }
.ic-final-cta__signal::before, .ic-final-cta__signal::after { position: absolute; content: ""; border: 1px solid rgba(56,182,255,.12); border-radius: 50%; }
.ic-final-cta__signal::before { inset: 15%; }
.ic-final-cta__signal::after { inset: 30%; }
.ic-final-cta__signal span { position: absolute; left: 50%; top: 50%; width: 11px; height: 11px; background: var(--ic-sky); border-radius: 50%; box-shadow: 0 0 45px 15px rgba(56,182,255,.28); }
.ic-final-cta .ic-shell { position: relative; z-index: 2; }
.ic-final-cta h2 { max-width: 1100px; margin: 0 0 35px; color: rgba(255,255,255,.55); font-size: clamp(3.5rem, 7.8vw, 8rem); font-weight: 430; }
.ic-final-cta h2 strong { color: var(--ic-white); font-weight: 620; }
.ic-final-cta > .ic-shell > p:not(.ic-kicker) { max-width: 650px; }
.ic-final-cta .ic-action-row { margin-top: 35px; }

/* Motion progressive enhancement */
.js-motion [data-hero-item], .js-motion [data-split-title] .ic-word > span { will-change: transform, opacity; }
.js-motion [data-reveal] { opacity: 0; transform: translateY(24px); }

@media (max-width: 1120px) {
    .ic-hero__layout { grid-template-columns: 1fr; }
    .ic-hero__copy { max-width: 900px; }
    .ic-system-body { min-height: 440px; }
    .ic-service { grid-template-columns: 90px .65fr 1.1fr 110px 42px; }
    .ic-service__story { grid-template-columns: 1fr; }
    .ic-service__story .ic-service__result { grid-column: 1; }
    .ic-connected__head { grid-template-columns: 1fr; gap: 24px; }
}

@media (max-width: 900px) {
    .ic-hero__coordinates { display: none; }
    .ic-hero h1 { font-size: clamp(3.8rem, 11.5vw, 6.4rem); }
    .ic-noise-node { width: 35%; }
    .ic-noise-conclusion { grid-template-columns: 1fr; gap: 16px; }
    .ic-service { grid-template-columns: 70px 1fr 42px; }
    .ic-service__story { grid-column: 2 / -1; grid-template-columns: 1fr 1fr; }
    .ic-service__tools { grid-column: 2; }
    .ic-service > a { grid-column: 3; grid-row: 1; }
    .ic-flow-demo { grid-template-columns: 1fr; }
    .ic-flow-demo__rail { display: none; }
    .ic-flow-nodes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
    .ic-flow-nodes li { min-height: 104px; padding: 12px; background: rgba(255,255,255,.035); border: 1px solid rgba(255,255,255,.1); }
    .ic-flow-nodes li.is-active { padding: 12px; }
    .ic-demo-panel { min-height: 0; }
    .ic-route__layout { grid-template-columns: 1fr; }
    .ic-route__intro { position: static; }
    .ic-principle-list article { grid-template-columns: 60px .9fr 1.1fr; }
    .ic-investment-path { grid-template-columns: 1fr 1fr; }
    .ic-investment-path article:nth-child(2) { transform: none; }
    .ic-investment-path article:last-child { grid-column: 1 / -1; }
    .ic-roi__layout { grid-template-columns: 1fr; }
    .ic-roi__dial { order: 2; }
}

@media (max-width: 680px) {
    .ic-hero { min-height: auto; padding: 108px 0 22px; }
    .admin-bar .ic-hero { padding-top: 148px; }
    .ic-hero::after { width: 100%; opacity: .7; }
    .ic-hero h1 { max-width: 100%; font-size: clamp(2.65rem, 12.5vw, 4rem); line-height: .94; }
    .ic-hero__lead { margin-top: 20px; }
    .ic-hero .ic-action-row { margin-top: 26px; }
    .ic-hero-system { margin-top: 28px; }
    .ic-system-caption { min-height: 52px; align-items: center; flex-direction: row; gap: 8px; padding: 10px 12px; font-size: .59rem; line-height: 1.35; }
    .ic-system-caption > span { max-width: 68%; }
    .ic-system-caption > b { flex: 0 0 auto; margin-left: auto; }
    .ic-system-body { min-height: 0; grid-template-columns: 1fr; gap: 34px; padding: 20px 14px 24px; }
    .ic-system-body::before { left: 50%; right: auto; top: 25%; bottom: 20%; width: 1px; height: auto; background: linear-gradient(transparent, rgba(81,112,255,.3), rgba(56,182,255,.55), rgba(81,112,255,.3), transparent); }
    .ic-system-input, .ic-output-field { width: 100%; }
    .ic-system-stage { gap: 8px; margin-bottom: 10px; font-size: .62rem; }
    .ic-system-stage span { width: 22px; height: 22px; }
    .ic-fragment-field { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
    .ic-fragment { min-height: 36px; padding: 6px 8px; font-size: .62rem; line-height: 1.2; }
    .ic-system-axis { display: none; }
    .ic-system-core { width: 84px; height: 84px; }
    .ic-system-core__halo { inset: -12px; }
    .ic-system-core__halo::before { inset: -14px; }
    .ic-system-core__halo::after { inset: -26px; }
    .ic-system-core img { width: 29px; height: 44px; }
    .ic-system-core small { top: calc(100% + 9px); font-size: .6rem; white-space: nowrap; }
    .ic-system-core small span { width: 19px; height: 19px; }
    .ic-output-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
    .ic-output-list > span { min-height: 36px; padding: 6px 7px 6px 24px; font-size: .62rem; line-height: 1.2; }
    .ic-output-list > span::before { left: 9px; }
    .ic-output-list > span:last-child { grid-column: 1 / -1; }
    .ic-signal-pulse { display: none; }
    .ic-hero__footer { grid-template-columns: 1fr auto; }
    .ic-hero__footer > span:first-child, .ic-hero__footer > span:nth-child(3) { display: none; }
    .ic-display-copy { font-size: clamp(2.8rem, 13vw, 4.2rem); }
    .ic-diagnostic-surface { min-height: 790px; }
    .ic-diagnostic-surface__header span:last-child { display: none; }
    .ic-noise-node { width: calc(100% - 48px); transform: none; }
    .ic-noise-node::after { display: none; }
    .ic-noise-node--one { left: 24px; top: 92px; }
    .ic-noise-node--two { left: 24px; top: 215px; bottom: auto; }
    .ic-noise-node--three { left: 24px; right: auto; top: 338px; }
    .ic-noise-node--four { left: 24px; right: auto; top: 584px; bottom: auto; }
    .ic-noise-node--five { left: 24px; top: 461px; }
    .ic-diagnostic-lens { display: none; }
    .ic-diagnostic-surface__legend { display: none; }
    .ic-service { grid-template-columns: 1fr 40px; gap: 18px; padding: 34px 0; }
    .ic-service:hover { padding-inline: 16px; }
    .ic-service__index { grid-column: 1; grid-row: 1; display: flex; justify-content: space-between; }
    .ic-service__title { grid-column: 1; }
    .ic-service__title h3 { font-size: 2.4rem; }
    .ic-service__story { grid-column: 1 / -1; grid-template-columns: 1fr; }
    .ic-service__tools { grid-column: 1 / -1; }
    .ic-service > a { grid-column: 2; grid-row: 1; }
    .ic-connected { min-height: auto; }
    .ic-connected__head h2 { font-size: clamp(3rem, 13vw, 4.5rem); }
    .ic-flow-nodes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ic-flow-nodes li { min-height: 100px; grid-template-columns: 27px 1fr; }
    .ic-demo-panel { min-height: 0; padding: 17px; }
    .ic-demo-panel__top { align-items: flex-start; flex-direction: column; gap: 8px; }
    .ic-demo-panel__metrics > div { padding: 18px; }
    .ic-demo-panel__metrics strong { font-size: clamp(2.7rem, 14vw, 3.7rem); }
    .ic-demo-chart { height: 175px; padding-inline: 10px; }
    .ic-demo-panel__footer { flex-direction: column; }
    .ic-tech-line { justify-content: flex-start; overflow-x: auto; }
    .ic-route__intro h2 { font-size: clamp(2.9rem, 13vw, 4.3rem); }
    .ic-route-step { grid-template-columns: 44px 1fr; gap: 20px; }
    .ic-route-step > span { display: none; }
    .ic-principle-list article { grid-template-columns: 45px 1fr; gap: 15px; }
    .ic-principle-list p { grid-column: 2; }
    .ic-proof-note { grid-template-columns: 1fr; gap: 12px; }
    .ic-investment-path { grid-template-columns: 1fr; }
    .ic-investment-path article { min-height: 0; }
    .ic-investment-path article:last-child { grid-column: auto; }
    .ic-roi__dial { min-height: 380px; }
    .ic-roi__dial::before { width: 330px; height: 330px; }
    .ic-roi__dial::after { width: 270px; height: 270px; }
    .ic-roi__dial > div { width: 210px; height: 210px; }
    .ic-roi__dial > i { transform-origin: 0 -165px; transform: rotate(55deg) translateY(-165px); }
    .ic-roi__dial > em { transform-origin: 0 -130px; transform: rotate(230deg) translateY(-130px); }
    .ic-roi__copy h2 { font-size: clamp(2.9rem, 13vw, 4.3rem); }
    .ic-final-cta { min-height: 720px; }
    .ic-final-cta h2 { font-size: clamp(3rem, 14vw, 4.8rem); }
}

@media (prefers-reduced-motion: reduce) {
    .js-motion [data-reveal] { opacity: 1; transform: none; }
    .ic-signal-pulse, .ic-tech-line { animation: none !important; }
    .ic-investment-path article,
    .ic-investment-path article:hover,
    .ic-investment-path article:nth-child(2),
    .ic-investment-path article:nth-child(2):hover { transform: none; transition: none; }
    .ic-flow-nodes li { color: var(--ic-white); }
    .ic-flow-nodes li > i { color: var(--ic-deep); background: var(--ic-sky); border-color: var(--ic-sky); }
    .ic-flow-nodes em { color: rgba(255,255,255,.78); }
}
