/* FairPlay 24 — BUBBLE BLAST ARENA — shared site.css (page-unique styles stay inline) */
@font-face{font-family:"Fredoka";src:url(/fonts/fredoka.woff2) format("woff2");font-weight:400 700;font-display:optional;unicode-range:U+0000-00FF,U+2000-206F,U+20A0-20BF,U+2100-214F}
@font-face{font-family:"Hanken";src:url(/fonts/hanken.woff2) format("woff2");font-weight:400 800;font-display:optional;unicode-range:U+0000-00FF,U+2000-206F,U+20A0-20BF,U+2100-214F}

:root{
  --ink:#0A0620;--panel:#150B33;--panel2:#1E1147;--line:#2C1C5A;
  --aqua:#22E0C8;--pop:#FF3DAE;--gold:#FFC83D;--ink-gold:#1A0B2E;--wa:#25D366;
  --text:#EDE7FF;--muted:#A79BD0;--head:"Fredoka",system-ui,sans-serif;--body:"Hanken",system-ui,sans-serif;
  --wrap:1180px;--r:18px;
}
*{box-sizing:border-box}
:where(body *){min-width:0}
html{overflow-x:clip;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;overflow-x:clip;max-width:100%;background:var(--ink);color:var(--text);
  font-family:var(--body);font-size:17px;line-height:1.7;overflow-wrap:break-word;
  background-image:radial-gradient(1100px 600px at 82% -8%,rgba(34,224,200,.12),transparent 60%),radial-gradient(900px 520px at 8% 4%,rgba(255,61,174,.10),transparent 60%)}
h1,h2,h3,h4{font-family:var(--head);line-height:1.12;font-weight:700;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(2rem,5.4vw,3.5rem)}h2{font-size:clamp(1.5rem,3.4vw,2.3rem)}h3{font-size:1.22rem}
p{margin:0 0 1.05em}a{color:var(--aqua)}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}
main{max-width:100%;overflow-x:clip;display:block}
section{padding:clamp(44px,6vw,84px) 0}

/* skip link — exact form, rule 118 (no inline style) */
.skip,.skip-link{position:absolute;left:0;top:0;background:var(--gold);color:var(--ink-gold);
  padding:10px 16px;border-radius:0 0 12px 0;font-weight:700;z-index:200;clip:rect(0 0 0 0);clip-path:inset(50%)}
.skip:focus,.skip-link:focus{clip:auto;clip-path:none}

