/* The Problem — deck-specific styles */
.ps-node { border-radius: 50%; display: grid; place-items: center; text-align: center; font-size: 24px; font-weight: 700; line-height: 1.2; background: var(--panel-solid); border: 2px solid var(--c); box-shadow: 0 16px 40px rgba(0,0,0,.35); transition: border-color .6s var(--ease), box-shadow .6s var(--ease), opacity .7s var(--ease), transform .8s var(--ease); }
.ps-node .pi { color: var(--c); }
.ps-node.ps-at-risk { border-color: var(--red); box-shadow: 0 0 0 5px rgba(239,68,68,.18), 0 16px 40px rgba(0,0,0,.35); }
.ps-warn { border-radius: 50%; display: grid; place-items: center; color: #fff; background: var(--red); box-shadow: 0 0 0 6px rgba(239,68,68,.25), 0 8px 20px rgba(0,0,0,.4); z-index: 3; }
.ps-declined { display: flex; align-items: center; gap: 16px; font-size: 24px; color: var(--ink-2); }
.ps-declined .p2-tag { font-size: 17px; }

/* fraud: phone mock-up */
.ps-phone { border-radius: 52px; background: linear-gradient(180deg, #111f3d 0%, #0a1430 100%); border: 3px solid rgba(148,163,184,.35); box-shadow: 0 30px 80px rgba(0,0,0,.55), inset 0 0 0 8px rgba(2,6,23,.6); text-align: center; padding: 36px 30px; }
.ps-ph-top { font-size: 22px; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); font-weight: 600; }
.ps-ph-avatar { width: 104px; height: 104px; border-radius: 50%; margin: 22px auto 14px; display: grid; place-items: center; color: var(--blue-2); background: rgba(59,130,246,.18); border: 1.5px solid rgba(59,130,246,.5); }
.ps-ph-name { font-size: 46px; font-weight: 750; min-height: 58px; }
.ps-ph-num { font-family: var(--mono); font-size: 30px; color: var(--ink-2); min-height: 40px; margin-top: 6px; }
.ps-ph-fake { display: inline-flex; align-items: center; gap: 10px; margin-top: 12px; padding: 8px 14px; border-radius: 12px; font-size: 20px; font-weight: 700; color: #fff; background: rgba(239,68,68,.85); opacity: 0; transform: scale(.9); transition: all .6s var(--ease); }
.ps-ph-fake.ps-on { opacity: 1; transform: none; }
.ps-ph-btns { position: absolute; left: 0; right: 0; bottom: 30px; display: flex; justify-content: center; gap: 90px; }
.ps-ph-btns span { width: 76px; height: 76px; border-radius: 50%; display: grid; place-items: center; color: #fff; }
.ps-ph-no { background: var(--red); }
.ps-ph-yes { background: var(--green); }
.ps-risk .p2-tag { font-size: 17px; }
.ps-trust { opacity: .35; transition: opacity .6s var(--ease); }
.ps-trust.ps-on { opacity: 1; }
.ps-trust-l { display: flex; justify-content: space-between; font-size: 22px; color: var(--ink-2); }
.ps-trust-l b { color: #fff; }
.ps-bar { height: 18px; border-radius: 9px; background: rgba(148,163,184,.18); margin-top: 10px; overflow: hidden; }
.ps-bar i { display: block; height: 100%; width: 100%; border-radius: 9px; background: var(--green); transition: width 1.8s var(--ease-in-out), background 1.8s; }
.ps-bar i.ps-low { background: var(--red); }

/* innovation: bar chart */
.ps-bars { display: flex; gap: 40px; align-items: flex-end; height: 470px; padding: 0 10px; margin-top: 10px; }
.ps-barcol { flex: 1; display: flex; flex-direction: column; align-items: center; height: 100%; }
.ps-barwrap { flex: 1; width: 100%; display: flex; align-items: flex-end; border-bottom: 2px solid var(--line-2); }
.ps-barv { width: 100%; height: 0; min-height: 0; border-radius: 12px 12px 0 0; background: linear-gradient(180deg, var(--c), color-mix(in srgb, var(--c) 45%, transparent)); transition: height 1.1s var(--ease); }
.ps-barcol.ps-on .ps-barv { height: calc(var(--v) * 1%); min-height: 10px; }
.ps-barcol b { font-size: 26px; margin-top: 12px; color: #fff; }
.ps-barcol span { font-size: 20px; color: var(--ink-3); }
.ps-missed { display: flex; align-items: center; gap: 14px; font-size: 26px; color: var(--red-2); font-weight: 600; }

/* regulation: line chart */
.ps-chart { display: block; margin-top: 6px; overflow: visible; }
.ps-axis { stroke: rgba(148,163,184,.45); stroke-width: 2; fill: none; }
.ps-tick { fill: var(--ink-3); font-size: 22px; text-anchor: middle; font-family: 'Inter', sans-serif; }
.ps-line { fill: none; stroke-width: 6; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.8s var(--ease-in-out); }
.ps-line.ps-on { stroke-dashoffset: 0; }
.ps-tech { stroke: var(--green); }
.ps-reg { stroke: var(--red); }
.ps-ai { stroke: var(--violet-2); stroke-width: 8; transition-duration: 1s; }
.ps-gap { fill: rgba(239,68,68,.16); opacity: 0; transition: opacity 1s var(--ease); }
.ps-gap.ps-on { opacity: 1; }
.ps-lab { font-family: 'Inter', sans-serif; font-size: 26px; font-weight: 750; opacity: 0; transition: opacity .7s var(--ease); }
.ps-lab.ps-on { opacity: 1; }
.ps-lab-t { fill: var(--green-2); }
.ps-lab-r { fill: var(--red-2); }
.ps-lab-g { fill: #fff; letter-spacing: .12em; font-size: 24px; }
.ps-lab-ai { fill: var(--violet-2); font-size: 30px; }

/* central database */
.ps-stamp { font-size: 40px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; color: var(--red); border: 5px solid var(--red); border-radius: 14px; padding: 8px 22px; transform: rotate(-8deg); background: rgba(4,9,22,.75); z-index: 4; }
.ps-stamp.p2-shown { transform: rotate(-8deg) !important; }
.ps-ots { display: grid; gap: 14px; }
.ps-ots div { display: flex; align-items: center; gap: 14px; font-size: 28px; color: var(--ink); font-weight: 600; }
.ps-ots .pi { color: var(--green-2); flex: none; }

/* missing capabilities */
.ps-tile { display: flex; align-items: center; gap: 18px; padding: 0 22px; border-radius: 20px; background: var(--panel); border: 1.5px solid rgba(239,68,68,.4); box-shadow: 0 18px 44px rgba(0,0,0,.35); }
.ps-tile .p2-chip { --c: var(--ink-3); width: 56px; height: 56px; border-radius: 14px; }
.ps-tile span { flex: 1; font-size: 27px; font-weight: 700; line-height: 1.2; }
.ps-tile em { position: absolute; right: 16px; top: 10px; display: flex; align-items: center; gap: 4px; font-style: normal; font-size: 16px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; color: var(--red-2); }

/* new strategy */
.ps-without li { font-size: 32px; margin-bottom: 0; }

.ps-tags { display: flex; gap: 14px; }
.ps-tags .p2-tag { font-size: 20px; padding: 7px 16px; }

.p2-capture .ps-barv, .p2-capture .ps-line, .p2-capture .ps-bar i, .p2-capture .ps-gap, .p2-capture .ps-lab { transition: none !important; }
