html.sw-lock,html.sw-lock body{overflow:hidden!important;scroll-behavior:auto!important}
html.sw-lock{touch-action:none}
#swShield{position:fixed;inset:0;z-index:9996;cursor:progress;background:transparent;touch-action:none;user-select:none;-webkit-user-select:none}
#swBeams{position:fixed;inset:0;width:100vw;height:100vh;z-index:9997;pointer-events:none}
.sw-bot{position:fixed;left:0;top:0;z-index:9998;pointer-events:none;opacity:0;transform:translate(-90px,-90px);transition:transform var(--dur,300ms) cubic-bezier(.4,0,.2,1),opacity .35s;will-change:transform}
.sw-bot.on{opacity:1}
.sw-bot svg{display:block;width:26px;height:26px;filter:drop-shadow(0 0 7px var(--bc))}
.sw-bot b{position:absolute;left:22px;top:20px;white-space:nowrap;font:600 9.5px/1 var(--font-mono,monospace);letter-spacing:.1em;padding:4px 8px;border-radius:6px;background:var(--surface,#140f26);color:var(--text,#fff);border:1px solid var(--bc);box-shadow:0 6px 18px -6px rgba(0,0,0,.5)}
#swChip{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:9998;pointer-events:none;display:flex;align-items:center;gap:10px;white-space:nowrap;font:600 11px var(--font-mono,monospace);letter-spacing:.1em;text-transform:uppercase;padding:9px 16px;border-radius:99px;background:var(--surface,#140f26);color:var(--text-muted,#a99fc4);border:1px solid var(--border-strong,rgba(168,130,255,.3));box-shadow:0 10px 30px -12px rgba(0,0,0,.5);transition:opacity .5s}
#swChip i{display:block;width:70px;height:3px;border-radius:3px;background:var(--border,rgba(168,130,255,.2));overflow:hidden;position:relative}
#swChip i::after{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--pp,0%);background:var(--accent-grad,var(--accent,#8b5cf6))}
#swChip b{font-weight:600;color:var(--text,#fff);font-variant-numeric:tabular-nums;min-width:3.2ch;text-align:right}
html.sw-on.sw-on .sw-v,html.sw-on.sw-on .sw-v *{visibility:visible}
html.sw-on.sw-on .sw-v .sw-ch:not(.on){visibility:hidden}
html.sw-on .sw-art:not(.sw-art-in){clip-path:inset(0 0 100% 0)}
html.sw-on .sw-art.sw-art-in{clip-path:inset(0);transition:clip-path .8s ease}
html.sw-on .reveal,html.sw-on .reveal-left,html.sw-on .reveal-right{transform:none!important}
.sw-ch.flash{animation:swFlash .55s ease-out}
@keyframes swFlash{from{color:var(--accent-3,#5eead4)}}
