/* A shared product language: trace code, inspect relationships, record a scan. */
.overview{position:relative;isolation:isolate;overflow:hidden}
.overview>.wrap{position:relative;z-index:1}
.overview-product-art{position:absolute;z-index:0;inset:0;overflow:hidden;pointer-events:none;user-select:none}
.overview-product-art .overview-blocks-art{position:absolute;max-width:none;width:1050px;height:435px;right:-50px;top:-65px;opacity:.7;mask-image:linear-gradient(90deg,transparent 5%,#000 72%);-webkit-mask-image:linear-gradient(90deg,transparent 5%,#000 72%)}
.overview-product-art:before{content:"";position:absolute;width:580px;height:420px;right:90px;top:-90px;background:radial-gradient(ellipse,#2ca2df2e,transparent 66%);animation:overview-ambient-glow 12s ease-in-out infinite alternate}
@keyframes overview-ambient-glow{from{opacity:.35;transform:translate3d(-10px,0,0)}to{opacity:.8;transform:translate3d(10px,6px,0)}}
.overview .metric-top{font-size:19px;line-height:1.3;font-weight:600;color:#f0f8ff;align-items:flex-start;min-height:49px}
.overview .metric-top svg{width:23px;height:23px;stroke:#88d0fa;margin-top:1px}
.overview .metric-top>span{max-width:230px;letter-spacing:-.25px}
.overview .metric{background:#172f48;box-shadow:inset 0 1px #ffffff08;backdrop-filter:none}
.upload-panel,.recent-panel,.history-panel,.allowance-upgrade{position:relative;isolation:isolate}
.product-motif{position:absolute;inset:0;z-index:0;overflow:hidden;border-radius:inherit;pointer-events:none;user-select:none}
.product-motif img{position:absolute;display:block;max-width:none;object-fit:contain;pointer-events:none}
.upload-panel>:not(.product-motif),.recent-panel>:not(.product-motif),.history-panel>:not(.product-motif),.allowance-upgrade>:not(.product-motif){position:relative;z-index:1}

/* The code-node illustration now belongs to Contract assessments. */
.upload-panel{background:linear-gradient(120deg,#fff 57%,#f3faff)}
.source-type-tag{background:#f7fbfeeb;border-color:#c7dfed}
.assessment-setup .dropzone{background-color:#fafdff}

/* Code relationships float while light traces move through their connections. */
.assessment-network-motif .assessment-code-art{position:absolute;width:680px;height:326px;right:-5px;top:-45px;opacity:.7}
.assessment-network-motif{mask-image:linear-gradient(90deg,transparent 35%,#000 69%);-webkit-mask-image:linear-gradient(90deg,transparent 35%,#000 69%)}
.recent-panel .recent-heading{background:linear-gradient(90deg,#173c5b26,transparent)}
.recent-panel .recent-result{background:linear-gradient(90deg,#102d4630,transparent)}
.recent-panel .recent-heading>.visit-badge{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 12px;border:1px solid #9ad7f8;border-radius:7px;background:#ddf3ff;color:#113754;font-size:14px;line-height:1.3;font-weight:700;letter-spacing:.15px;box-shadow:0 3px 12px #031c3026}

/* The history decoration remains above the actual data rows. */
.ledger-network-motif img{width:380px;height:162px;right:20px;top:-6px;opacity:.85}
.ledger-network-motif{mask-image:linear-gradient(90deg,transparent 30%,#000 66%);-webkit-mask-image:linear-gradient(90deg,transparent 30%,#000 66%)}
.history-panel .history-heading{background:linear-gradient(110deg,transparent 48%,#eef8fe75)}
.history-empty,.history-table-wrap{background:#fff}
.history-panel .history-count{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:8px 13px;border:1px solid #83c7ec;border-radius:8px;background:#e1f3ff;color:#113754;position:relative;z-index:2;box-shadow:0 3px 12px #173c5b0c;white-space:nowrap}
.history-panel .history-count strong{font-size:24px;line-height:1.1;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.5px}
.history-panel .history-count>span{font-size:14px;line-height:1.3;font-weight:600;letter-spacing:0}

/* Pro retains the strongest motion; its security backdrop is static. */
.pro-security-motif img{width:315px;height:257px;right:140px;bottom:-41px;opacity:.24}
.pro-security-motif{mask-image:linear-gradient(90deg,transparent 5%,#000 55%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent 5%,#000 55%,transparent)}

/* Only decorative inner groups move; cards, controls and text stay fixed. */
.overview-blocks-drift{transform-box:fill-box;transform-origin:65% 35%;animation:linked-blocks-camera 14s ease-in-out infinite alternate}
.linked-block-face{fill:#1d4967;fill-opacity:.85;stroke:#7ecdf5;stroke-width:1.3;stroke-opacity:.68}
.block-code-lines{stroke:#a4e1ff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;opacity:.8}
.block-highlight{stroke:#81d7ff;stroke-width:1;opacity:.1;animation:linked-block-glow 7s ease-in-out infinite}
.overview-floating-block{transform-box:fill-box;transform-origin:center;animation:linked-block-float 7.5s ease-in-out infinite alternate}
.block-b{animation-delay:-3s;animation-duration:8.5s}
.block-c{animation-delay:-5s;animation-duration:7s}
.block-d{animation-delay:-1.5s;animation-duration:9s}
.block-e{animation-delay:-4s;animation-duration:8s}
.block-b .block-highlight{animation-delay:-2.5s}
.block-d .block-highlight{animation-delay:-4.5s}
.running-trace{stroke-dasharray:6 94;stroke-dashoffset:100;opacity:.85;animation:product-trace-travel 9s linear infinite}
.running-trace.trace-later{animation-delay:-4.5s;animation-duration:11s}
.assessment-code-drift{transform-box:fill-box;transform-origin:65% 45%;animation:code-graph-camera 12s ease-in-out infinite alternate}
.code-floating-node{transform-box:fill-box;transform-origin:center;animation:code-node-float 6s ease-in-out infinite alternate}
.code-floating-node rect{fill:#1c4967;stroke:#91d8fa;stroke-width:1.3;animation:code-node-light 6s ease-in-out infinite}
.code-node-b{animation-delay:-2s;animation-duration:7s}
.code-node-c{animation-delay:-4s;animation-duration:8s}
.code-node-b rect{animation-delay:-2s}
.code-node-c rect{animation-delay:-4s}
.contract-document-float{animation:contract-sheet-float 8s ease-in-out infinite alternate}
.contract-sheet{fill:#1b435f;stroke:#91d8fa;stroke-width:1.5}
.contract-code-mark{stroke:#9ce0ff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.contract-scan-beam{animation:contract-sheet-scan 6s ease-in-out infinite}
@keyframes linked-blocks-camera{from{transform:translate(-7px,0) scale(1)}to{transform:translate(8px,3px) scale(1.045)}}
@keyframes linked-block-float{from{transform:translate(-2px,4px)}to{transform:translate(2px,-5px)}}
@keyframes linked-block-glow{0%,100%{opacity:.1}50%{opacity:.65}}
@keyframes product-trace-travel{to{stroke-dashoffset:0}}
@keyframes code-graph-camera{from{transform:translate(-5px,2px) scale(1)}to{transform:translate(6px,-2px) scale(1.025)}}
@keyframes code-node-float{from{transform:translate(-2px,3px)}to{transform:translate(2px,-4px)}}
@keyframes code-node-light{0%,100%{stroke-opacity:.5;fill-opacity:.8}50%{stroke-opacity:1;fill-opacity:1}}
@keyframes contract-sheet-float{from{transform:translateY(3px)}to{transform:translateY(-4px)}}
@keyframes contract-sheet-scan{0%,10%{transform:translateY(0);opacity:0}22%{opacity:.8}78%{opacity:.7}90%,100%{transform:translateY(86px);opacity:0}}

@media screen and (max-width:1100px){
  .assessment-network-motif .assessment-code-art{right:-45px;opacity:.66}
  .ledger-network-motif img{right:0;opacity:.7}
  .pro-security-motif img{right:90px;opacity:.18}
}
@media screen and (max-width:650px){
  .overview-product-art .overview-blocks-art{width:780px;height:323px;right:-210px;top:-55px;opacity:.34}
  .overview-product-art:before{width:420px;right:-190px;top:-60px;opacity:.4}
  .assessment-network-motif .assessment-code-art{width:500px;height:240px;right:-85px;top:35px;opacity:.5}
  .assessment-network-motif{mask-image:linear-gradient(90deg,transparent 7%,#000);-webkit-mask-image:linear-gradient(90deg,transparent 7%,#000)}
  .ledger-network-motif img{width:290px;height:124px;right:-105px;top:13px;opacity:.5}
  .ledger-network-motif{mask-image:linear-gradient(90deg,transparent 28%,#000);-webkit-mask-image:linear-gradient(90deg,transparent 28%,#000)}
  .pro-security-motif img{width:330px;height:269px;right:-60px;top:6px;bottom:auto;opacity:.13}
  .overview .metric-top{font-size:17px;min-height:45px;line-height:1.3}
  .overview .metric-top svg{display:none}
}
@media(prefers-reduced-motion:reduce){
  .overview-product-art:before{animation:none;transform:none;opacity:.5}
  .overview-blocks-drift,.overview-floating-block,.block-highlight,.running-trace,.assessment-code-drift,.code-floating-node,.code-floating-node rect,.contract-document-float,.contract-scan-beam{animation:none!important;transform:none}
  .running-trace,.contract-scan-beam{display:none}
}
@media print{.product-motif,.overview-product-art{display:none!important}}
