/*
Theme Name: Vishav Book Publication
Theme URI: https://vishavbook.example
Author: Vishav Book Publication
Author URI: https://vishavbook.example
Description: Vibrant animated landing page theme for Vishav Book Publication — write books, earn money. Includes hero marquee, animated gradient blobs, pricing plans, how-it-works steps, and CTA.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: vishav-book
Tags: landing-page, one-page, custom-colors, custom-menu, featured-images, full-width-template, responsive
*/

/* === Design Tokens === */
:root{
  --bg:#fff8f0;
  --fg:#0f0a1f;
  --muted:#6b6580;
  --card:#ffffff;
  --border:#ece6f5;
  --brand-pink:#ff4d8d;
  --brand-orange:#ff8a3d;
  --brand-violet:#7b4dff;
  --brand-cyan:#3dd1d1;
  --brand-magenta:#e63dc5;
  --brand-yellow:#ffd23d;
  --brand-lime:#9eff5d;
  --gradient-brand:linear-gradient(135deg,var(--brand-orange),var(--brand-pink),var(--brand-violet));
  --gradient-warm:linear-gradient(135deg,var(--brand-orange),var(--brand-pink));
  --gradient-cool:linear-gradient(135deg,var(--brand-cyan),var(--brand-violet));
  --gradient-rainbow:linear-gradient(90deg,var(--brand-orange),var(--brand-pink),var(--brand-magenta),var(--brand-violet),var(--brand-cyan));
  --shadow-glow:0 20px 60px -15px rgba(255,77,141,.45);
  --shadow-soft:0 10px 40px -10px rgba(123,77,255,.25);
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--bg);color:var(--fg);font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none}

/* === Layout helpers === */
.container{max-width:1200px;margin:0 auto;padding:0 20px}
.section{padding:80px 0;position:relative;z-index:1}
.text-center{text-align:center}
.flex{display:flex}
.grid{display:grid}
.gap-3{gap:12px}.gap-4{gap:16px}.gap-5{gap:20px}.gap-6{gap:24px}
.items-center{align-items:center}
.justify-center{justify-content:center}
.justify-between{justify-content:space-between}
.flex-wrap{flex-wrap:wrap}

/* === Background blobs === */
.bg-fx{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.45;animation:blob 14s ease-in-out infinite}
.blob.b1{left:-120px;top:40px;width:380px;height:380px;background:var(--brand-orange)}
.blob.b2{right:-60px;top:160px;width:440px;height:440px;background:var(--brand-pink);animation-delay:-4s}
.blob.b3{left:35%;top:60%;width:420px;height:420px;background:var(--brand-cyan);animation-delay:-8s}
.blob.b4{right:-80px;bottom:0;width:380px;height:380px;background:var(--brand-violet);animation-delay:-12s}
.grid-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(123,77,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(123,77,255,.08) 1px,transparent 1px);background-size:40px 40px;opacity:.5}
.spark{position:absolute;animation:sparkle 3s ease-in-out infinite;color:var(--brand-pink)}

