/* ============================================================
   MALAIKA LIVE  ·  Nairobi at dusk
   night violet sky -> equatorial amber. The signature is the
   halo: a ring around each angel that lights when she is live.
   ============================================================ */

:root{
  --night:#1E1433;
  --dusk:#2B1D4E;
  --plum:#3A2860;
  --amber:#F0A63C;
  --amber-soft:#F6C878;
  --hibiscus:#E4638E;
  --cream:#F7EBDA;
  --muted:#B9A8D6;
  --radius:18px;
  --wrap:1080px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}

body{
  background:var(--night);
  color:var(--cream);
  font-family:'Karla',system-ui,sans-serif;
  font-size:17px;
  line-height:1.75;
}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}

h1,h2,h3,.script{font-family:'Fraunces',Georgia,serif;font-weight:500;line-height:1.15}
h1{font-size:clamp(2.4rem,6vw,4.2rem);letter-spacing:-.01em}
h2{font-size:clamp(1.7rem,3.6vw,2.5rem);margin-bottom:14px}
h3{font-size:1.25rem}
em{font-style:italic;color:var(--amber-soft)}
a{color:var(--amber-soft)}
a:focus-visible,button:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:4px}

.eyebrow{
  font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--hibiscus);margin-bottom:14px;font-weight:700;
}