/* header — mobile dropdown */
.hdr{position:sticky;top:0;z-index:120;width:100%;max-width:100vw;background:rgba(10,6,32,.86);
  backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.hdr .wrap{display:flex;align-items:center;gap:16px;height:66px}
.brand{display:flex;align-items:center;flex:0 0 auto}
.brand img{width:132px;height:auto}
.nav{margin-left:auto;display:flex;align-items:center;gap:6px}
.nav a{color:var(--text);text-decoration:none;font-weight:600;font-size:.95rem;padding:9px 12px;border-radius:11px;white-space:nowrap}
.nav a:hover{background:var(--panel2);color:#fff}
.nav a[aria-current=page]{color:var(--aqua)}
.nav .cta-lite{background:linear-gradient(180deg,#ffe08a,var(--gold));background-color:var(--gold);color:var(--ink-gold);font-weight:700}
.burger{margin-left:auto;display:none;width:46px;height:46px;border:1px solid var(--line);background:var(--panel2);
  border-radius:12px;color:#fff;font-size:1.3rem;cursor:pointer}
@media(max-width:900px){
  .burger{display:block}
  .nav{position:absolute;left:0;right:0;top:66px;flex-direction:column;align-items:stretch;gap:2px;
    background:var(--panel);border-bottom:1px solid var(--line);padding:10px;max-width:100vw;
    display:none}
  .nav.open{display:flex}
  .nav a{padding:13px 14px}
}

/* CTA — glossy bubble pill */
.btn{display:inline-flex;align-items:center;gap:.5em;font-family:var(--head);font-weight:700;font-size:1.02rem;
  padding:15px 30px;border-radius:999px;text-decoration:none;position:relative;overflow:hidden;
  background:linear-gradient(180deg,#ffe390,var(--gold))!important;background-color:var(--gold)!important;color:var(--ink-gold)!important;
  box-shadow:0 10px 26px rgba(255,200,61,.32),inset 0 2px 0 rgba(255,255,255,.6);transition:transform .18s,box-shadow .18s}
.btn::after{content:"";position:absolute;inset:0 0 55% 0;background:linear-gradient(180deg,rgba(255,255,255,.55),transparent);
  border-radius:999px 999px 40% 40%;pointer-events:none}
.btn:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(255,200,61,.42)}
.btn.wa{background:linear-gradient(180deg,#4bea86,var(--wa))!important;background-color:var(--wa)!important;color:#06331b!important;box-shadow:0 10px 26px rgba(37,211,102,.34)}
.btn.ghost{background:transparent!important;color:var(--aqua)!important;border:1.5px solid var(--aqua);box-shadow:none}
.btn.ghost::after{display:none}
@media(prefers-reduced-motion:reduce){.btn{transition:none}}

/* generic panels/cards */
.panel{background:linear-gradient(160deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:var(--r)}
.grid{display:grid;gap:18px}
.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:820px){.g3,.g4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.g2,.g3,.g4{grid-template-columns:1fr}}
.card{background:linear-gradient(160deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:var(--r);
  padding:22px;transition:transform .2s,box-shadow .2s,border-color .2s}
.card:hover{transform:translateY(-4px);border-color:var(--aqua);box-shadow:0 18px 40px rgba(34,224,200,.14)}
@media(prefers-reduced-motion:reduce){.card{transition:none}}
.eyebrow{font-family:var(--head);font-weight:600;color:var(--aqua);text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;margin-bottom:.5em}
figure{margin:0 0 1.2em}figure img{border-radius:var(--r);width:100%}
figcaption{color:var(--muted);font-size:.86rem;margin-top:.5em;text-align:center}

/* chips — also-search */
.also-search{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:1.2em 0}
.also-search li a{display:inline-block;background:var(--panel2);border:1px solid var(--line);color:var(--text);
  text-decoration:none;padding:9px 15px;border-radius:999px;font-size:.9rem;transition:.18s}
.also-search li a:hover{border-color:var(--pop);color:#fff}

/* FAQ — bubble-pop accordion (shared skeleton; per-page may restyle marker) */
.faq details{background:linear-gradient(160deg,var(--panel2),var(--panel));border:1px solid var(--line);
  border-radius:16px;padding:4px 20px;margin:12px 0}
.faq summary{cursor:pointer;list-style:none;font-family:var(--head);font-weight:600;font-size:1.08rem;
  padding:16px 40px 16px 0;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);
  width:30px;height:30px;border-radius:50%;background:var(--aqua);color:var(--ink);display:grid;place-items:center;
  font-family:var(--head);font-size:1.4rem;line-height:1;transition:transform .22s}
.faq details[open] summary::after{content:"\2212";background:var(--pop);color:#fff;transform:translateY(-50%) rotate(180deg)}
.faq details[open]{border-color:var(--aqua)}
.faq p{margin:0 0 16px}

/* seo-box base (per-page variant classes carry layout — rule 74) */
.seo-box{background:linear-gradient(160deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:var(--r);padding:26px}
.seo-box h2,.seo-box h3{color:#fff}

/* scroll affordance for horizontal strips */
.hscroll{display:flex;gap:16px;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;
  padding-bottom:10px;scrollbar-width:thin;scrollbar-color:var(--aqua) transparent}
.hscroll::-webkit-scrollbar{height:7px}.hscroll::-webkit-scrollbar-thumb{background:var(--aqua);border-radius:999px}
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;border-radius:14px}
.tbl-wrap>table{min-width:430px}
table{width:100%;border-collapse:collapse}
th,td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line)}
th{background:var(--panel2);color:#fff;font-family:var(--head);font-weight:600}

/* breadcrumb + related */
.crumb{font-size:.85rem;color:var(--muted);padding-top:16px}
.crumb a{color:var(--muted);text-decoration:none}.crumb a:hover{color:var(--aqua)}

/* footer */
.ft{background:#070417;border-top:1px solid var(--line);padding:52px 0 30px;margin-top:20px}
.ft .cols{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:26px}
@media(max-width:820px){.ft .cols{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.ft .cols{grid-template-columns:1fr}}
.ft p{color:var(--muted);font-size:.92rem}
.ft .fcat{font-family:var(--head);font-weight:600;color:#fff;font-size:.98rem;margin:0 0 12px}
.ft ul{list-style:none;padding:0;margin:0}.ft li{margin:8px 0}
.ft a{color:var(--muted);text-decoration:none;font-size:.92rem}.ft a:hover{color:var(--aqua)}
.social{display:flex;gap:12px;margin:14px 0}
.social a{width:40px;height:40px;border-radius:50%;background:var(--panel2);border:1px solid var(--line);
  display:grid;place-items:center;color:var(--text)}
.social a:hover{border-color:var(--aqua);color:var(--aqua)}
.social svg{width:19px;height:19px;fill:currentColor}
.qtech{display:flex;align-items:center;gap:12px;margin:18px 0}
.qtech .plate{background:#fff;border-radius:12px;padding:8px 12px;display:inline-flex}
.qtech .plate img{width:104px;height:auto}
.qtech span{color:var(--muted);font-size:.8rem}
.legal{border-top:1px solid var(--line);margin-top:26px;padding-top:20px;color:var(--muted);font-size:.83rem}

/* whatsapp float */
.wafloat{position:fixed;right:18px;bottom:18px;width:60px;height:60px;border-radius:50%;background:var(--wa);
  display:grid;place-items:center;z-index:130;box-shadow:0 8px 24px rgba(37,211,102,.5)}
.wafloat svg{width:32px;height:32px;fill:#fff}
.wafloat::before{content:"";position:absolute;inset:0;border-radius:50%;background:var(--wa);z-index:-1;animation:wapulse 2.4s ease-out infinite}
@keyframes wapulse{0%{transform:scale(1);opacity:.6}100%{transform:scale(1.9);opacity:0}}
@media(prefers-reduced-motion:reduce){.wafloat::before{animation:none}}

/* scroll-reveal — visible by default, curtain only when JS adds .on (rule 72) */
.reveal.on{opacity:0;transform:translateY(24px);animation:rv .7s ease forwards}
@keyframes rv{to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.reveal.on{animation:none;opacity:1;transform:none}}

/* H1 shimmer sweep — CSS only, no text replace (rule 58) */
.shine{background:linear-gradient(100deg,var(--text) 40%,#fff 50%,var(--text) 60%);background-size:220% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 5.5s linear infinite}
@keyframes shine{to{background-position:-220% 0}}
@media(prefers-reduced-motion:reduce){.shine{animation:none;color:var(--text);-webkit-text-fill-color:currentColor}}

/* count-up stat tiles */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media(max-width:640px){.stats{grid-template-columns:repeat(2,1fr)}}
.stat{background:var(--panel2);border:1px solid var(--line);border-radius:16px;padding:20px 16px;text-align:center}
.stat b{display:block;font-family:var(--head);font-size:2rem;color:var(--aqua)}
.stat span{color:var(--muted);font-size:.86rem}

/* marquee ticker */
.ticker{overflow:hidden;border-block:1px solid var(--line);background:var(--panel);padding:12px 0}
.ticker .track{display:inline-flex;gap:40px;white-space:nowrap;animation:tick 26s linear infinite;font-family:var(--head);color:var(--muted)}
.ticker .track b{color:var(--gold)}
@media(prefers-reduced-motion:reduce){.ticker .track{animation:none}}
@keyframes tick{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* bubble-blast canvas layer */
.bb-fxwrap{position:relative}
#bb-fx{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:auto}
.bb-fxwrap>*:not(#bb-fx){position:relative;z-index:1}
.popcount{display:inline-flex;align-items:center;gap:8px;background:var(--panel2);border:1px solid var(--line);
  border-radius:999px;padding:6px 14px;font-size:.85rem;color:var(--muted)}
.popcount b{color:var(--pop);font-family:var(--head)}

:focus-visible{outline:3px solid var(--aqua);outline-offset:2px;border-radius:6px}
button,a{min-height:0}
@media(max-width:900px){.nav a,.btn,.social a{min-height:44px;display:flex;align-items:center}}