/* === Nav === */
.site-nav{position:relative;z-index:10}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:20px 0}
.logo{display:flex;align-items:center;gap:12px;font-weight:800;font-size:1.05rem}
.logo-mark{width:44px;height:44px;border-radius:14px;background:var(--gradient-brand);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:var(--shadow-glow)}
.btn-telegram{display:inline-flex;align-items:center;gap:8px;background:var(--gradient-warm);color:#fff;padding:10px 20px;border-radius:999px;font-weight:600;font-size:.9rem;box-shadow:var(--shadow-glow);transition:transform .25s ease}
.btn-telegram:hover{transform:scale(1.05)}

/* === Hero === */
.hero{padding:40px 0 80px;display:grid;grid-template-columns:1fr;gap:48px;align-items:center}
@media(min-width:960px){.hero{grid-template-columns:1fr 1fr}}
.pill{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.8);border:1px solid var(--border);padding:6px 16px;border-radius:999px;font-size:.75rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;box-shadow:var(--shadow-soft);backdrop-filter:blur(8px)}
.h1{font-size:clamp(2.6rem,6vw,4.5rem);font-weight:900;line-height:1.05;letter-spacing:-.02em;margin-top:24px}
.text-rainbow{background:var(--gradient-rainbow);background-size:200% 200%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:gradient-shift 6s ease infinite}
.text-warm{background:var(--gradient-warm);-webkit-background-clip:text;background-clip:text;color:transparent}
.lead{margin-top:24px;max-width:480px;color:var(--muted);font-size:1.1rem}
.cta-row{margin-top:32px;display:flex;flex-wrap:wrap;gap:12px}
.btn-primary{display:inline-flex;align-items:center;gap:8px;background:var(--gradient-warm);color:#fff;padding:14px 28px;border-radius:999px;font-weight:700;box-shadow:var(--shadow-glow);transition:transform .25s ease}
.btn-primary:hover{transform:scale(1.05)}
.btn-ghost{display:inline-flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--border);padding:14px 28px;border-radius:999px;font-weight:700;transition:background .2s}
.btn-ghost:hover{background:#f6f1fa}
.feature-chips{margin-top:32px;display:flex;flex-wrap:wrap;gap:12px}
.chip{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.85);border:1px solid var(--border);padding:6px 16px 6px 6px;border-radius:999px;font-size:.85rem;font-weight:700;box-shadow:var(--shadow-soft)}
.chip .ico{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}
.ico-warm{background:var(--gradient-warm)}.ico-brand{background:var(--gradient-brand)}.ico-cool{background:var(--gradient-cool)}

