:root{
  --red:#d70f1c;--red-d:#b30d17;--red-l:#e63946;
  --ink:#17171b;--muted:#6b6b74;--bg:#f7f7f9;--card:#fff;
  --shadow:0 18px 50px -18px rgba(20,20,30,.22),0 2px 6px rgba(20,20,30,.05);
  --r:28px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{font-family:"Plus Jakarta Sans",system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.55;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
.wrap{width:min(1120px,100% - 40px);margin-inline:auto}
.red{color:var(--red)}
.hand,.script{font-family:Caveat,cursive;font-weight:700}

.progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--red);z-index:100}
.glow{position:fixed;width:520px;height:520px;border-radius:50%;pointer-events:none;z-index:0;left:0;top:0;
  background:radial-gradient(circle,rgba(215,15,28,.13),transparent 65%);transform:translate(-50%,-50%);transition:opacity .3s}
main,.foot{position:relative;z-index:1}

/* NAV */
.nav{position:fixed;inset:14px 0 auto 0;z-index:90;width:min(1120px,100% - 28px);margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:10px 14px 10px 16px;border-radius:999px;background:rgba(255,255,255,.7);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.8);box-shadow:0 8px 30px -12px rgba(0,0,0,.15);transition:.3s}
.nav.scrolled{background:rgba(255,255,255,.92)}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1.05rem;letter-spacing:-.01em}
.brand img{width:40px;height:40px;transition:transform .6s cubic-bezier(.2,.9,.3,1.4)}
.brand:hover img{transform:rotate(180deg) scale(1.1)}
.links{display:flex;gap:26px;font-weight:600;font-size:.94rem;color:#3a3a42}
.links a{position:relative;padding:4px 0}
.links a::after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;background:var(--red);transition:.3s}
.links a:hover::after{width:100%}
.pill-btn{border:1.5px solid var(--ink);border-radius:999px;padding:9px 18px;font-weight:700;font-size:.92rem;background:#fff;transition:.25s;display:inline-flex;gap:6px;white-space:nowrap}
.pill-btn:hover{background:var(--ink);color:#fff}
.arr{display:inline-block;transition:transform .25s}
a:hover>.arr{transform:translateX(4px)}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 26px;border-radius:999px;font-weight:700;transition:transform .25s,box-shadow .25s,background .25s;will-change:transform}
.btn.primary{background:var(--red);color:#fff;box-shadow:0 12px 28px -10px rgba(215,15,28,.7)}
.btn.primary:hover{background:var(--red-d);box-shadow:0 16px 34px -10px rgba(215,15,28,.85)}
.btn.ghost{background:#fff;border:1.5px solid var(--ink)}
.btn.ghost:hover{background:var(--ink);color:#fff}
.btn.big{padding:18px 38px;font-size:1.1rem}
.btn.small{padding:10px 20px;font-size:.92rem}
.btn.ghost-d{border:1.5px solid rgba(255,255,255,.35);color:#fff}
.btn.ghost-d:hover{background:rgba(255,255,255,.12)}

/* HERO */
.hero{position:relative;padding:150px 0 70px;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 50% at 80% 0,#fff 0,transparent 70%),radial-gradient(40% 40% at 0 60%,rgba(215,15,28,.06),transparent 70%)}
.hero-in{position:relative}
.eyebrow{display:inline-block;font-weight:700;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;color:var(--red);background:rgba(215,15,28,.08);padding:7px 14px;border-radius:999px;margin-bottom:22px}
.eyebrow.on-dark{background:rgba(255,255,255,.1);color:#ff8a92}
h1{font-size:clamp(2.4rem,6.4vw,5rem);line-height:1.06;letter-spacing:-.035em;font-weight:800;position:relative;display:inline-block}
h1 .num{display:inline-block}
.rot-wrap{display:inline-block;position:relative;overflow:hidden;vertical-align:bottom;height:1.14em}
.rot{display:inline-block}
.underline{position:absolute;left:0;bottom:-16px;width:82%;height:16px;overflow:visible}
.underline path{fill:none;stroke:var(--red);stroke-width:4;stroke-linecap:round;stroke-dasharray:640;stroke-dashoffset:640;animation:draw 1.2s .9s ease forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.lead{margin-top:34px;font-size:clamp(1.05rem,2vw,1.3rem);color:var(--muted);max-width:680px}
.cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}
.stats{list-style:none;display:flex;gap:clamp(20px,5vw,60px);margin-top:54px;flex-wrap:wrap}
.stats b{display:block;font-size:2.4rem;font-weight:800;letter-spacing:-.03em;line-height:1}
.stats span{font-size:.9rem;color:var(--muted)}
.scribble{position:absolute;left:-6px;top:200px;width:50px;opacity:.8}
.scribble path{fill:none;stroke:var(--red);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:300;stroke-dashoffset:300;animation:draw 1.6s 1.4s ease forwards}
.f3{right:4%;top:470px}.f3 i{width:78px;height:78px;border-radius:50%;background:linear-gradient(135deg,#17171b,#3a3a42);box-shadow:0 20px 40px -12px rgba(0,0,0,.4);animation-delay:-4s}

/* MARQUEE */
.marquee{overflow:hidden;background:var(--ink);color:#fff;padding:16px 0;transform:rotate(-1.2deg);margin:20px -10px 0}
.track{display:flex;gap:44px;width:max-content;animation:marq 32s linear infinite}
.track span{font-weight:700;font-size:1.05rem;white-space:nowrap;display:flex;align-items:center;gap:44px}
.track span::after{content:"✦";color:var(--red-l)}
@keyframes marq{to{transform:translateX(-50%)}}

/* SECTIONS */
.section{padding:110px 0}
.sec-head{max-width:680px;margin-bottom:50px}
.sec-head h2{font-size:clamp(1.9rem,4.4vw,3.2rem);line-height:1.1;letter-spacing:-.03em;font-weight:800}
.sec-head p{margin-top:14px;color:var(--muted);font-size:1.1rem}
.dark{background:#111116;color:#fff;border-radius:44px;margin:0 10px}
.dark .sec-head p{color:#a5a5b0}
.dark .sec-head h2 .hand{font-size:1.15em;color:#ff5a64}

/* CARDS */
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.card{position:relative;background:linear-gradient(160deg,#fff,#f3f3f6);border-radius:var(--r);padding:28px;box-shadow:var(--shadow);overflow:hidden;transform-style:preserve-3d;transition:box-shadow .3s;min-height:440px;display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.9)}
.card:hover{box-shadow:0 30px 70px -20px rgba(215,15,28,.3),0 2px 6px rgba(20,20,30,.05)}
.card::after{content:"";position:absolute;inset:0;background:radial-gradient(300px circle at var(--mx,50%) var(--my,0),rgba(215,15,28,.09),transparent 60%);opacity:0;transition:.3s;pointer-events:none}
.card:hover::after{opacity:1}
.corner{z-index:3;position:absolute;right:20px;top:18px;color:var(--red);font-weight:800;font-size:1.3rem;transition:.3s}
.card:hover .corner{transform:translate(-3px,3px) scale(1.2)}
.ico{width:60px;height:60px;border-radius:18px;background:linear-gradient(160deg,var(--red-l),var(--red-d));display:grid;place-items:center;box-shadow:0 10px 20px -6px rgba(215,15,28,.6),inset 0 2px 0 rgba(255,255,255,.35);margin-top:auto;position:relative;transition:transform .4s cubic-bezier(.2,.9,.3,1.5)}
.ico::before{content:"";position:absolute;top:5px;left:12px;right:12px;height:9px;border-radius:99px;background:rgba(255,255,255,.35)}
.ico svg{width:28px;height:28px;margin-top:6px}
.card:hover .ico{transform:rotate(-8deg) scale(1.1)}
.card h3{font-size:1.75rem;line-height:1.12;letter-spacing:-.025em;margin:18px 0 6px;font-weight:800}
.card p{color:var(--muted)}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}
.chips span{background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.08);border-radius:99px;padding:6px 14px 6px 34px;font-weight:600;font-size:.86rem;position:relative}
.chips span::before{content:"✓";position:absolute;left:8px;top:50%;translate:0 -50%;width:18px;height:18px;border-radius:50%;background:var(--red);color:#fff;font-size:.66rem;display:grid;place-items:center}
.go{align-self:flex-start;display:inline-flex;gap:8px;font-weight:700;color:#fff;background:var(--ink);padding:11px 20px;border-radius:99px;transition:.25s}
.go:hover{background:var(--red);gap:14px}

/* MOCKUPS */
.mock{position:relative;height:190px;margin:-6px -6px 22px}
.tablet{position:absolute;right:0;top:0;width:66%;height:170px;background:#1c1c22;border:5px solid #26262e;border-radius:20px;padding:10px;transform:rotate(3deg);box-shadow:0 20px 40px -14px rgba(0,0,0,.45);transition:transform .5s}
.card:hover .tablet{transform:rotate(-1deg) translateY(-6px) scale(1.03)}
.tablet.light{background:#fff;border-color:#1c1c22}
.tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.tiles i{aspect-ratio:1.3;border-radius:7px;position:relative;animation:pulse 3s ease-in-out infinite}
.tiles i::after{content:"";position:absolute;inset:0;margin:auto;width:0;height:0;border-left:8px solid #fff;border-top:5px solid transparent;border-bottom:5px solid transparent;left:3px}
@keyframes pulse{0%,100%{filter:brightness(.85);transform:scale(1)}50%{filter:brightness(1.3);transform:scale(1.07)}}
.wave{position:absolute;right:-4px;bottom:6px;background:#111;border-radius:14px;padding:10px 12px;display:flex;align-items:center;gap:3px;height:50px;box-shadow:0 12px 24px -8px rgba(0,0,0,.5)}
.wave i{width:3px;background:#fff;border-radius:3px;animation:eq 1s ease-in-out infinite}
.wave i:nth-child(odd){animation-delay:-.4s}.wave i:nth-child(3n){animation-delay:-.7s}
@keyframes eq{0%,100%{height:6px}50%{height:28px}}
.mock-gb .tablet b{font-size:.95rem}
.field{margin:10px 0;border:1px solid #ddd;border-radius:8px;padding:8px 10px;font-size:.72rem;color:#555;min-height:52px}
.caret{display:inline-block;width:1px;height:.9em;background:var(--red);margin-left:1px;animation:blink 1s steps(2) infinite;vertical-align:-1px}
@keyframes blink{50%{opacity:0}}
.send{display:inline-block;background:var(--red);color:#fff;font-size:.66rem;font-weight:700;padding:3px 12px;border-radius:5px}
.heart{position:absolute;right:-6px;top:24px;background:#fff;color:var(--red);width:38px;height:38px;border-radius:12px;display:grid;place-items:center;box-shadow:0 10px 20px rgba(0,0,0,.18);transition:transform .3s}
.heart.beat{animation:beat .6s}
@keyframes beat{40%{transform:scale(1.4) rotate(-10deg)}}
.mock-sig svg{width:100%;height:100%}
#sigPath{fill:none;stroke:#22224a;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:420;stroke-dashoffset:420;animation:sign 4s ease-in-out infinite}
@keyframes sign{0%{stroke-dashoffset:420}55%,90%{stroke-dashoffset:0}100%{stroke-dashoffset:0;opacity:0}}
.check{position:absolute;right:-2px;bottom:6px;width:38px;height:38px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font-weight:800;box-shadow:0 8px 18px rgba(215,15,28,.5);animation:pop 4s infinite}
@keyframes pop{0%,50%{transform:scale(0)}60%{transform:scale(1.25)}70%,90%{transform:scale(1)}100%{transform:scale(0)}}
.pads{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;height:100%}
.pads i{border-radius:7px;transition:filter .2s;animation:padflash 2.4s infinite}
@keyframes padflash{0%,80%,100%{filter:brightness(.75)}90%{filter:brightness(1.6);box-shadow:0 0 14px currentColor}}
.faders{position:absolute;right:-10px;top:26px;width:70px;height:130px;background:#0f0f14;border-radius:14px;transform:rotate(4deg);display:flex;justify-content:space-around;align-items:flex-end;padding:12px 8px;box-shadow:0 14px 28px -8px rgba(0,0,0,.6)}
.faders i{width:6px;border-radius:4px;background:linear-gradient(#ff3d5a,#ffb347,#38d68b);animation:fad 2.4s ease-in-out infinite}
.faders i:nth-child(1){animation-delay:-.2s}.faders i:nth-child(2){animation-delay:-.9s}.faders i:nth-child(3){animation-delay:-1.4s}.faders i:nth-child(4){animation-delay:-.5s}
@keyframes fad{0%,100%{height:30%}50%{height:90%}}

/* PLAYGROUND */
.play{background:#1a1a22;border-radius:30px;padding:16px;border:1px solid rgba(255,255,255,.08);box-shadow:0 40px 80px -30px #000}
.tabs{display:flex;gap:8px;flex-wrap:wrap;padding:6px}
.tabs button{padding:11px 18px;border-radius:99px;font-weight:700;font-size:.92rem;color:#b5b5c0;transition:.25s}
.tabs button:hover{color:#fff;background:rgba(255,255,255,.07)}
.tabs button.on{background:var(--red);color:#fff;box-shadow:0 8px 20px -8px var(--red)}
.stage{background:#0d0d12;border-radius:22px;margin-top:10px;padding:26px;min-height:420px}
.pane{display:none;animation:fadeup .5s}
.pane.on{display:block}
@keyframes fadeup{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.hint{margin-top:18px;color:#8b8b98;font-size:.9rem;text-align:center}
kbd{background:#26262e;border-radius:5px;padding:1px 6px;font-size:.8em;color:#ddd}
.pad-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;max-width:520px;margin:auto}
.pad{aspect-ratio:1;border-radius:18px;position:relative;overflow:hidden;filter:brightness(.7) saturate(.9);transition:filter .15s,transform .1s;box-shadow:inset 0 -6px 0 rgba(0,0,0,.25)}
.pad:active,.pad.hit{transform:scale(.93);filter:brightness(1.5) saturate(1.2);box-shadow:0 0 34px currentColor,inset 0 -2px 0 rgba(0,0,0,.25)}
.pad .rip{position:absolute;border-radius:50%;background:rgba(255,255,255,.7);width:20px;height:20px;translate:-50% -50%;animation:rip .6s ease-out forwards;pointer-events:none}
@keyframes rip{to{transform:scale(9);opacity:0}}
.pad span{position:absolute;left:8px;top:6px;font-size:.72rem;font-weight:800;color:rgba(255,255,255,.75)}
.screen{position:relative;border-radius:16px;overflow:hidden;background:#000;aspect-ratio:960/440;max-height:400px;margin:auto}
.screen canvas{width:100%;height:100%;display:block}
.live{position:absolute;left:14px;top:12px;background:var(--red);color:#fff;font-weight:800;font-size:.72rem;padding:4px 10px;border-radius:6px;animation:blink 1.4s steps(2) infinite}
.loops{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}
.loops button{padding:14px 6px;border-radius:12px;font-weight:700;font-size:.85rem;color:#fff;border:2px solid transparent;transition:.2s;opacity:.7}
.loops button:hover{opacity:1}.loops button.on{opacity:1;border-color:#fff;transform:translateY(-3px)}
.sig-box{position:relative;background:#fff;border-radius:16px;overflow:hidden;touch-action:none;max-width:800px;margin:auto}
.sig-box canvas{width:100%;height:auto;display:block;cursor:crosshair}
.sig-ph{position:absolute;inset:0;display:grid;place-items:center;font-family:Caveat,cursive;font-size:2rem;color:#c5c5cc;pointer-events:none;transition:.3s}
.row{display:flex;gap:10px;justify-content:center;margin-top:16px}
.gb-wrap{display:grid;grid-template-columns:1fr 1.2fr;gap:22px}
.gb-form{display:flex;flex-direction:column;gap:14px}
.gb-form label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:.88rem;color:#c5c5d0}
.gb-form input,.gb-form textarea{background:#1a1a22;border:1.5px solid #2c2c36;border-radius:12px;padding:12px 14px;color:#fff;font:inherit;resize:none;transition:.2s}
.gb-form input:focus,.gb-form textarea:focus{outline:0;border-color:var(--red);box-shadow:0 0 0 4px rgba(215,15,28,.2)}
.gb-form .btn{justify-content:center}
.gb-screen{position:relative;background:linear-gradient(160deg,#1f1f2a,#14141b);border-radius:16px;min-height:280px;padding:16px;display:flex;flex-direction:column;gap:10px;overflow:hidden;border:1px solid #2a2a35}
.gb-empty{margin:auto;color:#6b6b78;font-size:.95rem}
.bubble{background:#fff;color:var(--ink);border-radius:16px 16px 16px 4px;padding:10px 14px;max-width:88%;animation:bub .5s cubic-bezier(.2,.9,.3,1.4);box-shadow:0 8px 20px -8px #000}
.bubble b{display:block;font-size:.8rem;color:var(--red)}
.bubble span{font-size:.92rem}
@keyframes bub{from{opacity:0;transform:translateY(20px) scale(.8)}}

/* QUIZ */
.quiz{max-width:900px}
.q-chips{display:flex;flex-wrap:wrap;gap:10px}
.q-chips button{background:#fff;padding:14px 22px;border-radius:99px;font-weight:700;box-shadow:var(--shadow);transition:.25s;border:2px solid transparent}
.q-chips button:hover{transform:translateY(-3px)}
.q-chips button.on{background:var(--red);color:#fff;transform:scale(1.05)}
.q-out{margin-top:28px;background:#fff;border-radius:var(--r);padding:28px;box-shadow:var(--shadow);min-height:150px}
.q-empty{color:var(--muted);text-align:center;padding:30px 0}
.q-out h4{font-size:1.25rem;margin-bottom:6px}
.q-out>p{color:var(--muted);margin-bottom:16px}
.rec{display:flex;flex-direction:column;gap:10px}
.rec a{display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:16px;background:var(--bg);font-weight:700;transition:.25s;opacity:0;animation:fadeup .5s forwards}
.rec a:hover{background:var(--ink);color:#fff;transform:translateX(6px)}
.rec small{display:block;font-weight:500;opacity:.7}
.rec .dot{width:38px;height:38px;border-radius:12px;background:var(--red);color:#fff;display:grid;place-items:center;flex:none}
.rec .go2{margin-left:auto}

/* CTA */
.cta-final{padding:110px 0 130px;text-align:center}
.cta-final h2{font-size:clamp(2.4rem,6vw,4.6rem);line-height:1.05;letter-spacing:-.01em}
.cta-final p{color:var(--muted);margin:14px 0 34px;font-size:1.15rem}

.foot{border-top:1px solid #e6e6ec;padding:28px 0;color:var(--muted);font-size:.9rem}
.foot-in{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.foot .brand{color:var(--ink)}
.toast{position:fixed;bottom:26px;left:50%;translate:-50% 30px;background:var(--ink);color:#fff;padding:13px 22px;border-radius:99px;font-weight:600;opacity:0;pointer-events:none;transition:.35s;z-index:120}
.toast.show{opacity:1;translate:-50% 0}
#confetti{position:fixed;inset:0;pointer-events:none;z-index:110;width:100%;height:100%}

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

@media(max-width:860px){
  .links{display:none}
  .grid{grid-template-columns:1fr}
  .gb-wrap{grid-template-columns:1fr}
  .loops{grid-template-columns:repeat(2,1fr)}
  .dark{border-radius:30px;margin:0 6px}
  .section{padding:80px 0}
  .stage{padding:16px}
}
@media(max-width:480px){
  .brand span{font-size:.95rem}
  .pill-btn{padding:8px 13px;font-size:.84rem}
  .card{padding:22px}
  .pad-grid{gap:8px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .reveal{opacity:1;transform:none}
  html{scroll-behavior:auto}
}

/* ===== ORNAMEN LATAR ===== */
body{background-color:var(--bg);background-image:radial-gradient(rgba(23,23,27,.09) 1.2px,transparent 1.4px);background-size:28px 28px}
.bg{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.b1{width:460px;height:460px;background:#ff5a64;left:-140px;top:60px}
.b2{width:420px;height:420px;background:#ffb3a7;right:-100px;top:-60px;animation-delay:-5s}
.b3{width:340px;height:340px;background:#d70f1c;right:22%;bottom:-160px;opacity:.28;animation-delay:-9s}
.oct{position:absolute;fill:none;stroke:var(--red);stroke-width:1.2;opacity:.35;animation:spin 40s linear infinite}
.o1{width:320px;right:-60px;top:110px}
.o2{width:180px;left:38%;top:70px;animation-duration:26s;animation-direction:reverse;opacity:.22}
.o3{width:120px;left:6%;bottom:40px;stroke-dasharray:6 6;animation-duration:30s}
@keyframes spin{to{transform:rotate(360deg)}}
.section{position:relative;isolation:isolate}
#produk::before{content:"";position:absolute;z-index:-1;inset:0 0 0 0;background:radial-gradient(50% 40% at 100% 20%,rgba(215,15,28,.09),transparent 70%),radial-gradient(45% 35% at 0 80%,rgba(215,15,28,.08),transparent 70%)}
#produk::after{content:"";position:absolute;z-index:-1;right:-140px;top:120px;width:420px;height:420px;border-radius:50%;border:2px dashed rgba(215,15,28,.25);animation:spin 60s linear infinite}
#cocok::before{content:"";position:absolute;z-index:-1;left:-120px;top:60px;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(215,15,28,.14),transparent 70%);animation:drift 14s ease-in-out infinite}
#cocok::after{content:"";position:absolute;z-index:-1;right:6%;bottom:40px;width:130px;height:130px;background:repeating-linear-gradient(135deg,rgba(215,15,28,.22) 0 3px,transparent 3px 12px);border-radius:32px;transform:rotate(12deg);animation:bob 7s ease-in-out infinite}
.cta-final{position:relative;overflow:hidden;background:radial-gradient(60% 70% at 50% 100%,rgba(215,15,28,.16),transparent 70%)}
.cta-final::before,.cta-final::after{content:"";position:absolute;border-radius:50%;border:2px solid rgba(215,15,28,.22);left:50%;top:50%;translate:-50% -50%;animation:pulsering 6s ease-out infinite}
.cta-final::before{width:520px;height:520px}
.cta-final::after{width:820px;height:820px;animation-delay:-3s}
@keyframes pulsering{0%{scale:.6;opacity:0}30%{opacity:1}100%{scale:1.15;opacity:0}}
.cta-final .wrap{position:relative;z-index:1}
.foot{background:rgba(255,255,255,.7)}

/* ===== QUIZ RAPI ===== */
.q-out{display:none;min-height:0;padding:24px}
.q-out.show{display:block;animation:fadeup .5s}
.rec{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.rec a{flex-direction:column;align-items:flex-start;gap:10px;padding:18px}
.rec .go2{margin-left:0;font-size:1.1rem}
@keyframes fadeup{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes bob{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 -18px;rotate:6deg}}
@keyframes drift{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(50px,-40px) scale(1.12)}}

/* ===== CTA MERAH ===== */
.cta-final{margin:0 10px;border-radius:44px;color:#fff;background:radial-gradient(70% 90% at 15% 0,#ff4b57 0,transparent 60%),radial-gradient(60% 80% at 100% 100%,#8f0a13 0,transparent 65%),linear-gradient(135deg,#e01522,#b30d17)}
.cta-final::before,.cta-final::after{border-color:rgba(255,255,255,.28)}
.cta-final .wrap::before{content:"";position:absolute;inset:-60px -20px;z-index:-1;background-image:radial-gradient(rgba(255,255,255,.16) 1.2px,transparent 1.4px);background-size:28px 28px;-webkit-mask:radial-gradient(60% 70% at 50% 50%,#000,transparent);mask:radial-gradient(60% 70% at 50% 50%,#000,transparent)}
.cta-final h2 .red{color:#fff;position:relative;display:inline-block}
.cta-final h2 .red::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:10px;background:rgba(255,255,255,.35);border-radius:99px;transform:scaleX(0);transform-origin:left;transition:transform .9s .4s cubic-bezier(.2,.8,.2,1)}
.cta-final h2.in .red::after{transform:scaleX(1)}
.cta-final p{color:rgba(255,255,255,.85)}
.cta-final .btn.primary{background:#fff;color:var(--red);box-shadow:0 14px 34px -10px rgba(0,0,0,.45)}
.cta-final .btn.primary:hover{background:#ffeef0}
.cta-final{margin-bottom:40px}
@media(max-width:860px){.cta-final{border-radius:30px;margin:0 6px 30px}}
