/* Keep each diagram to a few shapes and a single readable relationship. */
.iso-diagram{margin:0;min-width:0;width:100%}
.iso-canvas{display:block;width:100%;height:auto;overflow:visible;fill:none;stroke:none}
.iso-under{fill:#211629;stroke:#664b7c;stroke-width:1;stroke-opacity:.6}
.iso-surface{fill:#211929;stroke:#8967a0;stroke-width:1.1;stroke-opacity:.65;transition:fill .4s,stroke .4s}
.iso-symbol{fill:none;stroke:#bea0d6;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;transition:stroke .4s}
.iso-core .iso-surface{fill:#77539b;stroke:#c3a0e0;stroke-opacity:1}
.iso-core .iso-under{fill:#49315e;stroke:#946cb3}
.iso-core .iso-symbol{stroke:#f1e4fa}
.iso-route{fill:none;stroke:#775789;stroke-width:1;stroke-opacity:.35;stroke-linecap:round;stroke-linejoin:round}
.iso-packet{fill:none;stroke:#ceb2e8;stroke-width:1.7;stroke-linecap:round;stroke-dasharray:9 390;animation:iso-stream 9s linear infinite;opacity:.65}
.iso-label{fill:#b4a0c2;font:500 17px Manrope,sans-serif;letter-spacing:0;stroke:none}
.iso-diagram:not(.is-in-view) *{animation-play-state:paused!important}
.iso-diagram .iso-lift{transition:transform .5s}
.iso-diagram:hover .iso-core .iso-surface{fill:#8863ae}
.source-story{padding-block:110px 95px}
.source-explorer{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:clamp(45px,7vw,105px);align-items:center}
.source-copy{max-width:405px}
.source-copy h2{margin:24px 0;font-size:clamp(37px,3.8vw,52px);line-height:1.1}
.source-copy>p{font-size:17px;line-height:1.85;color:#a897b6;max-width:310px}
.source-detail{margin-top:35px;min-height:104px;padding:0;max-width:340px}
.source-detail strong{display:block;font-size:16px;color:#d2bbdf;font-weight:500}
.source-detail p{font-size:15px;line-height:1.75;color:#9e89ad;margin-top:10px}
.source-copy>.text-link{font-size:14px;margin-top:14px}
.source-visual{min-width:0;position:relative}
.source-visual .iso-canvas{width:100%;min-height:0}
.source-visual .iso-label{font-size:17px}
.source-hint{display:block;text-align:center;font-size:12px;color:#82708f;margin:15px 0 0}
.source-tile{cursor:pointer;outline:none;transition:opacity .35s}
.source-tile .iso-lift{transition:transform .4s cubic-bezier(.22,1,.36,1)}
.source-tile .iso-label{transition:fill .3s}
.source-explorer[data-active]:not([data-active=all]) .source-tile:not(.is-active){opacity:.4}
.source-tile.is-active .iso-lift,.source-tile:focus-visible .iso-lift{transform:translateY(-9px)}
.source-tile.is-active .iso-surface,.source-tile:focus-visible .iso-surface{fill:#392747;stroke:#d4b2ed;stroke-opacity:1}
.source-tile.is-active .iso-symbol{stroke:#e7d0f7}
.source-tile.is-active .iso-label{fill:#ead8f8}
.source-tile:focus-visible .iso-surface{stroke:#fff;stroke-width:2}
.source-visual .iso-connection{transition:opacity .35s}
.source-visual .iso-packet{opacity:0;animation-play-state:paused}
.source-explorer:not([data-active=all]) .iso-connection:not(.is-active){opacity:.15}
.source-visual .iso-connection.is-active .iso-route{stroke-opacity:.7;stroke:#b794d0}
.source-visual .iso-connection.is-active .iso-packet{opacity:1;animation-play-state:running;animation-duration:3s}
.source-detail.is-changing{animation:source-detail-in .28s ease both}
@keyframes iso-stream{to{stroke-dashoffset:-399}}
@keyframes source-detail-in{from{opacity:.3;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1000px){.source-explorer{gap:32px;grid-template-columns:.85fr 1.15fr}.source-copy h2{font-size:39px}.source-visual .iso-label{font-size:21px}}
@media(max-width:760px){.source-story{padding-block:65px}.source-explorer{grid-template-columns:1fr;gap:32px}.source-copy{max-width:none}.source-copy h2{font-size:40px}.source-copy>p{max-width:320px}.source-detail{min-height:94px;margin-top:26px;max-width:360px}.source-copy>.text-link{margin-top:5px}.source-visual{width:100%;max-width:600px;margin:auto}.source-visual .iso-label{font-size:24px}.iso-label{font-size:23px}.source-hint{margin-top:10px}.iso-diagram{max-width:540px;justify-self:center}}
@media(prefers-reduced-motion:reduce){.iso-diagram *,.source-explorer *{animation:none!important;transition:none!important}.source-tile.is-active .iso-lift{transform:none}.iso-packet{display:none}}
/* One shared SOC checklist across the site. */
.soc-diagram{position:relative;width:100%;min-width:0;margin:0}
.soc-diagram:not(.is-in-view) *{animation-play-state:paused!important}
@media(max-width:760px){.soc-diagram{max-width:540px;justify-self:center}}
@media(prefers-reduced-motion:reduce){.soc-diagram *{animation:none!important}}
.soc-console{position:relative;border:1px solid #aa8acb36;border-radius:18px;background:linear-gradient(140deg,#261d30e6,#15121cc9);box-shadow:0 30px 75px #0002;overflow:hidden}
.soc-console-top{display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid #c2a0d919;padding:19px 25px;font-size:10px;letter-spacing:1.6px;color:#927e9f}
.soc-console-top>span:first-child{display:flex;align-items:center;gap:9px;color:#d6bdea;font-weight:600;letter-spacing:1.9px}
.soc-console-top svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.4}
.soc-case-heading{display:flex;gap:15px;align-items:center;padding:28px 27px 24px}
.soc-analyst-avatar{width:46px;height:46px;flex-shrink:0;display:grid;place-items:center;border:1px solid #a47cbe65;border-radius:50%;background:#51336855}
.soc-analyst-avatar svg{width:29px;height:29px;fill:none;stroke:#dcbfed;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.soc-case-heading>div>span{display:block;font-size:9px;letter-spacing:1.6px;color:#a990bb;margin-bottom:6px}
.soc-case-heading h3{font-size:25px;line-height:1.2;letter-spacing:-.7px;margin:0;font-weight:500}
.soc-case-pulse{width:7px;height:7px;border-radius:50%;background:#d6b8ef;margin-left:auto;box-shadow:0 0 0 5px #c19ae412;animation:soc-working 3s ease-in-out infinite}
.soc-case-track{display:flex;gap:6px;padding-inline:27px;margin-bottom:17px}
.soc-case-track i{position:relative;height:2px;flex:1;background:#9c78b427;overflow:hidden;border-radius:2px}
.soc-case-track i:after{content:'';position:absolute;inset:0;background:#c9a6e4;transform:scaleX(0);transform-origin:left;animation:soc-progress 15s ease-in-out infinite}
.soc-case-track i:nth-child(2):after{animation-name:soc-progress-two}.soc-case-track i:nth-child(3):after{animation-name:soc-progress-three}
.soc-case-steps{list-style:none;margin:0;padding:0 27px 12px}
.soc-case-steps li{position:relative;display:flex;align-items:center;gap:13px;padding:19px 0;opacity:.6;animation:soc-step-one 15s ease-in-out infinite}
.soc-case-steps li:nth-child(2){animation-name:soc-step-two}.soc-case-steps li:nth-child(3){animation-name:soc-step-three}
.soc-case-steps li:not(:last-child){border-bottom:1px solid #af8bc213}
.soc-step-mark{width:23px;height:23px;flex:0 0 23px;display:grid;place-items:center;border:1px solid #b38bcb78;border-radius:50%;background:#8b5aaf18}
.soc-step-mark svg{width:16px;height:16px;fill:none;stroke:#d8b5ee;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:15;stroke-dashoffset:15;animation:soc-check-one 15s ease-in-out infinite}
.soc-case-steps li:nth-child(2) svg{animation-name:soc-check-two}.soc-case-steps li:nth-child(3) svg{animation-name:soc-check-three}
.soc-case-steps strong{display:block;font-size:14px;font-weight:500;line-height:1.5;color:#e0cbea}
.soc-case-steps div>span{display:block;font-size:12px;line-height:1.5;color:#ae94be;margin-top:4px}
.soc-step-state{font-size:10px;color:#c2a3d7;margin-left:auto}
.soc-console-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:17px 25px;border-top:1px solid #a689b82b;background:#8d60960b;font-size:11px;color:#b9a0ca}
.soc-console-footer>span:first-child{display:flex;align-items:center;gap:10px}.soc-console-footer svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round}
.soc-case-note{color:#877395;font-size:10px}
.soc-checklist figcaption{text-align:center;font-size:11px;color:#847090;margin-top:17px}
.soc-checklist:not(.is-in-view) *:after{animation-play-state:paused!important}
@keyframes soc-working{50%{box-shadow:0 0 0 8px #c19ae405;opacity:.6}}
@keyframes soc-progress{0%,3%{transform:scaleX(0)}24%,92%{transform:scaleX(1)}100%{transform:scaleX(0)}}
@keyframes soc-progress-two{0%,29%{transform:scaleX(0)}53%,92%{transform:scaleX(1)}100%{transform:scaleX(0)}}
@keyframes soc-progress-three{0%,59%{transform:scaleX(0)}83%,92%{transform:scaleX(1)}100%{transform:scaleX(0)}}
@keyframes soc-step-one{0%,28%{opacity:1}34%,92%{opacity:.7}100%{opacity:1}}
@keyframes soc-step-two{0%,25%,100%{opacity:.6}31%,58%{opacity:1}64%,92%{opacity:.7}}
@keyframes soc-step-three{0%,55%,100%{opacity:.6}61%,92%{opacity:1}}
@keyframes soc-check-one{0%,17%,100%{stroke-dashoffset:15}24%,92%{stroke-dashoffset:0}}
@keyframes soc-check-two{0%,47%,100%{stroke-dashoffset:15}54%,92%{stroke-dashoffset:0}}
@keyframes soc-check-three{0%,77%,100%{stroke-dashoffset:15}84%,92%{stroke-dashoffset:0}}
@media(max-width:760px){.soc-console-top{padding:17px 19px;font-size:8px}.soc-case-heading{padding:24px 19px}.soc-case-heading h3{font-size:24px}.soc-case-track{padding-inline:19px}.soc-case-steps{padding-inline:19px}.soc-step-state{display:none}.soc-console-footer{padding:17px 19px}.soc-case-note{display:none}}
@media(prefers-reduced-motion:reduce){.soc-checklist *,.soc-checklist *:after{animation:none!important}.soc-case-steps li{opacity:1}.soc-step-mark svg{stroke-dashoffset:0}.soc-case-track i:after{transform:scaleX(1)}}

/* Upright, touch-sized source marks retain their detail on a small screen. */
.mobile-source-grid{display:none}
@media(max-width:760px){
 .source-explorer{gap:0}
 .source-copy{display:contents}
 .source-copy>.eyebrow{order:1}
 .source-copy>h2{order:2;margin-top:20px}
 .source-copy>p{order:3;margin-bottom:28px}
 .source-explorer>.source-visual{order:4}
 .source-copy>.source-detail{order:5;margin:24px 0 0;min-height:98px}
 .source-copy>.text-link{order:6;justify-self:start;margin-top:20px}
 .source-visual>.iso-canvas,.source-visual>.source-hint{display:none}
 .mobile-source-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 .mobile-source{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:112px;padding:16px 6px;border:1px solid #bb92d72b;border-radius:14px;background:linear-gradient(145deg,#35243d55,#1c142533);color:#baa1cd;cursor:pointer;transition:background .3s,border-color .3s,color .3s,transform .3s}
 .mobile-source>svg{display:block;width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
 .mobile-source>span{font-size:13px;line-height:1.4;letter-spacing:0}
 .mobile-source.is-active{border-color:#d3a4f08a;background:linear-gradient(145deg,#58366d80,#33213f80);color:#e5caf8;transform:translateY(-2px)}
 .mobile-source:focus-visible{outline:2px solid #d1adeb;outline-offset:3px}
 .mobile-source-hub{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:9px;min-height:48px;margin-top:8px;color:#aa8ebe;font-size:13px}
 .mobile-source-hub>svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
 .iso-diagram .iso-symbol{transform:matrix(.57735,-.57735,1,1,0,0);stroke-width:1.5}
}
@media(prefers-reduced-motion:reduce){.mobile-source{transition:none}}
