/* Assinatura Prisma Radar e animações (manual de identidade, 19/10/2026). */
/* Assinatura compacta (manual v1.2): tudo proporcional ao diâmetro do selo, --D.
   "Radar" 0,56 D · "por" 0,30 D · logo Prisma com altura 0,33 D (largura = altura × 156/90),
   distância "por"→logo 0,12 D · PRISMA a 0,867 da altura da logo, a 0,41 dessa altura do símbolo. */
.lock{--D:34px;--h:calc(var(--D) * .33);display:flex;align-items:center;gap:calc(var(--D) * .3);min-width:0;color:#F4F2EE;--mute:#98A2B6}
.lock .selo{width:var(--D);height:var(--D);flex:none}
.lock .txt{display:flex;flex-direction:column;gap:calc(var(--D) * .15);min-width:0;position:relative;top:calc(var(--D) * -.03)}
.lock .name{font-family:'Sora','Inter',system-ui,sans-serif;font-weight:700;letter-spacing:-.01em;line-height:1;font-size:calc(var(--D) * .56)}
.lock .by{display:flex;align-items:center;line-height:1;color:var(--mute)}
.lock .by .por{font-family:'Inter',system-ui,sans-serif;font-size:calc(var(--D) * .30);margin-right:calc(var(--D) * .12)}
.lock .by svg{color:#F4F2EE;height:var(--h);width:calc(var(--h) * 156 / 90);flex:none}
.lock .by .pw{font-family:'Sora','Inter',system-ui,sans-serif;font-weight:700;font-size:calc(var(--h) * .867);letter-spacing:.06em;margin-right:-.06em;
  margin-left:calc(var(--h) * .41);position:relative;top:.027em;line-height:1;color:#F4F2EE}
.lock.hero{--D:84px}

.rd{--T:4.2s;--t0:0s;--p0:0s}
.rd .selo .ring-i,.rd .bl,.rd .ping,.rd svg .bar,.rd svg .flash{transform-box:fill-box;transform-origin:center}
.rd .selo .sweep{transform-box:view-box;transform-origin:60px 60px}
.rd svg .bar{transform-origin:50% 100%}
.rd svg .flash{opacity:0}
.rd .ping{opacity:0}
.rd.idle{--t0:calc(var(--T) * -1)}
.rd.play{--t0:1.3s;--p0:2.2s}
.rd.idle .sweep,.rd.play .sweep{animation:rd-rot var(--T) linear var(--t0) infinite}
.rd.idle .bl,.rd.play .bl{animation:rd-blip var(--T) cubic-bezier(.2,.7,.3,1) calc(var(--t0) + var(--T) * var(--f)) infinite both}
.rd.idle .ping,.rd.play .ping{animation:rd-ping var(--T) cubic-bezier(.15,.6,.3,1) calc(var(--t0) + var(--T) * var(--f)) infinite both}
.rd.play .ring-o{stroke-dasharray:340;animation:rd-dash340 1s cubic-bezier(.65,0,.35,1) .05s both}
.rd.play .ring-i{animation:rd-grow .8s cubic-bezier(.2,.8,.2,1) .45s both}
.rd.play .tri-r{stroke-dasharray:80;animation:rd-dash80 .8s cubic-bezier(.55,0,.25,1) .65s both}
.rd.play .sweepwrap{animation:rd-fade .7s ease var(--t0) both}
.rd.play .bw{animation:rd-show 1ms linear calc(var(--t0) + var(--T) * var(--f)) both}
.rd.play .name{animation:rd-in .8s cubic-bezier(.2,.8,.2,1) 1.35s both}
.rd.play .by .por{animation:rd-fade .5s ease calc(var(--p0) - .2s) both}
.rd.play .pm .tri-p{stroke-dasharray:264;animation:rd-dash264 .7s cubic-bezier(.55,0,.25,1) var(--p0) both, rd-glow .7s ease-out calc(var(--p0) + 1.05s) both}
.rd.play .pm .ray{stroke-dasharray:36;animation:rd-dash36 .42s cubic-bezier(.6,0,.9,.5) calc(var(--p0) + .62s) both}
.rd.play .pm .flash{animation:rd-flash .6s cubic-bezier(.2,.7,.3,1) calc(var(--p0) + 1.02s) both}
.rd.play .pm .bar{animation:rd-rise .62s cubic-bezier(.22,1.05,.36,1.12) calc(var(--p0) + 1.12s + var(--i) * .12s) both}
.rd.play .pw{animation:rd-in .7s cubic-bezier(.2,.8,.2,1) calc(var(--p0) + 1.75s) both}

@keyframes rd-rot{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes rd-blip{0%{opacity:1;transform:scale(1.45)}14%{transform:scale(1)}100%{opacity:.6;transform:scale(1)}}
@keyframes rd-ping{0%{opacity:.85;transform:scale(1)}30%{opacity:0;transform:scale(2.6)}100%{opacity:0;transform:scale(2.6)}}
@keyframes rd-show{from{opacity:0}to{opacity:1}}
@keyframes rd-fade{from{opacity:0}to{opacity:1}}
@keyframes rd-dash340{from{stroke-dashoffset:340}to{stroke-dashoffset:0}}
@keyframes rd-dash80{from{stroke-dashoffset:80}to{stroke-dashoffset:0}}
@keyframes rd-dash264{from{stroke-dashoffset:264}to{stroke-dashoffset:0}}
@keyframes rd-dash36{from{stroke-dashoffset:36}to{stroke-dashoffset:0}}
@keyframes rd-grow{from{opacity:0;transform:scale(.55)}to{opacity:.3;transform:scale(1)}}
@keyframes rd-in{from{opacity:0;transform:translateX(-12px);filter:blur(3px)}to{opacity:1;transform:none;filter:none}}
@keyframes rd-flash{0%{opacity:0;transform:scale(.5)}12%{opacity:.75}100%{opacity:0;transform:scale(3.4)}}
@keyframes rd-glow{0%{stroke-width:7}28%{stroke-width:9.5}100%{stroke-width:7}}
@keyframes rd-rise{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@media (prefers-reduced-motion: reduce){.rd *{animation:none!important}}
