.security-guide{display:grid;grid-template-columns:minmax(235px,.86fr) minmax(0,1.14fr);min-width:0;color:#243747;font-family:'Segoe UI',system-ui,sans-serif}.security-guide *{box-sizing:border-box}.guide-copy{padding:20px 22px;min-width:0;background:#fff}.sg-column-label{display:flex;gap:8px;align-items:center;font-size:12px;font-weight:650;color:#0b2e4f;margin-bottom:25px}.sg-column-label>span{font-size:10px;border:1px solid #9db5c7;border-radius:50%;width:24px;height:24px;display:grid;place-items:center;flex:none}.sg-explanation{margin:0 0 23px;padding-left:13px;border-left:2px solid #dbe4ea;transition:border-color .3s}.sg-explanation .sg-kicker{font-size:9px;font-weight:750;letter-spacing:.12em;color:#567488;margin:0 0 8px}.sg-explanation>p:last-child{font-size:13px;line-height:1.7;margin:0}.security-guide[data-phase=geste] .sg-explanation:nth-child(2),.security-guide[data-phase=controle] .sg-explanation:nth-child(3){border-color:#155a8a}.security-guide[data-phase=acquis] .sg-acquired{border-color:#257664;background:#f4f9f6;padding-block:8px}.sg-detail{font-size:11px;line-height:1.6;color:#5d6c79;border-top:1px solid #e0e6eb;padding-top:12px}.sg-detail summary{cursor:pointer;min-height:28px}.sg-detail p{margin:8px 0 0}.guide-picture{background:#faf7ef;margin:0;padding:20px 17px;min-width:0;border-left:1px solid #e3ded2;display:flex;flex-direction:column}.guide-picture .sg-column-label{margin-bottom:15px}.sg-scene-status{font-size:11px;color:#537082;line-height:1.6;min-height:36px}.guide-picture svg{width:100%;height:auto;display:block;margin:12px 0;overflow:visible}.guide-picture figcaption{font-size:11px;line-height:1.6;color:#616872;margin:8px 0 15px}.sg-legend{display:flex;gap:7px 16px;flex-wrap:wrap;font-size:9px;color:#65727c;margin-top:auto}.sg-legend span{display:flex;align-items:center;gap:5px}.sg-legend i{display:block;width:11px;height:6px;border:1.5px solid #155a8a}.sg-legend .sg-gold{border-color:#997423;background:#e8d7af}
.security-guide svg{font-family:'Segoe UI',system-ui,sans-serif}.sg-small{font-size:12px;fill:#526779}.sg-label{font-size:12px;font-weight:650;fill:#155a8a}.sg-title{font-size:17px;fill:#0b2e4f;font-family:Georgia,serif}.sg-boundary,.sg-r2{fill:white;stroke:#b4c7d4;stroke-width:1.3}.sg-r2{fill:#edf3f8}.sg-device{fill:#fffaf0;stroke:#c0a66e;stroke-width:1.5}.sg-campaign{fill:#edf3f7;stroke:#7193ad;stroke-width:1.5}.sg-space{fill:#fff;stroke:#83ab9d;stroke-width:1.3}.sg-active{stroke:#155a8a;stroke-width:2.6}.sg-file{fill:#fff;stroke:#c2cbd3;stroke-width:1}.sg-head{fill:#155a8a}.sg-person{fill:none;stroke:#155a8a;stroke-width:2;stroke-linecap:round}.sg-role{fill:none;stroke:#a9becd;stroke-width:1;stroke-dasharray:3 3}.sg-private-key,.sg-public-key{fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.sg-private-key{stroke:#997423}.sg-private-key circle{fill:#ead9b4}.sg-public-key{stroke:#155a8a}.sg-gear{fill:none;stroke:#997423;stroke-width:2;transform-box:fill-box;transform-origin:center}.sg-generating .sg-gear{animation:sg-rotate 2s linear infinite}.sg-proof-line{stroke:#7894a7;stroke-dasharray:4 4;fill:none;stroke-width:1.5}.sg-lens{fill:#fff;stroke:#155a8a;stroke-width:2}.sg-lens-handle{fill:none;stroke:#155a8a;stroke-width:4;stroke-linecap:round}.sg-proof{fill:#e9f2f8;stroke:#155a8a;stroke-width:1.5}.sg-checking .sg-proof{animation:sg-proof 1s ease-in-out infinite}.sg-door{fill:#dce7ef;stroke:#155a8a;stroke-width:2;transform-box:fill-box;transform-origin:left;transition:transform .65s,fill .65s}.sg-authorized .sg-door{fill:#b9ddca;transform:scaleX(.28)}.sg-reward{fill:#eef8f2;stroke:#257664;stroke-width:2}.sg-tick{fill:none;stroke:#257664;stroke-width:2.3;stroke-linecap:round}.sg-share{fill:#f5e7c3;stroke:#997423;stroke-width:1.2}.sg-success .sg-reward{animation:sg-reward .5s ease-out}
@keyframes sg-rotate{to{transform:rotate(360deg)}}@keyframes sg-proof{50%{opacity:.3}}@keyframes sg-reward{from{opacity:0}to{opacity:1}}
@media(max-width:1150px) and (min-width:901px){.security-guide{grid-template-columns:1fr}.guide-picture{border-left:0;border-top:1px solid #e3ded2}.guide-picture svg{max-width:480px;align-self:center}.sg-explanation{margin-bottom:16px}}
@media(max-width:650px){.security-guide{grid-template-columns:1fr}.guide-copy{padding:20px}.guide-picture{border-left:0;border-top:1px solid #e3ded2;padding:20px 12px}.guide-picture svg{max-width:520px;align-self:center}.sg-explanation>p:last-child{font-size:14px}.sg-small{font-size:13px}.guide-picture figcaption{font-size:12px}}
.still .security-guide *{animation:none!important;transition:none!important}@media(prefers-reduced-motion:reduce){.security-guide *{animation:none!important;transition:none!important}}
.security-guide>.guide-copy,.security-guide>.guide-picture{min-width:0}
@media(max-width:650px){.security-guide>.guide-picture{grid-row:1}.security-guide>.guide-copy{grid-row:2}}

/* Top view and local key gestures, shared by the film and real companion. */
.sg-person,.sg-head{fill:#fff;stroke:#155a8a;stroke-width:1.8;stroke-linejoin:round}.sg-neck{fill:none;stroke:#155a8a;stroke-width:3}
.sg-key-stage:not(.sg-success) .sg-key-owned{opacity:0}
.sg-key-stage.sg-success .sg-key-owned{animation:sg-key-appear .85s ease-out both}
.sg-key-stage.sg-success .sg-key-public{animation-delay:.18s}
.sg-key-stage.sg-success .sg-generator{opacity:0;animation:sg-generator-leave .85s ease-in both}
.sg-door-gap{fill:none;stroke:#fff;stroke-width:5}.sg-door-jamb{fill:none;stroke:#155a8a;stroke-width:1.5}
.sg-door-handle{fill:#155a8a}.sg-door-leaf{transform-origin:0 0;transform:rotate(0deg)}
.sg-authorized .sg-door{transform:none;fill:#b9ddca}.sg-authorized .sg-door-leaf{transform:rotate(-72deg)}
.sg-key-flight{opacity:0;pointer-events:none}
.sg-opening .sg-key-flight{animation:sg-key-travel 2.2s ease-in-out both}
.sg-opening .sg-door-leaf{animation:sg-door-open 2.2s ease-in-out both}
@keyframes sg-key-appear{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}
@keyframes sg-generator-leave{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-38px)}}
@keyframes sg-key-travel{0%{opacity:0;transform:translateX(0)}10%{opacity:1;transform:translateX(0)}45%,76%{opacity:1;transform:translateX(228px)}100%{opacity:0;transform:translateX(238px)}}
@keyframes sg-door-open{0%,45%{transform:rotate(0deg)}72%,100%{transform:rotate(-72deg)}}
.sg-switch-person{transform:translateX(0)}.sg-switch.sg-success .sg-switch-person{transform:translateX(238px);animation:sg-switch-arrive 2.6s ease-in-out both}
.sg-switch-key{opacity:0}.sg-switch.sg-opening .sg-switch-key{animation:sg-switch-key 2.2s ease-in-out both}
@keyframes sg-switch-arrive{0%,68%{transform:translateX(0);opacity:1}78%{transform:translateX(85px);opacity:.35}100%{transform:translateX(238px);opacity:1}}
@keyframes sg-switch-key{0%{opacity:0;transform:translate(0,0)}10%{opacity:1;transform:translate(0,0)}45%,76%{opacity:1;transform:translate(-103px,-165px)}100%{opacity:0;transform:translate(-93px,-165px)}}
@media(max-width:1150px) and (min-width:901px){.security-guide>.guide-picture{grid-row:1}.security-guide>.guide-copy{grid-row:2}}

/* Visibility panels: isolated additions; the main scene is unchanged. */
.security-guide .sg-visibility{min-width:0;margin:12px 0 0;padding:12px 0 0;border:0;border-top:1px solid #d5dfe5;color:#243747;font-size:13px;line-height:1.6}
.security-guide .sg-visibility>summary{min-height:44px;margin:0;padding:10px 4px;color:#0b2e4f;font-size:13px;font-weight:650;line-height:1.6;cursor:pointer;overflow-wrap:anywhere}
.security-guide .sg-visibility>summary::marker{color:#155a8a}
.security-guide .sg-visibility>summary:focus-visible{outline:3px solid #997423;outline-offset:3px;border-radius:3px}
.security-guide .sg-visibility .sg-visibility-content{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;min-width:0;padding-top:10px}
.security-guide .sg-visibility .sg-visibility-intro{margin:0;font-size:13px;line-height:1.6;overflow-wrap:anywhere}
.security-guide .sg-visibility .sg-visibility-card{min-width:0;margin:0;padding:12px;border:1px solid #d9e2e8;border-radius:10px;background:#fff}
.security-guide .sg-visibility .sg-visibility-card h4{margin:0 0 12px;color:#0b2e4f;font-size:14px;font-weight:650;line-height:1.6;overflow-wrap:anywhere}
.security-guide .sg-visibility .sg-visibility-card p{margin:12px 0 0;font-size:13px;line-height:1.6;overflow-wrap:anywhere}
.security-guide .sg-visibility .sg-visibility-svg{display:block;width:100%;max-width:520px;height:auto;margin:0 auto;align-self:stretch;overflow:hidden}
.security-guide .sg-visibility .sg-visibility-svg .sg-small,.security-guide .sg-visibility .sg-visibility-svg .sg-label{font-size:16px}
.security-guide .sg-visibility .sg-visibility-svg .sg-title{font-size:19px}
.security-guide .sg-visibility .sg-visibility-hidden{fill:none;stroke:#7894a7;stroke-width:1.5;stroke-dasharray:4 4}
.security-guide .sg-visibility .sg-visibility-proof{fill:#e9f2f8;stroke:#155a8a;stroke-width:1.5;stroke-linejoin:round}
.security-guide .sg-visibility .sg-visibility-public{fill:#e6f3ed;stroke:#257664;stroke-width:1.5;stroke-linejoin:round}
.security-guide .sg-visibility .sg-visibility-link{fill:none;stroke:#155a8a;stroke-width:1.5;stroke-linecap:round}
.security-guide .sg-visibility .sg-visibility-badge{fill:#fff;stroke:#155a8a;stroke-width:1.3}
.security-guide .sg-visibility .sg-visibility-cipher{fill:#f3f7fa;stroke:#7894a7;stroke-width:1.3;stroke-dasharray:5 4}
.security-guide .sg-visibility .sg-visibility-roles{display:grid;grid-template-columns:minmax(0,1fr);gap:0;min-width:0;margin:12px 0 0}
.security-guide .sg-visibility .sg-visibility-roles>div{min-width:0;padding:10px 0;border-top:1px solid #e0e7ec}
.security-guide .sg-visibility .sg-visibility-roles dt{margin:0;color:#0b2e4f;font-size:13px;font-weight:650;line-height:1.6;overflow-wrap:anywhere}
.security-guide .sg-visibility .sg-visibility-roles dd{margin:4px 0 0;font-size:13px;line-height:1.6;overflow-wrap:anywhere}
.security-guide .sg-visibility .sg-visibility-card .sg-visibility-boundary{margin:12px 0 0;padding:10px 12px;border-left:3px solid #997423;background:#faf7ef;font-size:13px;line-height:1.6}
