:root{--gold-1: #fff4c4;--gold-2: #f6cf6a;--gold-3: #c98a22;--gold-4: #8a5210;--wine-1: rgba(92, 20, 10, .8);--wine-2: rgba(40, 8, 4, .82);--ink: #fff7e6}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;background:#120604;overflow:hidden;font-family:Kanit,system-ui,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased}.viewport{position:fixed;top:0;right:0;bottom:0;left:0}.stage{position:absolute;left:50%;top:50%;width:1080px;height:1920px;transform-origin:center;overflow:hidden}.scene{position:absolute;top:0;right:0;bottom:0;left:0;width:1080px;height:1920px}.panel{position:relative;background:radial-gradient(ellipse at 50% 0%,#ffbe6438,#ffbe6400 60%),linear-gradient(180deg,#62160adb,#2a0804e0);border:2px solid #e9b955;border-radius:14px;box-shadow:inset 0 0 0 4px #3c0c02e6,inset 0 0 0 5.5px #f6cf6a8c,inset 0 0 30px #ffbe5a2e,0 0 0 3px #3c0e0299,0 0 22px #ffbe5a59,0 12px 30px #00000080;padding:12px 16px}.fc{position:absolute;width:48px;height:50px;background:url(../art/f_corner.png) no-repeat left top / contain;pointer-events:none;filter:drop-shadow(0 2px 3px rgba(40,8,0,.8));z-index:2}.fc.tl{top:-7px;left:-7px}.fc.tr{top:-7px;right:-7px;transform:scaleX(-1)}.fc.bl{bottom:-7px;left:-7px;transform:scaleY(-1)}.fc.br{bottom:-7px;right:-7px;transform:scale(-1)}.crest{position:absolute;top:-36px;left:50%;width:124px;transform:translate(-50%);pointer-events:none;filter:drop-shadow(0 3px 4px rgba(40,8,0,.8)) drop-shadow(0 0 10px rgba(255,210,120,.5));z-index:3}.panel header{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;margin:-4px 0 8px;font-weight:600;font-size:25px;letter-spacing:.5px}.panel header span:first-child,.gold-text{background:linear-gradient(180deg,var(--gold-1) 10%,var(--gold-2) 55%,var(--gold-3));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 0 rgba(60,14,0,.9))}.panel header:after{content:"";flex-basis:100%;height:20px;margin-top:2px;background:url(../art/f_divider.png) no-repeat center / contain}.av{border-radius:50%;object-fit:cover;border:2px solid var(--gold-2);flex:none;display:inline-block;box-shadow:0 0 8px #ffc86480}.av-txt{display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:700}.title-plate{position:absolute;top:118px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:14px;white-space:nowrap;padding:4px 34px 10px;background:radial-gradient(ellipse at center,#3c0c0299,#3c0c0200 70%)}.title-plate h1{margin:0;font-family:Srisakdi,Kanit,serif;font-size:60px;line-height:1.25;background:linear-gradient(180deg,#fffbe0,#ffe08a 40%,#e2a43a,#fff0b8);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 3px 0 #5a1c02) drop-shadow(0 0 18px rgba(255,200,100,.7))}.title-plate .orn{color:var(--gold-2);font-size:26px;text-shadow:0 0 12px rgba(255,210,120,.9)}.goal{position:absolute;top:222px;left:50%;transform:translate(-50%);width:560px;display:flex;align-items:center;gap:12px;padding:8px 18px 8px 10px;border-radius:40px;background:linear-gradient(180deg,#460e08d1,#1e0604d1);border:1.5px solid rgba(246,207,106,.85);box-shadow:0 0 0 4px #46120480,0 8px 24px #0006}.goal-heart{width:50px;height:46px;object-fit:contain;filter:drop-shadow(0 0 8px rgba(255,80,110,.8))}.beat{animation:beat .45s ease}.beat2{animation:beat2 .45s ease}@keyframes beat{40%{transform:scale(1.3)}}@keyframes beat2{40%{transform:scale(1.3)}}.goal-track{position:relative;flex:1;height:30px;border-radius:20px;background:#00000073;border:1px solid rgba(246,207,106,.4);overflow:hidden}.goal-fill{position:absolute;inset:0 auto 0 0;border-radius:20px;background:linear-gradient(90deg,#ff5f7e,#ff9a6b 60%,#ffd77a);box-shadow:0 0 16px #ff7878cc;transition:width .6s ease}.goal-fill:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);background-size:200% 100%;animation:shine 2.4s linear infinite}@keyframes shine{0%{background-position:200% 0}to{background-position:-200% 0}}.goal-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;padding-left:14px;font-size:19px;font-weight:600;text-shadow:0 1px 3px rgba(0,0,0,.9)}.goal-num{font-weight:700;font-size:26px;color:var(--gold-1);min-width:96px;text-align:right}.goal-num small{font-size:18px;opacity:.75}.col-left{position:absolute;top:372px;left:18px;width:300px;display:flex;flex-direction:column;gap:26px}.prov{list-style:none;margin:0;padding:0}.prov li{display:flex;align-items:center;gap:10px;padding:4px 2px;font-size:22px;border-bottom:1px dashed rgba(246,207,106,.18)}.prov li:last-child{border:0}.rank{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;background:#ffffff1f;flex:none}.rank.r1{background:linear-gradient(180deg,#fff3b0,#e3a21a);color:#5a2800;box-shadow:0 0 10px #ffd25ae6}.rank.r2{background:linear-gradient(180deg,#fff,#a9b4c2);color:#2b3440}.rank.r3{background:linear-gradient(180deg,#ffd2a8,#b8652a);color:#3a1600}.pname{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pscore{font-weight:700;color:var(--gold-1)}.draw{text-align:center}.draw-time{font-size:64px;font-weight:700;line-height:1;margin:2px 0 4px;color:#ff6b5a;text-shadow:0 0 18px rgba(255,80,60,.9),0 3px 0 #4a0a00;font-variant-numeric:tabular-nums}.draw.open .draw-time{animation:pulse 1s ease-in-out infinite}.draw-time.idle{color:var(--gold-1);font-size:46px;text-shadow:0 0 14px rgba(255,200,100,.6),0 3px 0 #4a1a00}@keyframes pulse{50%{transform:scale(1.06)}}.draw-hint{font-size:19px;opacity:.92}.draw-count{margin-top:4px;font-size:18px;color:var(--gold-2)}.draw.open{border-color:#ff8a6a;box-shadow:0 0 0 4px #5a120499,0 0 30px #ff5a3c99,inset 0 0 24px #ff785040}.draw-last{margin-top:6px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:18px;color:var(--gold-1)}.donor{display:flex;align-items:center;gap:10px;padding:3px 0;font-size:20px}.crown{width:26px;text-align:center;font-weight:700;color:var(--gold-2)}.crown.c1{font-size:26px;color:#ffd76a;text-shadow:0 0 10px rgba(255,210,90,.9)}.dname{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gifts{position:absolute;top:372px;right:18px;width:352px;padding-bottom:8px}.gift-row{display:flex;align-items:center;gap:10px;padding:4px 2px;border-bottom:1px solid rgba(246,207,106,.14)}.gift-row:last-child{border:0}.gicon{width:50px;height:50px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:12px;background:radial-gradient(circle at 50% 40%,#ffdc8c52,#ffdc8c00 70%)}.gicon img{max-width:46px;max-height:46px;object-fit:contain;filter:drop-shadow(0 2px 3px rgba(0,0,0,.5))}.glabel{flex:1;font-size:20px;font-weight:500;line-height:1.15}.gcoin{display:inline-flex;align-items:center;gap:5px;font-weight:700;font-size:21px;color:var(--gold-1)}.coin{width:20px;height:20px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff7c8,#f2be3a 55%,#a36a10);box-shadow:0 0 6px #ffc850cc;display:inline-block}.cards{position:absolute;left:18px;top:1212px;width:448px;display:flex;flex-direction:column;gap:10px}.card{display:flex;align-items:center;gap:12px;padding:10px 16px 10px 10px;border-radius:18px;background:linear-gradient(100deg,#fff6e1f0,#ffe2aae6);color:#4a1c04;border:1.5px solid #f3c35a;box-shadow:0 8px 22px #0006,0 0 18px #ffc86459;animation:cardIn .5s cubic-bezier(.2,1.4,.4,1) both,cardOut .5s ease 6.5s forwards}.card.gold{background:linear-gradient(100deg,#fff1b8,#f3c35a 60%,#e6a531);border-color:#fff4c4}@keyframes cardIn{0%{opacity:0;transform:translate(-60px) scale(.9)}}@keyframes cardOut{to{opacity:0;transform:translate(-40px)}}.card-body{min-width:0}.card-name{font-weight:700;font-size:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-name em{font-style:normal;font-weight:500;font-size:16px;color:#9a4a10;margin-left:4px}.card-text{font-size:21px;line-height:1.3}.welcome{position:absolute;top:372px;max-width:326px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:6px 22px 6px 8px;border-radius:40px;font-size:23px;white-space:nowrap;background:linear-gradient(90deg,#6e1e06e6,#a0460ae6);border:1.5px solid var(--gold-2);box-shadow:0 0 20px #ffbe5a80;animation:pop .4s cubic-bezier(.2,1.5,.4,1)}.welcome b{color:var(--gold-1)}@keyframes pop{0%{opacity:0;transform:translate(-50%) scale(.7)}}.ticker{position:absolute;top:298px;animation:tickIn .5s ease;left:50%;transform:translate(-50%);white-space:nowrap;border-radius:40px;font-size:22px;padding:6px 22px;background:#140602b8;border:1px solid rgba(246,207,106,.6);box-shadow:0 6px 18px #0006}.ticker b{color:#ffd76a;margin:0 4px}.ticker .dot{color:var(--gold-2);margin:0 8px}.queue{position:absolute;right:18px;top:990px;width:330px;padding:8px 12px 10px}.queue header{font-size:21px;margin-bottom:4px}.qn{min-width:30px;height:30px;border-radius:15px;padding:0 8px;background:linear-gradient(180deg,#fff3b0,#e3a21a);color:#5a2800;font-weight:700;font-size:18px;display:inline-flex;align-items:center;justify-content:center}.qrow{display:flex;justify-content:space-between;gap:8px;font-size:18px;padding:2px 4px;opacity:.85}.qrow.now{opacity:1;color:var(--gold-1);font-weight:600}.qname{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qlabel{white-space:nowrap;color:#ffcf8a;font-size:16px}.banner{position:absolute;left:0;right:0;top:1512px;z-index:5;display:flex;justify-content:center;pointer-events:none;animation:bIn .6s cubic-bezier(.2,1.4,.4,1) both}@keyframes bIn{0%{opacity:0;transform:scale(.6)}}.banner-rays{position:absolute;top:50%;left:50%;width:900px;height:900px;margin:-450px 0 0 -450px;background:repeating-conic-gradient(from 0deg,#ffdc8c52,#ffdc8c52 6deg,#ffdc8c00 6deg,#ffdc8c00 18deg);-webkit-mask:radial-gradient(circle,#000 18%,transparent 62%);mask:radial-gradient(circle,#000 18%,transparent 62%);animation:spin 14s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.banner-box{position:relative;min-width:560px;max-width:880px;padding:26px 50px;text-align:center;border-radius:28px;background:linear-gradient(180deg,#6e1608f2,#320804f2);border:2px solid var(--gold-2);box-shadow:0 0 0 6px #501204b3,0 0 0 8px #f6cf6a80,0 0 60px #ffbe5a99}.banner-icon{position:absolute;top:-70px;left:50%;transform:translate(-50%);height:110px;filter:drop-shadow(0 0 20px rgba(255,210,120,.9));animation:float 2s ease-in-out infinite}@keyframes float{50%{transform:translate(-50%) translateY(-8px)}}.banner-title{margin-top:26px;font-size:48px;font-weight:700;background:linear-gradient(180deg,#fffbe0,#ffd56a 55%,#d38a20);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 3px 0 #3a0c00)}.banner-user{display:flex;align-items:center;justify-content:center;gap:16px;margin:12px 0 6px;font-size:40px;font-weight:700;color:#fff;text-shadow:0 0 16px rgba(255,210,120,.9)}.banner-user .av{border-width:3px}.banner-sub{font-size:28px;color:#ffe2a0}.b-grand .banner-box{background:linear-gradient(180deg,#fff6cc,#f3c35a 55%,#c9821e);border-color:#fff;box-shadow:0 0 0 6px #783204b3,0 0 0 9px #fff4c4,0 0 120px #ffdc78e6}.b-grand .banner-title{background:linear-gradient(180deg,#7a1f00,#3a0c00);-webkit-background-clip:text;background-clip:text;filter:none;font-size:56px}.b-grand .banner-user{color:#5a1800;text-shadow:0 0 12px rgba(255,255,255,.9)}.b-grand .banner-sub{color:#6a2500;font-weight:600}.b-grand .banner-rays{width:1300px;height:1300px;margin:-650px 0 0 -650px;background:repeating-conic-gradient(from 0deg,#fff0b480,#fff0b480 5deg,#fff0b400 5deg,#fff0b400 15deg)}.b-win .banner-box,.b-draw .banner-box{border-color:#ffb08a}.roll{position:absolute;top:1540px;z-index:6;left:50%;transform:translate(-50%);text-align:center;padding:22px 60px;border-radius:26px;background:#280602eb;border:2px solid #ff9a7a;box-shadow:0 0 50px #ff785099}.roll-title{font-size:28px;color:#ffc9a8}.roll-name{font-size:54px;font-weight:700;color:#fff;min-width:400px;text-shadow:0 0 20px rgba(255,200,120,.9)}.debug{position:absolute;bottom:10px;left:10px;font-size:18px;background:#0009;padding:4px 10px;border-radius:8px}@keyframes tickIn{0%{opacity:0;transform:translate(-50%) translateY(8px)}}.welcome span{overflow:hidden;text-overflow:ellipsis}.t-incense{--tc: 255, 96, 50}.t-candle{--tc: 255, 176, 70}.t-goldleaf{--tc: 255, 216, 96}.t-lotus{--tc: 255, 120, 190}.t-lantern{--tc: 255, 140, 40}.t-offering{--tc: 255, 170, 30}.t-goddess{--tc: 255, 90, 120}.t-radiance{--tc: 255, 240, 170}.plate{--tc: 255, 200, 100;position:absolute;left:50%;top:1590px;width:660px;height:306px;margin-left:-330px;z-index:4;animation:plateIn .55s cubic-bezier(.2,1.4,.4,1) both}@keyframes plateIn{0%{opacity:0;transform:translateY(60px) scale(.7)}}.plate-rays{position:absolute;left:50%;top:50%;width:760px;height:760px;margin:-380px 0 0 -380px;background:repeating-conic-gradient(from 0deg,rgba(var(--tc),.38),rgba(var(--tc),.38) 7deg,rgba(var(--tc),0) 7deg,rgba(var(--tc),0) 20deg);-webkit-mask:radial-gradient(circle,#000 14%,transparent 56%);mask:radial-gradient(circle,#000 14%,transparent 56%);animation:spin 12s linear infinite}.plate-bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;filter:drop-shadow(0 0 22px rgba(var(--tc),.85)) drop-shadow(0 10px 16px rgba(0,0,0,.55))}.plate-icon{position:absolute;left:-6px;top:50%;height:150px;max-width:150px;object-fit:contain;transform:translateY(-50%);filter:drop-shadow(0 0 16px rgba(var(--tc),1));animation:iconBob 1.6s ease-in-out infinite;z-index:2}@keyframes iconBob{50%{transform:translateY(-56%) rotate(-4deg)}}.plate-text{position:absolute;left:22%;right:16%;top:31%;bottom:29%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.plate-name{display:flex;align-items:center;gap:10px;max-width:100%;font-size:36px;font-weight:700;line-height:1.15;color:#fff4c4;text-shadow:0 2px 0 #4a0c00,0 0 14px rgba(var(--tc),.9)}.plate-name span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plate-label{margin-top:2px;font-size:25px;font-weight:500;color:#fff;white-space:nowrap;text-shadow:0 2px 4px rgba(0,0,0,.8)}.banner[class*=t-] .banner-box{box-shadow:0 0 0 6px #501204b3,0 0 0 8px #f6cf6a80,0 0 70px rgba(var(--tc),.8)}.banner[class*=t-] .banner-rays{background:repeating-conic-gradient(from 0deg,rgba(var(--tc),.4),rgba(var(--tc),.4) 6deg,rgba(var(--tc),0) 6deg,rgba(var(--tc),0) 18deg)}.banner-box .fc{width:62px;height:65px}.ticker.deity{display:flex;align-items:center;gap:10px;padding:4px 22px 4px 8px;border-color:#f6cf6ae6;box-shadow:0 0 18px #ffc86473}.tk-img{height:64px;max-width:70px;object-fit:contain;margin:-14px 0 -6px;filter:drop-shadow(0 0 8px rgba(255,220,140,.9))}.lucky{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:6px}.lk-label{font-size:18px;font-weight:600;color:#ffe9a8;text-shadow:0 1px 2px rgba(0,0,0,.9)}.lk-num{min-width:52px;height:46px;padding:0 10px;border-radius:23px;display:inline-flex;align-items:center;justify-content:center;font-size:30px;font-weight:700;letter-spacing:2px;color:#fff;background:radial-gradient(circle at 35% 30%,#ff6b5a,#c41e12 60%,#7a0c04);border:2px solid #ffd76a;box-shadow:0 0 14px #ffc85acc,inset 0 2px 4px #ffffff59;text-shadow:0 2px 0 #5a0800;animation:lkPop .6s cubic-bezier(.2,1.6,.4,1) both}.lk-num+.lk-num{animation-delay:.25s}@keyframes lkPop{0%{transform:scale(0) rotate(-30deg)}}.card .lucky{justify-content:flex-start;margin-top:4px}.card .lk-label{color:#8a3a08;text-shadow:none;font-size:16px}.card .lk-num{min-width:40px;height:34px;font-size:22px}.plate .lucky{position:absolute;left:0;right:0;bottom:-30px;z-index:3}.plate{top:1530px}.banner-box .lucky{margin-top:10px}.b-grand .lk-label{color:#6a2500;text-shadow:none}.realm-title{position:absolute;top:450px;left:330px;right:380px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;pointer-events:none;animation:realmIn 3.8s ease both}.realm-title span{font-family:Srisakdi,Kanit,serif;font-size:50px;white-space:nowrap;background:linear-gradient(180deg,#fffbe0,#ffd56a 55%,#d38a20);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 3px 0 #3a0c00) drop-shadow(0 0 20px rgba(255,210,120,.9))}.realm-title img{width:200px}@keyframes realmIn{0%{opacity:0;transform:scale(.8);letter-spacing:12px}18%,75%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.05)}}.show-label{position:absolute;left:50%;top:1290px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;padding:10px 40px 14px;border-radius:20px;background:#1e0602c7;border:2px solid #e9b955;box-shadow:0 0 24px #ffc86480;z-index:7;white-space:nowrap}.show-label small{font-size:22px;color:#ffcf8a}.show-label span{font-size:44px;font-weight:700;color:#fff4c4;text-shadow:0 2px 0 #4a0c00}.camframe{position:absolute;top:22px;width:222px;height:300px;border-radius:14px;border:4px solid #e8b860;box-shadow:0 0 0 2px #5a1c02,0 0 24px #ffc8648c,inset 0 0 0 2px #5a1c02cc;background:#1e08028c;display:flex;align-items:center;justify-content:center}.camframe.left{left:22px}.camframe.right{right:22px}.camframe span{font-family:Kanit,sans-serif;font-size:26px;color:#ffe6aa8c}
