/* Divine Scratch & Win — publik. Selektor dibuat kuat (.dsw-app ...) + !important
   pada tombol agar tidak tertimpa style tombol tema (Maia/Elementor). */
.dsw-app{
	--dsw-red:#c1121f;--dsw-red-dark:#8b0d16;--dsw-gold:#d4af37;--dsw-gold-2:#f6e27a;
	--dsw-ink:#1c1917;--dsw-paper:#fff;
	/* Full-bleed: keluar dari container tema, penuhi lebar viewport. */
	position:relative;left:50%;right:50%;width:100vw;margin-left:-50vw;margin-right:-50vw;
	min-height:100vh;min-height:100svh;
	display:grid;place-items:center;
	padding:clamp(20px,4vw,56px);
	font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
	color:#fff;line-height:1.45;overflow:hidden;border-radius:0;
	box-sizing:border-box;
}
.dsw-app *{box-sizing:border-box}
.dsw-shell{width:100%;max-width:1120px;margin:0 auto}
.dsw-theme-merdeka{background:linear-gradient(160deg,#a8000b,#c1121f 55%,#7d0a12)}
.dsw-theme-default{background:linear-gradient(160deg,#0b2344,#123a6b 55%,#0a1c38)}
.dsw-rays{position:absolute;inset:0;background:repeating-conic-gradient(from 0deg at 50% 0,rgba(255,255,255,.06) 0deg 6deg,transparent 6deg 12deg);pointer-events:none}
.dsw-shell{position:relative;z-index:1}

.dsw-brand{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.dsw-brand-name strong{display:block;font-size:22px;letter-spacing:.16em;font-weight:800;color:#fff}
.dsw-brand-name small{font-size:10px;letter-spacing:.18em;color:#ffe6a8}
.dsw-brand-tag{font-size:11px;font-weight:800;letter-spacing:.14em;color:#fff;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);padding:6px 12px;border-radius:99px}

/* Layout landscape: hero kiri + kartu kanan */
.dsw-layout{display:grid;grid-template-columns:1fr;gap:20px;align-items:start}
@media(min-width:820px){.dsw-layout{grid-template-columns:0.85fr 1.15fr;gap:26px}}

.dsw-hero{padding:8px 4px}
@media(min-width:820px){.dsw-hero{padding:16px 8px 8px}}
.dsw-hero-top{margin:0;font-size:12px;letter-spacing:.26em;font-weight:800;color:var(--dsw-gold-2)}
.dsw-app .dsw-hero-title{margin:8px 0 0;font-size:clamp(30px,4.6vw,48px);line-height:1.05;color:#fff!important;font-weight:800;text-shadow:0 2px 10px rgba(0,0,0,.30)}
.dsw-hero-rule{display:block;width:72px;height:4px;margin:16px 0 6px;border-radius:99px;background:linear-gradient(90deg,var(--dsw-gold-2),var(--dsw-gold))}
.dsw-hero-lead{margin-top:14px;font-size:15px;line-height:1.55;color:#ffe1e1;max-width:42ch}
.dsw-date-badge{display:inline-block;margin-top:14px;font-size:12px;font-weight:800;letter-spacing:.06em;background:#fff;color:var(--dsw-red);padding:7px 15px;border-radius:99px;box-shadow:0 4px 12px rgba(0,0,0,.18)}
.dsw-hero-img{display:block;max-width:100%;height:auto;margin-top:18px;border-radius:14px}

/* Kartu putih berisi tahapan */
.dsw-card{position:relative;background:var(--dsw-paper);color:var(--dsw-ink);border-radius:20px;padding:26px;box-shadow:0 20px 50px rgba(0,0,0,.32);overflow:hidden}
.dsw-card::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--dsw-gold-2),var(--dsw-gold),var(--dsw-gold-2))}
.dsw-alert{background:#fde8e8;color:#a11;border:1px solid #f3bcbc;border-radius:10px;padding:10px 12px;margin-bottom:12px;font-size:14px}

.dsw-stage{opacity:0;transform:translateY(8px);transition:opacity .24s ease,transform .24s ease}
.dsw-stage.is-visible{opacity:1;transform:none}
.dsw-stage.is-leaving{opacity:0;transform:translateY(-8px)}

.dsw-step-head{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.dsw-step-head>span{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border-radius:10px;background:var(--dsw-red);color:#fff;font-weight:800;font-size:16px}
.dsw-step-head small{display:block;font-size:10px;letter-spacing:.14em;color:var(--dsw-red);font-weight:800}
.dsw-step-head h2{margin:2px 0 0;font-size:22px;color:var(--dsw-ink)}
.dsw-desc{color:#57534e;font-size:14px;margin:8px 0 16px}

/* Form */
.dsw-app form label{display:block;margin-bottom:12px}
.dsw-app form label>span{display:block;font-size:13px;font-weight:700;margin-bottom:6px;color:#3f3b38}
.dsw-app form input[type=text],.dsw-app form input[type=tel],.dsw-app form input[type=email],.dsw-app form input:not([type]){width:100%;padding:13px 14px;border:1px solid #d6d3d1;border-radius:10px;font-size:15px;background:#fff;color:var(--dsw-ink);transition:border-color .15s,box-shadow .15s}
.dsw-app form input:focus{outline:none;border-color:var(--dsw-red);box-shadow:0 0 0 3px rgba(193,18,31,.12)}
.dsw-honeypot{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.dsw-consent{display:flex!important;gap:8px;align-items:flex-start;font-size:13px;color:#57534e}
.dsw-consent input{margin-top:3px;width:auto}

/* Tombol — paksa warna agar tidak tertimpa tema */
.dsw-app .dsw-primary{width:100%;margin-top:10px;border:0!important;border-radius:12px!important;padding:16px!important;background:var(--dsw-red)!important;color:#fff!important;font-weight:800!important;letter-spacing:.07em;font-size:15px;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;text-transform:none;box-shadow:0 8px 20px rgba(193,18,31,.30);transition:transform .12s ease,background .15s ease,box-shadow .15s ease}
.dsw-app .dsw-primary:hover{background:var(--dsw-red-dark)!important;transform:translateY(-1px);box-shadow:0 10px 24px rgba(193,18,31,.36)}
.dsw-app .dsw-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}
.dsw-app .dsw-primary i{font-style:normal}
.dsw-app .dsw-secondary{margin-top:16px;background:#fff!important;color:var(--dsw-ink)!important;border:1px solid #d6d3d1!important;border-radius:10px!important;padding:12px 18px!important;font-weight:700!important;cursor:pointer}

/* Kartu gramasi */
.dsw-weights{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:8px 0 16px}
.dsw-app .dsw-weight{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;border:2px solid #eee!important;border-radius:14px;background:#fff!important;color:var(--dsw-ink)!important;cursor:pointer;transition:border-color .15s,box-shadow .15s;text-transform:none;box-shadow:none}
.dsw-app .dsw-weight:hover{border-color:var(--dsw-gold)!important}
.dsw-app .dsw-weight.is-active{border-color:var(--dsw-red)!important;box-shadow:0 6px 16px rgba(193,18,31,.18)}
.dsw-app .dsw-weight.is-disabled{opacity:.4;cursor:not-allowed}
.dsw-weight strong{font-size:18px;color:var(--dsw-ink)}
.dsw-weight small{font-size:10px;color:#78716c;letter-spacing:.05em}
.dsw-lm-img{width:auto;height:78px;max-width:100%;object-fit:contain;display:block}
.dsw-bar{position:relative;width:48px;height:66px;border-radius:6px;background:linear-gradient(135deg,#f6e27a,#d4af37 60%,#b8860b);box-shadow:inset 0 0 0 2px rgba(255,255,255,.45),0 3px 6px rgba(0,0,0,.15);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.dsw-bar b{font-size:12px;color:#7a5200;font-weight:800;line-height:1}
.dsw-bar i{font-size:5px;color:#7a5200;font-style:normal;text-align:center}

/* Kartu gosok */
.dsw-scratch-card{position:relative;width:100%;aspect-ratio:16/9;border-radius:16px;overflow:hidden;margin:8px 0;box-shadow:0 10px 26px rgba(139,13,22,.22);touch-action:none;user-select:none}
.dsw-prize{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:radial-gradient(circle at 50% 32%,#fffbe6,#fff2c4 70%);text-align:center;padding:14px}
.dsw-prize-eyebrow{font-size:12px;letter-spacing:.14em;color:var(--dsw-red);font-weight:800}
.dsw-prize-main{font-size:clamp(30px,8vw,52px);font-weight:800;color:var(--dsw-red-dark);line-height:1}
.dsw-prize-note{font-size:13px;color:#78716c}
.dsw-prize-eligible{font-size:12px;font-weight:600;color:var(--dsw-red);background:rgba(193,18,31,.08);padding:3px 10px;border-radius:99px;margin-top:2px}
.dsw-prize-eligible:empty{display:none}
.dsw-scratch-canvas{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair;transition:opacity .4s ease}
.dsw-scratch-canvas.is-cleared{opacity:0;pointer-events:none}
.dsw-scratch-card.is-jackpot .dsw-prize{background:radial-gradient(circle at 50% 30%,#fff,#ffe08a 70%)}
.dsw-scratch-card.is-jackpot .dsw-prize-main{color:#a8000b;text-shadow:0 1px 0 #f6e27a}

/* Hasil */
.dsw-stage-result{text-align:center}
.dsw-step{font-size:11px;letter-spacing:.14em;color:var(--dsw-red);font-weight:800}
.dsw-ticket{background:linear-gradient(160deg,#fff8e1,#ffe9a8);border:2px dashed var(--dsw-gold);border-radius:16px;padding:20px;margin:10px 0}
.dsw-ticket-top{display:flex;justify-content:space-between;align-items:baseline;font-weight:800;color:var(--dsw-red-dark)}
.dsw-ticket-top small{font-size:9px;letter-spacing:.1em;font-weight:700}
.dsw-ticket-value{margin:8px 0 2px}
.dsw-ticket-value strong{font-size:52px;font-weight:800;color:var(--dsw-red-dark);line-height:1}
.dsw-ticket-value span{font-size:16px;font-weight:700;color:var(--dsw-red)}
.dsw-ticket-percent{font-size:13px;font-weight:700;color:var(--dsw-red)}
.dsw-ticket-eligible{font-size:12px;font-weight:600;color:#8b0d16;margin-top:4px}
.dsw-ticket-eligible:empty{display:none}
.dsw-ticket p{margin:4px 0 2px;font-weight:700;color:var(--dsw-ink)}
.dsw-ticket-weight{font-size:12px;color:#78716c}
.dsw-stage-result h2{margin:8px 0 4px;font-size:24px;color:var(--dsw-ink)}
.dsw-stage-result p{color:#57534e;font-size:14px;margin:2px 0}
.dsw-result-validity{margin-top:8px!important;font-size:12px}
.dsw-result-validity strong{display:block;color:var(--dsw-red)}
.dsw-customer{margin-top:10px;font-size:14px;color:var(--dsw-ink)}
.dsw-stage-result.is-no-prize .dsw-ticket{background:#f5f5f4;border-color:#d6d3d1}
.dsw-stage-result.is-no-prize .dsw-ticket-value strong,.dsw-stage-result.is-no-prize .dsw-ticket-top{color:#78716c}

.dsw-unavailable{background:#fff;color:var(--dsw-ink);border-radius:16px;padding:40px 24px;text-align:center;max-width:520px;margin:0 auto}
.dsw-unavailable span{font-size:30px;color:var(--dsw-gold)}
.dsw-unavailable h2{color:var(--dsw-ink);margin:8px 0}

.dsw-app footer{display:flex;justify-content:space-between;font-size:11px;color:rgba(255,255,255,.85);margin-top:18px;gap:8px;flex-wrap:wrap}

@media(max-width:420px){.dsw-weights{grid-template-columns:repeat(2,1fr)}.dsw-app{padding:16px}.dsw-card{padding:18px}}
