/* ============ Future of Communications — 2026 APAC Report ============ */
:root{
  --plum:#5c1638;
  --plum-deep:#43102a;
  --magenta:#c22757;
  --coral:#e56a3c;
  --gold:#edb343;
  --gold-soft:#f3c96e;
  --cream:#fbf4e9;
  --cream-dim:rgba(251,244,233,.72);
  --charcoal:#191419;
  --charcoal-2:#221a20;
  --ink:#2b1420;
  --radius:18px;
  --shadow:0 24px 60px rgba(28,8,20,.35);
  --font:'Source Sans 3',system-ui,-apple-system,'Segoe UI',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font);background:var(--charcoal);color:var(--cream);line-height:1.6;overflow-x:hidden}
img{max-width:100%}
a{color:inherit}
::selection{background:var(--gold);color:var(--ink)}

/* progress bar */
.progress-bar{position:fixed;top:0;left:0;height:3px;width:0;z-index:120;
  background:linear-gradient(90deg,var(--magenta),var(--coral),var(--gold));transition:width .1s linear}

/* ============ NAV ============ */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;gap:28px;
  padding:14px 5vw;transition:background .35s,box-shadow .35s}
.nav.scrolled{background:rgba(25,20,25,.92);backdrop-filter:blur(14px);box-shadow:0 6px 30px rgba(0,0,0,.35)}
.nav-brand{display:flex;align-items:center;gap:12px;text-decoration:none;margin-right:auto}
.we-mark{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;
  background:var(--cream);color:var(--plum);font-weight:900;font-size:1.05rem;letter-spacing:-.02em;flex:none}
.nav-title{font-weight:700;font-size:1.02rem;letter-spacing:.02em}
.nav-title em{font-style:normal;color:var(--gold)}
.nav-links{display:flex;gap:26px}
.nav-links a{text-decoration:none;font-weight:600;font-size:.95rem;color:var(--cream-dim);transition:color .2s}
.nav-links a:hover{color:var(--gold)}
@media(max-width:760px){.nav-links{display:none}.nav-title{display:none}}

/* ============ BUTTONS ============ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;cursor:pointer;
  font-family:var(--font);font-weight:700;font-size:1rem;padding:13px 26px;border-radius:999px;
  text-decoration:none;transition:transform .18s,box-shadow .18s,background .18s;white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn-gold{background:linear-gradient(120deg,var(--gold),var(--gold-soft));color:var(--ink);
  box-shadow:0 10px 30px rgba(237,179,67,.32)}
.btn-gold:hover{box-shadow:0 16px 40px rgba(237,179,67,.45)}
.btn-ghost{background:transparent;color:var(--cream);border:2px solid rgba(251,244,233,.4)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold)}
.btn-lg{padding:16px 34px;font-size:1.08rem}
.btn-nav{padding:10px 22px;font-size:.92rem}
.btn-block{width:100%}
.btn-plain{display:block;margin:10px auto 0;background:none;border:none;color:var(--cream-dim);
  font-family:var(--font);font-size:.9rem;cursor:pointer;text-decoration:underline}

/* ============ HERO ============ */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;
  background:
    radial-gradient(120% 90% at 85% 10%,rgba(237,179,67,.35),transparent 55%),
    radial-gradient(110% 100% at 15% 90%,rgba(92,22,56,.9),transparent 60%),
    linear-gradient(135deg,#7c1a44 0%,#c22757 38%,#e56a3c 72%,#edb343 105%);
  overflow:hidden;text-align:center;padding:120px 5vw 80px}
.hero-waves{position:absolute;inset:0;pointer-events:none}
.wave{position:absolute;left:-10%;width:120%;height:105%;opacity:.5}
.wave path{fill:rgba(251,244,233,.10)}
.w1{animation:drift 14s ease-in-out infinite alternate}
.w2{animation:drift 18s ease-in-out infinite alternate-reverse}
.w2 path{fill:rgba(67,16,42,.22)}
.w3{animation:drift 22s ease-in-out infinite alternate}
.w3 path{fill:rgba(237,179,67,.16)}
@keyframes drift{from{transform:translate3d(-3%,0,0) scaleY(1)}to{transform:translate3d(3%,-2.5%,0) scaleY(1.06)}}
.hero-inner{position:relative;max-width:900px}
.hero-badge{display:inline-block;border:2px solid var(--cream);border-radius:999px;padding:7px 20px;
  font-weight:700;letter-spacing:.22em;font-size:.8rem;margin-bottom:28px}
