/*
Theme Name: Boo App
Theme URI: https://booapp.net/
Author: Boo App Studio
Description: Boo App — AI girlfriend chat showcase theme.
Version: 1.4.2
License: GNU General Public License v2 or later
Text Domain: booapp
*/

:root{
  --ink:#07030f;
  --ink-2:#0d0618;
  --panel:rgba(255,255,255,.045);
  --panel-2:rgba(255,255,255,.08);
  --line:rgba(255,255,255,.10);
  --text:#f4eefc;
  --muted:#b6a8c9;
  --hot:#ff4d9d;
  --violet:#a855f7;
  --cyan:#31e6ff;
  --gold:#ffd479;
  --grad:linear-gradient(100deg,#ff4d9d 0%,#a855f7 48%,#31e6ff 100%);
  --grad-soft:linear-gradient(140deg,rgba(255,77,157,.18),rgba(168,85,247,.10) 45%,rgba(49,230,255,.12));
  --r:22px;
  --shadow:0 30px 80px -30px rgba(255,77,157,.45);
  --wrap:1200px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--ink);color:var(--text);
  font-family:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:17px;line-height:1.68;overflow-x:hidden;
}
body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(60rem 40rem at 12% -5%,rgba(255,77,157,.28),transparent 60%),
    radial-gradient(48rem 34rem at 92% 8%,rgba(49,230,255,.18),transparent 62%),
    radial-gradient(52rem 40rem at 50% 108%,rgba(168,85,247,.26),transparent 60%);
}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
h1,h2{font-family:"Sora",system-ui,sans-serif;line-height:1.06;letter-spacing:-.03em;margin:0 0 .6em;font-weight:800}
h1{font-size:clamp(2.5rem,6.4vw,4.9rem)}
h2{font-size:clamp(1.65rem,3.1vw,2.6rem)}
p{margin:0 0 1.1em}
.wrap{width:min(100% - 2.4rem,var(--wrap));margin-inline:auto;position:relative;z-index:2}
.grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.eyebrow{
  display:inline-flex;align-items:center;gap:.55rem;font-size:.72rem;font-weight:800;
  letter-spacing:.26em;text-transform:uppercase;color:var(--muted);
  border:1px solid var(--line);background:var(--panel);padding:.5rem .95rem;border-radius:999px;margin-bottom:1.2rem;
}
.eyebrow i{width:7px;height:7px;border-radius:50%;background:var(--hot);box-shadow:0 0 0 4px rgba(255,77,157,.18);animation:pulse 2.4s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 10px rgba(255,77,157,0)}}
.lead{font-size:clamp(1.02rem,1.45vw,1.22rem);color:var(--muted);max-width:60ch}
section{padding:clamp(4rem,7vw,7.5rem) 0;position:relative}
.center{text-align:center}
.center .lead{margin-inline:auto}

/* buttons */
.btn{
  --pad:1.05rem 2.1rem;
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  padding:var(--pad);border-radius:999px;font-weight:800;font-family:"Sora",sans-serif;
  letter-spacing:-.01em;border:1px solid transparent;cursor:pointer;position:relative;overflow:hidden;
  transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s,filter .25s;
}
.btn-primary{background:var(--grad);color:#12030c;box-shadow:var(--shadow)}
.btn-primary::after{
  content:"";position:absolute;inset:0;transform:translateX(-120%) skewX(-18deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);
}
.btn-primary:hover::after{animation:sheen .9s}
@keyframes sheen{to{transform:translateX(120%) skewX(-18deg)}}
.btn-ghost{background:var(--panel);border-color:var(--line);color:var(--text);backdrop-filter:blur(14px)}
.btn:hover{transform:translateY(-3px) scale(1.02)}
.btn-lg{--pad:1.25rem 2.7rem;font-size:1.08rem}
.btn-row{display:flex;flex-wrap:wrap;gap:.9rem;align-items:center}
.center .btn-row{justify-content:center}

/* header */
.site-header{
  position:sticky;top:0;z-index:60;backdrop-filter:blur(18px);
  background:rgba(7,3,15,.62);border-bottom:1px solid transparent;transition:.3s;
}
.site-header.is-stuck{background:rgba(7,3,15,.9);border-bottom-color:var(--line)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.95rem 0}
.site-branding{display:flex;align-items:center;gap:.65rem;font-family:"Sora",sans-serif;font-weight:800;font-size:1.22rem;letter-spacing:-.03em}
.mark{width:38px;height:38px;border-radius:13px;background:var(--grad);display:grid;place-items:center;color:#14040d;font-size:1.05rem;box-shadow:0 10px 30px -12px rgba(255,77,157,.9)}
.main-navigation ul{display:flex;gap:1.9rem;list-style:none;margin:0;padding:0;font-size:.94rem;font-weight:600}
.main-navigation a{color:var(--muted);position:relative;padding:.35rem 0;transition:.2s}
.main-navigation a::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--grad);transition:.3s}
.main-navigation a:hover{color:var(--text)}
.main-navigation a:hover::after{width:100%}
.nav-toggle{display:none;background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:12px;padding:.6rem .8rem;font-size:1.1rem}

