/* Full-width editorial chapters for the security page. */
.security-editorial{margin-block:64px 32px}
.security-overview{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:start;margin-bottom:72px}
.security-intro{font-size:18px;line-height:1.9;color:var(--muted)}
.security-intro p{margin:0 0 20px}
.security-intro p:first-child{font-size:21px;color:#253e60;line-height:1.8}
.security-contents .eyebrow{margin:0 0 14px}
.security-contents ol{list-style:none;padding:0;margin:0}
.security-contents li+li{border-top:1px solid var(--line)}
.security-contents a{display:flex;align-items:baseline;gap:16px;padding-block:11px;font-size:15px;line-height:1.6;color:#314e71}
.security-contents a:hover{color:var(--blue);text-decoration:underline;text-underline-offset:4px}
.security-contents a span{flex:none;font-size:12px;color:#57769d;font-variant-numeric:tabular-nums}
.security-section{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:80px;border-top:1px solid #ceddec;padding-block:64px;scroll-margin-top:calc(var(--site-header-height) + 24px)}
.security-section-heading{min-width:0}
.security-number{display:block;color:#3376b8;font-size:14px;font-weight:650;letter-spacing:.14em;margin-bottom:20px}
.security-section h2{font-size:clamp(27px,2.5vw,35px);line-height:1.35;letter-spacing:-.025em;margin:0;text-wrap:balance;overflow-wrap:anywhere}
.security-section-body{min-width:0;color:#425773;font-size:17px;line-height:1.95}
.security-section-body p{margin:0 0 22px}
.security-section-body>p:first-child{font-size:19px;line-height:1.85;color:#213c5c}
.security-section-body>p:last-child{margin-bottom:0}
.security-section-body strong{color:#1b3555;font-weight:650}
.security-section-body a{color:var(--blue);text-decoration:underline}
.security-steps{margin:28px 0;padding-inline-start:25px}
.security-steps li{padding-inline-start:10px;margin:0 0 20px}
.security-steps li::marker{font-weight:650;color:#1266bc}
.security-roles{list-style:none;padding:0;margin:28px 0}
.security-roles li{margin:0 0 20px;padding-inline-start:20px;border-inline-start:2px solid #b5cee7}
.security-caveat{border-inline-start:3px solid #388b92;padding-inline-start:22px;margin-top:30px;color:#355e68;font-size:16px;line-height:1.9}
.security-caveat p{margin:0}
@media(max-width:1050px){.security-overview{gap:40px}.security-section{grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:40px}.security-section h2{font-size:29px}}
@media(max-width:800px){.security-editorial{margin-block:40px 20px}.security-overview{grid-template-columns:1fr;gap:24px;margin-bottom:44px}.security-intro{font-size:17px}.security-intro p:first-child{font-size:19px}.security-section{grid-template-columns:1fr;gap:25px;padding-block:40px}.security-number{margin-bottom:12px}.security-section h2{font-size:28px;max-width:28ch;text-wrap:pretty}.security-section-body{font-size:16px;line-height:1.9}.security-section-body>p:first-child{font-size:18px}.security-caveat{font-size:15px;padding-inline-start:16px}}
@media(forced-colors:active){.security-section,.security-contents li+li,.security-roles li,.security-caveat{border-color:CanvasText}}

/* Explanatory figures stay beside the original wide reading column. */
.security-viz{--sv-blue:#075acf;--sv-mint:#067762;--sv-red:#a7384d;--sv-line:#b8cbe2;margin:30px 0 0;min-width:0;max-width:100%;color:#244160}
.security-viz .sv-canvas{padding:22px;border:1px solid #cfdeef;border-radius:22px;background:linear-gradient(150deg,#f4f9ff,#edf6ff 70%,#edf9f6);position:relative;isolation:isolate}
.security-viz figcaption{font-size:14px;line-height:1.75;color:#4f607a;margin-top:16px;text-wrap:pretty;overflow-wrap:anywhere}
.security-viz p{margin:0}.security-viz bdi{unicode-bidi:isolate}.security-viz small{display:block;font-size:12px;line-height:1.65;color:#4b607a}
.security-viz strong{font-weight:650;color:#163755;line-height:1.5}
.security-viz .sv-kicker{font-size:13px;line-height:1.6;font-weight:650;color:#254866;display:flex;gap:7px 12px;align-items:center;flex-wrap:wrap;margin:0 0 18px}
.security-viz .sv-kicker>span:not(.sv-state-dot){font-size:11px;line-height:1.5;font-weight:500;color:#4e647e}
.security-viz .sv-icon{display:block;width:36px;height:36px;flex:none;stroke:currentColor;stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round;color:var(--sv-blue)}
.security-viz .sv-mint{color:var(--sv-mint)}
.security-viz .sv-network,.security-viz .sv-group{border:1px dashed #86a9cf;border-radius:15px;padding:18px 12px;background:#ffffffaa}
.security-viz .sv-machines{display:grid;grid-template-columns:minmax(0,1fr) 42px minmax(0,1fr);align-items:center;gap:8px}
.security-viz .sv-machines>div{text-align:center;min-width:0;font-size:12px;color:#315372}
.security-viz .sv-mac{display:block;width:100%;height:auto;margin-bottom:7px;overflow:visible}
.security-viz .sv-hardware{fill:#f6faff;stroke:#6787ae;stroke-width:1.7;stroke-linejoin:round}
.security-viz .sv-screen{fill:#eaf3ff;stroke:#c5d9ef;stroke-width:1}
.security-viz .sv-payload{fill:#075acf;stroke:#075acf;stroke-width:1.8;stroke-linejoin:round}
.security-viz .sv-payload.sv-mint{fill:#067762;stroke:#067762}
.security-viz .sv-paper-fold{fill:none;stroke:#fff;stroke-width:1.7}
.security-viz .sv-link{width:100%;height:auto;overflow:visible;margin-top:-20px;color:var(--sv-blue)}
.security-viz .sv-link-base{stroke:#80a2c9;stroke-width:2}.security-viz .sv-link-arrow{stroke:var(--sv-blue);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.security-viz .sv-travel{fill:var(--sv-blue)}.security-viz .sv-return{fill:var(--sv-mint)}
.security-viz .sv-cloud-off{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:24px;font-size:13px;line-height:1.6;color:#644955}
.security-viz .sv-cloud-off .sv-icon{color:var(--sv-red);width:33px;height:33px}
.security-viz .sv-accounts{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:0 0 24px}
.security-viz .sv-accounts>div{display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px;min-width:0;font-size:12px;line-height:1.6}
.security-viz .sv-accounts .sv-icon{border-radius:50%;padding:5px;box-sizing:content-box;background:#dceaff;border:1px solid #c9dcf5}
.security-viz .sv-accounts .sv-icon.sv-mint{background:#dcf3eb;border-color:#bcded3}
.security-viz .sv-inline,.security-viz .sv-footnote{display:flex;align-items:center;gap:9px;font-size:12px;line-height:1.6;margin-top:16px}
.security-viz .sv-inline .sv-icon,.security-viz .sv-footnote .sv-icon{width:24px;height:24px}
.security-viz .sv-footnote .sv-icon{color:var(--sv-mint)}
.security-viz .sv-pairing{list-style:none;padding:0;margin:0;position:relative}
.security-viz .sv-pairing:before{content:'';position:absolute;inset-inline-start:12px;top:18px;bottom:18px;width:1px;background:#8baed4}
.security-viz .sv-step{position:relative;display:grid;grid-template-columns:26px 28px minmax(0,1fr);align-items:start;gap:10px;margin:0;padding:0 0 24px}
.security-viz .sv-step:last-child{padding-bottom:0}
.security-viz .sv-step-number{border:1px solid #aac5e3;width:26px;height:26px;display:grid;place-items:center;background:#eff6ff;border-radius:50%;font-size:12px;line-height:1;color:var(--sv-blue);z-index:1}
.security-viz .sv-step>.sv-icon{width:27px;height:27px}
.security-viz .sv-step>div{min-width:0}.security-viz .sv-step strong{display:block;font-size:13px}
.security-viz .sv-step small{margin-top:4px}
.security-viz .sv-step:last-child .sv-icon{color:var(--sv-mint)}
.security-viz .sv-protocol{display:block;font-size:12px;font-weight:500;margin-top:2px}
.security-viz .sv-code{display:flex;gap:4px;margin:9px 0;direction:ltr}
.security-viz .sv-code i{width:18px;height:24px;display:grid;place-items:center;border:1px solid #96b7dd;background:#fff;border-radius:4px;font-size:17px;line-height:1;font-style:normal;color:var(--sv-blue)}
.security-viz .sv-transit{padding-bottom:16px}.security-viz .sv-auth{justify-content:center}
.security-viz .sv-at-rest{padding-top:18px;border-top:1px solid #bdcfe5}
.security-viz .sv-vaults{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.security-viz .sv-vaults>div{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:11px;min-width:0}
.security-viz .sv-vault{display:flex;align-items:center;gap:3px;padding:13px 8px;border:1px solid #a8c5da;border-radius:12px;background:#fff}
.security-viz .sv-vault>.sv-icon{width:30px;height:30px}.security-viz .sv-vault>.sv-icon+svg{width:24px;height:24px;color:var(--sv-mint)}
.security-viz .sv-key{width:27px;height:27px;color:var(--sv-mint)}
.security-viz .sv-storage-labels{display:flex;flex-direction:column;align-items:center;gap:3px;margin-top:10px;font-size:12px;line-height:1.7;text-align:center}
.security-viz .sv-state-dot{width:7px;height:7px;background:var(--sv-mint);border-radius:50%;flex:none}
.security-viz .sv-roster{display:grid;grid-template-columns:1fr 1fr;gap:16px 12px;text-align:center;position:relative}
.security-viz .sv-role{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:12px;min-width:0}
.security-viz .sv-signed{grid-column:1/-1;grid-row:2;display:flex;align-items:center;gap:10px;border:1px solid #a5bfd9;border-radius:10px;background:#f3f8ff;padding:12px;font-size:12px;line-height:1.7}
.security-viz .sv-signed .sv-icon{width:30px;height:30px;color:var(--sv-mint)}
.security-viz .sv-authorized-line{height:2px;background:linear-gradient(90deg,#075acf,#067762);margin:14px 0 0;transform-origin:0 50%}
.security-viz .sv-revoked,.security-viz .sv-inactive{display:flex;gap:10px;align-items:center;margin-top:18px;font-size:12px;line-height:1.6}
.security-viz .sv-revoked{color:#7f3448}.security-viz .sv-revoked .sv-icon{color:var(--sv-red);width:28px;height:28px}
.security-viz .sv-inactive{border:1px solid #ccd8e7;padding:10px;border-radius:10px;color:#50627b;background:#f5f8fc}
.security-viz .sv-inactive .sv-icon{color:#526c89;width:27px;height:27px}
.security-viz .sv-local-window{border:1px solid #aac2dd;border-radius:14px;background:#ffffffcb;overflow:hidden}
.security-viz .sv-window-bar{display:flex;gap:12px;align-items:center;border-bottom:1px solid #d0deed;padding:12px;background:#f2f7fd;font-size:12px;line-height:1.6}
.security-viz .sv-window-bar>span{font-size:13px;white-space:nowrap;color:#647fa0}
.security-viz .sv-inspection{list-style:none;margin:0;padding:16px}
.security-viz .sv-inspection>li{display:flex;gap:12px;align-items:center;font-size:13px;line-height:1.65;position:relative;padding-block:6px;min-width:0}
.security-viz .sv-inspection>li+li{margin-top:18px}
.security-viz .sv-inspection>li+li:before{content:'↓';position:absolute;inset-block-start:-19px;inset-inline-start:12px;color:#507ba9;font-size:17px}
.security-viz .sv-inspection .sv-icon{width:31px;height:31px}
.security-viz .sv-result{border-top:1px solid #d6dfeb;padding-top:16px!important}.security-viz .sv-result .sv-icon{color:var(--sv-red)}
.security-viz .sv-result strong{color:#793348;font-size:13px}.security-viz .sv-result small{margin-top:4px}
.security-viz .sv-scan-line{position:absolute;inset-inline-start:0;top:0;height:2px;width:34px;background:#075acf;opacity:0}
.security-viz .sv-boundary{margin-top:16px;font-size:12px;line-height:1.7;color:#5b5369}
.security-viz .sv-separate{margin-top:9px;padding-top:9px;border-top:1px solid #c5d7e9;font-size:12px;line-height:1.7;color:#315475}
.security-viz [class^=sv-],.security-viz [class*=" sv-"]{min-width:0;overflow-wrap:anywhere}
@media(max-width:1050px) and (min-width:801px){.security-viz .sv-canvas{padding:16px}.security-viz .sv-step{grid-template-columns:24px minmax(0,1fr);gap:9px}.security-viz .sv-step>.sv-icon{display:none}.security-viz .sv-network,.security-viz .sv-group{padding:14px 10px}}
@media(max-width:800px){.security-viz{max-width:460px;margin-top:24px}.security-viz .sv-canvas{padding:22px}.security-viz figcaption{font-size:14px}}
@media(max-width:360px){.security-viz .sv-canvas{padding:16px}.security-viz .sv-step{gap:8px;grid-template-columns:24px 23px minmax(0,1fr)}.security-viz .sv-step>.sv-icon{width:23px;height:23px}.security-viz .sv-code{gap:3px}.security-viz .sv-code i{width:15px;height:22px}.security-viz .sv-machines{gap:5px;grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr)}.security-viz .sv-network,.security-viz .sv-group{padding:14px 10px}}
/* All meaning is visible by default. Motion only accents an already-complete diagram. */
@media(prefers-reduced-motion:no-preference){
 .security-viz[data-motion=playing] .sv-travel{animation:sv-transfer 2.8s ease-in-out 1}
 .security-viz[data-motion=playing] .sv-return{animation-direction:reverse}
 .security-viz[data-motion=playing] .sv-accounts .sv-icon{animation:sv-outline 2.6s ease-out 1}
 .security-viz[data-motion=playing] .sv-step-number{animation:sv-outline .8s ease-out 1}
 .security-viz[data-motion=playing] .sv-step-2 .sv-step-number{animation-delay:.7s}
 .security-viz[data-motion=playing] .sv-step-3 .sv-step-number{animation-delay:1.4s}
 .security-viz[data-motion=playing] .sv-step-4 .sv-step-number{animation-delay:2.1s}
 .security-viz[data-motion=playing] .sv-key{animation:sv-outline 1.3s ease-out 1 1.4s}
 .security-viz[data-motion=playing] .sv-authorized-line{animation:sv-roster 2s ease-out 1}
 .security-viz[data-motion=playing] .sv-scan-line{animation:sv-scan 1.8s ease-in-out 1}
 .security-viz[data-motion=playing] .sv-result{animation:sv-outline 1s ease-out 1 1.8s}
}
@keyframes sv-transfer{0%{transform:translateX(0);opacity:.4}50%{transform:translateX(23px);opacity:1}100%{transform:translateX(0);opacity:1}}
@keyframes sv-outline{0%,100%{filter:none}40%{filter:drop-shadow(0 0 3px #388ad0)}}
@keyframes sv-roster{0%{transform:scaleX(.2)}100%{transform:scaleX(1)}}
@keyframes sv-scan{0%{transform:translateY(0);opacity:0}20%{opacity:.8}80%{opacity:.8}100%{transform:translateY(35px);opacity:0}}
@media(prefers-reduced-motion:reduce){.security-viz *{animation:none!important;transition:none!important}.security-viz .sv-scan-line{display:none}}
@media(forced-colors:active){.security-viz{--sv-blue:CanvasText;--sv-mint:CanvasText;--sv-red:CanvasText}.security-viz .sv-canvas,.security-viz .sv-network,.security-viz .sv-group,.security-viz .sv-vault,.security-viz .sv-local-window{background:Canvas;border-color:CanvasText}.security-viz .sv-payload{fill:CanvasText;stroke:CanvasText}.security-viz .sv-paper-fold{stroke:Canvas}.security-viz .sv-hardware{stroke:CanvasText;fill:Canvas}.security-viz .sv-icon{color:CanvasText}}
@media print{.security-viz{break-inside:avoid}.security-viz *{animation:none!important;filter:none!important}}