.btn{
  display:inline-block;padding:14px 30px;border-radius:999px;
  font-weight:700;text-decoration:none;font-size:1rem;border:0;cursor:pointer;
  transition:transform .15s ease,box-shadow .15s ease;
}
.btn:hover{transform:translateY(-2px)}
.btn-amber{background:var(--amber);color:#2A1B0A;box-shadow:0 6px 24px rgba(240,166,60,.35)}
.btn-line{border:1.5px solid rgba(247,235,218,.4);color:var(--cream)}

/* ---------- age gate ---------- */
.gate{
  position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;
  background:rgba(20,12,38,.96);padding:24px;
}
.gate[hidden]{display:none}
.gate-card{
  max-width:440px;text-align:center;background:var(--dusk);
  border:1px solid rgba(240,166,60,.25);border-radius:var(--radius);padding:44px 36px;
}
.gate-card h2{color:var(--amber-soft)}
.gate-card p{color:var(--muted);margin:14px 0 26px;font-size:.97rem}
.gate-card .row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* ---------- nav ---------- */
header.site{
  position:sticky;top:0;z-index:50;
  background:rgba(30,20,51,.92);backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(240,166,60,.18);
}
.nav{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;max-width:var(--wrap);margin:0 auto}
.logo{
  font-family:'Fraunces',serif;font-size:1.35rem;color:var(--cream);text-decoration:none;
  display:flex;align-items:center;gap:10px;
}
.logo .ring{
  width:22px;height:22px;border-radius:50%;border:2.5px solid var(--amber);
  box-shadow:0 0 12px rgba(240,166,60,.7);flex:none;
}
.nav-links{display:flex;gap:26px;align-items:center}
.nav-links a{color:var(--muted);text-decoration:none;font-size:.95rem;font-weight:700}
.nav-links a:hover{color:var(--cream)}
.nav-links a.cta{
  background:var(--amber);color:#2A1B0A;padding:10px 22px;border-radius:999px;
}
@media(max-width:640px){.nav-links a:not(.cta){display:none}}

/* ---------- hero ---------- */
.hero{
  position:relative;overflow:hidden;text-align:center;
  padding:110px 24px 130px;
  background:
    radial-gradient(1100px 500px at 50% 118%, rgba(240,166,60,.38), transparent 62%),
    radial-gradient(700px 380px at 82% 108%, rgba(228,99,142,.22), transparent 60%),
    linear-gradient(180deg, var(--night) 0%, var(--dusk) 72%, var(--plum) 100%);
}
.hero .stars{position:absolute;inset:0;pointer-events:none}
.hero .stars span{
  position:absolute;width:2px;height:2px;border-radius:50%;
  background:var(--cream);opacity:.5;animation:twinkle 4s ease-in-out infinite;
}
@keyframes twinkle{0%,100%{opacity:.15}50%{opacity:.7}}
.hero .script{
  font-size:1.15rem;font-style:italic;color:var(--amber-soft);margin-bottom:18px;
}
.hero h1{max-width:820px;margin:0 auto 22px}
.hero .lead{max-width:560px;margin:0 auto 34px;color:var(--muted);font-size:1.1rem}
.hero .ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ---------- sections ---------- */
section{padding:88px 0}
section.deep{background:var(--dusk)}
.section-intro{color:var(--muted);max-width:600px;margin-bottom:44px}

/* ---------- roster / halo cards ---------- */
.roster{display:grid;gap:28px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-top:46px}
.angel{
  background:var(--plum);border-radius:var(--radius);padding:34px 26px 30px;text-align:center;
  border:1px solid rgba(247,235,218,.08);
  transition:transform .15s ease;
}
.angel:hover{transform:translateY(-4px)}
.halo{
  width:128px;height:128px;margin:0 auto 20px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;position:relative;
  border:3px solid rgba(185,168,214,.35);
}
.halo .face{
  width:106px;height:106px;border-radius:50%;overflow:hidden;
  background:linear-gradient(135deg,var(--dusk),var(--hibiscus));
  display:flex;align-items:center;justify-content:center;
  font-family:'Fraunces',serif;font-size:2.2rem;color:var(--cream);
}
.halo .face img{width:100%;height:100%;object-fit:cover}
.angel.is-live .halo{
  border-color:var(--amber);
  box-shadow:0 0 22px rgba(240,166,60,.75),inset 0 0 14px rgba(240,166,60,.28);
  animation:halo-glow 2.4s ease-in-out infinite;
}
@keyframes halo-glow{
  0%,100%{box-shadow:0 0 18px rgba(240,166,60,.55),inset 0 0 12px rgba(240,166,60,.2)}
  50%{box-shadow:0 0 30px rgba(240,166,60,.95),inset 0 0 18px rgba(240,166,60,.4)}
}
.angel h3{font-size:1.45rem;margin-bottom:4px}
.angel .place{color:var(--hibiscus);font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700}
.angel p.about{color:var(--muted);font-size:.95rem;margin:12px 0 20px}
.status{
  display:inline-flex;align-items:center;gap:8px;font-size:.85rem;font-weight:700;
  color:var(--muted);margin-bottom:18px;
}
.status .dot{width:9px;height:9px;border-radius:50%;background:var(--muted);flex:none}
.angel.is-live .status{color:var(--amber-soft)}
.angel.is-live .status .dot{background:var(--amber);box-shadow:0 0 8px var(--amber)}
.angel .btn{display:block}
.angel.soon{opacity:.75}
.angel.soon .halo{border-style:dashed}

/* ---------- how it works ---------- */
.beats{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-top:42px}
.beat{background:var(--night);border-radius:var(--radius);padding:30px 26px;border:1px solid rgba(247,235,218,.08)}
.beat h3{color:var(--amber-soft);margin-bottom:8px}
.beat p{color:var(--muted);font-size:.96rem}

/* ---------- letters (blog) ---------- */
.letters{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:42px}
.letter{
  background:var(--plum);border-radius:var(--radius);padding:30px 28px;
  border:1px solid rgba(247,235,218,.08);display:flex;flex-direction:column;gap:10px;
}
.letter .from{color:var(--hibiscus);font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700}
.letter h3 a{color:var(--cream);text-decoration:none}
.letter h3 a:hover{color:var(--amber-soft)}
.letter p{color:var(--muted);font-size:.95rem}
.letter .more{font-weight:700;font-size:.92rem;text-decoration:none;margin-top:auto}

/* ---------- article ---------- */
.article{max-width:680px;margin:0 auto;padding:70px 24px}
.article h1{font-size:clamp(2rem,4.5vw,3rem);margin-bottom:12px}
.article .meta{color:var(--hibiscus);font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;margin-bottom:34px}
.article p{margin-bottom:22px;color:#DCD2EA}
.article img{max-width:100%;border-radius:var(--radius);margin:10px 0 24px}
.article .cta-inline{
  background:var(--dusk);border:1px solid rgba(240,166,60,.3);border-radius:var(--radius);
  padding:26px;text-align:center;margin:36px 0;
}

/* ---------- model page ---------- */
.model-hero{padding:70px 0 40px;text-align:center}
.player{
  max-width:900px;margin:0 auto;aspect-ratio:16/9;border-radius:var(--radius);
  overflow:hidden;background:var(--dusk);border:1px solid rgba(240,166,60,.25);
}
.player iframe{width:100%;height:100%;border:0}
.player .offline{
  height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:14px;color:var(--muted);padding:24px;text-align:center;
}

/* ---------- footer ---------- */
footer{background:#160E28;padding:56px 0 46px;margin-top:20px}
footer .wrap{display:flex;flex-direction:column;gap:18px}
footer .age{
  display:inline-flex;width:46px;height:46px;border-radius:50%;
  border:2px solid var(--amber);color:var(--amber);font-weight:700;
  align-items:center;justify-content:center;
}
footer p{color:var(--muted);font-size:.88rem;max-width:640px}
footer nav{display:flex;gap:20px;flex-wrap:wrap}
footer nav a{color:var(--muted);font-size:.9rem}
