/*
Theme Name: AB Colour Prediction
Theme URI: https://example.com/
Author: Aarav Boss
Description: Animated landing page theme for AB Colour Prediction with gradient hero, parallax, and Telegram CTAs.
Version: 1.0.0
License: GPL v2 or later
Text Domain: ab-colour-prediction
*/

:root{
  --bg:#f6f8fc; --fg:#0a1024; --muted:#64748b; --card:#ffffff; --border:#e5e9f2;
  --primary:#3b53ff; --primary-2:#4f86ff; --accent:#5cc6ff;
  --grad:linear-gradient(135deg,#3b53ff 0%,#4f86ff 50%,#5cc6ff 100%);
  --grad-text:linear-gradient(135deg,#3b53ff,#4f86ff);
  --shadow-glow:0 20px 60px -15px rgba(59,83,255,.45);
  --shadow-card:0 10px 40px -10px rgba(59,83,255,.18);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,sans-serif;background:var(--bg);color:var(--fg);line-height:1.5;overflow-x:hidden}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
.container{max-width:1200px;margin:0 auto;padding:0 24px}

/* shapes */
.bg-shapes{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.35}
.blob.b1{width:420px;height:420px;left:-120px;top:80px;background:var(--grad);animation:floatA 14s ease-in-out infinite}
.blob.b2{width:480px;height:480px;right:-140px;top:30%;background:linear-gradient(135deg,#5cc6ff,#3b53ff);opacity:.28;animation:floatB 18s ease-in-out infinite}
.blob.b3{width:300px;height:300px;left:35%;bottom:5%;background:#4f86ff;opacity:.22;animation:floatC 16s ease-in-out infinite}
@keyframes floatA{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(60px,40px) scale(1.15)}}
@keyframes floatB{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-50px,70px) scale(1.2)}}
@keyframes floatC{0%,100%{transform:translate(0,0)}50%{transform:translate(80px,-60px)}}

.site{position:relative;z-index:1}

/* header */
.site-header{position:sticky;top:0;z-index:50;backdrop-filter:blur(18px);background:rgba(246,248,252,.7);border-bottom:1px solid rgba(229,233,242,.6)}
.nav{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;max-width:1280px;margin:0 auto}
.brand{display:flex;align-items:center;gap:12px}
.brand-logo{width:40px;height:40px;border-radius:12px;background:var(--grad);display:grid;place-items:center;color:#fff;font-size:18px;transition:transform .6s}
.brand:hover .brand-logo{transform:rotate(360deg)}
.brand-name{font-weight:900;letter-spacing:-.01em}
.brand-sub{font-size:10px;letter-spacing:.2em;color:var(--muted)}
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:999px;font-weight:700;font-size:14px;transition:transform .2s,box-shadow .2s;cursor:pointer;border:0}
.btn-primary{background:var(--grad);color:#fff;box-shadow:var(--shadow-glow)}
.btn-primary:hover{transform:translateY(-2px) scale(1.04)}
.btn-dark{background:var(--fg);color:#fff}
.btn-dark:hover{transform:translateY(-2px) scale(1.04)}
.btn-light{background:#fff;color:var(--primary);box-shadow:0 20px 40px -10px rgba(0,0,0,.2)}
.btn-light:hover{transform:translateY(-2px) scale(1.04)}

/* announcement */
.announce{padding:40px 24px 0}
.announce-card{position:relative;max-width:1100px;margin:0 auto;border-radius:28px;padding:56px 32px;text-align:center;background:var(--grad);box-shadow:var(--shadow-glow);overflow:hidden;animation:fadeUp .8s ease both}
.chip{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;background:rgba(255,255,255,.2);backdrop-filter:blur(10px);color:#fff;font-size:12px;font-weight:700;animation:pulse 2s ease-in-out infinite}
.announce h2,.cta-final h2{margin-top:24px;color:#fff;font-size:clamp(32px,6vw,60px);font-weight:900;letter-spacing:-.02em}
.announce .btn{margin-top:32px}
.spark{position:absolute;width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.5);animation:spark 3s ease-in-out infinite}

/* hero */
.hero{padding:96px 24px;text-align:center;position:relative}
.tag{display:inline-flex;align-items:center;gap:8px;padding:6px 16px;border-radius:999px;background:var(--card);border:1px solid var(--border);font-size:12px;font-weight:700;box-shadow:0 1px 2px rgba(0,0,0,.04);animation:fadeUp .6s ease both}
.hero h1{margin-top:32px;font-size:clamp(56px,10vw,128px);font-weight:900;line-height:.95;letter-spacing:-.03em}
.hero h1 .l1{display:block;color:var(--primary);animation:slideL .8s ease both}
.hero h1 .l2{display:block;animation:slideR .8s .15s ease both;animation-fill-mode:both;opacity:0}
.hero h1 .l3{display:block;background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent;animation:scaleIn .8s .3s ease both;opacity:0}
.hero p{max-width:640px;margin:32px auto 0;color:var(--muted);font-size:18px;animation:fadeUp .6s .5s ease both;opacity:0}
.hero p strong{color:var(--fg)}
.hero-cta{margin-top:40px;display:flex;flex-wrap:wrap;justify-content:center;gap:16px;animation:fadeUp .6s .6s ease both;opacity:0}
.stats{margin-top:64px;display:grid;gap:16px;grid-template-columns:repeat(3,1fr);max-width:900px;margin-left:auto;margin-right:auto}
@media(max-width:640px){.stats{grid-template-columns:1fr}}
.stat{padding:28px;border-radius:20px;background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-card);transition:transform .3s;opacity:0;transform:translateY(20px)}
.stat.in{opacity:1;transform:translateY(0);transition:opacity .6s,transform .6s}
.stat:hover{transform:translateY(-6px)}
.stat-icon{width:28px;height:28px;margin:0 auto;color:var(--primary)}
.stat-val{margin-top:12px;font-size:40px;font-weight:900;background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat-lbl{margin-top:4px;color:var(--muted);font-weight:500;font-size:14px}

/* sections */
section{position:relative;padding:96px 24px}
.section-head{text-align:center}
.section-head h2{margin-top:24px;font-size:clamp(40px,6vw,64px);font-weight:900;letter-spacing:-.02em}
.steps{margin-top:64px;display:grid;gap:24px;grid-template-columns:repeat(3,1fr);max-width:1100px;margin-left:auto;margin-right:auto}
@media(max-width:860px){.steps{grid-template-columns:1fr}}
.step{position:relative;padding:32px;border-radius:24px;background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-card);overflow:hidden;transition:transform .3s;opacity:0;transform:translateY(40px)}
.step.in{opacity:1;transform:translateY(0);transition:.6s}
.step:hover{transform:translateY(-8px) rotate(-1deg)}
.step::after{content:"";position:absolute;right:-40px;top:-40px;width:140px;height:140px;border-radius:50%;background:var(--grad);opacity:.08;filter:blur(30px);transition:opacity .3s}
.step:hover::after{opacity:.25}
.step-num{font-size:72px;font-weight:900;color:transparent;-webkit-text-stroke:1.5px rgba(59,83,255,.4)}
.step-icon{margin-top:16px;display:inline-grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--grad);color:#fff;transition:transform .6s}
.step:hover .step-icon{transform:rotate(360deg)}
.step h3{margin-top:16px;font-size:24px;font-weight:800}
.step p{margin-top:8px;color:var(--muted)}

/* promise */
.promise{display:grid;gap:48px;grid-template-columns:1fr 1fr;align-items:center;max-width:1100px;margin:0 auto}
@media(max-width:860px){.promise{grid-template-columns:1fr}}
.promise ul{list-style:none;margin-top:32px;display:flex;flex-direction:column;gap:16px}
.promise li{display:flex;align-items:center;gap:12px;font-size:18px;opacity:0;transform:translateX(-20px)}
.promise li.in{opacity:1;transform:translateX(0);transition:.6s}
.check{width:22px;height:22px;color:var(--primary);flex-shrink:0}
.badge-wrap{position:relative;aspect-ratio:1;width:100%;max-width:420px;justify-self:center}
.badge-glow{position:absolute;inset:0;border-radius:50%;background:var(--grad);opacity:.3;filter:blur(60px);animation:spin 30s linear infinite}
.badge{position:absolute;inset:0;border-radius:50%;background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-glow);display:grid;place-items:center;text-align:center}
.ring{position:absolute;border-radius:50%;border:2px dashed rgba(59,83,255,.3)}
.ring.r1{inset:24px;animation:spin 20s linear infinite}
.ring.r2{inset:64px;border-color:rgba(59,83,255,.2);animation:spin 15s linear reverse infinite}
.badge-num{font-size:88px;font-weight:900;background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1}
.badge-lbl{margin-top:8px;font-size:12px;font-weight:800;letter-spacing:.2em;color:var(--muted)}
.badge-desc{margin:16px auto 0;max-width:200px;font-size:12px;color:var(--muted)}
.dot{position:absolute;top:50%;left:50%;width:12px;height:12px;border-radius:50%;background:var(--grad)}

/* final cta */
.cta-final{padding:0 24px 96px}
.cta-final-card{position:relative;max-width:1100px;margin:0 auto;border-radius:28px;padding:64px 32px;text-align:center;background:var(--grad);box-shadow:var(--shadow-glow);overflow:hidden}
.cta-final p{margin-top:16px;color:rgba(255,255,255,.9)}
.cta-final .btn{margin-top:32px;padding:16px 32px}
.tinydot{position:absolute;width:4px;height:4px;border-radius:50%;background:#fff;animation:twinkle 3s ease-in-out infinite}

/* floating telegram */
.fab{position:fixed;bottom:24px;right:24px;width:56px;height:56px;border-radius:50%;background:var(--grad);color:#fff;display:grid;place-items:center;box-shadow:var(--shadow-glow);z-index:60;animation:pop .5s 1s ease both}
.fab::before{content:"";position:absolute;inset:0;border-radius:50%;background:var(--grad);animation:ripple 1.5s ease-out infinite;z-index:-1}

/* footer */
.site-footer{padding:32px 24px;text-align:center;color:var(--muted);font-size:13px;border-top:1px solid var(--border)}

/* keyframes */
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideL{from{opacity:0;transform:translateX(-50px)}to{opacity:1;transform:translateX(0)}}
@keyframes slideR{from{opacity:0;transform:translateX(50px)}to{opacity:1;transform:translateX(0)}}
@keyframes scaleIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes spark{0%,100%{transform:translateY(0);opacity:.4}50%{transform:translateY(-20px);opacity:1}}
@keyframes twinkle{0%,100%{opacity:0;transform:scale(0)}50%{opacity:1;transform:scale(1.5)}}
@keyframes pop{from{transform:scale(0)}to{transform:scale(1)}}
@keyframes ripple{from{transform:scale(1);opacity:.6}to{transform:scale(1.6);opacity:0}}