.hero-title{font-size:clamp(3rem,9vw,6.4rem);line-height:.98;font-weight:900;letter-spacing:-.015em}
.hero-title .of{color:var(--gold);font-weight:700}
.hero-title .soft{font-weight:700}
.hero-sub{max-width:640px;margin:26px auto 36px;font-size:clamp(1.05rem,2.2vw,1.25rem);color:var(--cream-dim)}
.hero-ctas{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.hero-scroll{margin:60px auto 0;width:26px;height:44px;border:2px solid rgba(251,244,233,.5);border-radius:14px;position:relative}
.hero-scroll span{position:absolute;top:8px;left:50%;width:4px;height:9px;margin-left:-2px;border-radius:2px;
  background:var(--cream);animation:scrollcue 1.8s ease-in-out infinite}
@keyframes scrollcue{0%{transform:translateY(0);opacity:1}70%{transform:translateY(14px);opacity:0}100%{opacity:0}}

/* ============ STATS BAND ============ */
.stats-band{background:var(--cream);color:var(--ink);padding:76px 5vw}
.stats-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:36px}
@media(max-width:960px){.stats-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:540px){.stats-grid{grid-template-columns:1fr}}
.stat{border-top:4px solid var(--magenta);padding-top:18px}
.stat:nth-child(2){border-color:var(--coral)}
.stat:nth-child(3){border-color:var(--gold)}
.stat:nth-child(4){border-color:var(--plum)}
.stat-num{font-size:clamp(2.6rem,4.5vw,3.6rem);font-weight:900;color:var(--plum);line-height:1}
.stat p{margin-top:10px;font-size:.98rem;color:#5a3a4a}

/* ============ SECTION SCAFFOLD ============ */
.kicker{font-weight:700;letter-spacing:.24em;font-size:.78rem;color:var(--magenta);margin-bottom:14px}
.kicker.gold{color:var(--gold)}
.m-magenta .kicker,.m-plum .kicker,.m-rose .kicker{color:var(--gold-soft)}
.section-head{max-width:760px;margin:0 auto 56px;text-align:center}
.section-head h2{font-size:clamp(2rem,4.6vw,3.2rem);font-weight:900;line-height:1.08}
.section-head p{margin-top:16px;color:var(--cream-dim);font-size:1.08rem}

/* ============ MODULES OVERVIEW ============ */
.modules-overview{padding:100px 5vw;background:var(--charcoal)}
.module-cards{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:22px}
.module-card{position:relative;display:block;text-decoration:none;border-radius:var(--radius);padding:30px 26px 26px;
  background:var(--charcoal-2);border:1px solid rgba(251,244,233,.09);overflow:hidden;
  transition:transform .25s,border-color .25s,box-shadow .25s}
.module-card::before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--magenta)}
.mc-ai::before{background:var(--gold)}
.mc-social::before{background:var(--magenta)}
.mc-earned::before{background:var(--coral)}
.mc-b2b::before{background:#9c2f63}
.mc-health::before{background:#e0899d}
.module-card:hover{transform:translateY(-6px);border-color:rgba(237,179,67,.5);box-shadow:var(--shadow)}
.mc-num{font-size:.85rem;font-weight:700;letter-spacing:.2em;color:var(--gold)}
.module-card h3{margin:10px 0 8px;font-size:1.3rem;font-weight:700;line-height:1.25}
.module-card p{color:var(--cream-dim);font-size:.96rem}
.mc-go{display:inline-block;margin-top:16px;font-weight:700;font-size:.92rem;color:var(--gold)}

/* ============ MODULE SECTIONS ============ */
.module{padding:110px 5vw;position:relative;overflow:hidden}
.m-dark{background:
  radial-gradient(90% 60% at 110% 0%,rgba(237,179,67,.14),transparent 60%),
  var(--charcoal)}
.m-magenta{background:
  radial-gradient(100% 70% at -10% 10%,rgba(237,179,67,.18),transparent 55%),
  linear-gradient(135deg,#8f1d47,#c22757 60%,#d94a48)}
.m-plum{background:
  radial-gradient(90% 70% at 110% 100%,rgba(194,39,87,.35),transparent 60%),
  linear-gradient(150deg,var(--plum-deep),var(--plum) 70%,#7c1a44)}
.m-rose{background:
  radial-gradient(100% 80% at 100% 0%,rgba(224,137,157,.24),transparent 55%),
  linear-gradient(140deg,#6d1436,#a12352 65%,#c94a6b)}
.module-head{max-width:860px;margin:0 auto 54px;text-align:center}
.module-head h2{font-size:clamp(2.1rem,5vw,3.6rem);font-weight:900;line-height:1.05}
.accent-gold{color:var(--gold)}
.accent-cream{color:var(--gold-soft)}
.standfirst{margin-top:18px;font-size:1.12rem;color:var(--cream-dim)}
.teaser-grid{max-width:1100px;margin:0 auto 46px;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:860px){.teaser-grid{grid-template-columns:1fr}}
.tcard{background:rgba(251,244,233,.07);border:1px solid rgba(251,244,233,.14);border-radius:var(--radius);
  padding:26px;backdrop-filter:blur(4px)}
.tnum{font-size:2.4rem;font-weight:900;color:var(--gold);line-height:1}
.tcard p{margin-top:10px;font-size:.97rem;color:var(--cream-dim)}

/* ============ GATE ============ */
.gate-wrap{max-width:1100px;margin:0 auto;position:relative;border-radius:var(--radius)}
.gated-content{background:rgba(251,244,233,.05);border:1px solid rgba(251,244,233,.12);border-radius:var(--radius);
  padding:44px;display:grid;grid-template-columns:1fr 1fr;gap:30px 40px}
@media(max-width:860px){.gated-content{grid-template-columns:1fr;padding:28px}}
body:not(.unlocked) .gated-content{filter:blur(9px) saturate(.7);pointer-events:none;user-select:none;
  max-height:560px;overflow:hidden}
.gate-overlay{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;
  justify-content:center;text-align:center;padding:30px;border-radius:var(--radius);
  background:linear-gradient(180deg,rgba(25,20,25,.25),rgba(25,20,25,.72))}
body.unlocked .gate-overlay{display:none}
.gate-lock{font-size:2rem;margin-bottom:12px}
.gate-overlay h3{font-size:1.5rem;font-weight:900;margin-bottom:10px}
.gate-overlay p{max-width:520px;color:var(--cream-dim);margin-bottom:22px;font-size:.99rem}
.sub h4{font-size:1.12rem;font-weight:700;color:var(--gold);margin-bottom:8px}
.sub p{font-size:.97rem;color:var(--cream-dim)}
.sub strong{color:var(--cream)}
.sub.rec{grid-column:1/-1;background:rgba(237,179,67,.08);border:1px solid rgba(237,179,67,.3);
  border-radius:14px;padding:24px 28px}
.sub.rec ul{list-style:none;display:grid;gap:10px;margin-top:6px}
.sub.rec li{padding-left:22px;position:relative;font-size:.97rem;color:var(--cream-dim)}
.sub.rec li::before{content:"→";position:absolute;left:0;color:var(--gold);font-weight:700}

/* ============ ABOUT ============ */
.about-band{background:var(--cream);color:var(--ink);padding:100px 5vw;text-align:center}
.about-inner{max-width:760px;margin:0 auto}
.about-band h2{font-size:clamp(1.9rem,4.2vw,2.9rem);font-weight:900;line-height:1.1;color:var(--plum)}
.about-band p{margin:18px auto 32px;color:#5a3a4a;font-size:1.1rem}
.about-band .btn-ghost{color:var(--plum);border-color:rgba(92,22,56,.4)}
.about-band .btn-ghost:hover{border-color:var(--magenta);color:var(--magenta)}
.share-row{margin-top:44px;display:flex;gap:14px;justify-content:center;align-items:center;flex-wrap:wrap;
  font-weight:600;color:#5a3a4a;font-size:.95rem}
.share-link{background:none;border:1.5px solid rgba(92,22,56,.35);border-radius:999px;padding:7px 18px;
  font-family:var(--font);font-weight:700;font-size:.9rem;color:var(--plum);text-decoration:none;cursor:pointer;
  transition:all .2s}
.share-link:hover{background:var(--plum);color:var(--cream)}

/* ============ FOOTER ============ */
.footer{background:var(--charcoal);padding:56px 5vw}
.footer-inner{max-width:1100px;margin:0 auto;text-align:center}
.footer-brand{display:flex;align-items:center;justify-content:center;gap:12px;font-weight:700;margin-bottom:18px}
.fineprint{color:rgba(251,244,233,.5);font-size:.85rem;max-width:720px;margin:0 auto}
.fineprint a{color:var(--gold)}

/* ============ MODALS ============ */
.modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:20px}
.modal[hidden]{display:none}
.modal-backdrop{position:absolute;inset:0;background:rgba(20,10,18,.72);backdrop-filter:blur(6px)}
.modal-card{position:relative;width:min(560px,100%);max-height:92svh;overflow:auto;background:var(--cream);
  color:var(--ink);border-radius:22px;padding:38px 36px 32px;box-shadow:var(--shadow);
  animation:pop .38s cubic-bezier(.2,.9,.3,1.2)}
@keyframes pop{from{transform:translateY(26px) scale(.96);opacity:0}to{transform:none;opacity:1}}
.modal-accent{position:absolute;top:0;left:0;right:0;height:7px;border-radius:22px 22px 0 0;
  background:linear-gradient(90deg,var(--plum),var(--magenta),var(--coral),var(--gold))}
.modal-x{position:absolute;top:14px;right:16px;background:none;border:none;font-size:1.7rem;line-height:1;
  color:#9b7386;cursor:pointer}
.modal-card h3{font-size:1.65rem;font-weight:900;color:var(--plum);margin-bottom:6px}
.modal-sub{color:#5a3a4a;font-size:.99rem;margin-bottom:22px}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:540px){.frow{grid-template-columns:1fr}}
form label{display:block;font-weight:700;font-size:.86rem;color:var(--plum);margin-bottom:14px}
form input[type=text],form input[type=email],form select{display:block;width:100%;margin-top:6px;
  padding:12px 14px;border-radius:10px;border:1.5px solid #d9c3b4;background:#fff;font-family:var(--font);
  font-size:.98rem;color:var(--ink);transition:border-color .2s,box-shadow .2s}
form input:focus,form select:focus{outline:none;border-color:var(--magenta);box-shadow:0 0 0 3px rgba(194,39,87,.15)}
label.consent{display:flex;gap:10px;align-items:flex-start;font-weight:400;font-size:.85rem;color:#5a3a4a;
  margin:4px 0 20px}
label.consent input{margin-top:3px;accent-color:var(--magenta);width:17px;height:17px;flex:none}
.form-msg{margin-top:12px;font-size:.92rem;font-weight:600;text-align:center;min-height:1.2em}
.form-msg.err{color:#b3261e}
.form-msg.ok{color:#1a7a3c}
.honey{position:absolute;left:-6000px;height:0;overflow:hidden}
.brief-card{width:min(460px,100%)}
.brief-badge{display:inline-block;background:linear-gradient(120deg,var(--gold),var(--gold-soft));color:var(--ink);
  font-size:.72rem;font-weight:900;letter-spacing:.18em;border-radius:999px;padding:5px 14px;margin-bottom:14px}
.btn[disabled]{opacity:.6;pointer-events:none}

/* ============ REVEAL ANIMATIONS ============ */
/* hidden-until-reveal only applies when JS is running (html.js) so
   crawlers, link previews and no-JS visitors always see content */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .wave,.hero-scroll span{animation:none}
  html{scroll-behavior:auto}
}