/* === Hero visual / marquee === */
.hero-visual{position:relative;height:420px;border-radius:28px;border:1px solid var(--border);background:rgba(255,255,255,.4);backdrop-filter:blur(8px);overflow:hidden;padding:16px;box-shadow:var(--shadow-glow)}
.fade-l,.fade-r{position:absolute;top:0;bottom:0;width:48px;z-index:5;pointer-events:none}
.fade-l{left:0;background:linear-gradient(to right,var(--bg),transparent)}
.fade-r{right:0;background:linear-gradient(to left,var(--bg),transparent)}
.badge-new{position:absolute;top:-24px;right:-24px;z-index:20;width:64px;height:64px;border-radius:50%;background:var(--gradient-brand);color:#fff;font-weight:900;font-size:.7rem;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-glow);animation:spin-slow 18s linear infinite,pulse-glow 3s ease-in-out infinite}
.badge-zap{position:absolute;left:-16px;bottom:32px;z-index:20;width:56px;height:56px;border-radius:18px;background:var(--gradient-cool);color:#fff;display:flex;align-items:center;justify-content:center;animation:bounce-slow 3s ease-in-out infinite;box-shadow:var(--shadow-glow)}
.marquee-stack{display:flex;flex-direction:column;justify-content:space-around;gap:16px;height:100%;overflow:hidden}
.marquee-row{overflow:hidden}
.marquee{display:flex;gap:20px;width:max-content;animation:marquee 30s linear infinite}
.marquee.reverse{animation:marquee-reverse 30s linear infinite}
.book{width:128px;height:176px;border-radius:14px;background:#eee;flex-shrink:0;overflow:hidden;box-shadow:var(--shadow-soft);transition:transform .4s ease}
.book:hover{transform:translateY(-8px) rotate(2deg)}
.book img{width:100%;height:100%;object-fit:cover}

/* === Stats === */
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;padding:24px;border:1px solid var(--border);border-radius:28px;background:rgba(255,255,255,.7);backdrop-filter:blur(8px);box-shadow:var(--shadow-soft)}
@media(min-width:640px){.stats{grid-template-columns:repeat(4,1fr);gap:24px;padding:32px}}
.stat{display:flex;align-items:center;gap:12px}
.stat .ico{width:48px;height:48px;border-radius:16px;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-soft);flex-shrink:0}
.stat .v{font-size:1.6rem;font-weight:900;letter-spacing:-.02em}
.stat .l{font-size:.75rem;color:var(--muted);font-weight:600}

/* === Plans === */
.section-head{text-align:center;margin-bottom:48px}
.h2{font-size:clamp(2rem,4.5vw,3rem);font-weight:900;letter-spacing:-.02em;position:relative;display:inline-block}
.h2 .spark-ico{position:absolute;top:-16px;right:-32px;animation:wiggle 2.5s ease-in-out infinite;color:var(--brand-pink)}
.muted{color:var(--muted)}
.plans{display:grid;grid-template-columns:1fr;gap:24px}
@media(min-width:860px){.plans{grid-template-columns:repeat(3,1fr)}}
.plan{position:relative;overflow:hidden;background:var(--card);border:1px solid var(--border);border-radius:28px;padding:28px;box-shadow:var(--shadow-soft);transition:transform .3s ease,box-shadow .3s ease}
.plan:hover{transform:translateY(-6px);box-shadow:var(--shadow-glow)}
.plan.popular{border-color:rgba(255,77,141,.6);box-shadow:0 0 0 2px rgba(255,77,141,.25),var(--shadow-soft);animation:pulse-glow 3s ease-in-out infinite}
.plan-glow{position:absolute;top:-48px;right:-48px;width:128px;height:128px;border-radius:50%;filter:blur(40px);opacity:.25}
.plan-tag{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--fg);color:var(--bg);font-size:.7rem;font-weight:800;padding:4px 16px;border-radius:999px;box-shadow:var(--shadow-glow)}
.plan-name{display:inline-block;padding:4px 12px;border-radius:999px;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.15em;color:#fff}
.plan-name.warm{background:linear-gradient(90deg,var(--brand-orange),var(--brand-pink))}
.plan-name.pinkv{background:linear-gradient(90deg,var(--brand-pink),var(--brand-violet))}
.plan-name.vcyan{background:linear-gradient(90deg,var(--brand-violet),var(--brand-cyan))}
.plan-price{margin-top:20px;display:flex;align-items:baseline;gap:4px}
.plan-price .amt{font-size:3rem;font-weight:900;letter-spacing:-.02em;background:var(--gradient-warm);-webkit-background-clip:text;background-clip:text;color:transparent}
.plan-price .per{font-size:.85rem;color:var(--muted);font-weight:600}
.plan ul{list-style:none;margin-top:24px;display:flex;flex-direction:column;gap:12px;font-size:.9rem}
.plan li{display:flex;align-items:flex-start;gap:8px}
.plan li svg{flex-shrink:0;color:var(--brand-pink);margin-top:2px}
.plan-cta{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:28px;color:#fff;padding:12px 20px;border-radius:999px;font-weight:700;transition:transform .25s}
.plan-cta:hover{transform:scale(1.02)}
.plan-cta.warm{background:linear-gradient(90deg,var(--brand-orange),var(--brand-pink))}
.plan-cta.pinkv{background:linear-gradient(90deg,var(--brand-pink),var(--brand-violet))}
.plan-cta.vcyan{background:linear-gradient(90deg,var(--brand-violet),var(--brand-cyan))}
.notes{margin-top:40px;display:grid;gap:12px;grid-template-columns:1fr}
@media(min-width:640px){.notes{grid-template-columns:1fr 1fr}}
.note{padding:20px;border:1px solid var(--border);background:rgba(255,255,255,.7);border-radius:18px;font-size:.9rem;backdrop-filter:blur(8px);box-shadow:var(--shadow-soft)}
.note b{color:transparent;background:var(--gradient-warm);-webkit-background-clip:text;background-clip:text}

/* === Steps === */
.steps{display:grid;grid-template-columns:1fr;gap:24px}
@media(min-width:860px){.steps{grid-template-columns:repeat(3,1fr)}}
.step{position:relative;overflow:hidden;background:var(--card);border:1px solid var(--border);border-radius:28px;padding:28px;box-shadow:var(--shadow-soft);transition:transform .3s,box-shadow .3s}
.step:hover{transform:translateY(-6px);box-shadow:var(--shadow-glow)}
.step-num{position:absolute;top:-24px;right:-16px;font-size:7rem;font-weight:900;line-height:1;color:rgba(15,10,31,.05)}
.step-ico{position:relative;width:56px;height:56px;border-radius:18px;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-glow);animation:float-slow 6s ease-in-out infinite}
.step:nth-child(even) .step-ico{animation:float-slower 7s ease-in-out infinite;animation-delay:-2s}
.step-label{font-size:.7rem;font-weight:800;letter-spacing:.15em;color:var(--muted);margin-top:20px;position:relative}
.step h3{font-size:1.4rem;font-weight:800;margin-top:4px;position:relative}
.step p{margin-top:8px;color:var(--muted);position:relative}

/* === CTA === */
.cta{position:relative;overflow:hidden;border-radius:40px;background:var(--gradient-brand);background-size:200% 200%;animation:gradient-shift 8s ease infinite;padding:64px 32px;text-align:center;color:#fff;box-shadow:var(--shadow-glow)}
.cta .float-blur{position:absolute;border-radius:50%;background:rgba(255,255,255,.2);filter:blur(40px)}
.cta .float-blur.a{top:-40px;left:-40px;width:160px;height:160px;animation:float-slow 6s ease-in-out infinite}
.cta .float-blur.b{bottom:-40px;right:-40px;width:192px;height:192px;animation:float-slower 7s ease-in-out infinite}
.cta h2{font-size:clamp(2rem,4.5vw,3rem);font-weight:900;letter-spacing:-.02em;margin-top:16px}
.cta p{margin:12px auto 0;max-width:520px;opacity:.9}
.cta .btn-white{display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--fg);font-weight:800;padding:16px 32px;border-radius:999px;margin-top:32px;box-shadow:var(--shadow-soft);transition:transform .25s}
.cta .btn-white:hover{transform:scale(1.05)}
.cta .btn-white svg{color:var(--brand-pink)}

/* === Footer === */
.site-footer{border-top:1px solid var(--border);background:rgba(255,255,255,.4);backdrop-filter:blur(8px);position:relative;z-index:1}
.footer-inner{display:flex;flex-direction:column;gap:16px;align-items:center;justify-content:space-between;padding:32px 0;font-size:.85rem;color:var(--muted)}
@media(min-width:640px){.footer-inner{flex-direction:row}}
.footer-brand{display:flex;align-items:center;gap:8px;color:var(--fg);font-weight:700}
.footer-brand .mark{width:32px;height:32px;border-radius:10px;background:var(--gradient-brand);display:flex;align-items:center;justify-content:center;color:#fff}

/* === Animations === */
@keyframes blob{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(30px,-40px) scale(1.1)}66%{transform:translate(-25px,20px) scale(.95)}}
@keyframes marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@keyframes marquee-reverse{0%{transform:translateX(-50%)}100%{transform:translateX(0)}}
@keyframes float-slow{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(3deg)}}
@keyframes float-slower{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-14px) rotate(-3deg)}}
@keyframes spin-slow{to{transform:rotate(360deg)}}
@keyframes gradient-shift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes sparkle{0%,100%{opacity:0;transform:scale(.5) rotate(0)}50%{opacity:1;transform:scale(1) rotate(180deg)}}
@keyframes wiggle{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
@keyframes pulse-glow{0%,100%{box-shadow:0 0 20px rgba(255,77,141,.4)}50%{box-shadow:0 0 50px rgba(255,77,141,.7)}}
@keyframes bounce-slow{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes pop-in{0%{opacity:0;transform:translateY(20px) scale(.95)}100%{opacity:1;transform:translateY(0) scale(1)}}
.animate-pop{animation:pop-in .7s cubic-bezier(.34,1.56,.64,1) both}
