/* Hiệu ứng WOW donate (wow-effects.js): 5 hiệu ứng video, mỗi hiệu ứng có cảnh nền, khung chữ theo chủ đề và font riêng.
   Lớp phủ toàn khung hình; đơn vị theo khung (cq*) để vừa cả overlay 1920x1080 lẫn khung xem trước thu nhỏ.
   Font tự lưu ở /fonts (CSP chỉ cho font-src 'self'), chỉ bộ chữ Latin + tiếng Việt. */
@font-face {
  font-family: 'Baloo 2';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('fonts/wow-baloo-2-vietnamese-800.woff2') format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Baloo 2';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('fonts/wow-baloo-2-latin-800.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Bungee';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/wow-bungee-vietnamese-400.woff2') format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Bungee';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/wow-bungee-latin-400.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Dancing Script';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/wow-dancing-script-vietnamese-700.woff2') format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Dancing Script';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/wow-dancing-script-latin-700.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Lora';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/wow-lora-vietnamese-600i.woff2') format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Lora';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/wow-lora-latin-600i.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 900;
  font-display: swap;
  src: url('fonts/wow-playfair-display-vietnamese-900i.woff2') format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 900;
  font-display: swap;
  src: url('fonts/wow-playfair-display-latin-900i.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Playfair Display SC';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('fonts/wow-playfair-display-sc-vietnamese-900.woff2') format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Playfair Display SC';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('fonts/wow-playfair-display-sc-latin-900.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

.wow-layer { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; container-type: size; color: #fff;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; animation: wa-in .4s ease-out both; }
.wow-layer.is-out { animation: wa-out .6s ease-in both; }
@keyframes wa-in { from { opacity: 0; } }
@keyframes wa-out { to { opacity: 0; } }
@keyframes wa-spin { to { transform: rotate(360deg); } }
@keyframes wa-flicker { to { opacity: .75; } }
@keyframes wa-hero-in { from { transform: translateX(-40%); opacity: 0; } }
.wow-layer i { position: absolute; display: block; font-style: normal; }
.wow-layer video { position: absolute; display: block; }

/* ---------- Khối chữ ---------- */
.wa-text { position: relative; width: 88%; text-align: center; }
.wa-big { line-height: 1.05; }
.wa-big span { display: inline-block; -webkit-background-clip: text; background-clip: text; color: transparent; }
.wa-kicker, .wa-sub { font-weight: 800; letter-spacing: .06em; }
.wa-kicker { font-size: 4cqmin; }
.wa-sub { font-size: 2.6cqmin; text-transform: uppercase; margin-top: 1.5cqmin; }
.wa-amount { display: inline-block; margin-top: 2cqmin; padding: 1.2cqmin 4cqmin; font: 900 4.4cqmin/1 system-ui, sans-serif; min-width: 34cqmin;
  border: .4cqmin solid; border-radius: 1.5cqmin; }
.wa-msg { margin-top: 1.8cqmin; font: italic 700 3cqmin/1.3 system-ui, sans-serif; max-width: 52cqmin; margin-inline: auto; overflow-wrap: anywhere; }
.wa-text > .wa-kicker, .wa-text > .wa-sub, .wa-text > .wa-amount, .wa-text > .wa-msg { animation: wa-line .6s cubic-bezier(.2,1.2,.4,1) both; }
.wa-text > .wa-kicker { animation-delay: .9s; }
.wa-text > .wa-sub { animation-delay: 1.9s; }
.wa-text > .wa-amount { animation-delay: 2.15s; }
.wa-text > .wa-msg { animation-delay: 2.5s; }
@keyframes wa-line { from { opacity: 0; transform: translateY(3cqmin); filter: blur(.6cqmin); } }

/* ---------- Khung chữ (bên phải) ---------- */
.wa-frame { position: absolute; right: 3cqw; top: 50%; width: 50cqw; height: 74cqh; margin-top: -37cqh; z-index: 5; perspective: 140cqmin; }
.wa-frame .fr-inner { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.wa-frame .wa-big { font-size: 13cqmin; }

/* ===== 1. Phượng hoàng: video tách nền bên trái, tàn lửa; cuộn giấy cháy viền; Playfair nghiêng bùng cháy ===== */
.wa-phoenix-v { left: -6cqw; top: 2cqh; height: 82cqh; width: auto; z-index: 2; -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent), linear-gradient(90deg, transparent, #000 8%); -webkit-mask-composite: source-in; mask-image: linear-gradient(180deg, #000 70%, transparent), linear-gradient(90deg, transparent, #000 8%); mask-composite: intersect; filter: drop-shadow(0 0 2.5cqmin rgba(255,120,0,.6)); animation: wa-hero-in .8s cubic-bezier(.2,1.3,.4,1) .1s both; }
.wa-fire { bottom: -3cqmin; width: 1.2cqmin; height: 1.2cqmin; border-radius: 50%; background: #FFE08A; z-index: 2;
  box-shadow: 0 0 1.5cqmin .6cqmin rgba(255,120,20,.9); transform: scale(var(--s)); animation: wa-rise 3.2s var(--d) ease-out infinite; }
@keyframes wa-rise { from { transform: translate(0,0) scale(var(--s)); opacity: 1; } to { transform: translate(var(--x), -105cqh) scale(0); opacity: 0; } }
.wa-phoenix .wa-big { font-family: "Playfair Display", Georgia, serif; font-style: italic; font-weight: 900; letter-spacing: .01em;
  filter: drop-shadow(0 0 1cqmin rgba(255,120,0,.95)) drop-shadow(0 0 3.5cqmin rgba(255,60,0,.6)); }
.wa-phoenix .wa-big span { background-image: linear-gradient(180deg, #FFF6D0, #FFC23D 45%, #FF6A00 85%);
  animation: wa-ignite .7s calc(1.1s + var(--i) * .09s) cubic-bezier(.2,1,.3,1) both; }
@keyframes wa-ignite { 0% { opacity: 0; transform: translateY(4cqmin) scale(.6); } 60% { opacity: 1; } }
.wa-phoenix .wa-kicker, .wa-phoenix .wa-sub { font-family: "Lora", Georgia, serif; font-style: italic; font-weight: 600; letter-spacing: .08em; }
.wa-phoenix .wa-kicker, .wa-phoenix .wa-sub, .wa-phoenix .wa-msg { text-shadow: 0 0 2cqmin #FF5A00, 0 .3cqmin .6cqmin #000; }
.wa-phoenix .wa-amount { border-color: #FFC23D; background: rgba(60,15,0,.65); box-shadow: 0 0 3cqmin #FF6A00, inset 0 0 2cqmin rgba(255,170,60,.5); color: #FFF3C4; }
.fr-scroll .fr-inner { left: 3cqmin; right: 3cqmin; border-radius: .8cqmin; background: radial-gradient(90% 80% at 50% 50%, #3A1608, #1A0703 80%);
  box-shadow: inset 0 0 0 .4cqmin #FFB347, inset 0 0 3cqmin rgba(255,110,0,.9), inset 0 0 9cqmin rgba(255,60,0,.45), 0 0 5cqmin rgba(255,90,0,.55);
  animation: fr-unroll .9s .35s cubic-bezier(.6,0,.2,1) both, fr-burn .35s 1.3s steps(2) infinite alternate; }
@keyframes fr-unroll { from { clip-path: inset(0 50% 0 50%); } to { clip-path: inset(0 0 0 0); } }
@keyframes fr-burn { to { box-shadow: inset 0 0 0 .4cqmin #FFD27A, inset 0 0 4cqmin rgba(255,140,0,1), inset 0 0 10cqmin rgba(255,80,0,.55), 0 0 7cqmin rgba(255,120,0,.7); } }
.fr-scroll .fr-rod { top: -3cqmin; bottom: -3cqmin; width: 4.5cqmin; border-radius: 99px; z-index: 2;
  background: linear-gradient(90deg, #7A4A00, #FFE38A 40%, #C98A10 70%, #6B3A00); box-shadow: 0 0 2.5cqmin rgba(255,150,0,.8); }
.fr-scroll .fr-rod.is-l { left: 0; animation: fr-rod-l .9s .35s cubic-bezier(.6,0,.2,1) both; }
.fr-scroll .fr-rod.is-r { right: 0; animation: fr-rod-r .9s .35s cubic-bezier(.6,0,.2,1) both; }
@keyframes fr-rod-l { from { left: calc(50% - 4.5cqmin); } }
@keyframes fr-rod-r { from { right: calc(50% - 4.5cqmin); } }

/* ===== 2. Rồng vàng: kim tuyến; cổng sơn mài; Playfair SC đóng dấu ===== */
.wa-dragon-v { left: -4cqw; top: 0; height: 100cqh; width: auto; z-index: 2; filter: drop-shadow(0 0 2cqmin rgba(255,190,60,.6)); animation: wa-hero-in .8s cubic-bezier(.2,1.3,.4,1) .1s both; }
.wa-gold { width: .9cqmin; height: .9cqmin; background: #FFE9A0; transform: rotate(45deg); box-shadow: 0 0 1.4cqmin .4cqmin rgba(255,200,60,.9); animation: wa-twinkle 1.6s var(--d) ease-in-out infinite; z-index: 1; }
@keyframes wa-twinkle { 0%, 100% { opacity: 0; transform: rotate(45deg) scale(.3); } 50% { opacity: 1; transform: rotate(45deg) scale(1.2); } }
.wa-dragon .wa-big { font-family: "Playfair Display SC", Georgia, serif; font-weight: 900; letter-spacing: .04em;
  filter: drop-shadow(0 .4cqmin 0 #6B3A00) drop-shadow(0 0 2.5cqmin rgba(255,190,60,.7)); }
.wa-dragon .wa-big span { background-image: linear-gradient(180deg, #FFFBE6, #FFD86B 40%, #C98A10 75%, #FFE9A0);
  animation: wa-stamp .45s calc(1.1s + var(--i) * .12s) cubic-bezier(.5,0,.6,1.6) both; }
@keyframes wa-stamp { 0% { opacity: 0; transform: scale(3.2) rotate(-6deg); } 70% { opacity: 1; transform: scale(.92); } }
.wa-dragon .wa-kicker, .wa-dragon .wa-sub { font-family: "Playfair Display SC", Georgia, serif; font-weight: 900; letter-spacing: .12em; color: #FFE7A6; }
.wa-dragon .wa-sub, .wa-dragon .wa-msg { color: #fff; }
.wa-dragon .wa-kicker, .wa-dragon .wa-sub, .wa-dragon .wa-msg { text-shadow: 0 0 2cqmin #FF8A00, 0 .3cqmin .6cqmin #000; }
.wa-dragon .wa-amount, .wa-chest .wa-amount { border-color: #FFC23D; background: rgba(60,15,0,.65); box-shadow: 0 0 3cqmin #FF9A00, inset 0 0 2cqmin rgba(255,170,60,.5); color: #FFF3C4; }
.fr-gate { animation: wa-in .4s .2s both; }
.fr-gate .fr-inner { border-radius: .6cqmin; background: radial-gradient(90% 90% at 50% 45%, #7A0F0A, #3A0503 80%);
  box-shadow: inset 0 0 0 .8cqmin #E9B949, inset 0 0 0 1.5cqmin #5A0A06, inset 0 0 0 1.9cqmin #E9B949, inset 0 0 7cqmin rgba(0,0,0,.6), 0 0 5cqmin rgba(255,190,60,.35); }
.fr-gate .fr-roof { left: -5%; right: -5%; top: -7cqmin; height: 7cqmin; z-index: 4; clip-path: polygon(0 100%, 6% 30%, 50% 0, 94% 30%, 100% 100%); background: linear-gradient(180deg, #F4CF6A, #B4790E); }
.fr-gate .fr-door { top: 0; bottom: 0; width: 50%; z-index: 3; backface-visibility: hidden;
  background: repeating-linear-gradient(0deg, rgba(0,0,0,.12) 0 .3cqmin, transparent .3cqmin 7cqmin), linear-gradient(90deg, #A3150E, #C21D14 50%, #A3150E);
  box-shadow: inset 0 0 0 .8cqmin #E9B949, inset 0 0 4cqmin rgba(0,0,0,.4); }
.fr-gate .fr-door.is-l { left: 0; transform-origin: 0 50%; animation: fr-door-l 1s .7s cubic-bezier(.6,0,.3,1) both; }
.fr-gate .fr-door.is-r { right: 0; transform-origin: 100% 50%; animation: fr-door-r 1s .7s cubic-bezier(.6,0,.3,1) both; }
@keyframes fr-door-l { to { transform: rotateY(-105deg); } }
@keyframes fr-door-r { to { transform: rotateY(105deg); } }
.fr-gate .fr-ring { top: 50%; width: 6cqmin; height: 6cqmin; margin-top: -3cqmin; border-radius: 50%; border: .9cqmin solid #F4CF6A; box-shadow: 0 0 1cqmin rgba(0,0,0,.5); }
.fr-gate .is-l .fr-ring { right: 2.5cqmin; }
.fr-gate .is-r .fr-ring { left: 2.5cqmin; }

/* ===== 3. Rương báu: đồng xu rơi; bảng gỗ treo xích; Bungee nảy ===== */
.wa-chest-v { left: -16cqw; bottom: 2cqh; height: 92cqh; width: auto; z-index: 2; filter: drop-shadow(0 2cqmin 3cqmin rgba(0,0,0,.6)); animation: wa-chest-in .7s cubic-bezier(.2,1.5,.4,1) .1s both; }
@keyframes wa-chest-in { from { transform: translateY(60cqh) scale(.6); opacity: 0; } }
.wa-drop { top: -6cqmin; width: 3.6cqmin; height: 3.6cqmin; border-radius: 50%; z-index: 3;
  background: radial-gradient(circle at 35% 30%, #FFF4C0, #FFC93C 45%, #B87A00); box-shadow: inset 0 0 0 .4cqmin #E0A400, 0 0 1.2cqmin rgba(255,200,60,.6);
  animation: wa-coinfall 2.2s var(--d) cubic-bezier(.4,0,.8,1) both; }
@keyframes wa-coinfall { from { transform: translateY(0) rotateY(0) rotate(0); } to { transform: translateY(115cqh) rotateY(720deg) rotate(var(--r)); } }
.wa-chest .wa-big { font-family: "Bungee", system-ui, sans-serif; font-weight: 400; letter-spacing: .02em;
  filter: drop-shadow(0 .5cqmin 0 #7A4A00) drop-shadow(0 0 2cqmin rgba(255,200,60,.6)); }
.wa-chest .wa-big span { background-image: linear-gradient(180deg, #FFFBE6, #FFD86B 45%, #C98A10); animation: wa-pop .8s calc(1.1s + var(--i) * .1s) both; }
@keyframes wa-pop { 0% { opacity: 0; transform: translateY(14cqmin) scale(.4) rotate(-20deg); } 45% { opacity: 1; transform: translateY(-4cqmin) scale(1.15) rotate(6deg); }
  70% { transform: translateY(1cqmin) scale(.95) rotate(-2deg); } 100% { transform: none; } }
.wa-chest .wa-kicker, .wa-chest .wa-sub { font-family: "Bungee", system-ui, sans-serif; font-weight: 400; letter-spacing: .04em; }
.wa-chest .wa-kicker { color: #FFE7A6; }
.wa-chest .wa-kicker, .wa-chest .wa-sub, .wa-chest .wa-msg { text-shadow: 0 0 2cqmin #FF8A00, 0 .3cqmin .6cqmin #000; }
.fr-sign { transform-origin: 50% -30cqh; animation: fr-sign-drop .6s .3s cubic-bezier(.4,1.4,.6,1) both, fr-swing 2.2s .9s ease-in-out both; }
@keyframes fr-sign-drop { from { transform: translateY(-100cqh); } }
@keyframes fr-swing { 0% { transform: rotate(5deg); } 25% { transform: rotate(-3.5deg); } 50% { transform: rotate(2deg); } 75% { transform: rotate(-1deg); } 100% { transform: rotate(0); } }
.fr-sign .fr-inner { border-radius: 1.6cqmin;
  background: repeating-linear-gradient(0deg, rgba(0,0,0,.18) 0 .3cqmin, transparent .3cqmin 9cqmin), repeating-linear-gradient(90deg, rgba(255,255,255,.04) 0 .2cqmin, transparent .2cqmin 1.6cqmin), linear-gradient(180deg, #6B3A1A, #3E200C);
  box-shadow: inset 0 0 0 1cqmin #C98A10, inset 0 0 0 1.5cqmin #3E200C, inset 0 0 6cqmin rgba(0,0,0,.6), 0 2cqmin 4cqmin rgba(0,0,0,.5); }
.fr-sign .fr-chain { top: -32cqh; height: 32cqh; width: 1.6cqmin; background: repeating-linear-gradient(180deg, #D9B04A 0 2cqmin, #7A5A10 2cqmin 2.6cqmin, transparent 2.6cqmin 3cqmin); }
.fr-sign .fr-chain.is-l { left: 18%; }
.fr-sign .fr-chain.is-r { right: 18%; }
.fr-sign .fr-rivet { width: 2.6cqmin; height: 2.6cqmin; border-radius: 50%; z-index: 2; background: radial-gradient(circle at 35% 30%, #FFF2B0, #C98A10 60%, #6B3A00); }
.fr-sign .is-1 { left: 2cqmin; top: 2cqmin; }
.fr-sign .is-2 { right: 2cqmin; top: 2cqmin; }
.fr-sign .is-3 { left: 2cqmin; bottom: 2cqmin; }
.fr-sign .is-4 { right: 2cqmin; bottom: 2cqmin; }

/* ===== 4. Hồ ly chín đuôi: cánh hoa; gương trăng; Dancing Script viết dần ===== */
.wa-fox-v { left: -6cqw; bottom: 0; height: 100cqh; width: auto; z-index: 2; filter: drop-shadow(0 0 2.5cqmin rgba(190,160,255,.7)); animation: wa-hero-in .9s cubic-bezier(.2,1.2,.4,1) .1s both; }
.wa-petal { top: -5cqmin; width: 2.2cqmin; height: 1.4cqmin; border-radius: 100% 0 100% 0; background: linear-gradient(135deg, #FFE3F4, #C9A8FF); opacity: .85; z-index: 3;
  animation: wa-petal 4.5s var(--d) linear infinite; }
@keyframes wa-petal { from { transform: translate(0,0) rotate(0); } to { transform: translate(var(--x), 110cqh) rotate(var(--r)); } }
.wa-fox .wa-big { font-family: "Dancing Script", cursive; font-weight: 700; font-size: 16cqmin;
  filter: drop-shadow(0 0 1.2cqmin rgba(170,130,255,.9)) drop-shadow(0 0 4cqmin rgba(120,80,255,.5)); }
.wa-fox .wa-big span { background-image: linear-gradient(110deg, #9B7BFF 0%, #FFFFFF 40%, #FFFFFF 50%, #C9B4FF 60%, #9B7BFF 100%); background-size: 300% 100%;
  animation: wa-write .9s calc(1.1s + var(--i) * .13s) ease-out both, wa-shimmer 2.4s 2.2s linear infinite; }
@keyframes wa-write { from { opacity: 0; transform: translateX(-2cqmin); clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes wa-shimmer { from { background-position: 100% 0; } to { background-position: -200% 0; } }
.wa-fox .wa-kicker, .wa-fox .wa-sub { font-family: "Lora", Georgia, serif; font-style: italic; font-weight: 600; letter-spacing: .1em; }
.wa-fox .wa-kicker, .wa-fox .wa-sub, .wa-fox .wa-msg { color: #F1EBFF; text-shadow: 0 0 2cqmin #7B5CFF, 0 .3cqmin .6cqmin #000; }
.wa-fox .wa-amount { border-color: #C9B4FF; background: rgba(40,20,90,.6); box-shadow: 0 0 3cqmin #8A63FF, inset 0 0 2cqmin rgba(200,170,255,.5); color: #fff; }
.fr-mirror .fr-inner { border-radius: 50% 50% 4cqmin 4cqmin / 34% 34% 4cqmin 4cqmin; background: radial-gradient(80% 70% at 50% 40%, rgba(80,50,160,.75), rgba(20,10,50,.85) 80%);
  box-shadow: inset 0 0 0 .5cqmin #E9DEFF, inset 0 0 0 1.3cqmin rgba(155,123,255,.6), inset 0 0 6cqmin rgba(190,160,255,.5), 0 0 6cqmin rgba(155,123,255,.6);
  animation: fr-reveal 1s .35s cubic-bezier(.3,0,.2,1) both; }
@keyframes fr-reveal { from { clip-path: circle(0% at 50% 50%); } to { clip-path: circle(80% at 50% 50%); } }
.fr-mirror .fr-halo { inset: -3cqmin; border-radius: 50% 50% 6cqmin 6cqmin / 34% 34% 6cqmin 6cqmin; border: .3cqmin solid rgba(233,222,255,.5);
  box-shadow: 0 0 3cqmin rgba(190,160,255,.5); animation: fr-halo 1.2s .5s ease-out both; }
@keyframes fr-halo { from { transform: scale(.3); opacity: 0; } 60% { opacity: 1; } }
.fr-mirror .fr-crescent { left: 50%; top: -5cqmin; width: 10cqmin; height: 10cqmin; margin-left: -5cqmin; border-radius: 50%; z-index: 2;
  box-shadow: inset 2.4cqmin -1.2cqmin 0 0 #F3ECFF; filter: drop-shadow(0 0 1.5cqmin #B79BFF); animation: wa-in .6s 1s both; }

/* ===== 5. Máy bay chở tiền: vali da; Baloo 2 rơi lắc ===== */
.wa-plane-v { top: 8cqh; height: 70cqh; width: auto; z-index: 2; filter: drop-shadow(0 2cqmin 2cqmin rgba(0,40,90,.35));
  animation: wa-fly-in 1.4s cubic-bezier(.2,.9,.3,1) both, wa-fly-out .9s 5.1s cubic-bezier(.6,0,.9,.4) both; }
@keyframes wa-fly-in { from { left: -80cqw; transform: rotate(-8deg); } to { left: 0; transform: rotate(0); } }
@keyframes wa-fly-out { from { left: 0; } to { left: 110cqw; transform: rotate(-10deg) translateY(-20cqh); } }
.wa-bill { top: -6cqmin; width: 6cqmin; height: 3cqmin; border-radius: .3cqmin; z-index: 3;
  background: linear-gradient(90deg, #6FBF73, #CFEBC4 30%, #CFEBC4 70%, #6FBF73); box-shadow: inset 0 0 0 .3cqmin #3E8E41; animation: wa-billfall 3s var(--d) ease-in both; }
@keyframes wa-billfall { from { transform: translate(0,0) rotate(0) rotateX(0); } to { transform: translate(8cqw, 115cqh) rotate(var(--r)) rotateX(720deg); } }
.wa-plane .wa-big { font-family: "Baloo 2", system-ui, sans-serif; font-weight: 800; filter: drop-shadow(0 .6cqmin 0 #C2410C) drop-shadow(0 0 1.6cqmin rgba(255,160,0,.6)); }
.wa-plane .wa-big span { background-image: linear-gradient(180deg, #FFFFFF, #FFE36B 50%, #FF8A00); transform-origin: 50% 0; animation: wa-drop-in .9s calc(1.2s + var(--i) * .1s) both; }
@keyframes wa-drop-in { 0% { opacity: 0; transform: translateY(-40cqmin) rotate(-25deg); } 50% { opacity: 1; transform: translateY(2cqmin) rotate(12deg); }
  70% { transform: translateY(-1cqmin) rotate(-6deg); } 85% { transform: rotate(3deg); } 100% { transform: none; } }
.wa-plane .wa-kicker, .wa-plane .wa-sub, .wa-plane .wa-msg { font-family: "Baloo 2", system-ui, sans-serif; font-style: normal; font-weight: 800; color: #fff;
  text-shadow: 0 .3cqmin 0 #1D6FB8, 0 0 1.5cqmin rgba(0,60,140,.6); }
.wa-plane .wa-amount { border-color: #fff; background: rgba(20,110,200,.75); box-shadow: 0 0 2.5cqmin rgba(255,255,255,.7); color: #fff; }
.fr-case { animation: fr-case-drop .7s .25s cubic-bezier(.3,1.5,.5,1) both; }
@keyframes fr-case-drop { from { transform: translateY(-90cqh) rotate(-8deg); } }
.fr-case .fr-inner { border-radius: 3cqmin; background: radial-gradient(120% 90% at 50% 40%, #1B3F8F, #0C1F4D 75%);
  box-shadow: inset 0 0 0 1.4cqmin #7A4A22, inset 0 0 0 1.8cqmin #C99A3B, inset 0 0 0 2.4cqmin #5A3416, inset 0 0 6cqmin rgba(0,0,0,.6), 0 2cqmin 4cqmin rgba(0,30,80,.45);
  outline: .35cqmin dashed rgba(255,214,120,.55); outline-offset: -3.6cqmin; }
.fr-case .fr-handle { left: 50%; top: -6cqmin; width: 16cqmin; height: 7cqmin; margin-left: -8cqmin; border: 1.6cqmin solid #5A3416; border-bottom: 0; border-radius: 4cqmin 4cqmin 0 0; }
.fr-case .fr-strap { top: 0; bottom: 0; width: 3.6cqmin; background: linear-gradient(90deg, #6B3E1C, #8A5428 50%, #6B3E1C); box-shadow: inset 0 0 0 .3cqmin #C99A3B; opacity: .9; }
.fr-case .fr-strap.is-l { left: 9%; }
.fr-case .fr-strap.is-r { right: 9%; }
.fr-case .fr-lid { inset: 0; border-radius: 3cqmin; transform-origin: 50% 0; backface-visibility: hidden; z-index: 3;
  background: repeating-linear-gradient(90deg, rgba(0,0,0,.06) 0 .4cqmin, transparent .4cqmin 2.4cqmin), linear-gradient(180deg, #A8693A, #7A4A22);
  box-shadow: inset 0 0 0 1cqmin #C99A3B, inset 0 0 0 1.5cqmin #5A3416, inset 0 -3cqmin 5cqmin rgba(0,0,0,.35); animation: fr-lid-open .9s .95s cubic-bezier(.5,0,.3,1.2) both; }
@keyframes fr-lid-open { from { transform: rotateX(0); } to { transform: rotateX(-112deg); } }
.fr-case .fr-lock { left: 50%; bottom: 8%; width: 9cqmin; height: 6cqmin; margin-left: -4.5cqmin; border-radius: 1cqmin; background: linear-gradient(180deg, #FFE38A, #C99A3B); box-shadow: 0 .4cqmin 0 #7A5A10; }

/* ===== 6. Kiếm sĩ: video tách nền bên trái, tàn tím; lệnh bài sơn mài mở bằng hai nhát chém X; Playfair nghiêng tím bạc ===== */
.wa-sword-v { left: 0; bottom: 0; height: 100cqh; width: auto; z-index: 2; filter: drop-shadow(0 0 2cqmin rgba(150,90,255,.6)); animation: wa-hero-in .8s cubic-bezier(.2,1.3,.4,1) .1s both; }
.wa-ember-v { bottom: -2cqmin; width: 1.1cqmin; height: 1.1cqmin; border-radius: 50%; background: #E3CCFF; z-index: 3; box-shadow: 0 0 1.6cqmin .5cqmin rgba(123,61,255,.9);
  animation: wa-ember-v 2.2s var(--d) ease-out infinite; }
@keyframes wa-ember-v { from { transform: translate(0,0); opacity: 1; } to { transform: translate(var(--x), -70cqh); opacity: 0; } }
.fr-plaque .fr-inner { border-radius: 1cqmin; background: linear-gradient(160deg, #1A1028, #0B0614 70%);
  box-shadow: inset 0 0 0 .5cqmin #B79BFF, inset 0 0 0 1.1cqmin #2A1A44, inset 0 0 0 1.4cqmin rgba(183,155,255,.6), inset 0 0 7cqmin rgba(123,61,255,.45), 0 0 5cqmin rgba(123,61,255,.5);
  animation: fr-slash-open .5s 1.05s cubic-bezier(.6,0,.2,1) both; }
@keyframes fr-slash-open { from { clip-path: polygon(50% 50%, 50% 50%, 50% 50%, 50% 50%); } to { clip-path: polygon(-20% -20%, 120% -20%, 120% 120%, -20% 120%); } }
.fr-plaque .fr-cut { left: -10%; top: 50%; width: 120%; height: 1.4cqmin; z-index: 6; border-radius: 99px;
  background: linear-gradient(90deg, transparent, #fff 35%, #C79BFF 65%, transparent); box-shadow: 0 0 4cqmin 1cqmin rgba(123,61,255,.9); transform-origin: 0 50%; }
.fr-plaque .fr-cut.is-a { animation: fr-cut-a .5s .4s cubic-bezier(.7,0,.2,1) both; }
.fr-plaque .fr-cut.is-b { animation: fr-cut-b .5s .7s cubic-bezier(.7,0,.2,1) both; }
@keyframes fr-cut-a { 0% { transform: rotate(-32deg) scaleX(0); opacity: 1; } 70% { transform: rotate(-32deg) scaleX(1); opacity: 1; } to { transform: rotate(-32deg) scaleX(1); opacity: 0; } }
@keyframes fr-cut-b { 0% { transform: rotate(32deg) scaleX(0); opacity: 1; } 70% { transform: rotate(32deg) scaleX(1); opacity: 1; } to { transform: rotate(32deg) scaleX(1); opacity: 0; } }
.wa-sword .wa-big { font-family: "Playfair Display", Georgia, serif; font-style: italic; font-weight: 900;
  filter: drop-shadow(0 0 1cqmin rgba(183,155,255,.95)) drop-shadow(0 0 3.5cqmin rgba(123,61,255,.6)); }
.wa-sword .wa-big span { background-image: linear-gradient(180deg, #FFFFFF, #E3CCFF 45%, #8B5CFF 90%);
  animation: wa-slice .55s calc(1.3s + var(--i) * .08s) cubic-bezier(.2,1,.3,1) both; }
@keyframes wa-slice { 0% { opacity: 0; clip-path: polygon(0 0, 0 0, 0 100%, 0 100%); transform: translateX(-2cqmin) skewX(-12deg); } to { opacity: 1; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); } }
.wa-sword .wa-kicker, .wa-sword .wa-sub { font-family: "Lora", Georgia, serif; font-style: italic; font-weight: 600; letter-spacing: .12em; }
.wa-sword .wa-kicker, .wa-sword .wa-sub, .wa-sword .wa-msg { color: #F1EBFF; text-shadow: 0 0 2cqmin #7B3DFF, 0 .3cqmin .6cqmin #000; }
.wa-sword .wa-amount { border-color: #B79BFF; background: rgba(30,12,60,.7); box-shadow: 0 0 3cqmin #7B3DFF, inset 0 0 2cqmin rgba(183,155,255,.5); color: #fff; }

/* ===== 7. Thám tử nhí: dấu hỏi bay; bìa hồ sơ vụ án lật mở + mộc ĐÃ PHÁ ÁN; Baloo 2 kiểu máy đánh chữ ===== */
.wa-detective-v { left: 2cqw; bottom: 0; height: 100cqh; width: auto; z-index: 2; filter: drop-shadow(0 1.5cqmin 2cqmin rgba(0,0,0,.45)); animation: wa-hero-in .8s cubic-bezier(.2,1.3,.4,1) .1s both; }
.wa-q { font: 900 8cqmin/1 Georgia, serif; color: #FFE7A8; opacity: 0; z-index: 3; text-shadow: 0 .4cqmin 0 #7A4A10, 0 0 2cqmin rgba(255,200,80,.6); animation: wa-q 2.4s var(--d) ease-out infinite; }
@keyframes wa-q { 0% { opacity: 0; transform: translateY(4cqmin) scale(.5) rotate(-15deg); } 30% { opacity: 1; } to { opacity: 0; transform: translateY(-12cqmin) scale(1.15) rotate(10deg); } }
.fr-file { animation: fr-case-drop .6s .2s cubic-bezier(.3,1.4,.5,1) both; }
.fr-file .fr-inner { border-radius: .8cqmin 2.4cqmin 1cqmin 1cqmin; background:
  repeating-linear-gradient(0deg, transparent 0 6.2cqmin, rgba(122,74,16,.18) 6.2cqmin 6.4cqmin), linear-gradient(170deg, #F3DEB0, #E2C48A);
  box-shadow: inset 0 0 0 .4cqmin #B8894A, inset 0 0 5cqmin rgba(122,74,16,.25), 0 2cqmin 4cqmin rgba(0,0,0,.45); }
.fr-file .fr-cover { inset: 0; z-index: 4; border-radius: .8cqmin 2.4cqmin 1cqmin 1cqmin; transform-origin: 0 50%; backface-visibility: hidden;
  background: linear-gradient(170deg, #D9B97A, #C29A55); box-shadow: inset 0 0 0 .4cqmin #9C7038, inset -1cqmin 0 2cqmin rgba(0,0,0,.2);
  animation: fr-cover-open .9s .85s cubic-bezier(.5,0,.3,1.1) both; }
@keyframes fr-cover-open { from { transform: perspective(140cqmin) rotateY(0); } to { transform: perspective(140cqmin) rotateY(-115deg); } }
.fr-file .fr-clip { left: 8%; top: -2.6cqmin; width: 7cqmin; height: 8cqmin; z-index: 5; border: .8cqmin solid #9AA3AD; border-bottom: 0; border-radius: 3cqmin 3cqmin 0 0; }
.fr-file .fr-stamp { right: 6%; top: 8%; z-index: 6; padding: .6cqmin 2cqmin; border: .6cqmin solid #C8202A; border-radius: 1cqmin; color: #C8202A;
  font: 900 3.4cqmin/1.2 "Baloo 2", system-ui, sans-serif; font-style: normal; letter-spacing: .06em; transform: rotate(-12deg); opacity: .85;
  animation: fr-stamp .35s 2.6s cubic-bezier(.5,0,.6,1.8) both; }
@keyframes fr-stamp { from { opacity: 0; transform: rotate(-12deg) scale(3); } }
.wa-detective .wa-big { font-family: "Baloo 2", system-ui, sans-serif; font-weight: 800; filter: drop-shadow(0 .5cqmin 0 #6B3A00); }
.wa-detective .wa-big span { background-image: linear-gradient(180deg, #5A3410, #3A1F06); animation: wa-type .15s calc(1.6s + var(--i) * .12s) ease-out both; }
@keyframes wa-type { from { opacity: 0; transform: translateY(-.8cqmin) scale(1.25); } }
.wa-detective .wa-kicker, .wa-detective .wa-sub, .wa-detective .wa-msg { font-family: "Baloo 2", system-ui, sans-serif; font-style: normal; font-weight: 800; color: #4A2A08; }
.wa-detective .wa-msg { font-weight: 600; }
.wa-detective .wa-amount { border-color: #8A5A20; background: rgba(255,248,230,.75); box-shadow: 0 .4cqmin 0 #B8894A; color: #3A1F06; }

/* ===== 8. Chiến binh: tia điện; khiên năng lượng bát giác mở từ trái; Bungee xanh điện rung ===== */
.wa-warrior-v { left: -2cqw; bottom: 0; height: 100cqh; width: auto; z-index: 2; filter: drop-shadow(0 0 2cqmin rgba(80,200,255,.6)); animation: wa-hero-in .7s cubic-bezier(.2,1.3,.4,1) .1s both; }
.wa-zap { width: 5cqmin; height: .5cqmin; z-index: 3; border-radius: 99px; background: linear-gradient(90deg, transparent, #E6FBFF, #4FC3FF, transparent);
  box-shadow: 0 0 1.5cqmin #4FC3FF; transform: rotate(var(--r)); opacity: 0; animation: wa-zap .5s var(--d) steps(3) infinite; }
@keyframes wa-zap { 0%, 100% { opacity: 0; } 30%, 60% { opacity: 1; } }
.fr-shield .fr-inner { clip-path: polygon(6% 0, 94% 0, 100% 10%, 100% 90%, 94% 100%, 6% 100%, 0 90%, 0 10%);
  background: radial-gradient(90% 80% at 50% 45%, #0E2A5C, #050B1E 80%); animation: fr-beam-open .6s 1.0s cubic-bezier(.6,0,.2,1) both; }
@keyframes fr-beam-open { from { clip-path: polygon(0 45%, 0 45%, 0 55%, 0 55%); } 50% { clip-path: polygon(0 45%, 100% 45%, 100% 55%, 0 55%); } }
.fr-shield::before { content: ""; position: absolute; inset: -.6cqmin; z-index: -1; clip-path: polygon(6% 0, 94% 0, 100% 10%, 100% 90%, 94% 100%, 6% 100%, 0 90%, 0 10%);
  background: linear-gradient(120deg, #4FC3FF, #E6FBFF, #2A7BFF, #E6FBFF, #4FC3FF) 0 0 / 300% 300%; animation: wa-in .3s 1.3s both, fr-electric 1.2s linear infinite;
  filter: drop-shadow(0 0 2cqmin #4FC3FF); }
@keyframes fr-electric { to { background-position: 300% 300%; } }
.fr-shield .fr-bolt { top: 0; bottom: 0; width: .5cqmin; z-index: 4; background: #E6FBFF; box-shadow: 0 0 2cqmin 1cqmin #4FC3FF; opacity: 0; }
.fr-shield .fr-bolt.is-1 { left: 18%; animation: wa-zap .4s 1.4s steps(2) 3; }
.fr-shield .fr-bolt.is-2 { right: 22%; animation: wa-zap .4s 1.6s steps(2) 3; }
.wa-warrior .wa-big { font-family: "Bungee", system-ui, sans-serif; font-weight: 400; filter: drop-shadow(0 0 1cqmin #4FC3FF) drop-shadow(0 0 3cqmin rgba(42,123,255,.7)); }
.wa-warrior .wa-big span { background-image: linear-gradient(180deg, #FFFFFF, #9FE8FF 50%, #2A7BFF); animation: wa-jolt .5s calc(1.3s + var(--i) * .08s) both; }
@keyframes wa-jolt { 0% { opacity: 0; transform: translateX(-3cqmin) skewX(-20deg); } 40% { opacity: 1; transform: translateX(1cqmin) skewX(10deg); } 60% { transform: translateX(-.6cqmin); } 80% { transform: translateX(.3cqmin); } 100% { transform: none; } }
.wa-warrior .wa-kicker, .wa-warrior .wa-sub { font-family: "Bungee", system-ui, sans-serif; font-weight: 400; letter-spacing: .04em; }
.wa-warrior .wa-kicker, .wa-warrior .wa-sub, .wa-warrior .wa-msg { color: #E6FBFF; text-shadow: 0 0 2cqmin #2A7BFF, 0 .3cqmin .6cqmin #000; }
.wa-warrior .wa-amount { border-color: #7DD3FF; background: rgba(10,40,110,.6); box-shadow: 0 0 3cqmin #2A7BFF, inset 0 0 2cqmin rgba(79,195,255,.5); color: #fff; }

/* ===== 9. Cá voi tinh vân: sao lấp lánh; ô kính vũ trụ gợn sóng từ tâm; Playfair nghiêng xanh ngọc trôi bồng bềnh ===== */
.wa-whale-v { left: -6cqw; top: 18cqh; height: 62cqh; width: auto; z-index: 2; filter: drop-shadow(0 0 2.5cqmin rgba(79,230,255,.55)); animation: wa-whale-in 1.2s cubic-bezier(.2,.9,.3,1) .1s both; }
@keyframes wa-whale-in { from { transform: translateX(-30cqw); opacity: 0; } }
.wa-star { width: .7cqmin; height: .7cqmin; border-radius: 50%; background: #E6FBFF; z-index: 1; box-shadow: 0 0 1.2cqmin .3cqmin rgba(79,230,255,.9); animation: wa-twinkle 2s var(--d) ease-in-out infinite; }
.fr-portal .fr-inner { border-radius: 4cqmin; background:
  radial-gradient(1px 1px at 20% 30%, #fff, transparent), radial-gradient(1px 1px at 70% 60%, #fff, transparent), radial-gradient(1.5px 1.5px at 40% 80%, #CFF8FF, transparent),
  radial-gradient(1px 1px at 85% 20%, #fff, transparent), radial-gradient(90% 80% at 50% 40%, rgba(30,40,110,.92), rgba(6,10,36,.95) 80%);
  box-shadow: inset 0 0 0 .4cqmin #8FF0FF, inset 0 0 6cqmin rgba(79,230,255,.35), 0 0 5cqmin rgba(79,230,255,.45);
  animation: fr-reveal 1s .45s cubic-bezier(.3,0,.2,1) both; }
.fr-portal .fr-ripple { left: 50%; top: 50%; width: 20cqmin; height: 20cqmin; margin: -10cqmin; border-radius: 50%; z-index: 3; border: .4cqmin solid rgba(143,240,255,.8); opacity: 0;
  animation: fr-ripple 1.2s .4s ease-out both; }
.fr-portal .fr-ripple.is-2 { animation-delay: .7s; }
@keyframes fr-ripple { 0% { transform: scale(.2); opacity: 1; } to { transform: scale(4); opacity: 0; } }
.wa-whale .wa-big { font-family: "Playfair Display", Georgia, serif; font-style: italic; font-weight: 900; filter: drop-shadow(0 0 1.2cqmin rgba(79,230,255,.9)) drop-shadow(0 0 4cqmin rgba(42,123,255,.5)); }
.wa-whale .wa-big span { background-image: linear-gradient(180deg, #FFFFFF, #8FF0FF 50%, #4F7BFF); animation: wa-float-in 1s calc(1.2s + var(--i) * .12s) cubic-bezier(.2,.8,.3,1) both, wa-bob 2.4s calc(2.4s + var(--i) * .2s) ease-in-out infinite alternate; }
@keyframes wa-float-in { from { opacity: 0; transform: translateY(5cqmin); filter: blur(.6cqmin); } }
@keyframes wa-bob { to { transform: translateY(-1cqmin); } }
.wa-whale .wa-kicker, .wa-whale .wa-sub { font-family: "Lora", Georgia, serif; font-style: italic; font-weight: 600; letter-spacing: .08em; }
.wa-whale .wa-kicker, .wa-whale .wa-sub, .wa-whale .wa-msg { color: #E6FBFF; text-shadow: 0 0 2cqmin #2A7BFF, 0 .3cqmin .6cqmin #000; }
.wa-whale .wa-amount { border-color: #8FF0FF; background: rgba(10,30,80,.6); box-shadow: 0 0 3cqmin rgba(79,230,255,.7), inset 0 0 2cqmin rgba(143,240,255,.4); color: #fff; }

/* ===== 10. Mưa tài lộc: xu + thỏi vàng rơi; bao lì xì đỏ nắp lật mở; Playfair SC vàng rơi như đồng xu ===== */
.wa-fortune-v { left: 0; top: 0; width: 100cqw; height: 100cqh; object-fit: cover; z-index: 2; filter: drop-shadow(0 1cqmin 2cqmin rgba(0,0,0,.4)); animation: wa-chest-in .7s cubic-bezier(.2,1.5,.4,1) .1s both; }
.wa-ingot { top: -6cqmin; width: 5cqmin; height: 2.6cqmin; z-index: 3; border-radius: 40% 40% 1cqmin 1cqmin; background: linear-gradient(180deg, #FFF2B0, #FFC93C 50%, #B87A00);
  box-shadow: 0 0 1.2cqmin rgba(255,200,60,.6); animation: wa-coinfall 2.4s var(--d) cubic-bezier(.4,0,.8,1) both; }
.fr-envelope .fr-inner { border-radius: 1.6cqmin; background: radial-gradient(90% 80% at 50% 40%, #D62B22, #9E1610 80%);
  box-shadow: inset 0 0 0 .7cqmin #F4CF6A, inset 0 0 0 1.3cqmin #9E1610, inset 0 0 0 1.6cqmin rgba(244,207,106,.7), inset 0 0 6cqmin rgba(0,0,0,.35), 0 2cqmin 4cqmin rgba(0,0,0,.45); }
.fr-envelope { animation: fr-case-drop .6s .2s cubic-bezier(.3,1.4,.5,1) both; }
.fr-envelope .fr-flap { left: 0; right: 0; top: 0; height: 42%; z-index: 4; transform-origin: 50% 0; backface-visibility: hidden;
  clip-path: polygon(0 0, 100% 0, 50% 100%); background: linear-gradient(180deg, #E8392E, #B81E16); filter: drop-shadow(0 .6cqmin .6cqmin rgba(0,0,0,.3));
  animation: fr-flap-open .8s .9s cubic-bezier(.5,0,.3,1.1) both; }
@keyframes fr-flap-open { from { transform: perspective(120cqmin) rotateX(0); } to { transform: perspective(120cqmin) rotateX(-170deg); opacity: 0; } }
.fr-envelope .fr-seal { left: 50%; top: 32%; width: 9cqmin; height: 9cqmin; margin: -4.5cqmin; z-index: 5; display: grid; place-items: center; border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #FFF2B0, #F4CF6A 55%, #B4790E); color: #9E1610; font: 900 5cqmin/1 serif; font-style: normal;
  animation: fr-seal-off .5s .8s ease-in both; }
@keyframes fr-seal-off { to { transform: translateY(-6cqmin) scale(.4); opacity: 0; } }
.wa-fortune .wa-big { font-family: "Playfair Display SC", Georgia, serif; font-weight: 900; letter-spacing: .04em; filter: drop-shadow(0 .4cqmin 0 #6B3A00) drop-shadow(0 0 2.5cqmin rgba(255,200,60,.7)); }
.wa-fortune .wa-big span { background-image: linear-gradient(180deg, #FFFBE6, #FFD86B 45%, #C98A10); animation: wa-coin-drop .8s calc(1.4s + var(--i) * .1s) cubic-bezier(.3,1.4,.5,1) both; }
@keyframes wa-coin-drop { from { opacity: 0; transform: translateY(-30cqmin) rotateY(540deg); } }
.wa-fortune .wa-kicker, .wa-fortune .wa-sub { font-family: "Playfair Display SC", Georgia, serif; font-weight: 900; letter-spacing: .1em; }
.wa-fortune .wa-kicker { color: #FFE7A6; }
.wa-fortune .wa-sub, .wa-fortune .wa-msg { color: #FFF6DC; }
.wa-fortune .wa-kicker, .wa-fortune .wa-sub, .wa-fortune .wa-msg { text-shadow: 0 .3cqmin .6cqmin rgba(0,0,0,.5); }
.wa-fortune .wa-amount { border-color: #F4CF6A; background: rgba(110,10,6,.55); box-shadow: 0 0 3cqmin rgba(255,200,60,.6), inset 0 0 2cqmin rgba(244,207,106,.4); color: #FFF3C4; }

/* ===== 11–15: hiệu ứng 10 giây, aura mạnh. Nhân vật đứng giữa video nên đẩy video sang trái để khung chữ bên phải không che. ===== */
.wa-hero10 { left: -24cqw; bottom: 0; height: 100cqh; width: auto; z-index: 2; animation: wa-hero-in .8s cubic-bezier(.2,1.3,.4,1) .1s both; }

/* 11. Lôi Thần: tia sét tím xanh; bảng thép bão tố viền điện chạy, sét giật; Bungee trắng-tím rung */
.wa-thunder-v { filter: drop-shadow(0 0 2.5cqmin rgba(140,120,255,.7)); }
.wa-thunder .wa-zap { background: linear-gradient(90deg, transparent, #F1ECFF, #8C78FF, transparent); box-shadow: 0 0 1.5cqmin #8C78FF; }
.fr-storm .fr-inner { clip-path: polygon(4% 0, 96% 0, 100% 8%, 100% 92%, 96% 100%, 4% 100%, 0 92%, 0 8%);
  background: radial-gradient(90% 80% at 50% 40%, #1B1650, #07061A 80%); animation: fr-beam-open .6s 1s cubic-bezier(.6,0,.2,1) both; }
.fr-storm::before { content: ""; position: absolute; inset: -.6cqmin; z-index: -1; clip-path: polygon(4% 0, 96% 0, 100% 8%, 100% 92%, 96% 100%, 4% 100%, 0 92%, 0 8%);
  background: linear-gradient(120deg, #8C78FF, #F1ECFF, #4F7BFF, #F1ECFF, #8C78FF) 0 0 / 300% 300%; animation: wa-in .3s 1.3s both, fr-electric 1s linear infinite;
  filter: drop-shadow(0 0 2.4cqmin #8C78FF); }
.fr-storm .fr-bolt { top: 0; bottom: 0; width: .5cqmin; z-index: 4; background: #F1ECFF; box-shadow: 0 0 2cqmin 1cqmin #8C78FF; opacity: 0; }
.fr-storm .fr-bolt.is-1 { left: 14%; animation: wa-zap .4s 1.4s steps(2) infinite; }
.fr-storm .fr-bolt.is-2 { right: 18%; animation: wa-zap .45s 2.1s steps(2) infinite; }
.wa-thunder .wa-big { font-family: "Bungee", system-ui, sans-serif; font-weight: 400; filter: drop-shadow(0 0 1cqmin #8C78FF) drop-shadow(0 0 3.4cqmin rgba(79,123,255,.8)); }
.wa-thunder .wa-big span { background-image: linear-gradient(180deg, #FFFFFF, #CFC4FF 50%, #5B5BFF); animation: wa-jolt .5s calc(1.3s + var(--i) * .08s) both; }
.wa-thunder .wa-kicker, .wa-thunder .wa-sub { font-family: "Bungee", system-ui, sans-serif; font-weight: 400; letter-spacing: .04em; }
.wa-thunder .wa-kicker, .wa-thunder .wa-sub, .wa-thunder .wa-msg { color: #F1ECFF; text-shadow: 0 0 2cqmin #6B55FF, 0 .3cqmin .6cqmin #000; }
.wa-thunder .wa-amount { border-color: #B9A6FF; background: rgba(30,20,90,.6); box-shadow: 0 0 3cqmin #6B55FF, inset 0 0 2cqmin rgba(185,166,255,.5); color: #fff; }

/* 12. Ma Vương: mảnh hắc ám bay lên; khe nứt obsidian mở từ giữa, viền tím cháy; Playfair SC tím đen */
.wa-demon-v { filter: drop-shadow(0 0 3cqmin rgba(170,60,255,.65)); }
.wa-shard { bottom: -4cqmin; width: 1.4cqmin; height: 2.4cqmin; z-index: 3; clip-path: polygon(50% 0, 100% 60%, 40% 100%, 0 45%);
  background: linear-gradient(180deg, #E3B6FF, #7A1FD1); box-shadow: 0 0 1.4cqmin rgba(170,60,255,.9); animation: wa-rise 3.6s var(--d) ease-out infinite; }
.fr-rift .fr-inner { clip-path: polygon(3% 2%, 30% 0, 55% 3%, 97% 0, 100% 40%, 96% 70%, 100% 98%, 62% 100%, 35% 97%, 0 100%, 3% 60%, 0 30%);
  background: radial-gradient(80% 70% at 50% 45%, #2A0B45, #0B0412 80%); box-shadow: inset 0 0 6cqmin rgba(170,60,255,.45);
  animation: fr-rift-open .9s .5s cubic-bezier(.7,0,.2,1) both; }
@keyframes fr-rift-open { from { transform: scaleY(.02); filter: brightness(3); } 60% { transform: scaleY(1.04); } }
.fr-rift::before { content: ""; position: absolute; inset: -1cqmin; z-index: -1; border-radius: 2cqmin;
  background: radial-gradient(closest-side, rgba(170,60,255,.75), transparent); filter: blur(2cqmin); animation: wa-in .4s 1s both, fr-throb 1.6s 1.4s ease-in-out infinite alternate; }
@keyframes fr-throb { to { opacity: .45; transform: scale(1.05); } }
.fr-rift .fr-crack { left: 50%; top: 0; bottom: 0; width: .4cqmin; z-index: 4; background: linear-gradient(180deg, transparent, #E3B6FF, transparent); box-shadow: 0 0 2cqmin #AA3CFF; opacity: 0; animation: wa-in .2s .5s both, wa-out .6s 1.3s both; }
.wa-demon .wa-big { font-family: "Playfair Display SC", Georgia, serif; font-weight: 900; letter-spacing: .04em; filter: drop-shadow(0 0 1.2cqmin #AA3CFF) drop-shadow(0 0 4cqmin rgba(122,31,209,.8)); }
.wa-demon .wa-big span { background-image: linear-gradient(180deg, #F6E8FF, #C77DFF 50%, #5A0FA8); animation: wa-float-in 1s calc(1.3s + var(--i) * .1s) cubic-bezier(.2,.8,.3,1) both; }
.wa-demon .wa-kicker, .wa-demon .wa-sub { font-family: "Playfair Display SC", Georgia, serif; font-weight: 900; letter-spacing: .12em; }
.wa-demon .wa-kicker, .wa-demon .wa-sub, .wa-demon .wa-msg { color: #F1DDFF; text-shadow: 0 0 2cqmin #7A1FD1, 0 .3cqmin .6cqmin #000; }
.wa-demon .wa-amount { border-color: #C77DFF; background: rgba(40,8,70,.65); box-shadow: 0 0 3cqmin #AA3CFF, inset 0 0 2cqmin rgba(199,125,255,.45); color: #fff; }

/* 13. Kỳ Lân Lửa: tàn lửa bay; bảng sơn mài đỏ viền lửa cháy; Playfair SC vàng đỏ */
.wa-qilin-v { filter: drop-shadow(0 0 2.5cqmin rgba(255,120,20,.55)); }
.fr-blaze .fr-inner { border-radius: 2cqmin; background: radial-gradient(90% 80% at 50% 40%, #6E0F06, #2A0502 80%);
  box-shadow: inset 0 0 0 .5cqmin #FFB13B, inset 0 0 0 1.1cqmin #6E0F06, inset 0 0 0 1.4cqmin rgba(255,177,59,.7), inset 0 0 7cqmin rgba(255,90,0,.4);
  animation: fr-reveal 1s .5s cubic-bezier(.3,0,.2,1) both; }
.fr-blaze::before { content: ""; position: absolute; left: 4%; right: 4%; bottom: -2cqmin; height: 30%; z-index: -1; border-radius: 50% 50% 0 0;
  background: radial-gradient(60% 100% at 50% 100%, rgba(255,200,60,.9), rgba(255,90,0,.6) 50%, transparent 75%); filter: blur(1.4cqmin);
  animation: wa-in .4s 1s both, fr-flame 0.9s 1.4s ease-in-out infinite alternate; }
@keyframes fr-flame { to { transform: scaleY(1.25) translateY(-1cqmin); opacity: .8; } }
.wa-qilin .wa-big { font-family: "Playfair Display SC", Georgia, serif; font-weight: 900; letter-spacing: .04em; filter: drop-shadow(0 .4cqmin 0 #6B1A00) drop-shadow(0 0 3cqmin rgba(255,120,20,.8)); }
.wa-qilin .wa-big span { background-image: linear-gradient(180deg, #FFF6C9, #FFC13B 45%, #E2410C); animation: wa-coin-drop .8s calc(1.4s + var(--i) * .1s) cubic-bezier(.3,1.4,.5,1) both; }
.wa-qilin .wa-kicker, .wa-qilin .wa-sub { font-family: "Playfair Display SC", Georgia, serif; font-weight: 900; letter-spacing: .1em; }
.wa-qilin .wa-kicker { color: #FFD27A; }
.wa-qilin .wa-sub, .wa-qilin .wa-msg { color: #FFF1D6; }
.wa-qilin .wa-kicker, .wa-qilin .wa-sub, .wa-qilin .wa-msg { text-shadow: 0 0 2cqmin rgba(255,90,0,.7), 0 .3cqmin .6cqmin #000; }
.wa-qilin .wa-amount { border-color: #FFB13B; background: rgba(90,12,4,.6); box-shadow: 0 0 3cqmin rgba(255,120,20,.7), inset 0 0 2cqmin rgba(255,177,59,.4); color: #FFF3C4; }

/* 14. Kiếm Thánh: cánh anh đào bay; giấy dó mở theo nhát chém chéo, triện đỏ; Playfair nghiêng đỏ thẫm */
.wa-samurai-v { filter: drop-shadow(0 0 2.5cqmin rgba(255,150,200,.6)); }
.fr-ink .fr-inner { border-radius: 1cqmin; background: linear-gradient(180deg, #FFF8F0, #F3E4D4);
  box-shadow: inset 0 0 0 .5cqmin #8E1B2B, inset 0 0 6cqmin rgba(142,27,43,.18), 0 2cqmin 4cqmin rgba(0,0,0,.45);
  animation: fr-slash-open .7s 1s cubic-bezier(.7,0,.2,1) both; }
@keyframes fr-slash-open { from { clip-path: polygon(0 100%, 0 100%, 0 100%, 0 100%); } to { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); } }
.fr-ink .fr-slash { left: -10%; top: 50%; width: 120%; height: .6cqmin; z-index: 5; transform: rotate(-24deg); background: linear-gradient(90deg, transparent, #fff, #FF8FC4, transparent);
  box-shadow: 0 0 3cqmin #FF8FC4; opacity: 0; animation: fr-slash .5s .85s ease-out both; }
@keyframes fr-slash { 0% { opacity: 0; transform: rotate(-24deg) scaleX(0); } 40% { opacity: 1; } 100% { opacity: 0; transform: rotate(-24deg) scaleX(1); } }
.fr-ink .fr-hanko { right: 6%; bottom: 7%; width: 8cqmin; height: 8cqmin; z-index: 5; display: grid; place-items: center; border-radius: 1cqmin; background: #B3122B; color: #FFF0F0;
  font: 900 4.6cqmin/1 serif; font-style: normal; transform: rotate(-8deg); animation: fr-stamp .35s 2.6s cubic-bezier(.3,1.6,.5,1) both; }
@keyframes fr-stamp { from { opacity: 0; transform: rotate(-8deg) scale(2.2); } }
.wa-samurai .wa-big { font-family: "Playfair Display", Georgia, serif; font-style: italic; font-weight: 900; filter: drop-shadow(0 .3cqmin 0 rgba(142,27,43,.35)); }
.wa-samurai .wa-big span { background-image: linear-gradient(180deg, #E8466F, #B3122B 55%, #5E0716); animation: wa-float-in .7s calc(1.5s + var(--i) * .09s) cubic-bezier(.2,.8,.3,1) both; }
.wa-samurai .wa-kicker, .wa-samurai .wa-sub { font-family: "Lora", Georgia, serif; font-style: italic; font-weight: 600; letter-spacing: .12em; color: #8E1B2B; }
.wa-samurai .wa-msg { color: #4A0B16; }
.wa-samurai .wa-amount { border-color: #B3122B; background: rgba(179,18,43,.08); box-shadow: 0 0 2cqmin rgba(255,143,196,.5); color: #8E1B2B; }

/* 15. Thiên Thần: lông vũ vàng lấp lánh; bảng thánh quang trắng vàng, vòng hào quang xoay; Playfair vàng trắng */
.wa-angel-v { filter: drop-shadow(0 0 3cqmin rgba(255,210,90,.6)); }
.fr-holy .fr-inner { border-radius: 3cqmin; background: radial-gradient(90% 80% at 50% 35%, rgba(255,250,232,.97), rgba(247,226,170,.95) 85%);
  box-shadow: inset 0 0 0 .4cqmin #E9B640, inset 0 0 6cqmin rgba(233,182,64,.45), 0 0 6cqmin rgba(255,215,100,.75);
  animation: fr-reveal 1.1s .5s cubic-bezier(.3,0,.2,1) both; }
.fr-holy .fr-ring { left: 50%; top: -6cqmin; width: 26cqmin; height: 8cqmin; margin-left: -13cqmin; z-index: 6; border-radius: 50%; border: .7cqmin solid #FFE28A;
  box-shadow: 0 0 2.4cqmin #FFD15A, inset 0 0 1.4cqmin #FFD15A; animation: wa-in .5s 1.2s both, fr-ring-glow 2s 1.7s ease-in-out infinite alternate; }
@keyframes fr-ring-glow { to { box-shadow: 0 0 5cqmin #FFD15A, inset 0 0 2.4cqmin #FFF2B8; } }
.fr-holy .fr-rays { left: 50%; top: 50%; width: 120cqmin; height: 120cqmin; margin: -60cqmin; z-index: -1; border-radius: 50%; opacity: .5;
  background: repeating-conic-gradient(rgba(255,226,138,.55) 0 6deg, transparent 6deg 18deg); -webkit-mask-image: radial-gradient(closest-side, #000, transparent); mask-image: radial-gradient(closest-side, #000, transparent);
  animation: wa-in .6s 1s both, wa-spin 22s linear infinite; }
.wa-angel .wa-big { font-family: "Playfair Display", Georgia, serif; font-weight: 900; filter: drop-shadow(0 .3cqmin 0 rgba(150,95,0,.45)) drop-shadow(0 0 2cqmin rgba(255,210,90,.6)); }
.wa-angel .wa-big span { background-image: linear-gradient(180deg, #FFE48F, #E0A21E 55%, #9A6200); animation: wa-float-in 1s calc(1.4s + var(--i) * .11s) cubic-bezier(.2,.8,.3,1) both; }
.wa-angel .wa-kicker, .wa-angel .wa-sub { font-family: "Playfair Display SC", Georgia, serif; font-weight: 900; letter-spacing: .12em; color: #9A6200; }
.wa-angel .wa-msg { color: #5C3B00; }
.wa-angel .wa-amount { border-color: #E9B640; background: rgba(255,255,255,.55); box-shadow: 0 0 3cqmin rgba(255,210,90,.7); color: #7A4E00; }

/* 16. Chiến giáp cơ khí: tàn lửa; bảng thép tối, đường năng lượng đỏ cam chạy, lõi phản ứng sáng; Bungee đỏ cam */
.wa-mecha-v { filter: drop-shadow(0 0 2.5cqmin rgba(255,90,30,.6)); }
.fr-reactor .fr-inner { clip-path: polygon(5% 0, 95% 0, 100% 7%, 100% 93%, 95% 100%, 5% 100%, 0 93%, 0 7%);
  background: linear-gradient(160deg, #23262E, #0D0F14 70%); box-shadow: inset 0 0 0 .4cqmin #3A3F4B, inset 0 0 6cqmin rgba(255,90,30,.25);
  animation: fr-beam-open .6s 1s cubic-bezier(.6,0,.2,1) both; }
.fr-reactor::before { content: ""; position: absolute; inset: -.5cqmin; z-index: -1; clip-path: polygon(5% 0, 95% 0, 100% 7%, 100% 93%, 95% 100%, 5% 100%, 0 93%, 0 7%);
  background: linear-gradient(120deg, #FF5A1F, #FFD08A, #E2290C, #FFD08A, #FF5A1F) 0 0 / 300% 300%; animation: wa-in .3s 1.3s both, fr-electric 1.4s linear infinite;
  filter: drop-shadow(0 0 2cqmin #FF5A1F); }
.fr-reactor .fr-line { left: 8%; right: 8%; height: .35cqmin; z-index: 4; background: linear-gradient(90deg, transparent, #FF7A3D, transparent); box-shadow: 0 0 1.4cqmin #FF5A1F; opacity: 0; }
.fr-reactor .fr-line.is-1 { top: 12%; animation: wa-in .3s 1.5s both, fr-scan 2.4s 1.8s ease-in-out infinite; }
.fr-reactor .fr-line.is-2 { bottom: 12%; animation: wa-in .3s 1.7s both, fr-scan 2.4s 2.6s ease-in-out infinite; }
@keyframes fr-scan { 50% { opacity: .25; } }
.fr-reactor .fr-core { right: 6%; top: 6%; width: 5cqmin; height: 5cqmin; z-index: 5; border-radius: 50%; background: radial-gradient(circle, #FFF3D6, #FF7A3D 45%, #A82000 80%);
  box-shadow: 0 0 2.4cqmin #FF5A1F; animation: wa-in .4s 1.4s both, fr-throb 1s 1.8s ease-in-out infinite alternate; }
.wa-mecha .wa-big { font-family: "Bungee", system-ui, sans-serif; font-weight: 400; filter: drop-shadow(0 0 1cqmin #FF5A1F) drop-shadow(0 0 3cqmin rgba(226,41,12,.7)); }
.wa-mecha .wa-big span { background-image: linear-gradient(180deg, #FFF3D6, #FF9A4D 50%, #D63A0A); animation: wa-jolt .5s calc(1.3s + var(--i) * .08s) both; }
.wa-mecha .wa-kicker, .wa-mecha .wa-sub { font-family: "Bungee", system-ui, sans-serif; font-weight: 400; letter-spacing: .04em; }
.wa-mecha .wa-kicker, .wa-mecha .wa-sub, .wa-mecha .wa-msg { color: #FFE9D6; text-shadow: 0 0 2cqmin #E2290C, 0 .3cqmin .6cqmin #000; }
.wa-mecha .wa-amount { border-color: #FF7A3D; background: rgba(60,14,4,.6); box-shadow: 0 0 3cqmin rgba(255,90,30,.7), inset 0 0 2cqmin rgba(255,122,61,.4); color: #fff; }

/* 17. Băng hậu: tuyết rơi; tấm kính băng mờ viền băng giá, mảnh băng nhọn; Playfair nghiêng xanh băng */
.wa-icequeen-v { filter: drop-shadow(0 0 2.5cqmin rgba(150,220,255,.6)); }
.wa-snow { top: -3cqmin; width: 1cqmin; height: 1cqmin; border-radius: 50%; background: #F4FCFF; z-index: 3; box-shadow: 0 0 1cqmin rgba(170,230,255,.9);
  transform: scale(var(--s)); animation: wa-snowfall 6s var(--d) linear infinite; }
@keyframes wa-snowfall { to { transform: translate(var(--x), 110cqh) scale(var(--s)); } }
.fr-frost .fr-inner { border-radius: 2.4cqmin; background: linear-gradient(160deg, rgba(220,244,255,.94), rgba(160,214,240,.9));
  box-shadow: inset 0 0 0 .4cqmin #EAF9FF, inset 0 0 6cqmin rgba(120,200,240,.5), 0 0 5cqmin rgba(150,220,255,.6);
  animation: fr-reveal 1.1s .5s cubic-bezier(.3,0,.2,1) both; }
.fr-frost .fr-shard { width: 7cqmin; height: 16cqmin; z-index: 5; clip-path: polygon(50% 0, 100% 100%, 0 100%); background: linear-gradient(180deg, #FFFFFF, #9ED8F5);
  filter: drop-shadow(0 0 1.4cqmin rgba(150,220,255,.9)); animation: fr-stamp .5s cubic-bezier(.3,1.4,.5,1) both; }
.fr-frost .fr-shard.is-1 { left: -2cqmin; top: -5cqmin; transform: rotate(-20deg); animation-delay: 1.3s; }
.fr-frost .fr-shard.is-2 { right: -2cqmin; bottom: -5cqmin; transform: rotate(160deg); animation-delay: 1.5s; }
.wa-icequeen .wa-big { font-family: "Playfair Display", Georgia, serif; font-style: italic; font-weight: 900; filter: drop-shadow(0 .3cqmin 0 rgba(30,90,140,.35)) drop-shadow(0 0 2cqmin rgba(150,220,255,.8)); }
.wa-icequeen .wa-big span { background-image: linear-gradient(180deg, #5FB8E8, #1F6FA8 55%, #0D3A66); animation: wa-float-in 1s calc(1.3s + var(--i) * .1s) cubic-bezier(.2,.8,.3,1) both; }
.wa-icequeen .wa-kicker, .wa-icequeen .wa-sub { font-family: "Lora", Georgia, serif; font-style: italic; font-weight: 600; letter-spacing: .1em; color: #134C7A; }
.wa-icequeen .wa-msg { color: #0D3A66; }
.wa-icequeen .wa-amount { border-color: #4FA6D8; background: rgba(255,255,255,.6); box-shadow: 0 0 3cqmin rgba(150,220,255,.8); color: #0D3A66; }

/* 18. Bạch hổ: tia sét trắng; bảng bạc xám có ba vết cào xé chéo; Playfair SC trắng bạc */
.wa-tiger-v { filter: drop-shadow(0 0 2.5cqmin rgba(220,235,255,.55)); }
.wa-tiger .wa-zap { background: linear-gradient(90deg, transparent, #FFFFFF, #BFD4FF, transparent); box-shadow: 0 0 1.5cqmin #DDE8FF; }
.fr-claw .fr-inner { border-radius: 2cqmin; background: radial-gradient(90% 80% at 50% 40%, #2C313B, #11141A 80%);
  box-shadow: inset 0 0 0 .4cqmin #C9D2E0, inset 0 0 6cqmin rgba(220,235,255,.2), 0 0 4cqmin rgba(220,235,255,.35);
  animation: fr-reveal 1s .5s cubic-bezier(.3,0,.2,1) both; }
.fr-claw .fr-scratch { top: 10%; width: .9cqmin; height: 80%; z-index: 5; border-radius: 99px; background: linear-gradient(180deg, transparent, #FFFFFF 30%, #BFD4FF 70%, transparent);
  box-shadow: 0 0 1.6cqmin #DDE8FF; transform: rotate(18deg) scaleY(0); transform-origin: top; animation: fr-scratch .35s cubic-bezier(.7,0,.2,1) both; }
.fr-claw .fr-scratch.is-1 { left: 28%; animation-delay: .95s; }
.fr-claw .fr-scratch.is-2 { left: 42%; animation-delay: 1.03s; }
.fr-claw .fr-scratch.is-3 { left: 56%; animation-delay: 1.11s; }
@keyframes fr-scratch { to { transform: rotate(18deg) scaleY(1); opacity: .55; } }
.wa-tiger .wa-big { font-family: "Playfair Display SC", Georgia, serif; font-weight: 900; letter-spacing: .04em; filter: drop-shadow(0 0 1.2cqmin rgba(220,235,255,.8)) drop-shadow(0 0 4cqmin rgba(120,150,220,.5)); }
.wa-tiger .wa-big span { background-image: linear-gradient(180deg, #FFFFFF, #D6E0F0 50%, #8C9BB5); animation: wa-jolt .5s calc(1.3s + var(--i) * .08s) both; }
.wa-tiger .wa-kicker, .wa-tiger .wa-sub { font-family: "Playfair Display SC", Georgia, serif; font-weight: 900; letter-spacing: .12em; }
.wa-tiger .wa-kicker, .wa-tiger .wa-sub, .wa-tiger .wa-msg { color: #EEF3FF; text-shadow: 0 0 2cqmin rgba(120,150,220,.8), 0 .3cqmin .6cqmin #000; }
.wa-tiger .wa-amount { border-color: #C9D2E0; background: rgba(20,24,32,.6); box-shadow: 0 0 3cqmin rgba(220,235,255,.5), inset 0 0 2cqmin rgba(201,210,224,.35); color: #fff; }

/* 19. Bé phép thuật: tim hồng bay lên; bảng hồng pastel viền tim, tim nảy ở góc; Baloo bo tròn hồng */
.wa-magicgirl-v { filter: drop-shadow(0 0 2cqmin rgba(255,150,210,.55)); }
.wa-heart-p { bottom: -4cqmin; z-index: 3; color: #FF8FC8; font: 900 3cqmin/1 system-ui, sans-serif; font-style: normal; text-shadow: 0 0 1.2cqmin rgba(255,143,200,.9);
  transform: scale(var(--s)); animation: wa-rise 4s var(--d) ease-out infinite; }
.fr-kawaii .fr-inner { border-radius: 4cqmin; background: linear-gradient(170deg, #FFF0F8, #FFD6EC 70%, #F3D9FF);
  box-shadow: inset 0 0 0 .6cqmin #FFFFFF, inset 0 0 0 1.1cqmin #FFB3DA, 0 1.4cqmin 4cqmin rgba(255,120,190,.4);
  animation: fr-reveal 1s .5s cubic-bezier(.3,0,.2,1) both; }
.fr-kawaii .fr-heart { z-index: 5; color: #FF6FB5; font: 900 6cqmin/1 system-ui, sans-serif; font-style: normal; text-shadow: 0 .4cqmin 0 #fff, 0 0 1.4cqmin rgba(255,111,181,.7);
  animation: wa-in .3s both, fr-boing 1.2s ease-in-out infinite alternate; }
.fr-kawaii .fr-heart.is-1 { left: -2cqmin; top: -3cqmin; animation-delay: 1.2s, 1.5s; }
.fr-kawaii .fr-heart.is-2 { right: -2cqmin; top: 10%; font-size: 4.2cqmin; animation-delay: 1.4s, 1.7s; }
.fr-kawaii .fr-heart.is-3 { right: 8%; bottom: -3cqmin; font-size: 5cqmin; animation-delay: 1.6s, 1.9s; }
@keyframes fr-boing { to { transform: translateY(-1.2cqmin) scale(1.12); } }
.wa-magicgirl .wa-big { font-family: "Baloo 2", system-ui, sans-serif; font-weight: 800; filter: drop-shadow(0 .5cqmin 0 #fff) drop-shadow(0 0 1.6cqmin rgba(255,111,181,.5)); }
.wa-magicgirl .wa-big span { background-image: linear-gradient(180deg, #FF9AD0, #FF4FA3 55%, #C2187A); animation: wa-coin-drop .7s calc(1.3s + var(--i) * .09s) cubic-bezier(.3,1.4,.5,1) both; }
.wa-magicgirl .wa-kicker, .wa-magicgirl .wa-sub, .wa-magicgirl .wa-msg { font-family: "Baloo 2", system-ui, sans-serif; font-style: normal; font-weight: 800; color: #B0236F; }
.wa-magicgirl .wa-amount { border-color: #FF8FC8; background: rgba(255,255,255,.7); box-shadow: 0 0 2.4cqmin rgba(255,143,200,.6); color: #B0236F; }

/* 20. Bé game thủ: xu vàng rơi; màn hình game viền xanh neon, chữ LEVEL UP! nhấp nháy, thanh kinh nghiệm chạy đầy; Bungee xanh vàng */
.wa-gamerboy-v { filter: drop-shadow(0 0 2cqmin rgba(90,170,255,.5)); }
.fr-levelup .fr-inner { border-radius: 2.4cqmin; background: radial-gradient(90% 80% at 50% 40%, #13254A, #070E22 80%);
  box-shadow: inset 0 0 0 .5cqmin #4FA8FF, inset 0 0 6cqmin rgba(79,168,255,.35), 0 0 4cqmin rgba(79,168,255,.55);
  animation: fr-beam-open .6s .9s cubic-bezier(.6,0,.2,1) both; }
.fr-levelup .fr-hud { left: 50%; top: -4.4cqmin; z-index: 6; padding: .8cqmin 2.4cqmin; transform: translateX(-50%); border-radius: 1.4cqmin; white-space: nowrap;
  background: #FFC93C; color: #3A1F00; font: 400 3.4cqmin/1 "Bungee", system-ui, sans-serif; font-style: normal; box-shadow: 0 .6cqmin 0 #B87A00, 0 0 2.4cqmin rgba(255,201,60,.8);
  animation: fr-stamp .45s 1.4s cubic-bezier(.3,1.6,.5,1) both, fr-blink .5s 2s steps(2) 4; }
@keyframes fr-blink { 50% { opacity: .35; } }
.fr-levelup .fr-bar { left: 10%; right: 10%; bottom: 7%; height: 1.6cqmin; z-index: 5; border-radius: 99px; background: rgba(79,168,255,.18); box-shadow: inset 0 0 0 .25cqmin #4FA8FF; overflow: hidden; }
.fr-levelup .fr-bar i { position: absolute; inset: 0; width: 100%; transform-origin: left; background: linear-gradient(90deg, #4FA8FF, #9CF0FF); animation: fr-xp 2.4s 1.5s cubic-bezier(.3,0,.2,1) both; }
@keyframes fr-xp { from { transform: scaleX(0); } }
.wa-gamerboy .wa-big { font-family: "Bungee", system-ui, sans-serif; font-weight: 400; filter: drop-shadow(0 .5cqmin 0 #0A2A66) drop-shadow(0 0 2cqmin rgba(79,168,255,.7)); }
.wa-gamerboy .wa-big span { background-image: linear-gradient(180deg, #FFF3B0, #FFC93C 50%, #F08A00); animation: wa-jolt .5s calc(1.4s + var(--i) * .08s) both; }
.wa-gamerboy .wa-kicker, .wa-gamerboy .wa-sub { font-family: "Bungee", system-ui, sans-serif; font-weight: 400; letter-spacing: .04em; }
.wa-gamerboy .wa-kicker, .wa-gamerboy .wa-sub, .wa-gamerboy .wa-msg { color: #E6F3FF; text-shadow: 0 0 2cqmin #2A7BFF, 0 .3cqmin .6cqmin #000; }
.wa-gamerboy .wa-amount { border-color: #FFC93C; background: rgba(10,30,80,.6); box-shadow: 0 0 2.4cqmin rgba(255,201,60,.6), inset 0 0 2cqmin rgba(79,168,255,.4); color: #FFE38A; }

/* 21. Hắc mã chiến: tàn lửa đỏ thẫm; bảng sắt đen, hai cột lửa đỏ hai bên, viền đỏ cháy; Playfair SC đỏ thẫm */
.wa-warhorse-v { filter: drop-shadow(0 0 2.5cqmin rgba(200,20,30,.6)); }
.wa-crimson { background: #FFB3A0; box-shadow: 0 0 1.5cqmin .6cqmin rgba(200,20,30,.9); }
.fr-hellfire .fr-inner { border-radius: 1.4cqmin; background: radial-gradient(90% 80% at 50% 40%, #241014, #0A0507 80%);
  box-shadow: inset 0 0 0 .45cqmin #5A1A20, inset 0 0 7cqmin rgba(200,20,30,.35), 0 0 4cqmin rgba(200,20,30,.45);
  animation: fr-rift-open .8s .5s cubic-bezier(.7,0,.2,1) both; }
.fr-hellfire::before { content: ""; position: absolute; inset: -.6cqmin; z-index: -1; border-radius: 1.8cqmin;
  background: linear-gradient(120deg, #C8141E, #FF6A3D, #7A0A10, #FF6A3D, #C8141E) 0 0 / 300% 300%; animation: wa-in .3s 1.2s both, fr-electric 1.6s linear infinite;
  filter: drop-shadow(0 0 2.4cqmin #C8141E); }
.fr-hellfire .fr-flame { bottom: 0; width: 10%; height: 70%; z-index: 4; border-radius: 50% 50% 0 0; filter: blur(1cqmin);
  background: radial-gradient(60% 100% at 50% 100%, rgba(255,170,90,.95), rgba(200,20,30,.75) 50%, transparent 78%);
  animation: wa-in .4s 1.2s both, fr-flame .7s 1.6s ease-in-out infinite alternate; transform-origin: bottom; }
.fr-hellfire .fr-flame.is-l { left: -3%; }
.fr-hellfire .fr-flame.is-r { right: -3%; animation-delay: 1.3s, 1.9s; }
.wa-warhorse .wa-big { font-family: "Playfair Display SC", Georgia, serif; font-weight: 900; letter-spacing: .04em; filter: drop-shadow(0 0 1.2cqmin #C8141E) drop-shadow(0 0 3.5cqmin rgba(200,20,30,.7)); }
.wa-warhorse .wa-big span { background-image: linear-gradient(180deg, #FFD6C8, #FF4A3D 50%, #8C0A12); animation: wa-jolt .5s calc(1.3s + var(--i) * .08s) both; }
.wa-warhorse .wa-kicker, .wa-warhorse .wa-sub { font-family: "Playfair Display SC", Georgia, serif; font-weight: 900; letter-spacing: .12em; }
.wa-warhorse .wa-kicker, .wa-warhorse .wa-sub, .wa-warhorse .wa-msg { color: #FFE2DA; text-shadow: 0 0 2cqmin #C8141E, 0 .3cqmin .6cqmin #000; }
.wa-warhorse .wa-amount { border-color: #FF4A3D; background: rgba(50,6,10,.65); box-shadow: 0 0 3cqmin rgba(200,20,30,.7), inset 0 0 2cqmin rgba(255,74,61,.4); color: #fff; }

/* 22. Thiết ngưu: tàn lửa; tấm đá đen nứt dung nham, vết nứt sáng dần; Bungee cam dung nham */
.wa-ironbull-v { filter: drop-shadow(0 0 2.5cqmin rgba(255,110,20,.55)); }
.fr-magma .fr-inner { border-radius: 1.6cqmin; background: radial-gradient(90% 80% at 50% 40%, #2A211C, #100C0A 80%);
  box-shadow: inset 0 0 0 .45cqmin #4A3A30, inset 0 0 7cqmin rgba(255,110,20,.3), 0 1.4cqmin 4cqmin rgba(0,0,0,.5);
  animation: fr-stamp .55s .5s cubic-bezier(.3,1.4,.5,1) both; }
.fr-magma .fr-crackline { z-index: 4; height: .5cqmin; border-radius: 99px; background: linear-gradient(90deg, transparent, #FFD08A, #FF6A1A, transparent);
  box-shadow: 0 0 1.6cqmin #FF6A1A; transform-origin: left; transform: scaleX(0); animation: fr-crack .5s cubic-bezier(.7,0,.2,1) both, fr-throb 1.4s ease-in-out infinite alternate; }
.fr-magma .fr-crackline.is-1 { left: 4%; top: 14%; width: 40%; rotate: 12deg; animation-delay: 1s, 1.5s; }
.fr-magma .fr-crackline.is-2 { right: 3%; top: 70%; width: 36%; rotate: -16deg; animation-delay: 1.15s, 1.65s; }
.fr-magma .fr-crackline.is-3 { left: 10%; bottom: 10%; width: 28%; rotate: -6deg; animation-delay: 1.3s, 1.8s; }
@keyframes fr-crack { to { transform: scaleX(1); } }
.wa-ironbull .wa-big { font-family: "Bungee", system-ui, sans-serif; font-weight: 400; filter: drop-shadow(0 .5cqmin 0 #3A1A00) drop-shadow(0 0 2.6cqmin rgba(255,110,20,.75)); }
.wa-ironbull .wa-big span { background-image: linear-gradient(180deg, #FFF0C8, #FFA040 50%, #D2400A); animation: wa-coin-drop .7s calc(1.3s + var(--i) * .09s) cubic-bezier(.3,1.4,.5,1) both; }
.wa-ironbull .wa-kicker, .wa-ironbull .wa-sub { font-family: "Bungee", system-ui, sans-serif; font-weight: 400; letter-spacing: .04em; }
.wa-ironbull .wa-kicker, .wa-ironbull .wa-sub, .wa-ironbull .wa-msg { color: #FFE9D2; text-shadow: 0 0 2cqmin #D2400A, 0 .3cqmin .6cqmin #000; }
.wa-ironbull .wa-amount { border-color: #FF8A2A; background: rgba(40,20,10,.65); box-shadow: 0 0 3cqmin rgba(255,110,20,.6), inset 0 0 2cqmin rgba(255,138,42,.4); color: #FFF3DC; }

/* 23. Hoàng kim mãng xà: lấp lánh vàng; bảng đen viền vàng hoa văn, mắt rắn hổ phách mở ở đỉnh; Playfair SC vàng */
.wa-cobra-v { filter: drop-shadow(0 0 2.5cqmin rgba(255,190,60,.55)); }
.fr-sacred .fr-inner { border-radius: 1.4cqmin; background: radial-gradient(90% 80% at 50% 40%, #1E1A10, #0A0905 80%);
  box-shadow: inset 0 0 0 .5cqmin #C9962E, inset 0 0 0 1cqmin #1E1A10, inset 0 0 0 1.25cqmin rgba(232,190,90,.7), 0 0 4cqmin rgba(255,190,60,.4);
  animation: fr-reveal 1s .5s cubic-bezier(.3,0,.2,1) both; }
.fr-sacred .fr-orn { left: 50%; width: 40%; height: 1.6cqmin; z-index: 5; transform: translateX(-50%);
  background: repeating-linear-gradient(90deg, #E8BE5A 0 1.2cqmin, transparent 1.2cqmin 2cqmin); -webkit-mask-image: linear-gradient(90deg, transparent, #000 20%, #000 80%, transparent); mask-image: linear-gradient(90deg, transparent, #000 20%, #000 80%, transparent);
  filter: drop-shadow(0 0 1cqmin rgba(255,190,60,.8)); animation: wa-in .5s 1.3s both; }
.fr-sacred .fr-orn.is-t { top: 4%; }
.fr-sacred .fr-orn.is-b { bottom: 4%; }
.fr-sacred .fr-eye { left: 50%; top: -3.4cqmin; width: 11cqmin; height: 6cqmin; margin-left: -5.5cqmin; z-index: 6; border-radius: 50%;
  background: radial-gradient(ellipse 18% 46% at 50% 50%, #120A00 90%, transparent), radial-gradient(circle, #FFE07A, #E89A1A 60%, #8A4A00);
  box-shadow: 0 0 0 .4cqmin #1E1A10, 0 0 0 .7cqmin #C9962E, 0 0 2.6cqmin rgba(255,190,60,.9);
  transform: scaleY(0); animation: fr-eye-open .5s 1.4s cubic-bezier(.3,1.4,.5,1) both; }
@keyframes fr-eye-open { to { transform: scaleY(1); } }
.wa-cobra .wa-big { font-family: "Playfair Display SC", Georgia, serif; font-weight: 900; letter-spacing: .04em; filter: drop-shadow(0 .4cqmin 0 #4A3000) drop-shadow(0 0 2.6cqmin rgba(255,190,60,.7)); }
.wa-cobra .wa-big span { background-image: linear-gradient(180deg, #FFF6D0, #F2C04A 45%, #A86A00); animation: wa-float-in 1s calc(1.4s + var(--i) * .1s) cubic-bezier(.2,.8,.3,1) both; }
.wa-cobra .wa-kicker, .wa-cobra .wa-sub { font-family: "Playfair Display SC", Georgia, serif; font-weight: 900; letter-spacing: .12em; }
.wa-cobra .wa-kicker { color: #F2C04A; }
.wa-cobra .wa-sub, .wa-cobra .wa-msg { color: #FFF2CC; }
.wa-cobra .wa-kicker, .wa-cobra .wa-sub, .wa-cobra .wa-msg { text-shadow: 0 0 2cqmin rgba(201,150,46,.6), 0 .3cqmin .6cqmin #000; }
.wa-cobra .wa-amount { border-color: #E8BE5A; background: rgba(30,24,10,.7); box-shadow: 0 0 3cqmin rgba(255,190,60,.55), inset 0 0 2cqmin rgba(232,190,90,.35); color: #FFF2CC; }

@media (prefers-reduced-motion: reduce) {
  .wow-layer, .wow-layer * { animation-duration: .01s !important; animation-iteration-count: 1 !important; }
}

/* Siêu xe (2026-10-12) */
/* firecar: theo bộ chữ/khung của warhorse */
.wa-firecar-v { filter: drop-shadow(0 0 2.5cqmin rgba(200,20,30,.6)); }
.wa-firecar .wa-big { font-family: "Playfair Display SC", Georgia, serif; font-weight: 900; letter-spacing: .04em; filter: drop-shadow(0 0 1.2cqmin #C8141E) drop-shadow(0 0 3.5cqmin rgba(200,20,30,.7)); }
.wa-firecar .wa-big span { background-image: linear-gradient(180deg, #FFD6C8, #FF4A3D 50%, #8C0A12); animation: wa-jolt .5s calc(1.3s + var(--i) * .08s) both; }
.wa-firecar .wa-kicker, .wa-firecar .wa-sub { font-family: "Playfair Display SC", Georgia, serif; font-weight: 900; letter-spacing: .12em; }
.wa-firecar .wa-kicker, .wa-firecar .wa-sub, .wa-firecar .wa-msg { color: #FFE2DA; text-shadow: 0 0 2cqmin #C8141E, 0 .3cqmin .6cqmin #000; }
.wa-firecar .wa-amount { border-color: #FF4A3D; background: rgba(50,6,10,.65); box-shadow: 0 0 3cqmin rgba(200,20,30,.7), inset 0 0 2cqmin rgba(255,74,61,.4); color: #fff; }
/* neoncar: theo bộ chữ/khung của thunder */
.wa-neoncar-v { filter: drop-shadow(0 0 2.5cqmin rgba(140,120,255,.7)); }
.wa-neoncar .wa-zap { background: linear-gradient(90deg, transparent, #F1ECFF, #8C78FF, transparent); box-shadow: 0 0 1.5cqmin #8C78FF; }
.wa-neoncar .wa-big { font-family: "Bungee", system-ui, sans-serif; font-weight: 400; filter: drop-shadow(0 0 1cqmin #8C78FF) drop-shadow(0 0 3.4cqmin rgba(79,123,255,.8)); }
.wa-neoncar .wa-big span { background-image: linear-gradient(180deg, #FFFFFF, #CFC4FF 50%, #5B5BFF); animation: wa-jolt .5s calc(1.3s + var(--i) * .08s) both; }
.wa-neoncar .wa-kicker, .wa-neoncar .wa-sub { font-family: "Bungee", system-ui, sans-serif; font-weight: 400; letter-spacing: .04em; }
.wa-neoncar .wa-kicker, .wa-neoncar .wa-sub, .wa-neoncar .wa-msg { color: #F1ECFF; text-shadow: 0 0 2cqmin #6B55FF, 0 .3cqmin .6cqmin #000; }
.wa-neoncar .wa-amount { border-color: #B9A6FF; background: rgba(30,20,90,.6); box-shadow: 0 0 3cqmin #6B55FF, inset 0 0 2cqmin rgba(185,166,255,.5); color: #fff; }
/* goldcar: theo bộ chữ/khung của cobra */
.wa-goldcar-v { filter: drop-shadow(0 0 2.5cqmin rgba(255,190,60,.55)); }
.wa-goldcar .wa-big { font-family: "Playfair Display SC", Georgia, serif; font-weight: 900; letter-spacing: .04em; filter: drop-shadow(0 .4cqmin 0 #4A3000) drop-shadow(0 0 2.6cqmin rgba(255,190,60,.7)); }
.wa-goldcar .wa-big span { background-image: linear-gradient(180deg, #FFF6D0, #F2C04A 45%, #A86A00); animation: wa-float-in 1s calc(1.4s + var(--i) * .1s) cubic-bezier(.2,.8,.3,1) both; }
.wa-goldcar .wa-kicker, .wa-goldcar .wa-sub { font-family: "Playfair Display SC", Georgia, serif; font-weight: 900; letter-spacing: .12em; }
.wa-goldcar .wa-kicker { color: #F2C04A; }
.wa-goldcar .wa-sub, .wa-goldcar .wa-msg { color: #FFF2CC; }
.wa-goldcar .wa-kicker, .wa-goldcar .wa-sub, .wa-goldcar .wa-msg { text-shadow: 0 0 2cqmin rgba(201,150,46,.6), 0 .3cqmin .6cqmin #000; }
.wa-goldcar .wa-amount { border-color: #E8BE5A; background: rgba(30,24,10,.7); box-shadow: 0 0 3cqmin rgba(255,190,60,.55), inset 0 0 2cqmin rgba(232,190,90,.35); color: #FFF2CC; }
/* firebike: theo bộ chữ/khung của qilin */
.wa-firebike-v { filter: drop-shadow(0 0 2.5cqmin rgba(255,120,20,.55)); }
.wa-firebike .wa-big { font-family: "Playfair Display SC", Georgia, serif; font-weight: 900; letter-spacing: .04em; filter: drop-shadow(0 .4cqmin 0 #6B1A00) drop-shadow(0 0 3cqmin rgba(255,120,20,.8)); }
.wa-firebike .wa-big span { background-image: linear-gradient(180deg, #FFF6C9, #FFC13B 45%, #E2410C); animation: wa-coin-drop .8s calc(1.4s + var(--i) * .1s) cubic-bezier(.3,1.4,.5,1) both; }
.wa-firebike .wa-kicker, .wa-firebike .wa-sub { font-family: "Playfair Display SC", Georgia, serif; font-weight: 900; letter-spacing: .1em; }
.wa-firebike .wa-kicker { color: #FFD27A; }
.wa-firebike .wa-sub, .wa-firebike .wa-msg { color: #FFF1D6; }
.wa-firebike .wa-kicker, .wa-firebike .wa-sub, .wa-firebike .wa-msg { text-shadow: 0 0 2cqmin rgba(255,90,0,.7), 0 .3cqmin .6cqmin #000; }
.wa-firebike .wa-amount { border-color: #FFB13B; background: rgba(90,12,4,.6); box-shadow: 0 0 3cqmin rgba(255,120,20,.7), inset 0 0 2cqmin rgba(255,177,59,.4); color: #FFF3C4; }
/* neonbike: theo bộ chữ/khung của thunder */
.wa-neonbike-v { filter: drop-shadow(0 0 2.5cqmin rgba(140,120,255,.7)); }
.wa-neonbike .wa-zap { background: linear-gradient(90deg, transparent, #F1ECFF, #8C78FF, transparent); box-shadow: 0 0 1.5cqmin #8C78FF; }
.wa-neonbike .wa-big { font-family: "Bungee", system-ui, sans-serif; font-weight: 400; filter: drop-shadow(0 0 1cqmin #8C78FF) drop-shadow(0 0 3.4cqmin rgba(79,123,255,.8)); }
.wa-neonbike .wa-big span { background-image: linear-gradient(180deg, #FFFFFF, #CFC4FF 50%, #5B5BFF); animation: wa-jolt .5s calc(1.3s + var(--i) * .08s) both; }
.wa-neonbike .wa-kicker, .wa-neonbike .wa-sub { font-family: "Bungee", system-ui, sans-serif; font-weight: 400; letter-spacing: .04em; }
.wa-neonbike .wa-kicker, .wa-neonbike .wa-sub, .wa-neonbike .wa-msg { color: #F1ECFF; text-shadow: 0 0 2cqmin #6B55FF, 0 .3cqmin .6cqmin #000; }
.wa-neonbike .wa-amount { border-color: #B9A6FF; background: rgba(30,20,90,.6); box-shadow: 0 0 3cqmin #6B55FF, inset 0 0 2cqmin rgba(185,166,255,.5); color: #fff; }

/* ===== 29. Sóng thần: video 10s (hero), ô kính gợn sóng như cá voi; Playfair nghiêng xanh ngọc ===== */
.wa-wave-v { filter: drop-shadow(0 0 2.5cqmin rgba(79,230,255,.6)); }
.wa-wave .wa-big { font-family: "Playfair Display", Georgia, serif; font-style: italic; font-weight: 900; filter: drop-shadow(0 0 1.2cqmin rgba(79,230,255,.9)) drop-shadow(0 0 4cqmin rgba(42,123,255,.5)); }
.wa-wave .wa-big span { background-image: linear-gradient(180deg, #FFFFFF, #8FF0FF 50%, #4F7BFF); animation: wa-float-in 1s calc(1.2s + var(--i) * .12s) cubic-bezier(.2,.8,.3,1) both, wa-bob 2.4s calc(2.4s + var(--i) * .2s) ease-in-out infinite alternate; }
.wa-wave .wa-kicker, .wa-wave .wa-sub { font-family: "Lora", Georgia, serif; font-style: italic; font-weight: 600; letter-spacing: .08em; }
.wa-wave .wa-kicker, .wa-wave .wa-sub, .wa-wave .wa-msg { color: #E6FBFF; text-shadow: 0 0 2cqmin #2A7BFF, 0 .3cqmin .6cqmin #000; }
.wa-wave .wa-amount { border-color: #8FF0FF; background: rgba(10,30,80,.6); box-shadow: 0 0 3cqmin rgba(79,230,255,.7), inset 0 0 2cqmin rgba(143,240,255,.4); color: #fff; }

/* ============ Bộ bóng đá anime (2026-10-24, video 10 giây) ============ */
/* 30. Siêu sao sút lửa: tàn lửa đỏ + cỏ văng; bảng SÂN CỎ có vạch kẻ trắng, vòng giữa sân, tem "GOAL!" đóng dấu; Bungee cam lửa */
.wa-striker-v { filter: drop-shadow(0 0 2.6cqmin rgba(255,110,40,.6)); }
.wa-grass { bottom: -2cqmin; width: .5cqmin; height: 2.6cqmin; z-index: 3; border-radius: 99px 99px 0 0; background: linear-gradient(180deg, #B7F06A, #3FA531);
  transform: rotate(var(--r)); animation: wa-rise 3.4s var(--d) ease-out infinite; --s: 1; }
.fr-pitch .fr-inner { border-radius: 2cqmin;
  background: repeating-linear-gradient(90deg, #1E7A33 0 10%, #23893A 10% 20%), #1E7A33;
  box-shadow: inset 0 0 0 .5cqmin #F4FFF0, inset 0 0 7cqmin rgba(0,30,0,.7), 0 0 4cqmin rgba(255,110,40,.45);
  animation: fr-reveal 1s .5s cubic-bezier(.3,0,.2,1) both; }
.fr-pitch .fr-lines { inset: 6%; z-index: 4; border: .3cqmin solid rgba(244,255,240,.55); border-radius: .6cqmin;
  background: linear-gradient(90deg, transparent calc(50% - .15cqmin), rgba(244,255,240,.55) calc(50% - .15cqmin) calc(50% + .15cqmin), transparent calc(50% + .15cqmin));
  animation: wa-in .6s 1s both; }
.fr-pitch .fr-circle { left: 50%; top: 50%; width: 22cqmin; height: 22cqmin; margin: -11cqmin 0 0 -11cqmin; z-index: 4; border-radius: 50%;
  border: .3cqmin solid rgba(244,255,240,.45); animation: wa-in .6s 1.1s both; }
.fr-pitch .fr-goal { right: -3cqmin; top: -4cqmin; z-index: 6; padding: .9cqmin 2.4cqmin; border-radius: 1.2cqmin; transform: rotate(8deg);
  background: #FF3B1F; color: #fff; font: 400 4cqmin/1 "Bungee", system-ui, sans-serif; font-style: normal;
  box-shadow: 0 .6cqmin 0 #8A1305, 0 0 3cqmin rgba(255,80,30,.9); animation: fr-stamp .45s 7.4s cubic-bezier(.3,1.6,.5,1) both; }
.wa-striker .wa-big { font-family: "Bungee", system-ui, sans-serif; font-weight: 400; filter: drop-shadow(0 .5cqmin 0 #6B1204) drop-shadow(0 0 2.6cqmin rgba(255,110,40,.8)); }
.wa-striker .wa-big span { background-image: linear-gradient(180deg, #FFF3C2, #FFB13B 45%, #FF4A12 80%); animation: wa-jolt .5s calc(1.3s + var(--i) * .08s) both; }
.wa-striker .wa-kicker, .wa-striker .wa-sub { font-family: "Bungee", system-ui, sans-serif; font-weight: 400; letter-spacing: .04em; }
.wa-striker .wa-kicker, .wa-striker .wa-sub, .wa-striker .wa-msg { color: #FFFFFF; text-shadow: 0 .3cqmin 0 #0A3A14, 0 0 2cqmin rgba(0,0,0,.6); }
.wa-striker .wa-amount { border-color: #FFB13B; background: rgba(10,40,16,.7); box-shadow: 0 0 3cqmin rgba(255,120,40,.6); color: #FFE7B0; }

/* 31. Vua tâng bóng: bóng nhỏ nảy + kim tuyến vàng; BẢNG TỈ SỐ LED tối, nhãn "COMBO ×99" nhấp nháy, dải đèn chấm; Baloo vàng chanh */
.wa-juggler-v { filter: drop-shadow(0 0 2.4cqmin rgba(255,210,60,.55)); }
.wa-fball { bottom: 6cqh; width: 2.4cqmin; height: 2.4cqmin; z-index: 3; border-radius: 50%; transform: scale(var(--s));
  background: radial-gradient(circle at 35% 35%, #FFFFFF 0 38%, #1A1A1A 40% 46%, #FFFFFF 48%); box-shadow: 0 0 1cqmin rgba(255,255,255,.6);
  animation: wa-bounce .9s var(--d) cubic-bezier(.4,0,.6,1) infinite alternate; }
@keyframes wa-bounce { from { translate: 0 0; } to { translate: 0 calc(var(--h) * -1); } }
.fr-score .fr-inner { border-radius: 1.4cqmin; background: radial-gradient(90% 80% at 50% 40%, #1C1C24, #08080C 80%);
  box-shadow: inset 0 0 0 .5cqmin #FFD21F, inset 0 0 0 1cqmin #2A2A33, inset 0 0 6cqmin rgba(255,210,31,.18), 0 0 4cqmin rgba(255,210,31,.45);
  animation: fr-beam-open .6s .9s cubic-bezier(.6,0,.2,1) both; }
.fr-score .fr-led { left: 50%; top: -4.6cqmin; z-index: 6; padding: .8cqmin 2.6cqmin; transform: translateX(-50%); border-radius: 1cqmin; white-space: nowrap;
  background: #111; color: #FFD21F; border: .3cqmin solid #FFD21F; font: 700 3.6cqmin/1 "Doto", "Bungee", monospace; font-style: normal; letter-spacing: .08em;
  text-shadow: 0 0 1.2cqmin rgba(255,210,31,.9); box-shadow: 0 0 2.4cqmin rgba(255,210,31,.5);
  animation: fr-stamp .45s 1.4s cubic-bezier(.3,1.6,.5,1) both, fr-blink .5s 2s steps(2) 6; }
.fr-score .fr-led b { color: #FF5A1F; font-weight: 700; }
.fr-score .fr-dots { left: 8%; right: 8%; bottom: 5%; height: 1cqmin; z-index: 5;
  background: radial-gradient(circle, #FFD21F 0 40%, transparent 45%) 0 50% / 3cqmin 1cqmin repeat-x; filter: drop-shadow(0 0 .8cqmin #FFD21F);
  animation: wa-in .4s 1.6s both, fr-blink .7s 1.6s steps(2) infinite; }
.wa-juggler .wa-big { font-family: "Baloo 2", system-ui, sans-serif; font-weight: 800; filter: drop-shadow(0 .5cqmin 0 #5A3D00) drop-shadow(0 0 2cqmin rgba(255,210,31,.7)); }
.wa-juggler .wa-big span { background-image: linear-gradient(180deg, #FFFBD0, #FFE14D 45%, #E0A300 85%); animation: wa-coin-drop .7s calc(1.3s + var(--i) * .09s) cubic-bezier(.3,1.4,.5,1) both; }
.wa-juggler .wa-kicker, .wa-juggler .wa-sub, .wa-juggler .wa-msg { font-family: "Baloo 2", system-ui, sans-serif; font-style: normal; font-weight: 800; color: #FFF6D0; text-shadow: 0 .3cqmin .6cqmin #000; }
.wa-juggler .wa-amount { border-color: #FFD21F; background: rgba(0,0,0,.6); box-shadow: 0 0 3cqmin rgba(255,210,31,.55); color: #FFE14D; font-family: "Bungee", system-ui, sans-serif; font-weight: 400; } /* Doto thiếu chữ Đ */

/* 32. Ảo thuật bóng: sao bạc; bảng TÍM ĐÊM có hai vòng quỹ đạo xoay ngược nhau, quả bóng nhỏ chạy theo vòng; Playfair SC bạc tím */
.wa-spinner-v { filter: drop-shadow(0 0 2.6cqmin rgba(190,170,255,.6)); }
.wa-silver { background: #F2EEFF; box-shadow: 0 0 1.2cqmin .3cqmin rgba(190,170,255,.95); }
.fr-spin .fr-inner { border-radius: 3cqmin; background: radial-gradient(90% 80% at 50% 40%, #2A1B52, #0E0820 80%);
  box-shadow: inset 0 0 0 .4cqmin #CFC4FF, inset 0 0 7cqmin rgba(150,120,255,.3), 0 0 4cqmin rgba(150,120,255,.5);
  animation: fr-reveal 1s .5s cubic-bezier(.3,0,.2,1) both; }
.fr-spin .fr-orbit { left: 50%; top: 50%; width: 62cqmin; height: 30cqmin; margin: -15cqmin 0 0 -31cqmin; z-index: 4; border-radius: 50%;
  border: .25cqmin dashed rgba(207,196,255,.5); animation: wa-in .6s 1s both, fr-orbit 9s 1s linear infinite; }
.fr-spin .fr-orbit.is-2 { width: 44cqmin; height: 44cqmin; margin: -22cqmin 0 0 -22cqmin; border-style: dotted; animation-direction: normal, reverse; animation-duration: .6s, 12s; }
@keyframes fr-orbit { to { rotate: 360deg; } }
.fr-spin .fr-ball { left: 50%; top: 50%; z-index: 6; margin: -1.6cqmin 0 0 -1.6cqmin; font: 3.2cqmin/1 system-ui, sans-serif; font-style: normal;
  offset-path: ellipse(31cqmin 15cqmin at 50% 50%); filter: drop-shadow(0 0 1cqmin #CFC4FF); animation: wa-in .4s 1.4s both, fr-ball-run 3s 1.4s linear infinite; }
@keyframes fr-ball-run { to { offset-distance: 100%; } }
@supports not (offset-path: ellipse(1px 1px at 50% 50%)) { .fr-spin .fr-ball { display: none; } }
.wa-spinner .wa-big { font-family: "Playfair Display SC", Georgia, serif; font-weight: 900; letter-spacing: .04em; filter: drop-shadow(0 0 1.2cqmin rgba(207,196,255,.8)) drop-shadow(0 0 4cqmin rgba(130,100,240,.5)); }
.wa-spinner .wa-big span { background-image: linear-gradient(180deg, #FFFFFF, #DCD4FF 50%, #9A88E0); animation: wa-jolt .5s calc(1.3s + var(--i) * .08s) both; }
.wa-spinner .wa-kicker, .wa-spinner .wa-sub { font-family: "Playfair Display SC", Georgia, serif; font-weight: 900; letter-spacing: .12em; }
.wa-spinner .wa-kicker, .wa-spinner .wa-sub, .wa-spinner .wa-msg { color: #F2EEFF; text-shadow: 0 0 2cqmin rgba(130,100,240,.8), 0 .3cqmin .6cqmin #000; }
.wa-spinner .wa-amount { border-color: #CFC4FF; background: rgba(20,12,40,.6); box-shadow: 0 0 3cqmin rgba(190,170,255,.55), inset 0 0 2cqmin rgba(207,196,255,.3); color: #fff; }
/* Siêu sao sút lửa: video có cả khung thành (0–5,5 giây) nên KHÔNG đặt lệch trái như wa-hero10 — phủ trọn khung để thấy đủ người + cú sút vào lưới.
   Khung chữ hẹp bên phải, chỉ hiện từ giây 6 (khung thành đã biến mất, nhân vật ăn mừng giữa khung), tem GOAL! nảy lúc 7,4 giây. */
.wa-striker .wa-hero10.wa-striker-v { left: 0; bottom: 0; width: 100cqw; height: 100cqh; object-fit: contain; animation: wa-in .4s both; }
.wa-striker .wa-frame { width: 34cqw; right: 1.5cqw; animation: wa-in .5s 6s both; }
.wa-striker .wa-frame .wa-big { font-size: 9cqmin; }
.wa-striker .wa-kicker { font-size: 3cqmin; }
.wa-striker .wa-sub { font-size: 2.4cqmin; }
.wa-striker .wa-amount { font-size: 3.4cqmin; min-width: 26cqmin; padding: 1cqmin 2.4cqmin; }
.wa-striker .fr-pitch .fr-circle { width: 16cqmin; height: 16cqmin; margin: -8cqmin 0 0 -8cqmin; }
.wa-striker .fr-pitch .fr-inner { animation-delay: 6s; }
