.data-network { position: absolute; z-index: 0; inset: -12%; width: 124%; height: 124%; pointer-events: none; opacity: .75; }
.portrait-ring, .portrait-frame, .portrait-zone .float-card { z-index: 1; }

.interactive-glass { --spot-x: 50%; --spot-y: 50%; --card-rx: 0deg; --card-ry: 0deg; transform-style: preserve-3d; }
.interactive-glass::after { content: ''; position: absolute; z-index: 4; inset: 0; border-radius: inherit; opacity: 0; background: radial-gradient(320px circle at var(--spot-x) var(--spot-y), rgba(178, 232, 255, .16), rgba(113, 161, 244, .045) 38%, transparent 70%); pointer-events: none; transition: opacity .25s ease; }
.interactive-glass:hover::after { opacity: 1; }
.project-card.interactive-glass:hover, .service-card.interactive-glass:hover { transform: perspective(950px) rotateX(var(--card-rx)) rotateY(var(--card-ry)) translateY(-6px); }

.publication-cover { transform: perspective(900px) rotateY(-8deg) rotateX(2deg); transform-origin: left center; transition: transform .42s cubic-bezier(.2, .8, .2, 1), box-shadow .42s ease; cursor: pointer; }
.publication-cover::before { content: ''; position: absolute; z-index: 2; top: 7px; right: -7px; bottom: 7px; width: 9px; border-radius: 0 7px 7px 0; background: repeating-linear-gradient(90deg, #d6e4ef 0 1px, #8fa2b5 1px 2px); opacity: .72; transform: translateZ(-1px); }
.publication-cover:hover, .publication-cover:focus-visible, .publication-cover.is-front { transform: perspective(900px) rotateY(0) rotateX(0) translateY(-5px) scale(1.025); box-shadow: 18px 26px 55px rgba(0, 0, 0, .4), 0 0 30px rgba(91, 183, 255, .12); }

.data-lab { position: relative; }
.data-lab::before { content: ''; position: absolute; inset: 8% 0; background: radial-gradient(circle at 85% 30%, rgba(68, 147, 241, .1), transparent 33%), radial-gradient(circle at 15% 80%, rgba(112, 91, 224, .08), transparent 30%); pointer-events: none; }
.data-lab-heading { position: relative; display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 36px; }
.lab-simulation-badge { display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto; padding: 8px 11px; border: 1px solid rgba(121, 229, 187, .19); border-radius: 999px; color: #95dbbd; background: rgba(66, 184, 137, .07); font-size: .65rem; font-weight: 800; }
.lab-dashboard { position: relative; overflow: hidden; padding: 28px; border-radius: 28px; }
.lab-dashboard::after { content: ''; position: absolute; inset: 0; background: linear-gradient(115deg, rgba(132, 208, 255, .035), transparent 35%, rgba(133, 111, 235, .04)); pointer-events: none; }
.lab-toolbar, .lab-kpis, .lab-visuals { position: relative; z-index: 1; }
.lab-toolbar { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding-bottom: 23px; border-bottom: 1px solid rgba(174, 211, 255, .12); }
.lab-overline { display: block; color: #7ea9db; font-size: .61rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.lab-toolbar h3 { margin: 5px 0 0; font-size: 1.35rem; }
.lab-controls { display: flex; align-items: flex-end; gap: 12px; }
.lab-select-label { display: grid; gap: 5px; color: #7188a7; font-size: .58rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.lab-select-label select { min-width: 178px; padding: 9px 31px 9px 11px; border: 1px solid rgba(171, 211, 255, .16); border-radius: 9px; outline: 0; color: #dbeaff; background: #13223b; font-size: .72rem; text-transform: none; }
.lab-periods { display: inline-flex; gap: 4px; padding: 4px; border: 1px solid rgba(171, 211, 255, .13); border-radius: 10px; background: rgba(104, 151, 214, .055); }
.lab-periods button { padding: 8px 10px; border: 0; border-radius: 7px; color: #7d94b3; background: transparent; font-size: .66rem; font-weight: 800; }
.lab-periods button.active { color: #eef8ff; background: linear-gradient(135deg, rgba(91, 164, 244, .28), rgba(103, 94, 213, .17)); box-shadow: inset 0 1px rgba(255, 255, 255, .1); }
.lab-commandbar { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 0 2px; }
.lab-command-label { display: block; margin-bottom: 7px; color: #6f86a7; font-size: .57rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.lab-scenarios { display: flex; flex-wrap: wrap; gap: 6px; }
.lab-scenarios button { padding: 7px 10px; border: 1px solid rgba(163, 204, 251, .12); border-radius: 999px; color: #8198b8; background: rgba(112, 155, 215, .045); font-size: .63rem; font-weight: 800; }
.lab-scenarios button.active { border-color: rgba(126, 216, 255, .31); color: #dff7ff; background: linear-gradient(120deg, rgba(76, 175, 237, .21), rgba(115, 92, 220, .13)); box-shadow: 0 0 24px rgba(67, 173, 236, .08); }
.lab-compare { display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto; color: #8299b7; font-size: .65rem; cursor: pointer; }
.lab-compare input { position: absolute; opacity: 0; pointer-events: none; }
.lab-compare span { position: relative; width: 32px; height: 18px; border: 1px solid rgba(163, 205, 250, .18); border-radius: 999px; background: rgba(103, 144, 197, .1); transition: .2s; }
.lab-compare span::after { content: ''; position: absolute; left: 3px; top: 3px; width: 10px; height: 10px; border-radius: 50%; background: #7990ae; transition: .2s; }
.lab-compare input:checked + span { border-color: rgba(112, 220, 255, .4); background: rgba(74, 179, 229, .24); }
.lab-compare input:checked + span::after { transform: translateX(14px); background: #b9efff; box-shadow: 0 0 10px rgba(113, 220, 255, .7); }
.lab-compare input:focus-visible + span { outline: 2px solid var(--cyan); outline-offset: 3px; }
.lab-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 20px 0; }
.lab-kpi { min-width: 0; padding: 18px; border: 1px solid rgba(168, 207, 255, .11); border-radius: 15px; background: rgba(111, 155, 217, .045); }
.lab-kpi > span { display: block; color: #7d93b1; font-size: .66rem; }
.lab-kpi strong { display: block; margin: 7px 0 3px; overflow: hidden; color: #f0f7ff; font-family: Manrope, sans-serif; font-size: clamp(1.2rem, 2.3vw, 1.75rem); letter-spacing: -.055em; text-overflow: ellipsis; white-space: nowrap; }
.lab-kpi small { color: #7bdcb0; font-size: .63rem; }
.lab-kpi.is-updating strong { animation: kpiPulse .35s ease; }
.lab-visuals { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(230px, .7fr); gap: 14px; }
.lab-chart-panel, .lab-insight-panel { border: 1px solid rgba(168, 207, 255, .11); border-radius: 18px; background: rgba(6, 17, 34, .25); }
.lab-chart-panel { padding: 20px 21px 14px; }
.lab-panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; }
.lab-panel-heading span { color: #7187a7; font-size: .61rem; }
.lab-panel-heading strong { display: block; margin-top: 3px; font-family: Manrope, sans-serif; font-size: .88rem; }
.lab-legend { display: inline-flex; align-items: center; gap: 6px; }
.lab-legend i { width: 7px; height: 7px; border-radius: 50%; background: #79ddff; box-shadow: 0 0 12px rgba(121, 221, 255, .7); }
.lab-chart { display: block; width: 100%; height: 235px; overflow: visible; }
.lab-grid path { fill: none; stroke: rgba(144, 182, 226, .11); stroke-width: 1; }
.lab-area { fill: url(#labArea); transition: d .45s ease; }
.lab-line { fill: none; stroke: #89e2ff; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 0 7px rgba(95, 205, 255, .45)); transition: d .45s ease; }
.lab-compare-line { fill: none; stroke: #9089c7; stroke-width: 1.5; stroke-dasharray: 6 7; opacity: 0; transition: d .45s ease, opacity .25s ease; }
.lab-compare-line.visible { opacity: .72; }
.lab-point { fill: #d9f6ff; stroke: #4caee8; stroke-width: 3; }
.lab-axis { display: flex; justify-content: space-between; padding: 0 15px; color: #647b9b; font-size: .57rem; }
.lab-insight-panel { display: flex; flex-direction: column; align-items: center; padding: 22px; text-align: center; }
.lab-insight-panel .lab-overline { align-self: flex-start; }
.lab-donut { --share: 50%; width: 130px; height: 130px; display: grid; place-items: center; margin: 22px 0; border-radius: 50%; background: conic-gradient(#76dcff 0 var(--share), rgba(105, 143, 194, .12) var(--share) 100%); box-shadow: 0 0 35px rgba(86, 176, 233, .1); }
.lab-donut::before { content: ''; grid-area: 1 / 1; width: 96px; height: 96px; border-radius: 50%; background: #101d33; }
.lab-donut > div { z-index: 1; grid-area: 1 / 1; display: grid; }
.lab-donut strong { font-family: Manrope, sans-serif; font-size: 1.5rem; }
.lab-donut small { color: #7189a9; font-size: .59rem; }
.lab-insight-panel p { color: #a3b8d2; font-size: .75rem; line-height: 1.65; }
.lab-disclaimer { margin-top: auto; color: #617897; font-size: .57rem; line-height: 1.5; }
.lab-decision-console { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(250px, 1.15fr) 1fr 1fr minmax(260px, 1.2fr); align-items: center; gap: 24px; margin-top: 14px; padding: 21px 22px; overflow: hidden; border: 1px solid rgba(130, 215, 255, .15); border-radius: 18px; background: radial-gradient(circle at 0 50%, rgba(50, 181, 215, .1), transparent 32%), linear-gradient(110deg, rgba(11, 33, 54, .78), rgba(25, 23, 57, .62)); }
.lab-decision-console::before { content: ''; position: absolute; inset: 0; opacity: .13; background-image: linear-gradient(rgba(126, 199, 255, .16) 1px, transparent 1px), linear-gradient(90deg, rgba(126, 199, 255, .16) 1px, transparent 1px); background-size: 24px 24px; pointer-events: none; }
.lab-decision-console > * { position: relative; z-index: 1; }
.lab-decision-heading { display: flex; align-items: center; gap: 11px; }
.lab-decision-heading h4 { max-width: 220px; margin: 4px 0 0; font-family: Manrope, sans-serif; font-size: .9rem; line-height: 1.4; }
.lab-engine-pulse { flex: 0 0 11px; width: 11px; height: 11px; border-radius: 50%; background: #78e1ff; box-shadow: 0 0 0 5px rgba(120, 225, 255, .08), 0 0 20px rgba(120, 225, 255, .7); animation: enginePulse 2s ease-in-out infinite; }
.lab-range-control { min-width: 0; }
.lab-range-control label { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 9px; color: #8299b8; font-size: .62rem; }
.lab-range-control output { color: #bdeeff; font-weight: 800; }
.lab-range-control input { width: 100%; height: 4px; border-radius: 999px; outline: 0; appearance: none; background: linear-gradient(90deg, #68cbee, #776fe2); cursor: pointer; }
.lab-range-control input::-webkit-slider-thumb { width: 16px; height: 16px; border: 3px solid #d8f6ff; border-radius: 50%; appearance: none; background: #4ba6d4; box-shadow: 0 0 0 4px rgba(98, 204, 242, .12), 0 0 14px rgba(91, 202, 244, .48); }
.lab-range-control input::-moz-range-thumb { width: 11px; height: 11px; border: 3px solid #d8f6ff; border-radius: 50%; background: #4ba6d4; box-shadow: 0 0 0 4px rgba(98, 204, 242, .12); }
.lab-projection > span { color: #728aa9; font-size: .57rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.lab-projection strong { display: block; margin: 2px 0 5px; color: #a7efcf; font-family: Manrope, sans-serif; font-size: 1.25rem; }
.lab-projection-track { height: 3px; overflow: hidden; border-radius: 999px; background: rgba(126, 169, 219, .12); }
.lab-projection-track i { display: block; width: 50%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #75d9ff, #7af0b7); transition: width .35s ease; }
.lab-projection p { margin: 7px 0 0; color: #8095b1; font-size: .59rem; line-height: 1.4; }

@keyframes kpiPulse { 50% { color: #91e7ff; transform: translateY(-2px); } }
@keyframes enginePulse { 50% { opacity: .55; transform: scale(.75); } }

@media (max-width: 991.98px) {
  .lab-toolbar { align-items: flex-start; flex-direction: column; }
  .lab-kpis { grid-template-columns: repeat(2, 1fr); }
  .lab-visuals { grid-template-columns: 1fr; }
  .lab-insight-panel { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 15px; text-align: left; }
  .lab-insight-panel .lab-overline, .lab-disclaimer { grid-column: 1 / -1; }
  .lab-donut { grid-column: 2; grid-row: 2 / 4; margin: 0; }
  .lab-decision-console { grid-template-columns: 1fr 1fr; gap: 22px; }
  .lab-decision-heading, .lab-projection { grid-column: 1 / -1; }
}

@media (max-width: 767.98px) {
  .data-lab-heading { align-items: flex-start; flex-direction: column; }
  .lab-dashboard { padding: 18px; border-radius: 22px; }
  .lab-controls { width: 100%; align-items: stretch; flex-direction: column; }
  .lab-select-label select { width: 100%; }
  .lab-periods { display: grid; grid-template-columns: repeat(3, 1fr); }
  .lab-commandbar { align-items: flex-start; flex-direction: column; }
  .lab-chart { height: 190px; }
}

@media (max-width: 575.98px) {
  .brand-sub { display: none; }
  .data-network { inset: 0; width: 100%; height: 100%; }
  .data-lab-heading { margin-bottom: 25px; }
  .lab-simulation-badge { white-space: normal; }
  .lab-toolbar { gap: 18px; padding-bottom: 19px; }
  .lab-toolbar h3 { font-size: 1.2rem; }
  .lab-commandbar > div { width: 100%; }
  .lab-scenarios { display: grid; grid-template-columns: 1fr; width: 100%; }
  .lab-scenarios button { width: 100%; padding: 9px 11px; text-align: left; }
  .lab-compare { width: 100%; justify-content: space-between; }
  .lab-kpis { grid-template-columns: 1fr 1fr; gap: 8px; }
  .lab-kpi { padding: 14px; }
  .lab-kpi strong { font-size: 1.15rem; }
  .lab-chart-panel { padding: 17px 12px 12px; }
  .lab-legend { display: none; }
  .lab-insight-panel { display: flex; text-align: center; }
  .lab-insight-panel .lab-overline { align-self: center; }
  .lab-donut { margin: 12px 0; }
  .lab-decision-console { grid-template-columns: 1fr; gap: 24px; padding: 20px 18px; }
  .lab-decision-heading, .lab-projection { grid-column: auto; }
  .lab-decision-heading h4 { max-width: none; }
}

@media (prefers-reduced-motion: reduce) {
  .lab-kpi.is-updating strong { animation: none; }
  .lab-engine-pulse { animation: none; }
  .publication-cover { transform: none; }
}