/* hero */
.hero{padding-top:clamp(3rem,5vw,5rem);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(2rem,4vw,4rem);align-items:center}
.hero h1 span{display:block}
.hero-stats{display:flex;gap:2.4rem;margin-top:2.4rem;flex-wrap:wrap}
.hero-stats b{display:block;font-family:"Sora",sans-serif;font-size:1.9rem;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-stats span{font-size:.82rem;color:var(--muted);letter-spacing:.12em;text-transform:uppercase}
.hero-art{position:relative}
.hero-art .frame{
  border-radius:34px;overflow:hidden;border:1px solid var(--line);
  box-shadow:0 50px 120px -40px rgba(168,85,247,.7);transform:rotate(1.6deg);
}
.hero-art .frame img{aspect-ratio:4/5;object-fit:cover;width:100%}
.chat-bubble{
  position:absolute;background:rgba(13,6,24,.86);border:1px solid var(--line);backdrop-filter:blur(16px);
  padding:.85rem 1.1rem;border-radius:18px;font-size:.9rem;max-width:16rem;box-shadow:0 20px 50px -20px #000;
  animation:float 6s ease-in-out infinite;
}
.chat-bubble.b1{left:-1.5rem;top:12%}
.chat-bubble.b2{right:-1rem;bottom:16%;animation-delay:1.4s}
.chat-bubble small{color:var(--hot);font-weight:800;display:block;letter-spacing:.06em}
@keyframes float{50%{transform:translateY(-14px)}}

/* marquee */
.marquee{border-block:1px solid var(--line);background:rgba(255,255,255,.02);padding:1.1rem 0;overflow:hidden;white-space:nowrap}
.marquee-track{display:inline-flex;gap:3.5rem;animation:slide 26s linear infinite;font-family:"Sora",sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.18em;font-size:.86rem;color:var(--muted)}
.marquee-track em{color:var(--hot);font-style:normal}
@keyframes slide{to{transform:translateX(-50%)}}

/* cards */
.grid{display:grid;gap:1.4rem}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.card{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:1.9rem;
  backdrop-filter:blur(14px);transition:.35s;position:relative;overflow:hidden;
}
.card::before{content:"";position:absolute;inset:0;background:var(--grad-soft);opacity:0;transition:.35s}
.card:hover{transform:translateY(-7px);border-color:rgba(255,77,157,.4)}
.card:hover::before{opacity:1}
.card>*{position:relative}
.card h2{font-size:1.16rem;margin-bottom:.5rem}
.card p{color:var(--muted);font-size:.96rem;margin:0}
.ico{width:52px;height:52px;border-radius:16px;background:var(--grad);display:grid;place-items:center;font-size:1.4rem;margin-bottom:1.1rem;color:#14040d}
.step-num{font-family:"Sora",sans-serif;font-size:2.6rem;font-weight:800;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1}

/* model cards */
.model-card{border-radius:26px;overflow:hidden;position:relative;border:1px solid var(--line);display:block;background:#100819}
.model-card img{aspect-ratio:3/4;object-fit:cover;width:100%;transition:transform .8s cubic-bezier(.2,.8,.2,1);filter:saturate(1.05)}
.model-card:hover img{transform:scale(1.07)}
.model-card .meta{position:absolute;inset:auto 0 0;padding:1.5rem;background:linear-gradient(transparent,rgba(7,3,15,.92) 62%)}
.model-card .meta h2{font-size:1.3rem;margin:0}
.model-card .meta p{margin:.25rem 0 0;color:var(--muted);font-size:.9rem}
.badge{position:absolute;top:1rem;left:1rem;background:rgba(7,3,15,.7);border:1px solid var(--line);border-radius:999px;padding:.3rem .8rem;font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;backdrop-filter:blur(10px)}
.badge.live i{width:6px;height:6px;border-radius:50%;background:#3ff58f;display:inline-block;margin-right:.4rem;animation:pulse 2s infinite}
.tags{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0;margin:1.2rem 0 0}
.tags li{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:.35rem .85rem;font-size:.8rem;color:var(--muted)}

/* prose blocks */
.prose{max-width:74ch;color:#ddd2ea}
.prose p{font-size:1.05rem}
.prose-2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,4vw,3.5rem)}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:28px;padding:clamp(1.8rem,3vw,3rem);backdrop-filter:blur(14px)}

/* stats */
.stat{text-align:center;padding:2rem 1rem;border:1px solid var(--line);border-radius:var(--r);background:var(--panel)}
.stat b{display:block;font-family:"Sora",sans-serif;font-size:clamp(2rem,4vw,3rem);background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat span{color:var(--muted);font-size:.86rem;letter-spacing:.1em;text-transform:uppercase}

/* testimonials */
.quote{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:1.9rem}
.quote p{font-size:1rem;color:#e7dcf3}
.who{display:flex;align-items:center;gap:.8rem;margin-top:1.2rem}
.who .av{width:42px;height:42px;border-radius:50%;background:var(--grad);display:grid;place-items:center;color:#14040d;font-weight:800}
.who b{font-size:.95rem;display:block}
.who small{color:var(--muted)}
.stars{color:var(--gold);letter-spacing:.14em;font-size:.9rem}

/* faq */
.faq-item{border:1px solid var(--line);border-radius:18px;background:var(--panel);margin-bottom:.85rem;overflow:hidden}
.faq-q{width:100%;text-align:left;background:none;border:0;color:var(--text);font-family:"Sora",sans-serif;font-weight:700;font-size:1.03rem;padding:1.25rem 3.2rem 1.25rem 1.4rem;cursor:pointer;position:relative}
.faq-q::after{content:"+";position:absolute;right:1.3rem;top:50%;transform:translateY(-50%);font-size:1.5rem;color:var(--hot);transition:.3s}
.faq-item.open .faq-q::after{transform:translateY(-50%) rotate(45deg)}
.faq-a{max-height:0;transition:max-height .45s ease;color:var(--muted)}
.faq-a div{padding:0 1.4rem 1.3rem}
.faq-item.open .faq-a{max-height:32rem}

/* cta band */
.cta-band{border-radius:34px;padding:clamp(2.4rem,5vw,4.4rem);background:var(--grad-soft);border:1px solid rgba(255,77,157,.3);text-align:center;position:relative;overflow:hidden}
.cta-band::after{content:"";position:absolute;inset:-40%;background:conic-gradient(from 0deg,transparent,rgba(255,77,157,.16),transparent 40%);animation:spin 14s linear infinite}
@keyframes spin{to{transform:rotate(1turn)}}
.cta-band>*{position:relative;z-index:2}

/* single model */
.single-hero{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,4vw,3.5rem);align-items:center}
.single-hero .frame{border-radius:30px;overflow:hidden;border:1px solid var(--line);box-shadow:0 40px 90px -40px rgba(168,85,247,.7)}
.specs{list-style:none;padding:0;margin:1.6rem 0 0;display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}
.specs li{border:1px solid var(--line);background:var(--panel);border-radius:14px;padding:.85rem 1.1rem;font-size:.92rem}
.specs b{display:block;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.chat-demo{display:grid;gap:.7rem;max-width:34rem}
.msg{padding:.85rem 1.15rem;border-radius:18px;font-size:.97rem;max-width:80%;border:1px solid var(--line)}
.msg.her{background:var(--panel-2);border-bottom-left-radius:6px}
.msg.you{background:var(--grad);color:#14040d;margin-left:auto;border-bottom-right-radius:6px;font-weight:600;border-color:transparent}

/* legal */
.legal{padding-top:3.5rem}
.legal .prose{max-width:82ch}
.legal ol{padding-left:1.3rem;counter-reset:none}
.legal ol>li{margin-bottom:1.15rem;color:#d8cce7}
.legal ol>li b{color:var(--text);font-family:"Sora",sans-serif}
.updated{font-size:.85rem;color:var(--muted);letter-spacing:.1em;text-transform:uppercase}

/* breadcrumbs */
.crumbs{font-size:.85rem;color:var(--muted);margin-bottom:1.6rem}
.crumbs a:hover{color:var(--hot)}

/* footer */
.site-footer{border-top:1px solid var(--line);padding:4rem 0 2.4rem;background:rgba(255,255,255,.02);position:relative;z-index:2}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2.2rem}
.footer-grid h2{font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.footer-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:.6rem;font-size:.94rem}
.footer-grid a{color:#cfc2de}
.footer-grid a:hover{color:var(--hot)}
.footer-bottom{margin-top:3rem;padding-top:1.6rem;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:var(--muted);font-size:.86rem}
.age{border:1px solid rgba(255,77,157,.4);border-radius:999px;padding:.25rem .7rem;font-weight:800;color:var(--hot);font-size:.78rem}

/* reveal */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1)}
.reveal.in{opacity:1;transform:none}

@media(max-width:980px){
  .hero-grid,.single-hero,.prose-2,.g3,.g4{grid-template-columns:1fr}
  .g4{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
  .main-navigation{display:none;position:absolute;left:0;right:0;top:100%;background:rgba(7,3,15,.97);border-bottom:1px solid var(--line);padding:1.2rem}
  .main-navigation.open{display:block}
  .main-navigation ul{flex-direction:column;gap:1rem}
  .nav-toggle{display:block}
  .header-inner{position:relative}
  .chat-bubble{display:none}
}
@media(max-width:620px){
  .g2,.g4{grid-template-columns:1fr}
  .specs{grid-template-columns:1fr}
  body{font-size:16px}
}
