/* Nexus Anti-Policy motion — 1280×720 stage scaled to its box (--k set by anti.js) */
.anti-motion { position: relative; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 22px; background: #061020;
    box-shadow: 0 30px 80px rgba(8,20,38,.35); font-family: 'Prompt', sans-serif; color: #fff; }
.am-stage { position: absolute; left: 0; top: 0; width: 1280px; height: 720px; transform: scale(var(--k, .5)); transform-origin: 0 0;
    background: radial-gradient(900px 520px at 78% 18%, rgba(76,195,255,.16), transparent 60%),
                radial-gradient(800px 600px at 0% 100%, rgba(37,99,235,.24), transparent 60%),
                linear-gradient(160deg, #060F1E 0%, #0A1B33 55%, #102A4E 100%); }
.am-grid { position: absolute; inset: 0; opacity: .35;
    background-image: linear-gradient(rgba(143,216,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(143,216,255,.08) 1px, transparent 1px);
    background-size: 48px 48px; animation: am-pan 30s linear infinite; }
@keyframes am-pan { to { background-position: 48px 48px; } }
.am-glow { position: absolute; width: 520px; height: 520px; border-radius: 50%; left: 60%; top: 10%; filter: blur(90px);
    background: rgba(76,195,255,.18); animation: am-float 14s ease-in-out infinite alternate; }
@keyframes am-float { to { transform: translate(-260px, 120px); } }

/* scenes */
.am-s { position: absolute; inset: 0; padding: 70px 80px; opacity: 0; visibility: hidden; transition: opacity 1s, visibility 0s 1s; }
.am-s.on { opacity: 1; visibility: visible; transition: opacity 1s; }
.am-s .am-txt { position: absolute; left: 80px; top: 120px; width: 520px; }
.am-s .am-vis { position: absolute; right: 70px; top: 90px; width: 560px; height: 520px; }
.am-s h3 { font-size: 44px; line-height: 1.25; font-weight: 700; margin: 14px 0 18px; }
.am-s p { font-size: 23px; line-height: 1.6; color: #BFD9F2; margin: 0; }
.am-s .am-txt > * { opacity: 0; transform: translateY(24px); }
.am-s.on .am-txt > * { animation: am-up .9s cubic-bezier(.2,.7,.2,1) forwards; }
.am-s.on .am-txt > :nth-child(2) { animation-delay: .25s; }
.am-s.on .am-txt > :nth-child(3) { animation-delay: .6s; }
@keyframes am-up { to { opacity: 1; transform: none; } }
.am-no, .am-ok { display: inline-grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; font-size: 34px; font-weight: 700; }
.am-no { background: rgba(239,68,68,.16); color: #FF6B6B; box-shadow: 0 0 0 2px rgba(255,107,107,.5), 0 0 40px rgba(255,80,80,.35); }
.am-ok { background: rgba(76,195,255,.16); color: #8FD8FF; box-shadow: 0 0 0 2px rgba(143,216,255,.5), 0 0 40px rgba(76,195,255,.35); }
.am-kicker { font-size: 18px; letter-spacing: .32em; color: #8FD8FF; font-weight: 600; }

/* 1 intro */
.am-intro, .am-sl { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.am-intro h2 { font-size: 104px; margin: 6px 0 10px; font-weight: 800;
    background: linear-gradient(100deg, #fff 20%, #FF8A8A 50%, #fff 80%); background-size: 220% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; }
.am-intro.on h2 { animation: am-up 1s .5s both, am-shine 4s 1.2s linear infinite; }
@keyframes am-shine { to { background-position: -220% 0; } }
.am-intro p { font-size: 30px; color: #BFD9F2; }
.am-intro.on p { animation: am-up 1s 1.1s both; }
.am-intro.on .am-kicker { animation: am-up .8s both; }
.am-shield { width: 120px; margin: 22px 0 6px; }
.am-shield svg { width: 100%; overflow: visible; }
.am-shield path:first-child { fill: rgba(239,68,68,.12); stroke: #FF6B6B; stroke-width: 3; stroke-dasharray: 420; stroke-dashoffset: 420; }
.am-shield .x { fill: none; stroke: #FF6B6B; stroke-width: 9; stroke-linecap: round; stroke-dasharray: 120; stroke-dashoffset: 120; }
.am-s.on .am-shield path:first-child { animation: am-draw 1.4s .2s forwards; }
.am-s.on .am-shield .x { animation: am-draw .7s 1.4s forwards; }
@keyframes am-draw { to { stroke-dashoffset: 0; } }

/* code cards */
.am-code { position: absolute; padding: 46px 26px 22px; border-radius: 18px; background: rgba(255,255,255,.05); border: 1.5px solid rgba(143,216,255,.25);
    display: flex; flex-direction: column; gap: 13px; overflow: hidden; }
.am-code b { position: absolute; left: 22px; top: 14px; font-size: 15px; letter-spacing: .08em; color: #8FD8FF; }
.am-code i, .am-copy i { display: block; height: 11px; width: var(--w); margin-left: var(--x); border-radius: 6px; background: rgba(143,216,255,.45); }
.am-code i:nth-child(3n) { background: rgba(217,178,74,.6); }
.am-code i:nth-child(4n+1) { background: rgba(167,139,250,.55); }

/* 2 reverse engineering */
.am-re .am-code.theirs { left: 0; top: 30px; width: 300px; height: 330px; }
.am-scan { position: absolute; left: 0; right: 0; height: 60px; top: -60px; background: linear-gradient(transparent, rgba(255,107,107,.45), transparent); }
.am-re.on .am-scan { animation: am-scan 2.2s .6s 2 ease-in-out; }
@keyframes am-scan { to { top: 100%; } }
.am-copy { position: absolute; left: 250px; top: 170px; width: 300px; height: 330px; padding: 46px 26px 22px; border-radius: 18px; display: flex; flex-direction: column; gap: 13px;
    border: 1.5px dashed rgba(255,107,107,.6); background: rgba(255,107,107,.06); opacity: 0; transform: translate(-120px,-100px); }
.am-copy i { background: rgba(255,107,107,.45); transform: scaleX(0); transform-origin: left; }
.am-re.on .am-copy { animation: am-copy 1.2s 1.3s forwards; }
.am-re.on .am-copy i { animation: am-grow .35s forwards; animation-delay: calc(1.8s + var(--i) * .12s); }
@keyframes am-copy { to { opacity: 1; transform: none; } }
@keyframes am-grow { to { transform: scaleX(1); } }
.am-strike { position: absolute; left: -10px; top: 250px; width: 600px; height: 10px; border-radius: 6px; background: #FF4D4D; transform: rotate(-24deg) scaleX(0);
    transform-origin: left; box-shadow: 0 0 30px rgba(255,77,77,.8); }
.am-re.on .am-strike { animation: am-strike .6s 3.4s forwards; }
@keyframes am-strike { to { transform: rotate(-24deg) scaleX(1); } }
.am-stamp { position: absolute; right: 10px; top: 0; width: 120px; height: 120px; border-radius: 50%; border: 6px solid #FF4D4D; color: #FF4D4D;
    display: grid; place-items: center; font-size: 70px; font-weight: 800; opacity: 0; transform: scale(2.2) rotate(-20deg); }
.am-re.on .am-stamp { animation: am-stamp .5s 3.9s forwards; }
@keyframes am-stamp { to { opacity: 1; transform: scale(1) rotate(-12deg); } }

/* 3 research */
.am-book { position: absolute; left: 0; top: 150px; width: 190px; }
.am-book svg { width: 100%; overflow: visible; }
.am-book path { fill: rgba(143,216,255,.1); stroke: #8FD8FF; stroke-width: 2.5; }
.am-book .ln { fill: none; stroke-dasharray: 260; stroke-dashoffset: 260; stroke-linecap: round; }
.am-rs.on .am-book .ln { animation: am-draw 1.8s .5s forwards; }
.am-arrow { position: absolute; left: 205px; top: 225px; width: 90px; height: 4px; background: linear-gradient(90deg, transparent, #8FD8FF); transform: scaleX(0); transform-origin: left; }
.am-arrow::after { content: ""; position: absolute; right: -4px; top: -8px; border: 10px solid transparent; border-left: 14px solid #8FD8FF; }
.am-rs.on .am-arrow { animation: am-grow .6s 1.6s forwards; }
.am-rs .am-code.own { left: 310px; top: 60px; width: 250px; height: 380px; border-color: rgba(143,216,255,.55); box-shadow: 0 0 50px rgba(76,195,255,.22); }
.am-rs .am-code.own i { transform: scaleX(0); transform-origin: left; }
.am-rs.on .am-code.own i { animation: am-grow .4s forwards; animation-delay: calc(2s + var(--i) * .18s); }

/* 4 vibe code */
.am-vb .am-code.fast { left: 0; top: 10px; width: 330px; height: 420px; }
.am-vb .am-code.fast i { transform: scaleX(0); transform-origin: left; }
.am-vb.on .am-code.fast i { animation: am-grow .12s forwards; animation-delay: calc(.3s + var(--i) * .07s); }
.am-crack { position: absolute; inset: 0; width: 100%; height: 100%; }
.am-crack path { fill: none; stroke: #FF4D4D; stroke-width: 4; stroke-dasharray: 320; stroke-dashoffset: 320; filter: drop-shadow(0 0 8px #FF4D4D); }
.am-vb.on .am-crack path { animation: am-draw .5s 1.6s forwards; }
.am-vb.on .am-code.fast { animation: am-shake .4s 1.6s 2; }
@keyframes am-shake { 25% { transform: translateX(-6px); } 75% { transform: translateX(6px); } }
.am-warns { position: absolute; left: 190px; top: 60px; display: flex; flex-direction: column; gap: 16px; }
.am-warns span { padding: 12px 20px; border-radius: 12px; background: rgba(255,170,0,.14); border: 1.5px solid rgba(255,190,60,.6); color: #FFD27A; font-size: 21px; font-weight: 600;
    opacity: 0; transform: translateX(60px) scale(.8); margin-left: calc(var(--i) * 40px); white-space: nowrap; }
.am-vb.on .am-warns span { animation: am-pop .5s forwards; animation-delay: calc(2.1s + var(--i) * .45s); }
@keyframes am-pop { to { opacity: 1; transform: none; } }
.am-it { position: absolute; right: 30px; bottom: 0; width: 130px; text-align: center; }
.am-it svg { width: 80px; fill: #8FD8FF; }
.am-it em { display: block; font-style: normal; font-size: 17px; color: #BFD9F2; margin-top: 4px; }
.am-it .load { display: flex; flex-direction: column-reverse; align-items: center; gap: 4px; height: 120px; justify-content: flex-start; }
.am-it .load i { width: 90px; height: 30px; border-radius: 6px; background: rgba(255,107,107,.35); border: 1.5px solid rgba(255,107,107,.7); opacity: 0; transform: translateY(-240px); }
.am-vb.on .am-it .load i { animation: am-drop .5s cubic-bezier(.5,0,.8,1.4) forwards; }
.am-vb.on .am-it .load i:nth-child(1) { animation-delay: 3.6s; }
.am-vb.on .am-it .load i:nth-child(2) { animation-delay: 3.9s; }
.am-vb.on .am-it .load i:nth-child(3) { animation-delay: 4.2s; }
@keyframes am-drop { to { opacity: 1; transform: none; } }
.am-vb.on .am-it svg { animation: am-sag .4s 4.4s forwards; }
@keyframes am-sag { to { transform: scaleY(.88) translateY(5px); } }

/* 5 engineering */
.am-arch { position: absolute; left: 0; top: 40px; width: 360px; display: flex; flex-direction: column-reverse; gap: 14px; }
.am-arch div { padding: 20px 24px; border-radius: 14px; background: rgba(76,195,255,.1); border: 1.5px solid rgba(143,216,255,.5); font-size: 24px; font-weight: 600;
    display: flex; align-items: center; gap: 14px; opacity: 0; transform: translateY(-60px); box-shadow: 0 10px 30px rgba(0,0,0,.25); }
.am-arch span { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #2563EB; font-size: 18px; }
.am-en.on .am-arch div { animation: am-up .6s forwards; animation-delay: calc(.6s + var(--i) * .45s); }
.am-shield.sm { position: absolute; right: 20px; top: 120px; width: 150px; margin: 0; }
.am-shield.sm path:first-child { fill: rgba(76,195,255,.12); stroke: #8FD8FF; }
.am-shield .ck { fill: none; stroke: #8FD8FF; stroke-width: 9; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 80; stroke-dashoffset: 80; }
.am-en.on .am-shield.sm path:first-child { animation: am-draw 1.2s 2.4s forwards; }
.am-en.on .am-shield .ck { animation: am-draw .6s 3.5s forwards; }
.am-en.on .am-shield.sm { animation: am-glowp 2s 3.8s ease-in-out infinite alternate; }
@keyframes am-glowp { to { filter: drop-shadow(0 0 22px rgba(76,195,255,.8)); } }

/* 6 slogan */
.am-sl h2 { margin: 26px 0 0; font-size: 66px; line-height: 1.35; font-weight: 800; }
.am-sl h2 span { display: block; opacity: 0; transform: translateY(30px); filter: blur(10px); }
.am-sl h2 span:last-child { color: #8FD8FF; }
.am-sl.on h2 span { animation: am-in 1.1s .4s forwards; }
.am-sl.on h2 span:last-child { animation-delay: 1.4s; }
.am-sl.on .am-kicker { animation: am-up .8s both; }
@keyframes am-in { to { opacity: 1; transform: none; filter: none; } }

.am-dots { position: absolute; left: 50%; bottom: 26px; transform: translateX(-50%); display: flex; gap: 10px; z-index: 2; }
.am-dots i { width: 10px; height: 10px; border-radius: 6px; background: rgba(255,255,255,.25); cursor: pointer; transition: width .4s, background .4s; }
.am-dots i.on { width: 34px; background: #8FD8FF; }

/* first-visit intro overlay */
.anti-lock, .anti-lock body { overflow: hidden; }
.anti-intro { position: fixed; inset: 0; z-index: 9999; background: #050C18; display: grid; place-items: center; transition: opacity .7s; }
.anti-intro.out { opacity: 0; pointer-events: none; }
.anti-intro .anti-motion { width: min(100vw, 177.78vh); border-radius: 0; box-shadow: none; }
.ai-bar { position: fixed; right: 24px; bottom: 22px; display: flex; gap: 12px; z-index: 2; }
.ai-bar a, .ai-bar button { font: 600 15px/1 'Prompt', sans-serif; padding: 12px 20px; border-radius: 999px; cursor: pointer; text-decoration: none; }
.ai-read { color: #8FD8FF; border: 1.5px solid rgba(143,216,255,.5); background: transparent; }
.ai-skip { color: #0A1B33; background: #fff; border: 0; box-shadow: 0 8px 24px rgba(0,0,0,.35); }

/* homepage section */
.anti-sec { padding: 80px 0; background: var(--bg, #F6F9FC); }
.anti-sec .anti-motion { max-width: 1040px; margin: 0 auto; }
.anti-sec .anti-actions { text-align: center; margin-top: 22px; }

@media (prefers-reduced-motion: reduce) { .am-s *, .am-grid, .am-glow { animation: none !important; opacity: 1 !important; transform: none !important; filter: none !important; stroke-dashoffset: 0 !important; } }
