html,body{margin:0;height:100%;background:radial-gradient(ellipse at 50% 40%,#2a1206,#000 75%);overflow:hidden;font-family:"Be Vietnam Pro","Segoe UI",Roboto,sans-serif}
#stage{background:#2a1408 url(../assets/sky.webp) center/cover;position:absolute;left:50%;top:50%;width:1080px;height:1920px;transform-origin:50% 50%;overflow:hidden}
#c{width:100%;height:100%;display:block}
#board{position:absolute;left:36px;top:250px;width:330px;padding:18px 22px 14px;border-radius:18px;
 background:linear-gradient(180deg,rgba(40,22,6,.62),rgba(20,10,2,.5));border:1.5px solid rgba(255,212,128,.55);
 box-shadow:0 0 24px rgba(255,190,90,.25),inset 0 0 18px rgba(255,200,120,.12);backdrop-filter:blur(3px);color:#ffe9c2}
.bt{font-family:Georgia,"Times New Roman",serif;font-size:34px;color:#ffd98a;text-align:center;letter-spacing:.5px;
 text-shadow:0 0 12px rgba(255,190,80,.6);border-bottom:1px solid rgba(255,212,128,.35);padding-bottom:8px;margin-bottom:6px}
#blist{list-style:none;margin:0;padding:0;font-size:25px}
#blist li{display:flex;justify-content:space-between;padding:5px 0;transition:all .5s}
#blist li span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}
#blist li .v{color:#ffd27a;font-weight:600}
#blist li.top span:first-child{color:#fff3cf}
#blist li.flash{background:rgba(255,200,100,.18);border-radius:8px}
#toasts{position:absolute;left:0;right:0;top:1270px;display:flex;flex-direction:column;align-items:center;gap:12px;pointer-events:none}
.toast{padding:12px 30px;border-radius:40px;font-size:30px;color:#fff6dd;background:linear-gradient(90deg,rgba(120,60,0,0),rgba(90,45,5,.7) 20%,rgba(90,45,5,.7) 80%,rgba(120,60,0,0));
 text-shadow:0 1px 4px #000;animation:tin 5s ease forwards}
.toast b{color:#ffd47a}
@keyframes tin{0%{opacity:0;transform:translateY(20px)}10%,80%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-20px)}}
#hint b{color:#ffd47a;font-weight:900}
#panel{position:absolute;right:20px;bottom:20px;display:flex;gap:10px;font-size:26px}
#panel input,#panel button{font-size:26px;padding:10px 14px;border-radius:10px;border:0}
#panel button{background:#d9a441;color:#2a1600}
#panel[hidden],#hint[hidden]{display:none}
#stage::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 42%,rgba(0,0,0,0) 55%,rgba(20,8,0,.45) 100%)}
#board{top:300px}
#blist li.top{background:linear-gradient(90deg,rgba(255,200,90,.28),rgba(255,200,90,0));border-radius:8px;padding-left:6px;animation:topg 2.4s ease-in-out infinite}
#blist li.top i{font-style:normal;color:#ffd86b;text-shadow:0 0 10px #ffb43a}
@keyframes topg{50%{box-shadow:0 0 22px rgba(255,190,80,.55);background-color:rgba(255,210,120,.12)}}
#goal{position:absolute;left:50%;top:36px;transform:translateX(-50%);width:600px;text-align:center;color:#ffe9c2}
.gt{font-size:27px;margin-bottom:8px;text-shadow:0 2px 6px #000}.gt span{color:#ffd47a;font-weight:600;margin-left:8px}
.gb{height:16px;border-radius:10px;background:rgba(30,14,2,.6);border:1.5px solid rgba(255,212,128,.6);overflow:hidden}
#gfill{height:100%;width:0;background:linear-gradient(90deg,#b8641a,#ffd47a,#fff3cf);box-shadow:0 0 14px #ffc860;transition:width 1.2s ease}
#bell{position:absolute;right:56px;top:310px;width:110px;height:120px;transform-origin:50% 0;opacity:0}
#bell svg{width:100%;height:100%;filter:drop-shadow(0 0 12px rgba(255,190,80,.7))}
#bell i{position:absolute;left:50%;top:60%;width:120px;height:120px;margin:-60px;border:3px solid rgba(255,214,140,.8);border-radius:50%;opacity:0}
#bell.ring{animation:bell 3.2s ease}#bell.ring i{animation:wave 1.6s ease-out 2}#bell.ring i+i{animation-delay:.5s}
@keyframes bell{0%{opacity:0}8%{opacity:1;transform:rotate(18deg)}20%{transform:rotate(-14deg)}32%{transform:rotate(10deg)}44%{transform:rotate(-6deg)}56%{transform:rotate(3deg)}85%{opacity:1;transform:none}100%{opacity:0}}
@keyframes wave{0%{opacity:.9;transform:scale(.4)}100%{opacity:0;transform:scale(2.4)}}
#combo{position:absolute;right:50px;top:470px;opacity:0;color:#fff3cf;font-size:30px;text-align:right;text-shadow:0 2px 6px #000}
#combo b{display:block;font-family:Georgia,serif;font-size:76px;color:#ffd47a;text-shadow:0 0 18px #ff9d2a,0 3px 6px #000}
#combo.pop{animation:pop 3s ease forwards}
@keyframes pop{0%{opacity:0;transform:scale(1.6)}10%{opacity:1;transform:scale(1)}80%{opacity:1}100%{opacity:0}}
#wish{position:absolute;left:90px;right:90px;top:1010px;text-align:center;font-size:30px;line-height:1.45;color:#fff1d6;opacity:0;text-shadow:0 2px 8px #000,0 0 18px rgba(0,0,0,.6)}
#wish b{color:#ffd47a}#wish q{font-family:"Dancing Script",Georgia,serif;font-size:46px;color:#fff;quotes:"“" "”"}
#wish.show{animation:tin 6s ease forwards}
#banner{position:absolute;left:0;right:0;top:880px;text-align:center;opacity:0;pointer-events:none}
#banner .b1{font-family:"Dancing Script",Georgia,serif;font-size:96px;color:#ffe3a0;text-shadow:0 0 26px #ff9a2a,0 4px 10px #000}
#banner .b2{font-size:32px;color:#fff3dc;text-shadow:0 2px 6px #000}
#banner.show{animation:tin 5.2s ease forwards}
#big{position:absolute;left:0;right:0;top:1050px;text-align:center;opacity:0;pointer-events:none}
#big .n{font-family:"Dancing Script",Georgia,serif;font-size:130px;line-height:1.1;background:linear-gradient(180deg,#fff7d8,#ffd166 45%,#b8701a);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 22px rgba(255,170,60,.9)) drop-shadow(0 4px 6px rgba(0,0,0,.8))}
#big .s{font-size:34px;color:#fff3dc;text-shadow:0 2px 6px #000}
#big.show{animation:bigin 6s ease forwards}
@keyframes bigin{0%{opacity:0;transform:scale(.7);letter-spacing:12px}15%{opacity:1;transform:scale(1);letter-spacing:0}80%{opacity:1}100%{opacity:0;transform:translateY(-30px)}}
#audio{position:absolute;left:36px;bottom:36px;font-size:24px;padding:10px 18px;border-radius:24px;border:1.5px solid rgba(255,212,128,.6);background:rgba(30,14,2,.6);color:#ffe9c2}
#audio.on{background:rgba(160,100,20,.7)}#audio[hidden]{display:none}
#fb{position:absolute;inset:0;overflow:hidden;--lit:.4}
#fb .l{position:absolute;inset:0;background:center/cover no-repeat}
#fb .sky{background-image:url(../assets/sky.webp);animation:fbdrift 40s ease-in-out infinite alternate}
#fb .far{background-image:url(../assets/far.webp);background-size:150% auto;background-position:50% 18%;opacity:.85;-webkit-mask:linear-gradient(transparent 0,#000 25%,#000 60%,transparent 80%);mask:linear-gradient(transparent 0,#000 25%,#000 60%,transparent 80%)}
#fb .mid{background-image:url(../assets/mid.webp);filter:brightness(calc(.85 + var(--lit)*.25))}
#fb .fg{background-image:url(../assets/fg.webp);-webkit-mask:linear-gradient(transparent 0,transparent 24%,#000 32%);mask:linear-gradient(transparent 0,transparent 24%,#000 32%)}
#fb .rays{position:absolute;left:50%;top:307px;width:2400px;height:2400px;margin:-1200px 0 0 -1200px;border-radius:50%;mix-blend-mode:screen;opacity:calc(.45 + var(--lit)*.35);
 background:repeating-conic-gradient(from 0deg,rgba(255,200,110,.55) 0 2deg,rgba(255,170,80,0) 2deg 7deg,rgba(255,220,150,.3) 7deg 8deg,rgba(0,0,0,0) 8deg 13deg);
 -webkit-mask:radial-gradient(circle,#000 5%,rgba(0,0,0,.6) 25%,transparent 50%);mask:radial-gradient(circle,#000 5%,rgba(0,0,0,.6) 25%,transparent 50%);animation:fbspin 120s linear infinite}
#fb .halo{position:absolute;left:50%;top:307px;width:0;height:0}
#fb .halo i{position:absolute;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);mix-blend-mode:screen;animation:fbpulse 4s ease-in-out infinite}
#fb .halo i:nth-child(1){width:300px;height:300px;background:radial-gradient(circle,rgba(255,235,180,.85),rgba(255,190,90,.35) 60%,transparent 72%)}
#fb .halo i:nth-child(2){width:380px;height:380px;border:6px solid rgba(255,220,140,.7);box-shadow:0 0 30px rgba(255,190,90,.8),inset 0 0 30px rgba(255,190,90,.6)}
#fb .halo i:nth-child(3){width:520px;height:520px;border:3px solid rgba(255,210,130,.45);box-shadow:0 0 24px rgba(255,180,80,.5);animation-delay:-1.3s}
#fb .halo i:nth-child(4){width:760px;height:760px;border:2px solid rgba(255,210,130,.25);box-shadow:0 0 40px rgba(255,170,70,.35);animation-delay:-2.6s}
#fb .lglow{position:absolute;left:50%;top:770px;width:1100px;height:420px;margin-left:-550px;border-radius:50%;background:radial-gradient(ellipse,rgba(255,170,190,.6),rgba(255,120,150,.2) 50%,transparent 70%);mix-blend-mode:screen;animation:fbpulse 5s ease-in-out infinite}
#fb .bud{position:absolute;left:50%;top:127px;height:900px;transform:translateX(-50%);filter:drop-shadow(0 0 18px rgba(255,150,60,.7)) saturate(1.15) contrast(1.08) brightness(calc(.95 + var(--lit)*.12))}
#fb .mist{position:absolute;left:-10%;right:-10%;top:930px;height:260px;background:radial-gradient(ellipse at 30% 50%,rgba(255,225,200,.45),transparent 60%),radial-gradient(ellipse at 75% 50%,rgba(255,215,190,.4),transparent 60%);filter:blur(10px);animation:fbdrift 18s ease-in-out infinite alternate}
#fb .pil{position:absolute;left:50%;top:1920px;animation:fbclimb 15s cubic-bezier(.2,.4,.5,1) forwards;text-align:center;width:0}
#fb .pil img{height:200px;transform:translateX(-50%);display:block;margin-left:var(--x)}
#fb .pil b{display:block;white-space:nowrap;transform:translateX(-50%);margin-left:var(--x);font:600 22px "Be Vietnam Pro",sans-serif;color:#ffe7b0;background:rgba(40,20,4,.72);border:2px solid rgba(255,210,130,.8);border-radius:20px;padding:3px 14px;width:max-content}
#fb .fx{position:absolute;inset:0;pointer-events:none}
#fb .lot{position:absolute;bottom:-120px;width:140px;animation:fbfloat 16s linear forwards;text-align:center}
#fb .lot img{width:140px;filter:drop-shadow(0 0 20px rgba(255,150,60,.9))}
#fb .lot b{display:block;font:600 22px "Be Vietnam Pro",sans-serif;color:#ffe7b0;white-space:nowrap}
#fb .pet{position:absolute;top:-30px;width:14px;height:22px;border-radius:50%;background:radial-gradient(#fff2f4,#f7a8bd 60%,#e0708f);animation:fbfall linear forwards}
#fb.burst .halo i,#fb.burst .rays{animation-duration:1.2s}
#fb.burst .rays{filter:brightness(1.4)}
#fb.dusk .sky,#fb.dusk .mid{filter:hue-rotate(-15deg) brightness(.8)}
@keyframes fbspin{to{transform:rotate(360deg)}}
@keyframes fbpulse{50%{opacity:.7;transform:translate(-50%,-50%) scale(1.04)}}
#fb .lglow{animation-name:fbglow}@keyframes fbglow{50%{opacity:.7}}
@keyframes fbdrift{to{transform:translateX(-20px)}}
@keyframes fbclimb{0%{top:1920px;transform:scale(1);opacity:0}5%{opacity:1}90%{opacity:1}100%{top:1000px;transform:scale(.35);opacity:0}}
@keyframes fbfloat{to{transform:translateY(-1500px) scale(.5);opacity:0}}
@keyframes fbfall{to{transform:translateY(2000px) rotate(720deg)}}
#loading{position:absolute;inset:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;background:linear-gradient(rgba(30,12,2,.35),rgba(30,12,2,.6));transition:opacity .8s;font:600 40px "Be Vietnam Pro",sans-serif;color:#ffe7b0;text-shadow:0 2px 10px #000}
#loading.done{opacity:0;pointer-events:none}
#loading .lb{width:520px;height:12px;border-radius:6px;background:rgba(0,0,0,.45);border:1px solid rgba(255,210,130,.6);overflow:hidden}
#lbar{height:100%;width:0;background:linear-gradient(90deg,#c98a2a,#ffe7a0);transition:width .3s}
#dbg{position:fixed;left:0;top:0;right:0;max-height:45vh;overflow:auto;z-index:99;margin:0;padding:8px;background:rgba(0,0,0,.8);color:#7f7;font:12px monospace;white-space:pre-wrap}
/* v4 live interactions */
#stats{position:absolute;right:36px;top:300px;width:250px;display:flex;flex-direction:column;gap:14px;align-items:flex-end;pointer-events:none}
#chant{width:250px;padding:14px 18px 14px;border-radius:18px;text-align:center;color:#ffe9c2;background:linear-gradient(180deg,rgba(60,30,5,.72),rgba(30,14,2,.6));border:1px solid rgba(255,200,120,.45);box-shadow:0 0 22px rgba(0,0,0,.35)}
#chant .k{display:block;font-size:24px;letter-spacing:.5px}#chant b{display:block;font-family:Georgia,serif;font-size:72px;line-height:1;color:#ffd47a;text-shadow:0 0 16px #ff9d2a}
#chant .s{font-size:20px;opacity:.8}#chant .cb{height:8px;border-radius:6px;background:rgba(255,255,255,.12);margin-top:8px;overflow:hidden}#chant .cb i{display:block;height:100%;width:0;background:linear-gradient(90deg,#d07a1a,#ffe08a);transition:width .6s}
#chant.hot{animation:hot 1s ease}@keyframes hot{30%{transform:scale(1.08);box-shadow:0 0 40px #ffb84a}}
#hearts{display:flex;align-items:center;gap:10px;padding:8px 20px;border-radius:40px;background:rgba(80,10,30,.55);border:1px solid rgba(255,140,170,.45);color:#fff}
#hearts .hi{font-size:34px;color:#ff6f91;text-shadow:0 0 12px #ff3d6e}#hearts b{font-size:34px;font-family:Georgia,serif}#hearts.beat .hi{animation:beat .5s}@keyframes beat{40%{transform:scale(1.45)}}
#live{font-size:20px;padding:4px 14px;border-radius:20px;background:#d1213a;color:#fff;font-weight:700}#live.off{background:rgba(0,0,0,.5);font-weight:400}
#celebrate{position:absolute;left:60px;right:60px;top:700px;text-align:center;opacity:0;pointer-events:none;color:#fff3dc}
#celebrate .t{font-family:"Dancing Script",Georgia,serif;font-size:92px;color:#ffe3a0;text-shadow:0 0 26px #ff9a2a,0 4px 10px #000}
#celebrate ol{list-style:none;padding:0;margin:14px 0 0;font-size:40px;text-shadow:0 2px 8px #000}#celebrate li{margin:8px 0}#celebrate li b{color:#ffd47a}#celebrate .n{font-size:30px;margin-top:12px;opacity:.9}
#celebrate.show{animation:tin 8s ease forwards}
#combo{top:640px}

/* v6 phone-safe layout */
#hint{position:absolute;left:0;right:0;top:1062px;height:64px;pointer-events:none;z-index:2}
#hint span{position:absolute;left:50%;top:0;transform:translateX(-50%);white-space:nowrap;font-size:36px;font-weight:700;color:#fff;padding:8px 26px;border-radius:30px;background:rgba(10,6,2,.45);text-shadow:0 2px 6px #000;opacity:0;animation:hintfade 12s ease-in-out infinite}
#hint span:nth-child(2){animation-delay:6s}
@keyframes hintfade{0%{opacity:0}8%,42%{opacity:1}50%,100%{opacity:0}}
#board{left:108px;top:290px;width:300px;transform:scale(.82);transform-origin:top left}
#stats{right:108px;top:290px;transform:scale(.82);transform-origin:top right}
#toasts{top:1140px;gap:8px}#toasts>:nth-child(n+3){display:none}
#wish{top:930px}
/* v8 audio unlock (only shown when browser blocks autoplay) */
#unlock{position:absolute;right:36px;top:36px;z-index:50;font-size:26px;padding:12px 22px;border-radius:28px;border:1.5px solid rgba(255,212,128,.7);background:rgba(30,14,2,.72);color:#ffe9c2;cursor:pointer}#unlock[hidden]{display:none}
/* ---- v9 extras ---- */
#hint span{animation:none!important;transition:opacity .8s;opacity:0}#hint span.on{opacity:1}
#sky{position:absolute;inset:0;pointer-events:none}
#sky>*{position:absolute;inset:0;opacity:0;transition:opacity 4s}
#sky .warm{background:linear-gradient(180deg,rgba(255,170,70,.55),rgba(255,140,40,.25) 60%,rgba(255,120,40,.1));mix-blend-mode:soft-light}
#sky .sunset{background:linear-gradient(180deg,rgba(255,120,90,1),rgba(255,170,110,.9) 45%,rgba(200,110,120,.8));mix-blend-mode:multiply}
#sky .night{background:radial-gradient(ellipse 330px 470px at 540px 520px,rgba(255,255,255,1) 40%,rgba(255,255,255,0) 100%),linear-gradient(180deg,rgba(40,52,120,1),rgba(70,70,130,1) 55%,rgba(90,80,120,1));background-blend-mode:screen;mix-blend-mode:multiply}
#sky .stars{width:1080px;height:900px;inset:auto;left:0;top:0;mix-blend-mode:screen}
#sky .moon{inset:auto;left:840px;top:150px;width:96px;height:96px;border-radius:50%;background:radial-gradient(circle at 38% 38%,#fffbe8,#f3e2b0 60%,#d8c08a);box-shadow:0 0 50px 18px rgba(255,240,200,.35)}
#sky .lg i{position:absolute;width:150px;height:150px;margin:-75px;border-radius:50%;background:radial-gradient(circle,rgba(255,190,90,.75),rgba(255,140,40,.25) 40%,rgba(0,0,0,0) 70%);mix-blend-mode:screen;animation:flick 2.6s ease-in-out infinite alternate}
#sky .lg i:nth-child(odd){animation-delay:-1.3s}
@keyframes flick{from{transform:scale(.9);opacity:.85}to{transform:scale(1.08);opacity:1}}
#hello{position:absolute;left:108px;right:108px;top:112px;text-align:center;font-size:30px;color:#ffeccb;text-shadow:0 2px 6px #000;opacity:0;pointer-events:none;z-index:3}
#hello b{color:#ffd47a}#hello.go{animation:hello 2.8s ease}
@keyframes hello{0%{opacity:0;transform:translateY(-6px)}15%,75%{opacity:1;transform:none}100%{opacity:0}}
#xam{position:absolute;left:0;right:0;top:640px;height:560px;pointer-events:none;opacity:0;z-index:4}
#xam.go{animation:xamfade 8s ease forwards}
@keyframes xamfade{0%{opacity:0}5%,90%{opacity:1}100%{opacity:0}}
#xam .ong{position:absolute;left:50%;top:40px;width:120px;height:210px;margin-left:-60px;transform-origin:50% 90%}
#xam.go .ong{animation:shake 1.8s ease-in-out, ongout 8s ease forwards}
#xam .ong svg{width:100%;height:100%;filter:drop-shadow(0 6px 14px rgba(0,0,0,.6))}
@keyframes shake{0%,100%{transform:rotate(0)}10%,30%,50%,70%{transform:rotate(-14deg)}20%,40%,60%,80%{transform:rotate(14deg)}}
@keyframes ongout{0%,30%{opacity:1}40%,100%{opacity:0}}
#xam .stick{position:absolute;left:50%;top:-10px;width:9px;height:96px;margin-left:-4px;border-radius:3px;background:#f0cf8a;box-shadow:0 0 10px rgba(255,210,120,.8);opacity:0}
#xam.go .stick{animation:stick 3s ease forwards}
@keyframes stick{0%,55%{opacity:0;transform:translate(0,0)}62%{opacity:1;transform:translate(0,-40px) rotate(-10deg)}85%{opacity:1;transform:translate(70px,180px) rotate(70deg)}100%{opacity:0;transform:translate(70px,180px) rotate(80deg)}}
#xam .card{position:absolute;left:50%;top:80px;width:600px;margin-left:-300px;padding:30px 34px 26px;text-align:center;border-radius:22px;background:linear-gradient(180deg,rgba(120,26,14,.94),rgba(74,14,6,.94));border:2px solid rgba(255,206,120,.85);box-shadow:0 0 40px rgba(255,170,60,.35),inset 0 0 0 6px rgba(255,206,120,.15);color:#ffeccb;opacity:0;transform:scale(.8) rotateX(70deg)}
#xam.go .card{animation:card 8s ease forwards}
@keyframes card{0%,30%{opacity:0;transform:scale(.8) rotateX(70deg)}40%{opacity:1;transform:scale(1.03) rotateX(0)}45%,92%{opacity:1;transform:none}100%{opacity:0;transform:scale(.96)}}
#xam .q{font-family:'Dancing Script',cursive;font-size:62px;color:#ffd47a;line-height:1.1}
#xam .l{font-size:38px;font-weight:600;margin:14px 0 12px;line-height:1.3}
#xam .nm{font-size:28px;color:#ffd9a0;opacity:.9}#xam .nm:before{content:'Quẻ của ';opacity:.8}
#urn{position:absolute;left:880px;top:1190px;width:150px;height:150px;pointer-events:none;z-index:2}
#urn .nh{position:absolute;bottom:0;width:4px;height:140px;margin-left:-2px;background:linear-gradient(180deg,#b5452a,#8a2f18 70%,#c99a4a 70%,#d8b070);border-radius:2px;transform-origin:50% 100%;transition:height 1s linear}
#urn .nh i{position:absolute;left:-2px;top:-3px;width:8px;height:8px;border-radius:50%;background:#ffb04a;box-shadow:0 0 10px 4px rgba(255,120,30,.75);animation:ember 1.4s ease-in-out infinite alternate}
#urn .nh s{position:absolute;left:-14px;top:-60px;width:30px;height:60px;border-radius:50%;background:radial-gradient(ellipse,rgba(255,240,225,.35),rgba(255,240,225,0) 70%);filter:blur(4px);animation:smoke 5s linear infinite}
#urn .nh s+s{animation-delay:-2.5s}
@keyframes ember{from{opacity:.75}to{opacity:1}}
@keyframes smoke{0%{transform:translate(0,30px) scale(.4);opacity:0}20%{opacity:1}100%{transform:translate(18px,-170px) scale(1.8,2.4);opacity:0}}
#cauan{position:absolute;left:540px;top:330px;width:0;height:0;pointer-events:none;opacity:0;z-index:4}
#cauan.go{animation:xamfade 6s ease forwards}
#cauan i{position:absolute;left:-160px;top:-160px;width:320px;height:320px;border-radius:50%;border:4px solid rgba(255,214,140,.9);box-shadow:0 0 24px rgba(255,190,90,.6);opacity:0}
#cauan.go i{animation:wave2 2.4s ease-out 2}#cauan.go i:nth-child(2){animation-delay:.6s}#cauan.go i:nth-child(3){animation-delay:1.2s}
@keyframes wave2{0%{transform:scale(.3);opacity:.9}100%{transform:scale(2.4);opacity:0}}
#cauan .t{position:absolute;left:-300px;width:600px;top:250px;text-align:center;font-size:32px;color:#ffeccb;text-shadow:0 2px 8px #000}
#cauan .t b{font-size:44px;color:#ffd47a}
#unlock{right:108px;top:560px;font-size:24px;padding:10px 18px}
#pov{position:absolute;inset:0;z-index:20;background:#000;opacity:0;pointer-events:none;transition:opacity .7s}
#pov.on{opacity:1}
#pov video{width:100%;height:100%;object-fit:cover}
#pov .cap{position:absolute;left:108px;right:108px;top:180px;text-align:center;font-size:40px;font-weight:600;color:#fff2d8;text-shadow:0 2px 10px #000,0 0 3px #000}
#pov .cap b{color:#ffd47a}
#guide{position:absolute;left:108px;top:670px;width:430px;padding:22px 28px;border-radius:22px;background:rgba(40,22,8,.62);border:2px solid rgba(255,212,122,.55);color:#fff2d8;font-size:30px;line-height:1.45;opacity:0;transform:translateY(16px);transition:opacity .6s,transform .6s;pointer-events:none;z-index:6}
#guide.on{opacity:1;transform:none}
#guide .t{font-size:34px;font-weight:700;color:#ffd47a;margin-bottom:6px}
#guide ul{margin:0;padding:0;list-style:none}
#guide b{color:#ffe7a8}
#guide .n{margin-top:8px;font-size:25px;opacity:.85}
.hoadang{position:absolute;top:1120px;width:220px;margin-left:-110px;text-align:center;pointer-events:none;z-index:5;animation:hdUp 16s ease-in forwards}
.hoadang .lot{width:70px;height:56px;margin:0 auto;border-radius:50% 50% 40% 40%;background:radial-gradient(circle at 50% 70%,#fff6c8 0,#ffc65a 30%,#ff7a4a 62%,rgba(255,90,60,0) 72%);box-shadow:0 0 40px 14px rgba(255,170,70,.55);animation:hdFl 2.4s ease-in-out infinite alternate}
.hoadang .nm{margin-top:8px;font-size:24px;line-height:1.25;color:#fff3da;text-shadow:0 2px 6px #000,0 0 3px #000}.hoadang .nm b{color:#ffd47a}
@keyframes hdUp{0%{transform:translate(0,0) scale(.7);opacity:0}8%{opacity:1}80%{opacity:1}100%{transform:translate(var(--dx),-860px) scale(.45);opacity:0}}
@keyframes hdFl{to{filter:brightness(1.25);transform:scale(1.06)}}
#quote{position:absolute;left:108px;right:108px;top:1132px;padding:12px 24px;border-radius:18px;text-align:center;font-size:28px;line-height:1.35;color:#fff2d8;background:rgba(40,22,8,.66);border:1px solid rgba(255,212,122,.5);opacity:0;transition:opacity .8s;pointer-events:none;z-index:6;max-height:112px;overflow:hidden}
#quote.on{opacity:1}#quote .t{font-size:20px;color:#ffd47a;letter-spacing:1px}
#caboard{position:absolute;right:108px;top:640px;width:330px;padding:14px 20px;border-radius:18px;background:linear-gradient(180deg,rgba(90,20,10,.72),rgba(50,12,4,.62));border:2px solid rgba(255,200,120,.55);color:#fff1d6;font-size:24px;line-height:1.35;opacity:0;transition:opacity .6s;pointer-events:none;z-index:4;transform:scale(.82);transform-origin:top right}
#caboard.on{opacity:1}#caboard .t{font-weight:700;color:#ffd47a;font-size:26px}#caboard .t.s{margin-top:6px;color:#e8d8ff}
#chantS{position:absolute;left:50%;top:160px;transform:translateX(-50%);white-space:nowrap;padding:10px 26px;border-radius:30px;font-size:30px;color:#fff2d8;background:rgba(60,28,6,.7);border:1px solid rgba(255,212,122,.6);opacity:0;transition:opacity .6s;pointer-events:none;z-index:6}
#chantS.on{opacity:1}#chantS b{color:#ffd47a}#chantS.live{background:rgba(120,50,8,.82);box-shadow:0 0 30px rgba(255,170,60,.5)}

/* v13 guide gọn */
#guide{left:24px;top:548px;width:auto;max-width:215px;padding:10px 14px;border-radius:16px;background:rgba(30,16,6,.38);border:1px solid rgba(255,212,122,.35);font-size:19px;line-height:1.38;backdrop-filter:blur(2px)}
#guide .t{font-size:23px;margin-bottom:3px}
#guide .n{margin-top:4px;font-size:17px}

/* v14 */
#goal .lk{display:flex;align-items:center;gap:10px;margin:8px auto 0;width:520px;font-size:19px;color:#ffd6e0}
#goal .lh{color:#ff6f91;font-size:20px;text-shadow:0 0 8px #ff3d6e}
#goal .lb2{flex:1;height:7px;border-radius:5px;background:rgba(255,255,255,.14);overflow:hidden}
#lfill{height:100%;width:0;background:linear-gradient(90deg,#c23a64,#ff8fb0,#ffe0ea);box-shadow:0 0 10px #ff6f91;transition:width 1s ease}
#ltx{min-width:150px;text-align:right;font-variant-numeric:tabular-nums}
#legend{margin:8px auto 0;display:inline-block;padding:5px 16px;border-radius:20px;background:rgba(30,16,6,.42);font-size:19px;color:#ffe9c2;opacity:0;transform:translateY(-4px);transition:opacity .35s,transform .35s}
#legend.in{opacity:1;transform:none}#legend span{color:#ffd47a;margin-right:6px}
#goal .lk{padding:4px 14px;border-radius:16px;background:rgba(40,8,20,.5);color:#ffe3ea;text-shadow:0 1px 3px rgba(0,0,0,.7)}
#goal .lb2{background:rgba(255,255,255,.22)}
#goal .lt{font-size:17px;opacity:.9}
#vsub{position:fixed;left:10%;right:10%;top:46%;z-index:40;text-align:center;font:600 2.7vw/1.45 'Be Vietnam Pro',sans-serif;color:#fff6dc;padding:1.2vw 2.6vw;border-radius:2vw;background:rgba(30,12,4,.55);text-shadow:0 2px 6px rgba(0,0,0,.8);opacity:0;transform:translateY(10px);transition:.6s;pointer-events:none}
#vsub.on{opacity:1;transform:none}
#vsub.kinh{color:#ffe9a8;font-size:3vw;border:1px solid rgba(255,214,120,.35)}
body:has(#vsub.kinh.on) #hint{opacity:0}
body:has(#chantS.live) #legend,body:has(.chantS.live) #legend{opacity:0}

/* v16 */
#xam.ai.go .card{animation:card2 16s ease forwards}
@keyframes card2{0%,14%{opacity:0;transform:scale(.8) rotateX(70deg)}19%{opacity:1;transform:scale(1.03) rotateX(0)}22%,95%{opacity:1;transform:none}100%{opacity:0;transform:scale(.96)}}
#xam .l.tho{font-size:32px;font-style:italic;margin:12px 0 10px}
#xam .loi{font-size:28px;color:#fff3d6;margin:0 0 12px;line-height:1.35}
#xam .gt{font-size:18px;color:#e8c58a;opacity:.7;margin-top:6px}
#vsub.thay{top:40%;font-size:2.6vw;border:1px solid rgba(255,214,120,.45);background:rgba(40,16,4,.68)}
#vsub.thay b{color:#ffd47a}#vsub.thay small{display:block;font-size:1.6vw;font-weight:500;color:#e8c58a;opacity:.8;margin-top:.5vw}
#vsub.thay .q{display:block;font-size:2vw;font-weight:500;color:#f0dcb4;opacity:.85;margin-bottom:.6vw;font-style:italic}
#cliprec{position:fixed;right:1.5vw;top:1.5vw;z-index:60;font:600 1.4vw sans-serif;color:#fff;background:rgba(200,30,30,.7);padding:.3vw .9vw;border-radius:2vw;display:none}
#cliprec.on{display:block}
#xam.ai.go{animation:xamfade2 16s ease forwards}#xam.ai.go .ong{animation:shake 1.8s ease-in-out, ongout 8s ease forwards}
@keyframes xamfade2{0%{opacity:0}4%,95%{opacity:1}100%{opacity:0}}

/* v17: đêm ấm sáng, chữ rõ */
#sky .night{background:linear-gradient(180deg,rgba(70,80,150,1),rgba(120,105,150,1) 60%,rgba(150,120,130,1))}
#sky .dusk2{background:radial-gradient(ellipse 420px 520px at 540px 560px,rgba(255,200,120,.22),rgba(0,0,0,0) 70%),linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(255,150,70,.12));mix-blend-mode:screen}
#sky .road{background:radial-gradient(ellipse 140px 520px at 540px 1500px,rgba(255,120,80,.38),rgba(0,0,0,0) 70%),radial-gradient(ellipse 260px 300px at 540px 1180px,rgba(255,190,110,.3),rgba(0,0,0,0) 70%);mix-blend-mode:screen}
#sky .lg i{width:190px;height:190px;margin:-95px;background:radial-gradient(circle,rgba(255,215,130,.95),rgba(255,150,50,.35) 38%,rgba(0,0,0,0) 70%)}
#guide{left:24px;top:560px;max-width:none;width:auto;padding:14px 22px;border-radius:18px;background:rgba(18,9,3,.86);border:2px solid rgba(255,212,122,.7);font-size:30px;line-height:1.45;backdrop-filter:none}
#guide li{white-space:nowrap}
#guide .t{font-size:32px;margin-bottom:4px}
#guide .n{font-size:22px;margin-top:4px}
#chantS{top:212px;font-size:30px;background:rgba(40,18,4,.88)}
.bt{font-family:"Be Vietnam Pro","Segoe UI",Roboto,sans-serif;font-weight:600;font-size:30px}
#board,#cung,#goal .lk{background-color:rgba(18,9,3,.82)}
#goal .lt{opacity:1;text-shadow:0 1px 3px #000,0 0 8px #000}
.bt{white-space:nowrap;font-size:27px}
/* v18 TikTok safe zone: 10% sides (108px), top 14% (269px), bottom ~38% (>1190px) */
#goal{top:282px;width:560px}
#chantS{top:400px;max-width:620px}
#board{top:470px}#stats{top:470px}
#hello{top:350px;left:220px;right:220px}
#pov .cap{top:300px}
#guide{left:50%;top:930px;transform:translateX(-50%) translateY(10px);max-width:520px;width:auto;padding:10px 20px;text-align:center;font-size:24px;background:rgba(30,16,6,.55)}
#guide.on{transform:translateX(-50%)}
#guide .t{font-size:26px}#guide .n{font-size:19px}
#hint{top:1030px}#toasts{top:1100px}#quote{top:1100px}
#unlock{top:620px}
#stage:has(#guide.on) #hint{opacity:0}

/* v19: Thầy AI trong safe zone, 1 overlay trung tâm 1 lúc */
#stage #vsub{position:absolute;left:108px;right:108px;top:600px;font:600 37px/1.42 'Be Vietnam Pro',sans-serif;padding:22px 30px;border-radius:26px;overflow-wrap:anywhere;word-break:normal;max-height:430px;overflow:hidden}
#stage #vsub.thay{top:560px;font-size:37px}
#stage #vsub.thay .q{font-size:28px;margin-bottom:10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
#stage #vsub.thay small{font-size:22px;margin-top:8px}
#stage #vsub.kinh{font-size:40px}
#stage #vsub .pg{font-style:normal;font-size:22px;color:#e8c58a;opacity:.8;margin-left:6px}
#stage:has(#xam.go) #vsub.thay,#stage:has(#xam.go) #toasts,#stage:has(#vsub.thay.on) #toasts{opacity:0}
#stage:has(#xam.go) .hoadang .nm,#stage:has(#vsub.thay.on) .hoadang .nm{opacity:0}
#xam .card{width:auto;left:108px;right:108px;margin-left:0}
#xam .l.tho{font-size:30px}#xam .loi{font-size:26px}
#stage #vsub,#stage #vsub.thay{top:690px}
#hello{top:430px;font-size:26px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#stage:has(#vsub.thay.on) #hint{opacity:0}
#stage:has(#xam.go) #hint,#stage:has(#xam.go) #hello{opacity:0!important}
/* v21 retain */
#rt{position:absolute;left:108px;right:108px;top:700px;display:flex;flex-direction:column;gap:8px;pointer-events:none;transition:opacity .6s;z-index:6}
#rt>div{display:flex;align-items:center;gap:10px;background:rgba(20,10,2,.55);border:1px solid rgba(255,212,122,.35);border-radius:22px;padding:6px 16px;color:#fff2d6;font-size:24px;font-weight:700;line-height:1.25;white-space:nowrap}
#rt i{font-style:normal;color:#ffd47a}#rt .mt{flex:1;overflow:hidden;text-overflow:ellipsis}#rt .mn{color:#ffd47a;font-weight:800;min-width:70px;text-align:right}
#rt .mb{width:190px;height:10px;border-radius:6px;background:rgba(255,255,255,.15);overflow:hidden;flex:none}#rt em{display:block;height:100%;width:0;background:linear-gradient(90deg,#ffb347,#ffe08a);box-shadow:0 0 10px #ffc861;transition:width .6s}
#rt .mm.ok{border-color:#ffe08a;box-shadow:0 0 18px rgba(255,210,110,.6)}
#rtban{position:absolute;left:108px;right:108px;top:820px;text-align:center;color:#fff3c4;font-size:50px;font-weight:900;line-height:1.25;text-shadow:0 0 18px #ff9f2e,0 2px 4px #000;opacity:0;transform:scale(.9);transition:opacity .7s,transform .7s;pointer-events:none;z-index:7}
#rtban.on{opacity:1;transform:none}#rtban small{display:block;font-size:26px;font-weight:700;color:#ffd9a0;margin-bottom:6px}
#rtban.dd span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:36px;color:#fff;text-shadow:0 0 16px #ffcf6b,0 0 30px #ff9f2e,0 2px 4px #000;margin:4px 0}#rtban small.w{margin-top:8px}
#stage .lan{position:absolute;bottom:300px;width:26px;height:34px;border-radius:45%;background:radial-gradient(circle at 50% 40%,#fff2b0,#ffb347 45%,#e8541e 80%);box-shadow:0 0 22px 6px rgba(255,170,60,.7);animation:lanUp 6s ease-out forwards;pointer-events:none;z-index:5}
@keyframes lanUp{0%{transform:translate(0,0);opacity:0}10%{opacity:1}100%{transform:translate(var(--x),-1300px);opacity:0}}
#stage:has(#vsub.thay.on) #rt,#stage:has(#xam.go) #rt,#stage:has(#rtban.on) #rt{opacity:0}
#stage:has(#rtban.on) #toasts,#stage:has(#rtban.on) #hint,#stage:has(#rtban.on) .guide{opacity:0!important}
#rtban{background:radial-gradient(ellipse at center,rgba(20,8,0,.55),rgba(20,8,0,0) 70%);padding:20px 0}

#stage:has(#xam.go) #rtban,#stage:has(#vsub.thay.on) #rtban,#stage:has(#pov.on) #rtban{opacity:0!important;transition:none!important}
#stage:has(#rtban.on) #guide{opacity:0!important}
#stage:has(#rtban.on) .hoadang .nm{opacity:0!important}
#rtban.qua span{display:block;font-size:32px;white-space:normal;max-height:84px;overflow:hidden;text-overflow:ellipsis}
#stage:has(#guide.on) #rt{opacity:0}
/* v23 bậc quà */
#lamps{position:absolute;left:60px;right:60px;top:1235px;display:grid;grid-template-columns:repeat(6,1fr);row-gap:14px;column-gap:8px;pointer-events:none;z-index:5}
.lamp{display:flex;flex-direction:column;align-items:center;animation:lampIn 1.2s ease-out,lampBob 4s ease-in-out infinite alternate;filter:drop-shadow(0 0 14px rgba(255,190,90,.85))}
.lamp i{font-style:normal;font-size:46px;line-height:1}
.lamp span{max-width:150px;margin-top:2px;padding:2px 10px;border-radius:12px;background:rgba(30,12,0,.62);color:#fff3cf;font:800 21px/1.25 system-ui,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 3px #000}
.lamp.new span{box-shadow:0 0 0 2px #ffd166,0 0 18px #ffb43a}
@keyframes lampIn{from{opacity:0;transform:translateY(40px) scale(.6)}to{opacity:1;transform:none}}
@keyframes lampBob{from{translate:0 -4px}to{translate:0 5px}}
#stage:has(#rtban.on) #lamps{opacity:.35}
#stage::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity 1.2s;background:radial-gradient(ellipse at 50% 42%,rgba(255,214,110,.55),rgba(255,170,40,.25) 45%,rgba(255,150,0,0) 75%);mix-blend-mode:screen;z-index:4}
#stage.gold::after{opacity:1}
#stage.gold canvas{filter:sepia(.35) saturate(1.5) brightness(1.18)}
#rtban.gold{color:#ffe28a}
#rtban.gold .mq{overflow:hidden;white-space:nowrap;margin:6px 0}
#rtban.gold .mq em{display:inline-block;font-style:normal;font-size:84px;font-family:"Dancing Script",Georgia,serif;background:linear-gradient(180deg,#fff7d8,#ffd166 45%,#b8701a);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 16px #ffb43a);animation:mq 8s linear}
@keyframes mq{0%{transform:translateX(70%)}25%{transform:translateX(0)}75%{transform:translateX(0)}100%{transform:translateX(-70%)}}
#rtban.gold small.w{font-size:30px;color:#fff3dc}
.fx4{position:absolute;inset:0;pointer-events:none;z-index:6;overflow:hidden}
.fx4 .ring4{position:absolute;left:50%;top:640px;width:900px;height:900px;margin:-450px 0 0 -450px;border-radius:50%;background:radial-gradient(circle,rgba(255,230,150,0) 52%,rgba(255,215,110,.75) 58%,rgba(255,180,60,.25) 64%,rgba(255,170,40,0) 70%);animation:ring4 10s ease-out forwards}
.fx4 .cloud4{position:absolute;left:-40%;top:330px;width:180%;height:260px;background:radial-gradient(ellipse at 20% 50%,rgba(255,240,210,.55),transparent 40%),radial-gradient(ellipse at 50% 40%,rgba(255,225,170,.5),transparent 35%),radial-gradient(ellipse at 80% 55%,rgba(255,240,210,.5),transparent 40%);filter:blur(8px);animation:cloud4 10s ease-in-out forwards}
.fx4 b{position:absolute;top:-80px;animation:rain4 6s linear forwards}
@keyframes ring4{0%{opacity:0;transform:scale(.3) rotate(0)}15%{opacity:1}80%{opacity:1}100%{opacity:0;transform:scale(1.15) rotate(90deg)}}
@keyframes cloud4{0%{opacity:0;transform:translateX(-12%)}20%{opacity:1}85%{opacity:1}100%{opacity:0;transform:translateX(12%)}}
@keyframes rain4{to{transform:translateY(2050px) rotate(360deg)}}
/* v24 guide: góc trái dưới Bảng công đức, nền đặc, chữ to */
#guide{left:108px!important;top:812px!important;right:auto!important;bottom:auto!important;transform:translateY(10px)!important;max-width:470px!important;width:auto!important;padding:16px 22px!important;text-align:left!important;
  background:#160b03!important;border:3px solid #e8b44a!important;border-radius:18px!important;box-shadow:0 6px 24px rgba(0,0,0,.6)!important;backdrop-filter:none!important;
  font-size:30px!important;font-weight:700!important;line-height:1.4!important;color:#fff4dc!important;transition:opacity .4s,transform .4s}
#guide.on{transform:none!important}
#guide .t{font-size:34px!important;font-weight:800!important;color:#ffd47a!important}
#guide .n{font-size:22px!important;font-weight:600!important}
#stage:has(#xam.go) #guide,#stage:has(#vsub.on) #guide,#stage:has(#rtban.on) #guide,#stage:has(#big.show) #guide{opacity:0!important}
/* v24 gõ chuông nổi bật */
#bell{right:30px!important;top:250px!important;width:190px!important;height:210px!important;z-index:5}
#bell svg{filter:drop-shadow(0 0 22px rgba(255,200,90,.95)) drop-shadow(0 0 50px rgba(255,170,60,.7))!important}
#bell i{width:220px!important;height:220px!important;margin:-110px!important;border-width:5px!important;box-shadow:0 0 22px rgba(255,200,90,.8)}
#bellFlash{position:absolute;inset:0;pointer-events:none;opacity:0;z-index:3;background:radial-gradient(ellipse at 50% 30%,rgba(255,222,150,.55),rgba(255,190,90,.18) 45%,rgba(255,170,60,0) 75%)}
#bellFlash.go{animation:bflash 1.6s ease-out}
@keyframes bflash{0%{opacity:0}12%{opacity:1}100%{opacity:0}}
#cauan{top:360px!important;z-index:6!important}
#cauan i{left:-280px!important;top:-280px!important;width:560px!important;height:560px!important;border:6px solid rgba(255,220,140,.95)!important;box-shadow:0 0 40px rgba(255,190,90,.85),inset 0 0 30px rgba(255,200,110,.5)!important}
#cauan.go i:nth-child(4){animation:wave2 2.4s ease-out 1.8s 2}
#cauan .t{top:452px!important;left:-470px!important;width:940px!important;display:flex;flex-direction:column;align-items:center;gap:4px;text-shadow:0 3px 10px #000}
#cauan .t b{display:inline-block;max-width:900px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:64px!important;font-weight:800;color:#ffd770!important;background:rgba(22,11,3,.88);border:3px solid #e8b44a;border-radius:20px;padding:6px 30px;box-shadow:0 0 30px rgba(255,190,80,.6)}
#cauan .t b small{font-size:34px;color:#fff1d0}
#cauan .t span{font-size:36px;font-weight:700;color:#fff1d0}
#stage:has(#cauan.go) #guide{opacity:0!important}
#stage:has(#xam.go) #cauan .t{opacity:0}
#stage:has(#guide.on) #hint{opacity:0!important}
#bell.ring{animation:bell 5s ease!important}#bell.ring i{animation:wave 1.6s ease-out 3!important}

/* v25: dọn gọn HUD, chừa vùng tượng + đài sen */
#legend[hidden]{display:none!important}
#goal{top:250px!important;transform:translateX(-50%) scale(.9);transform-origin:top center;opacity:.92}
#rt{top:410px!important;left:280px!important;right:280px!important;gap:5px!important;opacity:.88}
#rt>div{font-size:18px!important;padding:4px 12px!important;border-radius:14px!important;white-space:normal!important;background:rgba(18,9,2,.6)!important;flex-wrap:wrap;row-gap:3px}
#rt .mt{flex:1 1 100%!important;overflow:visible!important;text-overflow:clip!important;line-height:1.2}
#rt .mb{flex:1 1 auto!important;width:auto!important;height:6px!important}#rt .mn{min-width:0!important;font-size:17px}
#rt i{display:none}
#board{top:500px!important}#stats{top:500px!important}

#bellAck{position:absolute;right:30px;top:462px;padding:4px 14px;border-radius:16px;background:rgba(22,11,3,.85);border:2px solid #e8b44a;color:#fff1d0;font-size:21px;white-space:nowrap;opacity:0;transform:translateY(-6px);transition:opacity .3s,transform .3s;pointer-events:none;z-index:7}
#bellAck.on{opacity:1;transform:none}#bellAck b{color:#ffd770}
#stage:has(#xam.go) #bellAck{opacity:0}

/* v26b: vùng mặt Phật (x 400-680, y 150-460) cấm HUD; HUD dồn 2 cột mép */
#goal{left:40px!important;top:272px!important;width:340px!important;transform:none!important;opacity:.95}
#goal .gt{font-size:22px!important;text-align:left}#goal .gb{width:auto!important}
#goal .lk{width:auto!important;margin:6px 0 0!important;font-size:16px!important}
#rt{top:272px!important;left:auto!important;right:40px!important;width:340px!important}
#board{left:40px!important;top:420px!important;width:300px!important;transform:scale(.74)!important}
#stats{right:40px!important;top:420px!important;transform:scale(.74)!important}
#caboard{right:40px!important;top:700px!important;transform:scale(.74)!important}
/* v27 room combo */
#rcombo{position:absolute;right:40px;top:820px;width:300px;padding:12px 16px 14px;border-radius:18px;background:linear-gradient(160deg,rgba(60,22,8,.82),rgba(28,10,4,.78));border:1.5px solid rgba(255,206,120,.55);box-shadow:0 6px 24px rgba(0,0,0,.45),inset 0 0 18px rgba(255,190,90,.12);color:#fff3d6;font:600 22px/1.2 system-ui,sans-serif;z-index:6;opacity:0;transform:translateX(30px);transition:opacity .4s,transform .4s;pointer-events:none}
#rcombo.on{opacity:1;transform:none}
#rcombo .rc1{font-size:26px;letter-spacing:.5px;color:#ffe2a0}#rcombo .rc1 b{font-size:40px;color:#ffd36b;text-shadow:0 0 14px rgba(255,190,70,.8);margin-left:6px}
#rcombo .rcn{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 8px;min-height:26px}#rcombo .rcn span{font-size:17px;padding:2px 9px;border-radius:10px;background:rgba(255,215,140,.16);color:#ffeccc;white-space:nowrap}
#rcombo .rcb{position:relative;height:8px;border-radius:5px;background:rgba(255,255,255,.14);overflow:hidden}#rcombo .rcb i{position:absolute;inset:0 auto 0 0;width:0;background:linear-gradient(90deg,#f6b13a,#ffe08a);transition:width .5s}#rcombo .rcb s{position:absolute;top:0;bottom:0;width:2px;background:rgba(40,15,0,.7)}
#rcombo.hit .rc1 b{animation:rch .45s}@keyframes rch{40%{transform:scale(1.25)}}
#rcombo.pop{animation:rcp 1.2s}@keyframes rcp{20%{box-shadow:0 0 50px rgba(255,200,90,.9),inset 0 0 30px rgba(255,210,120,.4)}}
#rcombo.t3{border-color:#ffd36b}
#rcwave{position:absolute;left:-560px;top:560px;width:2200px;height:740px;border-radius:50%;z-index:3;pointer-events:none;opacity:0;background:radial-gradient(closest-side,transparent 78%,rgba(255,236,170,0) 80%,rgba(255,240,180,.55) 87%,rgba(255,226,140,.95) 91%,rgba(255,190,80,.5) 95%,transparent 100%);filter:drop-shadow(0 0 18px rgba(255,200,90,.8))}
#rcwave.go{animation:rcw 2.6s ease-out}#rcwave.go.t2{animation-duration:3s}#rcwave.go.t3{animation:rcw 3.4s ease-out}
@keyframes rcw{0%{opacity:0;transform:scale(.03)}12%{opacity:1}100%{opacity:0;transform:scale(1)}}
/* v27b wish tree */
#wtree{position:absolute;left:-222px;top:388px;width:600px;height:555px;pointer-events:none;z-index:0}
#wtree img{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 10px 14px rgba(0,0,0,.35)) brightness(1.02) saturate(1.05);transition:filter 2s}
#stage.isnight #wtree img{filter:brightness(.52) saturate(.8) hue-rotate(-6deg) drop-shadow(0 0 10px rgba(0,0,0,.5))}
#wtree .rb{position:absolute;inset:0}
#wtree .rib{position:absolute;width:30px;height:184px;margin-left:-15px;transform-origin:50% 0;transform:scale(var(--s)) rotate(0);animation:rsw var(--d) ease-in-out infinite;filter:drop-shadow(0 3px 3px rgba(0,0,0,.35))}
#wtree .rib::before,#wtree .rib::after{content:'';position:absolute;left:0;width:30px;background:url(../assets/dailua.webp?v=28) no-repeat;background-size:30px 184px}
#wtree .rib::before{top:0;height:44px;background-position:0 0;z-index:1}
#wtree .rib::after{bottom:0;height:54px;background-position:0 100%;z-index:1}
#wtree .rib span{position:absolute;left:1px;right:1px;top:40px;height:96px;clip-path:polygon(22% 0,78% 0,92% 22%,84% 52%,100% 88%,62% 100%,50% 94%,38% 100%,0 88%,16% 52%,8% 22%);padding-bottom:6px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;font:800 15px/1 system-ui,sans-serif;letter-spacing:.3px;color:#fff3cf;text-shadow:0 0 3px rgba(70,0,0,.95),0 1px 1px rgba(0,0,0,.8);overflow:hidden;white-space:nowrap;border-radius:3px 3px 2px 2px;
 background:repeating-linear-gradient(168deg,rgba(0,0,0,0) 0 14px,rgba(60,0,0,.22) 17px,rgba(255,170,150,.16) 20px,rgba(0,0,0,0) 24px 34px),linear-gradient(90deg,#7c0d10,#c01d20 18%,#e2443a 38%,#f06a55 47%,#cf2624 60%,#a3141a 80%,#6c0a0d);box-shadow:inset 0 0 0 1px rgba(255,190,120,.25);animation:silk calc(var(--d)*.7) ease-in-out infinite alternate}
@keyframes silk{to{background-position:0 8px,0 0;transform:skewX(-2.5deg)}}
#wtree .rib::before{content:'';top:-1px}
#wtree .rib i.str{display:none}
#wtree .rb::before{content:none}
#wtree .rib.new{animation:rdrop 2.4s ease-out,rsw var(--d) 2.4s ease-in-out infinite;filter:drop-shadow(0 0 10px rgba(255,205,100,.95)) brightness(1.12)}
#wtree .rib.new span{color:#fff;background:repeating-linear-gradient(168deg,rgba(0,0,0,0) 0 14px,rgba(60,0,0,.2) 17px,rgba(255,190,160,.2) 20px,rgba(0,0,0,0) 24px 34px),linear-gradient(90deg,#8a0c0e,#d01c20 22%,#ff6a50 46%,#e02a26 62%,#900e10)}
#stage.isnight #wtree .rib{filter:drop-shadow(0 0 7px rgba(255,90,50,.6)) brightness(1.05)}
#stage.isnight #wtree .rib.new{filter:drop-shadow(0 0 14px rgba(255,200,100,1)) brightness(1.2)}
@keyframes rsw{0%,100%{transform:scale(var(--s)) rotate(calc(var(--a)*-1)) skewX(1deg)}50%{transform:scale(var(--s)) rotate(var(--a)) skewX(-1deg)}}
@keyframes rdrop{0%{transform:scale(var(--s)) translateY(-60px) rotate(0);opacity:0}15%{opacity:1;transform:scale(var(--s)) rotate(14deg)}35%{transform:scale(var(--s)) rotate(-10deg)}55%{transform:scale(var(--s)) rotate(6deg)}75%{transform:scale(var(--s)) rotate(-3deg)}100%{transform:scale(var(--s)) rotate(calc(var(--a)*-1))}}
#wcard{position:absolute;left:24px;top:905px;width:330px;padding:7px 14px;border-radius:14px;background:linear-gradient(150deg,rgba(120,14,14,.9),rgba(60,8,6,.88));border:1.5px solid rgba(255,206,120,.6);color:#fff1d2;font:600 19px/1.25 system-ui,sans-serif;opacity:0;transform:translateY(-8px);transition:opacity .4s,transform .4s;z-index:5;pointer-events:none}
#wcard.on{opacity:1;transform:none}#wcard b{display:block;color:#ffd36b;font-size:19px}#wcard i{font-style:normal}

body.wishon #board{transform:scale(.66)!important;top:405px!important;background-color:rgba(18,9,3,.6)!important}
#wtree .rib span.lg{font-size:12px}

/* v29 hàng chờ xăm */
#xqbox{position:absolute;right:48px;top:912px;width:196px;padding:8px 14px 8px;border-radius:16px;background:rgba(20,10,2,.62);border:1.5px solid rgba(255,212,128,.45);color:#fff;font-size:22px;line-height:1.3;text-shadow:0 2px 5px #000;pointer-events:none;opacity:0;transform:translateX(20px);transition:opacity .5s,transform .5s;z-index:3}
#xqbox.on{opacity:1;transform:none}
#xqbox .xt{font-size:21px;font-weight:700;color:#ffd47a;margin-bottom:4px}
#xqbox .xn{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#xqbox .xn i{font-style:normal;display:inline-block;width:24px;color:#ffd47a;font-weight:700}
#xqbox .xm{font-size:19px;opacity:.85;margin-top:2px}
#xqbox .xj{font-size:19px;line-height:1.25;margin-top:6px;padding-top:5px;border-top:1px solid rgba(255,212,128,.35);color:#fff6dd}#xqbox .xj b{color:#ffd47a}
#xqbox{z-index:5}
#xqbox .xc{display:none}#stage:has(#xam.go) #xqbox{top:1056px;z-index:3}#stage:has(#xam.go) #xqbox .xn,#stage:has(#xam.go) #xqbox .xm{display:none}#stage:has(#xam.go) #xqbox .xc{display:inline}
#stage:has(#xam.go) #xqbox{width:auto;min-width:196px}#stage:has(#xam.go) #xqbox .xt{white-space:nowrap}#stage:has(#xam.go) #xqbox .xj{max-width:236px}

/* v37 wread */
#wtree .rib.rd{z-index:99!important;filter:drop-shadow(0 0 14px rgba(255,215,120,1)) brightness(1.3);animation:rsw var(--d) ease-in-out infinite,rdglow 1.6s ease-in-out infinite}
@keyframes rdglow{50%{filter:drop-shadow(0 0 22px rgba(255,230,150,1)) brightness(1.45)}}
#wcard.rd{border-color:rgba(255,226,150,.95);box-shadow:0 0 18px rgba(255,200,100,.55)}

/* v38 xam2: thẻ quẻ có lời bình */
#xam.x2.go{animation:xamfade3 22s ease forwards}#xam.x2.go .ong{animation:shake 1.8s ease-in-out, ongout 8s ease forwards}
#xam.x2.go .card{animation:card3 22s ease forwards}
@keyframes xamfade3{0%{opacity:0}3%,97%{opacity:1}100%{opacity:0}}
@keyframes card3{0%,10%{opacity:0;transform:translateY(24px)}15%,97%{opacity:1;transform:none}100%{opacity:0;transform:none}}
#xam.x2 .card{top:20px;left:96px;right:96px;padding:0 0 18px;overflow:hidden;background:linear-gradient(180deg,#fbf0d6,#f1dfb6);border:3px solid #b8892e;box-shadow:0 0 0 3px rgba(120,20,10,.85),0 18px 50px rgba(0,0,0,.55);color:#4a1a0c;text-align:center}
#xam.x2 .hd{background:linear-gradient(180deg,#a3221a,#7a130d);color:#ffe2a0;font:700 34px/1 'Noto Serif','Be Vietnam Pro','Segoe UI',Arial,sans-serif;letter-spacing:2px;padding:16px 0 14px;border-bottom:3px solid #c9a050}
#xam.x2 .nh{font:800 46px/1.1 'Noto Serif','Be Vietnam Pro','Segoe UI',Arial,sans-serif;color:#8e1a10;margin:16px 0 4px;text-transform:uppercase}
#xam.x2 .td{font:italic 600 28px/1.2 'Noto Serif','Be Vietnam Pro','Segoe UI',Arial,sans-serif;color:#5a2a10;margin-bottom:8px}
#xam.x2 .l.tho{font:500 28px/1.42 'Noto Serif','Be Vietnam Pro','Segoe UI',Arial,sans-serif;font-style:normal;color:#3a1608;margin:8px 22px 4px}
#xam.x2 .hr{height:2px;margin:12px 40px;background:linear-gradient(90deg,transparent,#b8892e,transparent)}
#xam.x2 .lb{text-align:left;margin:6px 30px 0;font:700 23px/1.2 'Be Vietnam Pro','Segoe UI',system-ui,sans-serif;color:#8e1a10}
#xam.x2 .tx{text-align:left;margin:2px 30px 4px;font:500 24px/1.32 'Be Vietnam Pro','Segoe UI',system-ui,sans-serif;color:#3a1608}
#xam.x2 .nm2{margin-top:12px;font:600 23px/1.2 'Be Vietnam Pro','Segoe UI',system-ui,sans-serif;color:#7a2a12}#xam.x2 .nm2 b{color:#8e1a10}
#xam.x2 .gt{color:#6e4a22;opacity:1;font-size:19px;margin-top:4px}
/* v40: thẻ quẻ nổi trên bảng Cầu an khi bật mặc định */
#xam.go{z-index:12}
body:has(#xam.go) #caboard{opacity:0!important;transition:opacity .4s}

/* v41: chữ thẻ quẻ nét: không scale/filter, font hỗ trợ tiếng Việt */
#xam.x2 .card{will-change:auto;filter:none;backdrop-filter:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}

/* v42: thông báo lên vùng an toàn giữa màn hình, tránh vùng comment TikTok */
#toasts{top:1010px!important;gap:8px}#toasts>:nth-child(n+3){display:none}
