:root{--gold:#efbc43;--gold2:#ffe58a;--brown:#140907;--panel:#21100b;--ink:#fff7df}
*{box-sizing:border-box}
html{min-height:100%;background:#141414}
body{margin:0;min-height:100vh;color:var(--ink);font-family:Inter,"Noto Sans SC","Microsoft YaHei",sans-serif;background:#141414}
button,a{font:inherit}
button{cursor:pointer}
.game-shell{width:100%;max-width:720px;min-height:100dvh;margin:auto;padding-bottom:0;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr);align-content:start;background-color:#100807;background-image:linear-gradient(180deg,rgba(10,3,2,.08),rgba(8,5,4,.16)),url("treasure-frame-user.png");background-position:center 78px;background-size:100% auto;background-repeat:no-repeat}
.game-header{grid-column:1;grid-row:1;width:100%;height:78px;padding:0 18px;display:grid;grid-template-columns:42px minmax(0,1fr) 66px;align-items:center;border-bottom:3px solid #d7a12d;background:radial-gradient(circle at 50% 0,rgba(199,113,24,.22),transparent 60%)}
.back-link{width:38px;height:38px;display:grid;place-items:center;color:#f5c85d;text-decoration:none;font-size:35px;line-height:1}
.brand{min-width:0;display:flex;justify-content:center;align-items:center;gap:10px;color:#f6cb68;text-decoration:none}.brand img{width:48px;height:48px;object-fit:contain;filter:drop-shadow(0 5px 9px rgba(0,0,0,.45))}.brand strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:17px;letter-spacing:.2px}
.lang-toggle{height:34px;padding:0 8px;border:1px solid rgba(239,188,67,.65);border-radius:18px;color:#f6d57d;background:#160b08;font-size:11px;font-weight:800}
.treasure-top{grid-column:1;grid-row:2;width:100%;height:184px;overflow:hidden}.treasure-top img{width:100%;height:100%;display:block;object-fit:cover;object-position:center top}
.game-intro{grid-column:1;grid-row:4;z-index:2;width:100%;align-self:center;justify-self:stretch;padding:28px 22px 22px;text-align:center;background:radial-gradient(ellipse at center,rgba(20,9,7,.54),rgba(20,9,7,.14) 56%,transparent 76%)}.eyebrow{display:block;color:#d89d2d;font-family:Georgia,serif;font-size:11px;font-weight:700;letter-spacing:3px}.game-intro h1{margin:9px 0 8px;font-family:Georgia,"Noto Serif SC",serif;font-size:40px;letter-spacing:3px;color:#f4d478;text-shadow:0 2px 0 #5f3108,0 0 18px rgba(239,188,67,.16)}.game-intro>p{margin:0;color:#f0e0c7;font-size:14px;text-shadow:0 2px 5px rgba(0,0,0,.9)}
.round-status{max-width:460px;margin:24px auto 0;padding:11px 15px;display:flex;justify-content:space-between;align-items:center;border:1px solid rgba(239,188,67,.27);border-radius:12px;background:rgba(20,9,7,.82);color:#ac9e91;font-size:12px}.round-status b{display:flex;align-items:center;gap:7px;color:#f5d579}.round-status i{width:7px;height:7px;border-radius:50%;background:#e7ae31;box-shadow:0 0 10px #e7ae31}
.chest-board{grid-column:1;grid-row:3;width:70%;max-width:500px;margin:-42px auto 0;padding:0 8px 10px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 4px;perspective:800px}
.chest{position:relative;aspect-ratio:1.08;padding:0;border:0;background:transparent;isolation:isolate;transition:transform .2s ease,filter .2s ease}.chest:hover{transform:translateY(-3px);filter:brightness(1.07)}.chest:disabled{cursor:default}.chest:disabled:not(.selected){filter:grayscale(.55) brightness(.58);transform:none}.chest-visual{position:absolute;inset:0;transform:scale(.70);transform-origin:center}
.chest-glow{position:absolute;z-index:-1;left:13%;right:13%;bottom:5%;height:32%;border-radius:50%;background:rgba(217,139,25,.22);filter:blur(13px)}
.chest-lid,.chest-base{position:absolute;left:7%;right:7%;display:block;background:linear-gradient(90deg,#5d260b,#b96d18 20%,#f0b944 48%,#a95810 76%,#4a1a08);border:2px solid #f3cc67;box-shadow:inset 0 -8px 12px rgba(70,20,0,.55),inset 0 4px 4px rgba(255,235,148,.2),0 8px 14px rgba(0,0,0,.35)}
.chest-lid{z-index:3;top:17%;height:35%;border-radius:44% 44% 8px 8px;transform-origin:50% 100%;transition:transform .62s cubic-bezier(.2,.82,.23,1)}.chest-lid::after{content:"";position:absolute;left:44%;top:-4%;width:12%;height:108%;background:linear-gradient(90deg,#7e470e,#ffe17a,#8c4d0c);border:1px solid #f7dc83}
.chest-base{z-index:2;bottom:10%;height:45%;border-radius:7px 7px 13px 13px}.chest-base::before{content:"";position:absolute;inset:10% 6%;border:1px solid rgba(255,225,129,.55);border-radius:5px}.chest-lock{position:absolute;z-index:4;left:50%;top:48%;width:23%;aspect-ratio:.8;transform:translate(-50%,-50%);border:2px solid #ffe795;border-radius:5px;background:linear-gradient(145deg,#ffdc69,#9a5910);box-shadow:0 3px 7px rgba(0,0,0,.4)}.chest-lock::after{content:"";position:absolute;left:50%;top:43%;width:18%;height:28%;transform:translate(-50%,-50%);border-radius:50% 50% 3px 3px;background:#4d2706;box-shadow:0 7px 0 -1px #4d2706}.chest-number{display:none}
.chest.selected{animation:chestPop .72s ease}.chest.selected .chest-lid{transform:translateY(-8%) rotateX(-105deg)}.chest.selected .chest-glow{background:rgba(255,195,54,.78);filter:blur(19px);animation:glowPulse .7s ease infinite alternate}.chest.selected .chest-lock{opacity:0;transition:opacity .18s}.chest.selected::after{content:"✦";position:absolute;z-index:1;left:50%;top:4%;transform:translateX(-50%);color:#ffe992;font-size:25px;text-shadow:-32px 21px 0 #c88218,32px 18px 0 #ffe89b;animation:sparkRise .8s ease both}
@keyframes chestPop{35%{transform:translateY(-8px) scale(1.04)}70%{transform:translateY(2px) scale(.98)}}@keyframes glowPulse{to{opacity:.55;transform:scale(1.15)}}@keyframes sparkRise{from{opacity:0;transform:translate(-50%,28px) scale(.4)}to{opacity:1;transform:translate(-50%,-5px) scale(1)}}
.treasure-stage{grid-column:1;grid-row:4;width:100%;height:300px;overflow:hidden;margin:0;position:relative}.treasure-stage::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,3,2,.18),transparent 36%,rgba(8,3,2,.12));pointer-events:none}.treasure-stage img{width:100%;height:calc(100% + 44px);display:block;object-fit:cover;object-position:center top}.demo-note{display:none}
.reward-backdrop{position:fixed;z-index:50;inset:0;padding:22px;display:grid;place-items:center;background:rgba(5,3,2,.76);backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:.25s}.reward-backdrop.open{opacity:1;visibility:visible}.reward-card{position:relative;width:min(100%,390px);overflow:hidden;padding:40px 24px 27px;text-align:center;border:1px solid #d49b28;border-radius:24px;background:radial-gradient(circle at 50% 0,#5e320e,#21100b 42%,#100806);box-shadow:0 26px 80px rgba(0,0,0,.68),0 0 35px rgba(224,159,37,.14);transform:scale(.82) translateY(18px);transition:.32s cubic-bezier(.2,.9,.25,1.15)}.reward-backdrop.open .reward-card{transform:scale(1) translateY(0)}
.reward-fireworks{position:absolute;z-index:0;inset:0;width:100%;height:100%;display:block;pointer-events:none;opacity:.9;mix-blend-mode:screen}
.reward-coin{position:relative;z-index:2;left:50%;width:118px;height:118px;margin:0 0 14px;display:block;transform:translateX(-50%);animation:coinFloat 1.4s ease-in-out infinite alternate}.reward-coin img{position:absolute;z-index:1;left:50%;top:50%;width:170px;height:170px;max-width:none;display:block;object-fit:contain;transform:translate(-50%,-50%);filter:drop-shadow(0 10px 10px rgba(72,30,0,.42))}@keyframes coinFloat{from{transform:translateX(-50%) translateY(0)}to{transform:translateX(-50%) translateY(-7px)}}
.reward-card p{position:relative;margin:0;color:#d8c8ac}.reward-card h2{position:relative;margin:7px 0 5px;color:#ffe17a;font-family:Georgia,serif;font-size:45px;text-shadow:0 2px 0 #6d3405}.reward-card small{position:relative;display:block;color:#927f6d;font-size:11px}.play-again{position:relative;width:78%;height:48px;margin-top:25px;border:0;border-radius:12px;background:linear-gradient(110deg,#bd7a18,#ffe684 52%,#c27f1a);color:#160b06;font-weight:900;font-size:16px;box-shadow:0 10px 25px rgba(0,0,0,.32)}
@media(max-width:420px){.game-header{grid-template-columns:35px 1fr 57px;padding:0 10px}.brand{gap:7px}.brand img{width:43px;height:43px}.brand strong{font-size:14px}.lang-toggle{padding:0 5px}.treasure-top{height:112px}.game-intro{padding:18px 14px 16px}.game-intro h1{font-size:33px;margin:6px 0}.game-intro>p{font-size:12px}.round-status{margin-top:16px;padding:9px 10px;font-size:10px}.chest-board{width:78%;margin:-24px auto 0;padding:0 3px 7px;gap:4px 2px}.chest-visual{transform:scale(.68)}.chest-lid,.chest-base{left:4%;right:4%}.treasure-stage{height:270px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.eyebrow{display:none}
.game-intro{transform:translateY(36px)}
@media(max-width:420px){.game-intro{transform:translateY(28px)}}
.voucher-panel{max-width:460px;margin:10px auto 0;display:grid;grid-template-columns:1fr 110px 150px;gap:8px;align-items:center}.voucher-panel>span,.voucher-panel label{height:40px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(239,188,67,.25);border-radius:10px;background:rgba(20,9,7,.78);color:#f7db96;font-size:12px;font-weight:800}.voucher-panel b{font-size:20px;color:#ffe17a;margin-right:5px}.voucher-panel label{gap:7px;padding:0 8px}.voucher-panel input{width:48px;height:28px;border:1px solid rgba(239,188,67,.45);border-radius:7px;background:#120705;color:#ffe7a5;text-align:center;font-weight:900}.voucher-panel button{height:40px;border:0;border-radius:10px;background:linear-gradient(110deg,#bd7a18,#ffe684 52%,#c27f1a);color:#160b06;font-size:12px;font-weight:900}.voucher-panel button:disabled{cursor:default;filter:grayscale(.75) brightness(.55)}.reward-detail{min-height:18px;color:#cdbb9d!important;font-size:12px!important;line-height:1.45!important}
@media(max-width:420px){.voucher-panel{grid-template-columns:1fr 96px;gap:6px}.voucher-panel button{grid-column:1/-1}.voucher-panel>span,.voucher-panel label,.voucher-panel button{height:36px}}

/* Curtain title overlay for the treasure opening page. */
.treasure-top{position:relative;height:184px}
.treasure-top::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 64%,rgba(0,0,0,.08) 0,rgba(0,0,0,.34) 38%,rgba(0,0,0,.68) 100%),linear-gradient(180deg,rgba(12,3,1,.03),rgba(12,3,1,.18) 45%,rgba(12,3,1,.78));pointer-events:none}
.curtain-title{position:absolute;z-index:2;left:24px;right:24px;bottom:18px;text-align:center;pointer-events:none}
.curtain-title::before,.curtain-title::after{content:"";position:absolute;top:50%;width:min(20%,92px);height:1px;background:linear-gradient(90deg,transparent,rgba(255,213,107,.78),transparent)}
.curtain-title::before{left:0}
.curtain-title::after{right:0}
.curtain-title span{display:block;margin-bottom:6px;color:#ffd96f;font-size:10px;font-weight:900;letter-spacing:3px;text-shadow:0 2px 7px #000}
.curtain-title strong{display:block;font-family:"Microsoft YaHei","Noto Serif SC","Songti SC",serif;font-size:38px;line-height:1.05;letter-spacing:3px;background:linear-gradient(180deg,#fff5be 0,#ffd369 38%,#bd6d14 76%,#7c3609 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-stroke:1px rgba(97,37,5,.45);filter:drop-shadow(0 2px 0 rgba(255,238,163,.45)) drop-shadow(0 8px 16px rgba(0,0,0,.8))}
.game-intro h1{display:none}
@media(max-width:420px){.curtain-title{left:18px;right:18px;bottom:11px}.curtain-title::before,.curtain-title::after{width:14%}.curtain-title span{margin-bottom:4px;font-size:9px;letter-spacing:2px}.curtain-title strong{font-size:30px;letter-spacing:2px}}

/* Stronger red-lantern lighting and richer title treatment. */
.treasure-top{height:194px;isolation:isolate;background:#080201}
.treasure-top img{filter:saturate(1.18) contrast(1.08) brightness(1.08)}
.treasure-top::before{content:"";position:absolute;z-index:1;inset:0;background:
  radial-gradient(circle at 13% 66%,rgba(255,58,25,.82) 0 7%,rgba(255,115,36,.38) 10%,rgba(255,173,54,.12) 18%,transparent 31%),
  radial-gradient(circle at 50% 76%,rgba(255,70,24,.82) 0 8%,rgba(255,141,37,.4) 12%,rgba(255,200,79,.12) 21%,transparent 34%),
  radial-gradient(circle at 88% 62%,rgba(255,58,25,.72) 0 7%,rgba(255,116,38,.34) 11%,rgba(255,184,66,.12) 20%,transparent 32%),
  radial-gradient(ellipse at 50% 8%,rgba(255,205,91,.2),transparent 36%);
  mix-blend-mode:screen;pointer-events:none;animation:lanternGlow 2.8s ease-in-out infinite alternate}
.treasure-top::after{z-index:1;background:
  linear-gradient(180deg,rgba(15,2,1,.04),rgba(15,2,1,.18) 36%,rgba(15,2,1,.58) 72%,rgba(15,2,1,.88)),
  radial-gradient(ellipse at 50% 77%,rgba(0,0,0,.08) 0,rgba(0,0,0,.34) 40%,rgba(0,0,0,.72) 100%)}
.curtain-title{bottom:20px;z-index:3}
.curtain-title::before,.curtain-title::after{top:64%;height:2px;width:min(19%,96px);background:linear-gradient(90deg,transparent,rgba(255,224,122,.95),rgba(178,83,12,.5),transparent);box-shadow:0 0 12px rgba(255,190,76,.55)}
.curtain-title span{margin-bottom:5px;color:#ffe179;font-size:11px;letter-spacing:4px;text-shadow:0 2px 5px #000,0 0 12px rgba(255,180,52,.4)}
.curtain-title strong{font-family:"Microsoft YaHei","Noto Serif SC","Songti SC",serif;font-size:44px;font-weight:900;letter-spacing:3px;background:linear-gradient(180deg,#fff8cf 0,#ffe177 27%,#f0a432 52%,#a94b08 76%,#5b2001 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-stroke:1.2px rgba(82,30,0,.62);filter:drop-shadow(0 2px 0 rgba(255,244,166,.45)) drop-shadow(0 5px 0 rgba(78,30,2,.72)) drop-shadow(0 13px 14px rgba(0,0,0,.92));position:relative}
.curtain-title strong::after{content:"";position:absolute;left:50%;top:54%;width:min(72%,280px);height:42%;transform:translateX(-50%);background:linear-gradient(90deg,transparent,rgba(255,235,145,.36),transparent);filter:blur(8px);z-index:-1}
@keyframes lanternGlow{from{opacity:.72;filter:brightness(.96)}to{opacity:1;filter:brightness(1.16)}}
@media(max-width:420px){.treasure-top{height:128px}.curtain-title{bottom:13px}.curtain-title span{font-size:9px;letter-spacing:2.5px}.curtain-title strong{font-size:33px;letter-spacing:2px}.treasure-top::before{background:
  radial-gradient(circle at 13% 66%,rgba(255,58,25,.78) 0 8%,rgba(255,115,36,.35) 12%,rgba(255,173,54,.12) 20%,transparent 32%),
  radial-gradient(circle at 50% 76%,rgba(255,70,24,.8) 0 9%,rgba(255,141,37,.38) 13%,rgba(255,200,79,.12) 22%,transparent 35%),
  radial-gradient(circle at 88% 62%,rgba(255,58,25,.68) 0 7%,rgba(255,116,38,.32) 11%,rgba(255,184,66,.12) 20%,transparent 32%)}}

/* Symmetric casino lounge background, replacing the old uneven frame image. */
.game-shell{position:relative;background-color:#100604!important;background-image:linear-gradient(180deg,rgba(7,2,1,.08) 0,rgba(7,2,1,.18) 42%,rgba(7,2,1,.42) 100%),url("treasure-lounge-bg.png")!important;background-position:center 78px!important;background-size:auto calc(100% - 78px)!important;background-repeat:no-repeat!important}
.treasure-top{background:transparent!important}
.treasure-top img{opacity:0!important}
.treasure-top::before{display:none!important}
.treasure-top::after{background:linear-gradient(180deg,rgba(8,2,1,.06),rgba(8,2,1,.1) 34%,rgba(8,2,1,.56) 100%)!important}
.treasure-stage{background:transparent!important}
.treasure-stage img{opacity:0!important}
.treasure-stage::after{background:linear-gradient(180deg,rgba(9,3,2,0),rgba(8,3,2,.2) 45%,rgba(8,3,2,.42))!important}

/* Fit the generated lounge into the phone view so side details remain visible. */
.game-shell{background-position:center 78px!important;background-size:100% auto!important}
.treasure-top{height:170px!important}
.curtain-title{bottom:14px!important}
.chest-board{width:72%!important;max-width:510px!important;margin:-28px auto 0!important;gap:0 2px!important;padding-bottom:0!important}
.chest-visual{transform:scale(.62)!important}
.game-intro{transform:translateY(10px)!important;padding-top:8px!important;padding-bottom:16px!important;background:linear-gradient(180deg,rgba(20,9,7,0),rgba(20,9,7,.44) 38%,rgba(20,9,7,.68))!important}
.round-status{margin-top:10px!important}
.voucher-panel{margin-top:8px!important}
.treasure-stage{height:188px!important}
@media(max-width:420px){.game-shell{background-size:118% auto!important;background-position:center 78px!important}.treasure-top{height:132px!important}.curtain-title{bottom:12px!important}.chest-board{width:83%!important;margin:-18px auto 0!important;gap:0 0!important}.chest-visual{transform:scale(.6)!important}.game-intro{transform:translateY(6px)!important;padding-top:6px!important}.treasure-stage{height:150px!important}}

/* Final mobile-first lounge background. */
.game-shell{min-height:100dvh!important;background-color:#080201!important;background-image:linear-gradient(180deg,rgba(4,1,0,.04) 0,rgba(4,1,0,.1) 36%,rgba(4,1,0,.48) 78%,rgba(4,1,0,.82) 100%),url("treasure-lounge-mobile-bg.png")!important;background-size:100% 100%!important;background-position:center top!important;background-repeat:no-repeat!important}
.treasure-top{height:178px!important;background:transparent!important}
.curtain-title{bottom:15px!important}
.curtain-title strong{font-size:42px!important}
.chest-board{width:76%!important;max-width:540px!important;margin:-22px auto 0!important;gap:0 4px!important;padding:0 4px!important}
.chest-visual{transform:scale(.58)!important}
.treasure-stage{height:118px!important}
.game-intro{transform:translateY(0)!important;padding:0 22px 18px!important;background:linear-gradient(180deg,rgba(8,2,1,0),rgba(8,2,1,.48) 38%,rgba(8,2,1,.72))!important}
.game-intro>p{font-size:14px!important;color:#f6e3c0!important}
.round-status{margin-top:8px!important}
.voucher-panel{margin-top:8px!important}
@media(max-width:420px){.treasure-top{height:150px!important}.curtain-title{bottom:12px!important}.curtain-title strong{font-size:34px!important}.chest-board{width:86%!important;margin:-18px auto 0!important;gap:0!important}.chest-visual{transform:scale(.56)!important}.treasure-stage{height:92px!important}.game-intro{padding:0 14px 14px!important}.game-intro>p{font-size:12px!important}}

/* Version with festive casino props and title blended into the signboard. */
.game-shell{background-image:linear-gradient(180deg,rgba(4,1,0,.02) 0,rgba(4,1,0,.1) 35%,rgba(4,1,0,.36) 78%,rgba(4,1,0,.62) 100%),url("treasure-lounge-mobile-bg.png")!important;background-size:100% 100%!important;background-position:center top!important}
.treasure-top{height:205px!important}
.curtain-title{top:58px!important;bottom:auto!important;left:112px!important;right:112px!important;padding:4px 8px 8px;border-radius:12px;background:radial-gradient(ellipse at center,rgba(120,25,6,.38),rgba(43,8,2,.08) 68%,transparent);box-shadow:inset 0 1px 0 rgba(255,225,120,.12)}
.curtain-title::before,.curtain-title::after{display:none!important}
.curtain-title span{margin-bottom:3px!important;color:#ffe485!important;font-size:10px!important;letter-spacing:3px!important;text-shadow:0 2px 3px #220600,0 0 10px rgba(255,181,44,.55)!important}
.curtain-title strong{font-size:34px!important;letter-spacing:2px!important;background:linear-gradient(180deg,#fff7c0 0,#ffdf72 28%,#ec9728 56%,#933400 82%,#431300 100%)!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important;-webkit-text-stroke:1px rgba(72,24,0,.68)!important;filter:drop-shadow(0 1px 0 rgba(255,244,166,.55)) drop-shadow(0 4px 0 rgba(84,28,0,.8)) drop-shadow(0 8px 9px rgba(0,0,0,.75))!important}
.chest-board{width:74%!important;margin:-20px auto 0!important;gap:0 4px!important}
.chest-visual{transform:scale(.56)!important}
.treasure-stage{height:90px!important}
.game-intro{padding:0 22px 16px!important;background:linear-gradient(180deg,rgba(7,1,0,0),rgba(7,1,0,.44) 42%,rgba(7,1,0,.8))!important}
.round-status,.voucher-panel>span,.voucher-panel label{background:rgba(17,5,2,.74)!important;backdrop-filter:blur(2px)}
@media(max-width:420px){.treasure-top{height:168px!important}.curtain-title{top:50px!important;left:72px!important;right:72px!important}.curtain-title span{font-size:8px!important;letter-spacing:2px!important}.curtain-title strong{font-size:27px!important}.chest-board{width:86%!important;margin:-14px auto 0!important}.chest-visual{transform:scale(.54)!important}.treasure-stage{height:76px!important}}

/* v32: restore original header, remove banding, place title on signboard, move chests up. */
.game-shell{display:grid!important;grid-template-rows:78px 174px auto 74px auto!important;min-height:100dvh!important;background-color:#080201!important;background-image:linear-gradient(180deg,rgba(4,1,0,.03),rgba(4,1,0,.08) 38%,rgba(4,1,0,.34) 76%,rgba(4,1,0,.72)),url("treasure-lounge-mobile-bg.png")!important;background-size:100% calc(100% - 78px)!important;background-position:center 78px!important;background-repeat:no-repeat!important}
.game-header{grid-row:1!important;position:relative!important;z-index:5!important;height:78px!important;background:#160b08!important;border-bottom:3px solid #d7a12d!important}
.treasure-top{grid-row:2!important;height:174px!important;position:relative!important;background:transparent!important;overflow:visible!important}
.treasure-top img{display:none!important}
.treasure-top::before,.treasure-top::after{display:none!important}
.curtain-title{top:68px!important;bottom:auto!important;left:92px!important;right:92px!important;padding:0!important;background:transparent!important;box-shadow:none!important;border-radius:0!important}
.curtain-title span{margin-bottom:1px!important;color:#ffdf78!important;font-size:10px!important;font-weight:900!important;letter-spacing:3.5px!important;text-shadow:0 2px 3px #240600,0 0 8px rgba(255,177,50,.55)!important}
.curtain-title strong{font-size:34px!important;line-height:1!important;letter-spacing:2px!important;background:linear-gradient(180deg,#fff6bf 0,#ffd76c 28%,#e98c25 58%,#813006 84%,#321000 100%)!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important;-webkit-text-stroke:1px rgba(64,22,0,.72)!important;filter:drop-shadow(0 1px 0 rgba(255,243,166,.55)) drop-shadow(0 4px 0 rgba(82,29,0,.78)) drop-shadow(0 8px 9px rgba(0,0,0,.72))!important}
.chest-board{grid-row:3!important;width:76%!important;max-width:540px!important;margin:-56px auto 0!important;padding:0 4px!important;gap:0 4px!important}
.chest-visual{transform:scale(.54)!important}
.treasure-stage{grid-row:4!important;height:74px!important}
.game-intro{grid-row:5!important;transform:none!important;padding:0 22px 14px!important;background:linear-gradient(180deg,rgba(7,1,0,0),rgba(7,1,0,.42) 34%,rgba(7,1,0,.78))!important}
.game-intro>p{margin-top:0!important}
@media(max-width:420px){.game-shell{grid-template-rows:78px 150px auto 54px auto!important;background-size:100% calc(100% - 78px)!important;background-position:center 78px!important}.curtain-title{top:60px!important;left:54px!important;right:54px!important}.curtain-title span{font-size:8px!important;letter-spacing:2.2px!important}.curtain-title strong{font-size:27px!important}.chest-board{width:88%!important;margin:-48px auto 0!important;gap:0!important}.chest-visual{transform:scale(.52)!important}.treasure-stage{height:54px!important}.game-intro{padding:0 14px 12px!important}}

/* v33: homepage-style banner and tighter chest spacing. */
.game-header{grid-template-columns:1fr!important;padding:0 12px!important;background:linear-gradient(115deg,#120804 0,#080604 34%,#24170c 50%,#080604 66%,#120804 100%)!important;border-bottom:3px solid #d7a12d!important;box-shadow:inset 0 1px 0 rgba(255,226,129,.16)!important}
.game-header::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 0 34%,rgba(255,255,255,.16) 45%,transparent 58%),radial-gradient(circle at 50% 0,rgba(255,208,105,.18),transparent 55%);pointer-events:none}
.back-link,.lang-toggle{display:none!important}
.brand{justify-self:center!important;gap:14px!important}
.brand img{width:54px!important;height:54px!important}
.brand strong{font-size:20px!important;letter-spacing:.5px!important;color:#ffd16a!important;text-shadow:0 2px 8px rgba(0,0,0,.72)!important}
.chest-board{width:62%!important;max-width:440px!important;gap:0!important;column-gap:0!important;row-gap:0!important;margin:-56px auto 0!important}
.chest{margin:-2px -8px!important}
.chest-visual{transform:scale(.56)!important}
@media(max-width:420px){.brand img{width:48px!important;height:48px!important}.brand strong{font-size:16px!important}.chest-board{width:72%!important;max-width:330px!important;margin:-48px auto 0!important}.chest{margin:-2px -7px!important}.chest-visual{transform:scale(.54)!important}}

/* v34: keep original header controls while matching the black-gold banner style. */
.game-header{grid-template-columns:48px minmax(0,1fr) 78px!important;padding:0 18px!important;background:linear-gradient(115deg,#120804 0,#080604 34%,#24170c 50%,#080604 66%,#120804 100%)!important;border-bottom:3px solid #d7a12d!important}
.back-link{display:grid!important;width:40px!important;height:40px!important;place-items:center!important;color:#f6cb68!important;text-decoration:none!important;font-size:36px!important;line-height:1!important;justify-self:start!important}
.lang-toggle{display:block!important;justify-self:end!important;height:36px!important;min-width:72px!important;padding:0 10px!important;border:1px solid rgba(239,188,67,.7)!important;border-radius:20px!important;background:#160b08!important;color:#ffe17a!important;font-size:12px!important;font-weight:900!important}
.brand{justify-self:center!important;gap:12px!important;min-width:0!important}
.brand img{width:52px!important;height:52px!important}
.brand strong{font-size:19px!important;letter-spacing:.35px!important;color:#ffd16a!important;text-shadow:0 2px 8px rgba(0,0,0,.72)!important}
@media(max-width:420px){.game-header{grid-template-columns:40px minmax(0,1fr) 64px!important;padding:0 10px!important}.back-link{width:36px!important;height:36px!important;font-size:34px!important}.lang-toggle{min-width:58px!important;height:34px!important;padding:0 6px!important;font-size:11px!important}.brand{gap:8px!important}.brand img{width:45px!important;height:45px!important}.brand strong{font-size:14px!important}}

/* v35: restore the earlier original treasure header style. */
.game-header{grid-template-columns:42px minmax(0,1fr) 66px!important;padding:0 18px!important;background:radial-gradient(circle at 50% 0,rgba(199,113,24,.22),transparent 60%)!important;border-bottom:3px solid #d7a12d!important;box-shadow:none!important}
.game-header::before{display:none!important}
.back-link{display:grid!important;width:38px!important;height:38px!important;place-items:center!important;color:#f5c85d!important;text-decoration:none!important;font-size:35px!important;line-height:1!important;justify-self:start!important}
.brand{min-width:0!important;display:flex!important;justify-content:center!important;align-items:center!important;gap:10px!important;color:#f6cb68!important;text-decoration:none!important;justify-self:stretch!important}
.brand img{width:48px!important;height:48px!important;object-fit:contain!important;filter:drop-shadow(0 5px 9px rgba(0,0,0,.45))!important}
.brand strong{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:17px!important;letter-spacing:.2px!important;color:#f6cb68!important;text-shadow:none!important}
.lang-toggle{display:block!important;justify-self:end!important;height:34px!important;min-width:auto!important;padding:0 8px!important;border:1px solid rgba(239,188,67,.65)!important;border-radius:18px!important;color:#f6d57d!important;background:#160b08!important;font-size:11px!important;font-weight:800!important}
@media(max-width:420px){.game-header{grid-template-columns:35px 1fr 57px!important;padding:0 10px!important}.brand{gap:7px!important}.brand img{width:43px!important;height:43px!important}.brand strong{font-size:14px!important}.lang-toggle{padding:0 5px!important;min-width:auto!important}.back-link{width:35px!important;height:35px!important;font-size:34px!important}}

/* v36: raise the title inside the red signboard slightly. */
.curtain-title{top:60px!important}
@media(max-width:420px){.curtain-title{top:53px!important}}

/* v37: remove the visible dark seam above the voucher controls. */
.treasure-stage{height:82px!important;margin-bottom:-18px!important;background:linear-gradient(180deg,rgba(7,1,0,0),rgba(7,1,0,.18) 45%,rgba(7,1,0,.52) 100%)!important}
.treasure-stage::after{background:linear-gradient(180deg,rgba(7,1,0,0),rgba(7,1,0,.18) 55%,rgba(7,1,0,.5) 100%)!important}
.game-intro{position:relative!important;margin-top:0!important;padding-top:18px!important;background:linear-gradient(180deg,rgba(7,1,0,0) 0,rgba(7,1,0,.32) 18%,rgba(7,1,0,.78) 100%)!important}
@media(max-width:420px){.treasure-stage{height:62px!important;margin-bottom:-14px!important}.game-intro{padding-top:16px!important}}

/* v38: eliminate the separate divider band and lower the signboard title slightly. */
.curtain-title{top:64px!important}
.treasure-stage{height:0!important;min-height:0!important;margin:0!important;padding:0!important;overflow:visible!important;background:transparent!important}
.treasure-stage::before,.treasure-stage::after,.treasure-stage img{display:none!important}
.game-intro{margin-top:-4px!important;padding-top:32px!important;background:linear-gradient(180deg,rgba(7,1,0,0) 0,rgba(7,1,0,.08) 8%,rgba(7,1,0,.36) 28%,rgba(7,1,0,.82) 100%)!important}
@media(max-width:420px){.curtain-title{top:57px!important}.game-intro{margin-top:-3px!important;padding-top:28px!important}}

/* v39: replace voucher words with the custom XJ ticket icon. */
.ticket-icon{display:inline-block;width:48px;height:25px;margin:0 5px;object-fit:contain;vertical-align:-7px;filter:drop-shadow(0 3px 5px rgba(0,0,0,.45))}
.ticket-balance{gap:8px!important}
.ticket-balance .ticket-icon{width:58px;height:30px;margin-left:4px}
.round-status .ticket-icon{width:50px;height:26px;vertical-align:-7px}
.voucher-panel button .ticket-icon{width:54px;height:28px;vertical-align:-8px;margin:0 6px}
.reward-detail .ticket-icon{width:50px;height:26px;vertical-align:-7px}
.game-intro>p .ticket-icon{width:58px;height:30px;vertical-align:-8px}
@media(max-width:420px){
  .ticket-icon{width:42px;height:22px;margin:0 4px;vertical-align:-6px}
  .ticket-balance .ticket-icon{width:50px;height:26px}
  .voucher-panel button .ticket-icon{width:46px;height:24px}
}

/* Bilingual blessing returned by the payout API. */
.reward-card .reward-blessing{
  position:relative;
  width:min(100%,330px);
  min-height:44px;
  margin:12px auto 8px;
  padding:10px 13px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,217,111,.3);
  border-radius:12px;
  color:#ffe9ae!important;
  background:linear-gradient(135deg,rgba(88,43,10,.46),rgba(19,9,6,.56));
  box-shadow:inset 0 1px 0 rgba(255,239,180,.07);
  font-size:14px!important;
  font-weight:800;
  line-height:1.5;
}
.reward-card .reward-blessing:empty{display:none}
.treasure-history-blessing{color:#e8c86f!important;line-height:1.35}
@media(max-width:420px){
  .reward-card .reward-blessing{min-height:40px;margin-top:9px;padding:8px 10px;font-size:12px!important}
}

/* v42: shorter premium XJ ticket. */
.ticket-icon{width:42px!important;height:25px!important;vertical-align:-7px!important}
.ticket-balance .ticket-icon{width:48px!important;height:28px!important}
.round-status .ticket-icon{width:44px!important;height:26px!important}
.voucher-panel button .ticket-icon{width:46px!important;height:28px!important}
.reward-detail .ticket-icon{width:44px!important;height:26px!important}
.game-intro>p .ticket-icon{width:48px!important;height:29px!important}
@media(max-width:420px){
  .ticket-icon{width:38px!important;height:23px!important}
  .ticket-balance .ticket-icon{width:43px!important;height:25px!important}
  .voucher-panel button .ticket-icon{width:42px!important;height:25px!important}
}

/* v44: remove explanatory text around the ticket controls. */
.game-intro>p[data-i18n="subtitle"]{display:none!important}
.round-status{margin-top:0!important}
.round-status [data-i18n="rule"]{min-width:54px;display:inline-flex;align-items:center;justify-content:center}
.round-status b span{display:inline-flex;align-items:center;gap:6px}

/* v45: move the ticket open button into the empty stage area. */
.game-intro{position:relative!important}
.voucher-panel{grid-template-columns:1fr 118px!important;max-width:430px!important;margin-top:8px!important}
.voucher-panel button{
  position:absolute!important;
  z-index:8!important;
  left:50%!important;
  top:-72px!important;
  width:226px!important;
  height:42px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:0!important;
  transform:translateX(-50%)!important;
  border:1px solid rgba(232,174,62,.72)!important;
  border-radius:16px!important;
  background:
    radial-gradient(circle at 50% 0,rgba(255,211,91,.18),transparent 54%),
    linear-gradient(180deg,rgba(61,23,10,.86),rgba(20,7,4,.9) 58%,rgba(9,2,1,.94))!important;
  box-shadow:
    inset 0 1px 0 rgba(255,230,142,.32),
    inset 0 -10px 22px rgba(0,0,0,.35),
    0 12px 30px rgba(0,0,0,.42),
    0 0 18px rgba(213,148,36,.16)!important;
}
.voucher-panel button .ticket-icon{display:block!important;width:64px!important;height:38px!important;margin:0!important;vertical-align:middle!important}
.voucher-panel button:disabled{opacity:.58!important;filter:grayscale(.25) brightness(.9)!important}
@media(max-width:420px){
  .voucher-panel{grid-template-columns:1fr 110px!important}
  .voucher-panel button{top:-66px!important;width:226px!important;height:42px!important}
}

/* v52: premium dark-gold ticket button surface. */
.voucher-panel button::before{
  content:"";
  position:absolute;
  inset:1px;
  border-radius:15px;
  pointer-events:none;
  background:
    linear-gradient(90deg,transparent,rgba(255,224,118,.16),transparent),
    radial-gradient(circle at 50% 50%,rgba(255,198,72,.16),transparent 48%);
  opacity:.9;
}
.voucher-panel button::after{
  content:"";
  position:absolute;
  left:18px;
  right:18px;
  top:50%;
  height:1px;
  pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,213,93,.45),transparent);
}
.voucher-panel button .ticket-icon{position:relative!important;z-index:1!important}

/* v48: remove the upper ticket status bar and balance the two lower controls. */
.round-status{display:none!important}
.voucher-panel{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  max-width:442px!important;
  margin-top:-10px!important;
  transform:translateY(-12px)!important;
}
.voucher-panel>span,.voucher-panel label{
  min-width:0!important;
  width:100%!important;
}
.ticket-balance{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:12px!important;
  line-height:1!important;
}
.ticket-balance b{
  display:inline-flex!important;
  align-items:center!important;
  height:28px!important;
  margin:0!important;
  line-height:28px!important;
}
.ticket-balance .ticket-icon{
  display:block!important;
  align-self:center!important;
  margin:0!important;
  vertical-align:middle!important;
}
.voucher-panel label{
  justify-content:center!important;
  gap:8px!important;
}
.voucher-panel label span{
  flex:0 1 auto!important;
  white-space:normal!important;
  line-height:1.05!important;
}
.voucher-panel input{
  flex:0 0 54px!important;
  width:54px!important;
}
@media(max-width:420px){
  .voucher-panel{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    max-width:390px!important;
    margin-top:-8px!important;
    transform:translateY(-10px)!important;
  }
}

/* Direct access from the game controls to the player's opening records. */
html{scroll-behavior:smooth}
.view-records-button{
  width:max-content;
  min-width:142px;
  min-height:42px;
  margin:12px auto 0;
  padding:0 14px 0 18px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:13px;
  border:1px solid rgba(244,188,62,.76);
  border-radius:999px;
  background:linear-gradient(145deg,rgba(40,21,11,.94),rgba(17,10,7,.94));
  box-shadow:0 9px 24px rgba(0,0,0,.36),inset 0 1px 0 rgba(255,230,157,.13);
  color:#ffe09a;
  text-decoration:none;
  font-size:14px;
  font-weight:850;
  letter-spacing:.2px;
  transition:transform .18s ease,filter .18s ease,border-color .18s ease;
}
.view-records-button:hover{
  filter:brightness(1.12);
  border-color:#ffdc7b;
  transform:translateY(-1px);
}
.view-records-button:active{transform:translateY(1px)}
.view-records-button:focus-visible{outline:2px solid #fff0b3;outline-offset:3px}
.view-records-arrow{
  width:23px;
  height:23px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:linear-gradient(145deg,#f8cc60,#a8640d);
  color:#211006;
  font-size:21px;
  font-weight:700;
  line-height:1;
}
#treasureHistory{scroll-margin-top:18px}
@media(max-width:420px){
  .view-records-button{min-width:132px;min-height:39px;margin-top:9px;font-size:13px;gap:10px}
  .view-records-arrow{width:21px;height:21px;font-size:19px}
}

/* v51: remove title eyebrow, raise title, and shrink English title. */
.curtain-title{top:56px!important}
.curtain-title span{display:none!important}
.curtain-title strong{
  white-space:nowrap!important;
  line-height:.98!important;
}
html[lang="en"] .curtain-title{
  left:58px!important;
  right:58px!important;
  top:58px!important;
}
html[lang="en"] .curtain-title strong{
  font-size:31px!important;
  letter-spacing:.2px!important;
  transform:scaleX(.92)!important;
  transform-origin:center!important;
}
@media(max-width:420px){
  .curtain-title{top:50px!important}
  html[lang="en"] .curtain-title{left:36px!important;right:36px!important;top:52px!important}
  html[lang="en"] .curtain-title strong{font-size:24px!important;letter-spacing:0!important;transform:scaleX(.9)!important}
}

/* v53: lower the signboard title slightly and keep it centered. */
.curtain-title{
  left:0!important;
  right:0!important;
  top:62px!important;
  text-align:center!important;
}
html[lang="en"] .curtain-title{
  left:0!important;
  right:0!important;
  top:63px!important;
}
@media(max-width:420px){
  .curtain-title{left:0!important;right:0!important;top:55px!important}
  html[lang="en"] .curtain-title{left:0!important;right:0!important;top:56px!important}
}

/* v54: brighter lower title bevel and slightly lower placement. */
.curtain-title{
  top:66px!important;
}
.curtain-title strong{
  background:linear-gradient(180deg,#fff8d2 0,#ffe47c 24%,#f5b544 48%,#d9841f 70%,#a85108 86%,#ffd36e 100%)!important;
  -webkit-background-clip:text!important;
  background-clip:text!important;
  filter:drop-shadow(0 1px 0 rgba(255,246,179,.62)) drop-shadow(0 4px 0 rgba(117,48,4,.62)) drop-shadow(0 8px 10px rgba(0,0,0,.68))!important;
}
html[lang="en"] .curtain-title{
  top:67px!important;
}
@media(max-width:420px){
  .curtain-title{top:59px!important}
  html[lang="en"] .curtain-title{top:60px!important}
}

/* v55: smaller reward coin so it does not cover the congratulation text. */
.reward-card{padding-top:30px!important}
.reward-coin{
  width:96px!important;
  height:96px!important;
  margin-bottom:12px!important;
}
.reward-coin img{
  width:128px!important;
  height:128px!important;
}
@media(max-width:420px){
  .reward-card{padding-top:28px!important}
  .reward-coin{width:90px!important;height:90px!important;margin-bottom:11px!important}
  .reward-coin img{width:120px!important;height:120px!important}
}

/* v56: refine reward result scale and gold amount styling. */
.reward-card{
  padding-top:28px!important;
}
.reward-coin{
  width:78px!important;
  height:78px!important;
  margin-bottom:12px!important;
}
.reward-coin img{
  width:104px!important;
  height:104px!important;
  filter:drop-shadow(0 7px 8px rgba(72,30,0,.38)) drop-shadow(0 0 12px rgba(255,210,82,.26))!important;
}
.reward-card p:first-of-type{
  margin-top:2px!important;
  font-size:15px!important;
  color:#dfc8a4!important;
  text-shadow:0 1px 4px rgba(0,0,0,.72)!important;
}
.reward-card h2{
  margin:8px 0 6px!important;
  font-size:clamp(36px,8.6vw,42px)!important;
  line-height:1.02!important;
  font-weight:900!important;
  letter-spacing:0!important;
  color:#ffe287!important;
  background:linear-gradient(180deg,#fff1b5 0%,#ffd85f 36%,#c87912 70%,#fff0a7 100%)!important;
  -webkit-background-clip:text!important;
  background-clip:text!important;
  -webkit-text-fill-color:transparent!important;
  text-shadow:0 1px 0 #6f3605,0 4px 8px rgba(0,0,0,.42),0 0 12px rgba(255,208,73,.18)!important;
}
@media(max-width:420px){
  .reward-card{padding-top:26px!important}
  .reward-coin{width:72px!important;height:72px!important;margin-bottom:10px!important}
  .reward-coin img{width:96px!important;height:96px!important}
  .reward-card h2{font-size:clamp(32px,9.4vw,38px)!important}
}

/* v57: brighter prize amount, less black shadow. */
.reward-card h2{
  font-size:clamp(35px,8.2vw,41px)!important;
  color:#ffeaa2!important;
  background:linear-gradient(180deg,#fff7cf 0%,#ffe680 30%,#f7bf3d 58%,#e59a20 78%,#fff0a3 100%)!important;
  -webkit-background-clip:text!important;
  background-clip:text!important;
  -webkit-text-fill-color:transparent!important;
  -webkit-text-stroke:.45px rgba(255,238,166,.62)!important;
  text-shadow:none!important;
  filter:drop-shadow(0 1px 0 rgba(115,55,4,.82)) drop-shadow(0 3px 4px rgba(0,0,0,.34)) drop-shadow(0 0 10px rgba(255,207,74,.22))!important;
}
@media(max-width:420px){
  .reward-card h2{font-size:clamp(31px,9vw,37px)!important}
}

/* v58: even prize typography, no oversized number beside smaller Chinese text. */
.reward-card h2{
  display:flex!important;
  align-items:baseline!important;
  justify-content:center!important;
  gap:.18em!important;
  font-family:"Microsoft YaHei UI","Microsoft YaHei","PingFang SC","Noto Sans SC",Arial,sans-serif!important;
  font-size:clamp(34px,7.4vw,39px)!important;
  font-weight:900!important;
  line-height:1.08!important;
}
#rewardTitle span{
  display:inline-block!important;
  font-family:inherit!important;
  font-size:.96em!important;
  font-weight:900!important;
  transform:translateY(.01em)!important;
}
html[lang="zh"] #rewardTitle{
  font-size:clamp(33px,7.1vw,38px)!important;
}
html[lang="zh"] #rewardTitle span{
  font-size:.96em!important;
}
@media(max-width:420px){
  .reward-card h2{font-size:clamp(30px,8.1vw,35px)!important}
  html[lang="zh"] #rewardTitle{font-size:clamp(29px,7.9vw,34px)!important}
}

/* v59: animated fireworks and lantern glow over the existing background. */
.game-shell{
  isolation:isolate!important;
}
.game-shell::before,
.game-shell::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:78px;
  bottom:0;
  z-index:1;
  pointer-events:none;
}
.game-header,
.treasure-top,
.chest-board,
.treasure-stage,
.game-intro{
  position:relative!important;
  z-index:2!important;
}
.game-shell::before{
  background:
    radial-gradient(circle at 15% 16%, rgba(255,222,105,.95) 0 2px, transparent 3px),
    radial-gradient(circle at 15% 16%, transparent 0 15px, rgba(255,88,45,.88) 16px 18px, transparent 20px),
    radial-gradient(circle at 15% 16%, transparent 0 31px, rgba(255,194,69,.55) 32px 34px, transparent 36px),
    radial-gradient(circle at 86% 18%, rgba(255,232,143,.9) 0 2px, transparent 3px),
    radial-gradient(circle at 86% 18%, transparent 0 14px, rgba(255,74,48,.82) 15px 17px, transparent 19px),
    radial-gradient(circle at 86% 18%, transparent 0 29px, rgba(255,183,67,.5) 30px 32px, transparent 34px),
    radial-gradient(circle at 8% 34%, rgba(255,156,64,.72) 0 1px, transparent 2px),
    radial-gradient(circle at 91% 35%, rgba(255,156,64,.7) 0 1px, transparent 2px);
  opacity:.35;
  mix-blend-mode:screen;
  filter:blur(.15px) saturate(1.18);
  animation:treasureFireworks 2.6s ease-in-out infinite;
}
.game-shell::after{
  background:
    radial-gradient(ellipse at 8% 15%, rgba(255,94,20,.46) 0 22px, rgba(255,160,32,.28) 23px 58px, transparent 82px),
    radial-gradient(ellipse at 92% 15%, rgba(255,94,20,.46) 0 22px, rgba(255,160,32,.28) 23px 58px, transparent 82px),
    radial-gradient(ellipse at 14% 27%, rgba(255,122,25,.36) 0 20px, rgba(255,178,45,.2) 21px 54px, transparent 78px),
    radial-gradient(ellipse at 86% 27%, rgba(255,122,25,.36) 0 20px, rgba(255,178,45,.2) 21px 54px, transparent 78px);
  opacity:.78;
  mix-blend-mode:screen;
  animation:treasureLanternGlow 3.1s ease-in-out infinite alternate;
}
@keyframes treasureFireworks{
  0%,100%{opacity:.24;transform:scale(.96);filter:brightness(.92) saturate(1.05)}
  38%{opacity:.72;transform:scale(1.02);filter:brightness(1.28) saturate(1.35)}
  58%{opacity:.36;transform:scale(1.05);filter:brightness(.98) saturate(1.12)}
}
@keyframes treasureLanternGlow{
  from{opacity:.52;filter:brightness(.94) blur(.2px);transform:translateY(0)}
  to{opacity:.92;filter:brightness(1.28) blur(.6px);transform:translateY(2px)}
}
@media(max-width:420px){
  .game-shell::before,
  .game-shell::after{top:78px}
  .game-shell::before{
    background:
      radial-gradient(circle at 13% 14%, rgba(255,222,105,.95) 0 2px, transparent 3px),
      radial-gradient(circle at 13% 14%, transparent 0 11px, rgba(255,88,45,.86) 12px 14px, transparent 16px),
      radial-gradient(circle at 13% 14%, transparent 0 24px, rgba(255,194,69,.52) 25px 27px, transparent 29px),
      radial-gradient(circle at 88% 14%, rgba(255,232,143,.9) 0 2px, transparent 3px),
      radial-gradient(circle at 88% 14%, transparent 0 11px, rgba(255,74,48,.82) 12px 14px, transparent 16px),
      radial-gradient(circle at 88% 14%, transparent 0 23px, rgba(255,183,67,.5) 24px 26px, transparent 28px);
  }
}

/* v60: make the prize amount lead, with a smaller unit tucked closer on English. */
#rewardTitle{
  align-items:baseline!important;
  gap:5px!important;
  white-space:nowrap!important;
}
#rewardTitle .reward-amount{
  font-size:1.12em!important;
  line-height:1!important;
  letter-spacing:.01em!important;
  transform:none!important;
}
#rewardTitle .reward-unit{
  display:inline-block!important;
  font-size:.72em!important;
  line-height:1!important;
  letter-spacing:-.01em!important;
  transform:translate(-3px,-.02em)!important;
}
html[lang="zh"] #rewardTitle .reward-unit{
  font-size:.82em!important;
  letter-spacing:0!important;
  transform:translate(-1px,-.01em)!important;
}
html[lang="en"] #rewardTitle{
  gap:2px!important;
}
html[lang="en"] #rewardTitle .reward-unit{
  font-size:.66em!important;
  transform:translate(-6px,-.03em)!important;
}
@media(max-width:420px){
  #rewardTitle .reward-unit{font-size:.68em!important}
  html[lang="en"] #rewardTitle .reward-unit{
    font-size:.6em!important;
    transform:translate(-7px,-.03em)!important;
  }
}

/* v61: remove lantern rings and put visible fireworks above the background image. */
.game-shell::after{
  display:none!important;
}

/* v73: final override, raise the signboard title above v70. */
.curtain-title{
  top:48px!important;
}
@media(max-width:420px){
  .curtain-title{
    top:43px!important;
  }
}

/* v74: keep reward unit in the same gold style, only smaller. */
#rewardTitle{
  gap:6px!important;
  align-items:baseline!important;
  justify-content:center!important;
}
#rewardTitle .reward-amount{
  font-size:1em!important;
  transform:none!important;
}
#rewardTitle .reward-unit{
  font:inherit!important;
  font-size:.58em!important;
  font-weight:900!important;
  letter-spacing:0!important;
  line-height:1!important;
  transform:none!important;
  background:inherit!important;
  -webkit-background-clip:inherit!important;
  background-clip:inherit!important;
  -webkit-text-fill-color:inherit!important;
  -webkit-text-stroke:inherit!important;
  filter:inherit!important;
}
html[lang="zh"] #rewardTitle .reward-unit{
  font-size:.72em!important;
  transform:none!important;
}
html[lang="en"] #rewardTitle{
  gap:5px!important;
}
html[lang="en"] #rewardTitle .reward-unit{
  font-size:.54em!important;
  transform:none!important;
}

/* v72: raise the main title slightly. */
.curtain-title{
  top:52px!important;
}
@media(max-width:420px){
  .curtain-title{
    top:47px!important;
  }
}
.game-shell::before{
  top:78px!important;
  bottom:auto!important;
  height:250px!important;
  z-index:4!important;
  background:
    radial-gradient(circle at 13% 23%, #fff5b8 0 2px, transparent 3px),
    radial-gradient(circle at 13% 23%, transparent 0 12px, rgba(255,84,43,.95) 13px 15px, transparent 16px),
    radial-gradient(circle at 13% 23%, transparent 0 25px, rgba(255,190,52,.82) 26px 28px, transparent 29px),
    radial-gradient(circle at 13% 23%, transparent 0 38px, rgba(255,95,45,.46) 39px 41px, transparent 42px),
    radial-gradient(circle at 86% 20%, #fff5b8 0 2px, transparent 3px),
    radial-gradient(circle at 86% 20%, transparent 0 11px, rgba(255,84,43,.95) 12px 14px, transparent 15px),
    radial-gradient(circle at 86% 20%, transparent 0 23px, rgba(255,190,52,.82) 24px 26px, transparent 27px),
    radial-gradient(circle at 86% 20%, transparent 0 36px, rgba(255,95,45,.46) 37px 39px, transparent 40px),
    radial-gradient(circle at 24% 13%, rgba(255,219,112,.95) 0 1px, transparent 2px),
    radial-gradient(circle at 30% 27%, rgba(255,94,48,.82) 0 1px, transparent 2px),
    radial-gradient(circle at 73% 12%, rgba(255,219,112,.95) 0 1px, transparent 2px),
    radial-gradient(circle at 79% 29%, rgba(255,94,48,.82) 0 1px, transparent 2px)!important;
  opacity:.78!important;
  mix-blend-mode:screen!important;
  filter:drop-shadow(0 0 5px rgba(255,154,45,.9)) saturate(1.35)!important;
  animation:treasureFireworksVisible 1.75s ease-in-out infinite!important;
}
.game-header{
  z-index:6!important;
}
@keyframes treasureFireworksVisible{
  0%{opacity:.12;transform:scale(.72);filter:brightness(.72) saturate(1)}
  26%{opacity:1;transform:scale(1);filter:brightness(1.55) saturate(1.55)}
  52%{opacity:.45;transform:scale(1.14);filter:brightness(1.05) saturate(1.18)}
  100%{opacity:.1;transform:scale(1.22);filter:brightness(.8) saturate(1)}
}
@media(max-width:420px){
  .game-shell::before{
    height:190px!important;
    background:
      radial-gradient(circle at 13% 20%, #fff5b8 0 2px, transparent 3px),
      radial-gradient(circle at 13% 20%, transparent 0 10px, rgba(255,84,43,.95) 11px 13px, transparent 14px),
      radial-gradient(circle at 13% 20%, transparent 0 20px, rgba(255,190,52,.82) 21px 23px, transparent 24px),
      radial-gradient(circle at 87% 19%, #fff5b8 0 2px, transparent 3px),
      radial-gradient(circle at 87% 19%, transparent 0 10px, rgba(255,84,43,.95) 11px 13px, transparent 14px),
      radial-gradient(circle at 87% 19%, transparent 0 20px, rgba(255,190,52,.82) 21px 23px, transparent 24px)!important;
  }
}

/* v62: replace ring effect with dot-spray fireworks like the reference image. */
.game-shell::before,
.game-shell::after{
  display:block!important;
  position:absolute!important;
  top:78px!important;
  bottom:auto!important;
  height:238px!important;
  z-index:1!important;
  pointer-events:none!important;
  opacity:0!important;
  mix-blend-mode:screen!important;
  filter:drop-shadow(0 0 4px rgba(255,90,210,.7)) drop-shadow(0 0 8px rgba(255,178,82,.45))!important;
}
.game-shell::before{
  transform-origin:14% 23%!important;
  background:
    radial-gradient(circle at 14% 23%, #fff8c8 0 2px, transparent 3px),
    radial-gradient(circle at 11% 17%, #ff55d6 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 17% 16%, #ffd36a 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 8% 23%, #ff6a9e 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 20% 23%, #f46fff 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 10% 29%, #ffc65a 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 18% 30%, #ff5a7c 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 13% 12%, #f77dff 0 1px, transparent 2px),
    radial-gradient(circle at 6% 18%, #ffcf74 0 1px, transparent 2px),
    radial-gradient(circle at 22% 18%, #ff6acb 0 1px, transparent 2px),
    radial-gradient(circle at 6% 28%, #f46fff 0 1px, transparent 2px),
    radial-gradient(circle at 22% 30%, #ffd36a 0 1px, transparent 2px)!important;
  animation:fireworkSprayLeft 1.55s ease-out infinite!important;
}
.game-shell::after{
  transform-origin:86% 21%!important;
  background:
    radial-gradient(circle at 86% 21%, #fff8c8 0 2px, transparent 3px),
    radial-gradient(circle at 83% 15%, #ff55d6 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 89% 14%, #ffd36a 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 80% 21%, #ff6a9e 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 92% 21%, #f46fff 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 82% 27%, #ffc65a 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 90% 28%, #ff5a7c 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 85% 10%, #f77dff 0 1px, transparent 2px),
    radial-gradient(circle at 78% 16%, #ffcf74 0 1px, transparent 2px),
    radial-gradient(circle at 94% 16%, #ff6acb 0 1px, transparent 2px),
    radial-gradient(circle at 78% 26%, #f46fff 0 1px, transparent 2px),
    radial-gradient(circle at 94% 28%, #ffd36a 0 1px, transparent 2px)!important;
  animation:fireworkSprayRight 1.55s ease-out .55s infinite!important;
}
@keyframes fireworkSprayLeft{
  0%{opacity:0;transform:scale(.45) rotate(-4deg)}
  16%{opacity:.95;transform:scale(.78) rotate(0)}
  48%{opacity:.86;transform:scale(1.18) rotate(2deg)}
  100%{opacity:0;transform:scale(1.42) rotate(4deg)}
}
@keyframes fireworkSprayRight{
  0%{opacity:0;transform:scale(.45) rotate(4deg)}
  16%{opacity:.95;transform:scale(.78) rotate(0)}
  48%{opacity:.86;transform:scale(1.18) rotate(-2deg)}
  100%{opacity:0;transform:scale(1.42) rotate(-4deg)}
}
@media(max-width:420px){
  .game-shell::before,
  .game-shell::after{
    height:178px!important;
  }
}

/* v63: real canvas fireworks over the lounge window; remove fake pseudo fireworks. */
.game-shell::before,
.game-shell::after{
  display:none!important;
}

/* v73b: final-last title position override. */
.curtain-title{
  top:48px!important;
}
@media(max-width:420px){
  .curtain-title{
    top:43px!important;
  }
}
.scene-fireworks{
  position:absolute!important;
  left:0!important;
  right:0!important;
  top:78px!important;
  width:100%!important;
  height:240px;
  z-index:1!important;
  pointer-events:none!important;
  mix-blend-mode:screen!important;
  opacity:.95!important;
  filter:drop-shadow(0 0 4px rgba(255,92,201,.8)) drop-shadow(0 0 9px rgba(255,194,74,.35))!important;
}
.game-header,
.treasure-top,
.chest-board,
.treasure-stage,
.game-intro{
  z-index:2!important;
}
.game-header{
  z-index:5!important;
}

/* v69: place canvas firework centers exactly inside the side window fireworks. */
.scene-fireworks{
  top:78px!important;
  height:300px!important;
}

/* v67: keep scene fireworks clipped to the two side window zones. */
.scene-fireworks{
  height:300px!important;
}

/* v65: align canvas fireworks to the left and right window areas. */
.scene-fireworks{
  top:78px!important;
  height:265px!important;
}

/* v64: tighten chest rows and pull the lower rows upward. */
.chest-board{
  width:66%!important;
  max-width:470px!important;
  margin:-64px auto 0!important;
  row-gap:0!important;
  column-gap:8px!important;
  transform:translateY(-8px)!important;
}
.chest{
  margin:-13px -5px!important;
}
.chest-visual{
  transform:scale(.58)!important;
}
@media(max-width:420px){
  .chest-board{
    width:78%!important;
    max-width:350px!important;
    margin:-55px auto 0!important;
    column-gap:4px!important;
    transform:translateY(-6px)!important;
  }
  .chest{
    margin:-11px -5px!important;
  }
  .chest-visual{
    transform:scale(.55)!important;
  }
}

/* v66: restore board width; only tighten the chest row spacing. */
.chest-board{
  width:76%!important;
  max-width:540px!important;
  margin:-56px auto 0!important;
  column-gap:4px!important;
  row-gap:0!important;
  transform:none!important;
}
.chest{
  margin:-12px 0!important;
}
.chest-visual{
  transform:scale(.56)!important;
}
@media(max-width:420px){
  .chest-board{
    width:88%!important;
    max-width:380px!important;
    margin:-48px auto 0!important;
    column-gap:0!important;
    row-gap:0!important;
    transform:none!important;
  }
  .chest{
    margin:-10px 0!important;
  }
  .chest-visual{
    transform:scale(.54)!important;
  }
}

/* v68: keep all chests closer together inside the background frame. */
.chest-board{
  width:64%!important;
  max-width:455px!important;
  min-width:0!important;
  margin:-56px auto 0!important;
  padding:0 10px!important;
  column-gap:0!important;
  row-gap:0!important;
  transform:none!important;
}
.chest{
  margin:-15px -3px!important;
}
.chest-visual{
  transform:scale(.58)!important;
}
@media(max-width:420px){
  .chest-board{
    width:76%!important;
    max-width:330px!important;
    margin:-48px auto 0!important;
    padding:0 6px!important;
    column-gap:0!important;
    row-gap:0!important;
  }
  .chest{
    margin:-13px -3px!important;
  }
  .chest-visual{
    transform:scale(.55)!important;
  }
}

/* v70: polish the main signboard title typography only. */
.curtain-title{
  top:58px!important;
  left:0!important;
  right:0!important;
  text-align:center!important;
}
.curtain-title span{
  display:none!important;
}
.curtain-title strong{
  display:inline-block!important;
  font-family:"Microsoft YaHei UI","Microsoft YaHei","PingFang SC","Noto Serif SC",serif!important;
  font-size:37px!important;
  font-weight:900!important;
  line-height:1!important;
  letter-spacing:1px!important;
  background:linear-gradient(180deg,#fff9d5 0%,#ffe887 18%,#ffc951 40%,#e68b24 64%,#8b3908 84%,#ffe185 100%)!important;
  -webkit-background-clip:text!important;
  background-clip:text!important;
  color:transparent!important;
  -webkit-text-stroke:.8px rgba(78,27,0,.64)!important;
  filter:drop-shadow(0 1px 0 rgba(255,246,182,.72)) drop-shadow(0 3px 0 rgba(113,43,4,.76)) drop-shadow(0 6px 5px rgba(0,0,0,.58))!important;
  transform:scaleX(.96)!important;
}
.curtain-title strong::after{
  opacity:.35!important;
  top:50%!important;
  height:32%!important;
  filter:blur(6px)!important;
}
html[lang="en"] .curtain-title strong{
  font-size:30px!important;
  letter-spacing:0!important;
  transform:scaleX(.9)!important;
}
@media(max-width:420px){
  .curtain-title{
    top:52px!important;
  }
  .curtain-title strong{
    font-size:30px!important;
    letter-spacing:.5px!important;
  }
  html[lang="en"] .curtain-title strong{
    font-size:23px!important;
  }
}

/* v71: remove scene fireworks effects entirely. */
.scene-fireworks{
  display:none!important;
}
.game-shell::before,
.game-shell::after{
  display:none!important;
}

/* v73c: actual last title override after v70. */
.curtain-title{
  top:48px!important;
}
@media(max-width:420px){
  .curtain-title{
    top:43px!important;
  }
}

/* v74b: final reward unit override, same style, smaller only. */
#rewardTitle{
  gap:6px!important;
  align-items:baseline!important;
  justify-content:center!important;
}
#rewardTitle .reward-amount{
  font-size:1em!important;
  transform:none!important;
}
#rewardTitle .reward-unit{
  font:inherit!important;
  font-size:.58em!important;
  font-weight:900!important;
  letter-spacing:0!important;
  line-height:1!important;
  transform:none!important;
  background:inherit!important;
  -webkit-background-clip:inherit!important;
  background-clip:inherit!important;
  -webkit-text-fill-color:inherit!important;
  -webkit-text-stroke:inherit!important;
  filter:inherit!important;
}
html[lang="zh"] #rewardTitle .reward-unit{
  font-size:.72em!important;
}
html[lang="en"] #rewardTitle{
  gap:5px!important;
}
html[lang="en"] #rewardTitle .reward-unit{
  font-size:.54em!important;
}

/* v75: lower the signboard title slightly for both languages. */
.curtain-title{
  top:52px!important;
}
html[lang="en"] .curtain-title{
  top:52px!important;
}
@media(max-width:420px){
  .curtain-title,
  html[lang="en"] .curtain-title{
    top:47px!important;
  }
}

/* v77: lower the signboard lettering and the complete interactive game group. */
.curtain-title,
html[lang="en"] .curtain-title{
  top:66px!important;
}
.chest-board,
.treasure-stage,
.game-intro{
  position:relative!important;
  top:22px!important;
}
@media(max-width:420px){
  .curtain-title,
  html[lang="en"] .curtain-title{
    top:59px!important;
  }
  .chest-board,
  .treasure-stage,
  .game-intro{
    top:18px!important;
  }
}

/* v78: match the compact composition in the approved treasure layout. */
.game-shell{
  min-height:100dvh!important;
}
.curtain-title,
html[lang="en"] .curtain-title{
  top:51px!important;
}
.chest-board{
  top:4px!important;
}
.chest-visual{
  transform:scale(.50)!important;
}
.treasure-stage,
.game-intro{
  top:-5px!important;
}
@media(max-width:420px){
  .curtain-title,
  html[lang="en"] .curtain-title{
    top:46px!important;
  }
  .chest-board{
    top:2px!important;
  }
  .chest-visual{
    transform:scale(.52)!important;
  }
  .treasure-stage,
  .game-intro{
    top:-4px!important;
  }
}

/* v81: place all three ticket controls in the lower lounge scene. */
.game-intro{
  top:max(-18px,calc(100dvh - 825px))!important;
}
@media(max-width:420px){
  .game-intro{
    top:max(-6px,calc(100dvh - 716px))!important;
  }
}

/* v83: lower both Chinese and English signboard titles together. */
.curtain-title,
html[lang="en"] .curtain-title{
  top:94px!important;
}
@media(max-width:420px){
  .curtain-title,
  html[lang="en"] .curtain-title{
    top:86px!important;
  }
}

/* Keep the brand centered after removing the language switch. */
.game-header{grid-template-columns:42px minmax(0,1fr) 42px!important}
@media(max-width:420px){.game-header{grid-template-columns:35px minmax(0,1fr) 35px!important}}

/* Latest winner ticker, overlaid at the top of the curtain. */
.winner-ticker{
  grid-column:1;
  grid-row:2;
  align-self:start;
  justify-self:center;
  z-index:9;
  width:calc(100% - 18px);
  height:0;
  max-height:0;
  margin-top:0;
  display:flex;
  align-items:center;
  overflow:hidden;
  border:0 solid rgba(240,181,52,.72);
  border-radius:10px;
  background:linear-gradient(90deg,rgba(37,10,4,.96),rgba(15,6,3,.9));
  box-shadow:0 5px 16px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,225,139,.12);
  color:#ffe6a3;
  pointer-events:none;
  opacity:0;
  visibility:hidden;
  transform:translateY(-7px);
  transition:opacity .16s ease,transform .16s ease;
}
.winner-ticker.is-playing{
  height:38px;
  max-height:38px;
  margin-top:7px;
  border-width:1px;
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.winner-ticker>strong{
  height:100%;
  flex:0 0 auto;
  padding:0 12px;
  display:flex;
  align-items:center;
  border-right:1px solid rgba(240,181,52,.35);
  background:rgba(118,38,9,.42);
  color:#ffd35d;
  font-size:12px;
  white-space:nowrap;
}
.winner-ticker-window{min-width:0;flex:1;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.winner-ticker-track{width:max-content;display:flex;align-items:center;will-change:transform;transform:translateX(var(--ticker-start,100vw));animation:none}
.winner-ticker-track.is-playing{animation:winnerTickerScrollOnce var(--ticker-duration,8s) linear 1 both}
.winner-ticker-group{display:flex;align-items:center;white-space:nowrap}
.winner-ticker-item{font-size:12px;font-weight:700;color:#f7dfb2;text-shadow:0 1px 4px #000}
.winner-ticker-item b{color:#ffcf55}.winner-ticker-item em{font-style:normal;color:#fff0c2}
.winner-ticker-loading{padding-left:18px;color:#cdb995;font-size:12px;white-space:nowrap}
@keyframes winnerTickerScrollOnce{from{transform:translateX(var(--ticker-start,100vw))}to{transform:translateX(-100%)}}
@media(max-width:420px){
  .winner-ticker{width:calc(100% - 12px);border-radius:8px}
  .winner-ticker.is-playing{height:34px;max-height:34px;margin-top:5px}
  .winner-ticker>strong{padding:0 8px;font-size:10px}
  .winner-ticker-item,.winner-ticker-loading{font-size:10px}
}

/* v84: lower the full chest grid and enlarge every chest. */
.chest-board{
  top:48px!important;
}
.chest-visual{
  transform:scale(.68)!important;
}
@media(max-width:420px){
  .chest-board{
    top:40px!important;
  }
  .chest-visual{
    transform:scale(.64)!important;
  }
}

/* v86: spread the three chest rows deeper into the scene. */
.chest-board{
  row-gap:62px!important;
}
@media(max-width:420px){
  .chest-board{
    row-gap:46px!important;
  }
}

/* v90: lift only the Chinese title slightly; keep English unchanged. */
.curtain-title{
  top:90px!important;
}
html[lang="en"] .curtain-title{
  top:94px!important;
}
@media(max-width:420px){
  .curtain-title{
    top:82px!important;
  }
  html[lang="en"] .curtain-title{
    top:86px!important;
  }
}

/* v91: fine-tune the three chest rows independently. */
.chest:nth-child(-n+3){
  top:6px!important;
}
.chest:nth-child(n+4){
  top:-6px!important;
}
@media(max-width:420px){
  .chest:nth-child(-n+3){
    top:5px!important;
  }
  .chest:nth-child(n+4){
    top:-5px!important;
  }
}

/* v92: lift all three lower ticket controls together. */
.game-intro{
  top:max(-24px,calc(100dvh - 831px))!important;
}
@media(max-width:420px){
  .game-intro{
    top:max(-12px,calc(100dvh - 722px))!important;
  }
}

/* v93: place the three lower controls directly below the third chest row. */
.game-intro{
  top:max(-134px,calc(100dvh - 941px))!important;
}
@media(max-width:420px){
  .game-intro{
    top:max(-78px,calc(100dvh - 788px))!important;
  }
}

/* v94: align the center ticket button with the teal can. */
.voucher-panel button{
  top:-94px!important;
}
@media(max-width:420px){
  .voucher-panel button{
    top:-88px!important;
  }
}

/* v95: lift only the third chest row and restore all three controls. */
.chest:nth-child(n+7){
  top:-18px!important;
}
.game-intro{
  top:max(-180px,calc(100dvh - 987px))!important;
}
@media(max-width:420px){
  .chest:nth-child(n+7){
    top:-15px!important;
  }
  .game-intro{
    top:max(-115px,calc(100dvh - 825px))!important;
  }
}

/* v96: restore the three controls below the chests at fixed stage positions. */
.game-intro{
  top:59px!important;
}
.voucher-panel button{
  top:-72px!important;
}
@media(max-width:420px){
  .game-intro{
    top:56px!important;
  }
  .voucher-panel button{
    top:-66px!important;
  }
}

/* v97: move all three controls lower and remove their dark horizontal band. */
.game-intro{
  top:119px!important;
  background:none!important;
}
@media(max-width:420px){
  .game-intro{
    top:106px!important;
    background:none!important;
  }
}
#batchCount{-moz-appearance:textfield;appearance:textfield}
#batchCount::-webkit-inner-spin-button,#batchCount::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}

/* v102: replace the removed ticket bar with a compact batch confirmation control. */
.voucher-panel{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px!important;
  max-width:492px!important;
  gap:7px!important;
  align-items:center!important;
}
.voucher-panel button#batchOpen{
  position:relative!important;
  inset:auto!important;
  grid-column:auto!important;
  width:44px!important;
  min-width:44px!important;
  height:42px!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  display:grid!important;
  place-items:center!important;
  border:1px solid #f0b83d!important;
  border-radius:11px!important;
  background:linear-gradient(180deg,#ffd66b,#dfa022)!important;
  color:#321500!important;
  line-height:1!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 3px 10px rgba(0,0,0,.3)!important;
  cursor:pointer!important;
}
.voucher-panel button#batchOpen::before,
.voucher-panel button#batchOpen::after{content:none!important}
.batch-confirm-icon{
  display:block;
  font-size:25px;
  line-height:1;
  font-weight:1000;
  transform:translateY(-1px);
}
.voucher-panel button#batchOpen:active:not(:disabled){transform:translateY(1px)!important}
.voucher-panel button#batchOpen:focus-visible{outline:2px solid #fff1a8;outline-offset:2px}
.voucher-panel button#batchOpen:disabled{cursor:not-allowed!important;opacity:.48!important}
@media(max-width:420px){
  .voucher-panel{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) 40px!important;
    max-width:410px!important;
    gap:5px!important;
  }
  .voucher-panel button#batchOpen{
    width:40px!important;
    min-width:40px!important;
    height:40px!important;
  }
  .batch-confirm-icon{font-size:23px}
}

/* v101: Lucky Treasure records live on the game page, separate from redemptions. */
.treasure-history{
  width:min(100%,720px);margin:0 auto;padding:24px 18px 38px;color:#fff7df;
  background:linear-gradient(180deg,#120706,#080302);border-top:1px solid rgba(239,188,67,.38)
}
.treasure-history-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.treasure-history-head h2{margin:0;color:#ffe19a;font-size:22px}
.treasure-history-head button{height:34px;padding:0 18px;border:1px solid rgba(239,188,67,.55);border-radius:18px;background:#21100b;color:#f6d57d;font-weight:800}
.treasure-history-list{overflow:hidden;border:1px solid rgba(239,188,67,.24);border-radius:16px;background:rgba(20,9,7,.86)}
.treasure-history-empty{margin:0;padding:30px 16px;text-align:center;color:#bda98d}
.treasure-history-row{min-height:86px;padding:14px;display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:12px;align-items:center;border-bottom:1px solid rgba(255,255,255,.1)}
.treasure-history-row:last-child{border-bottom:0}
.treasure-history-coin{width:48px;height:48px;display:grid;place-items:center}
.treasure-history-coin img{width:48px;height:48px;object-fit:contain}
.treasure-history-row b,.treasure-history-row small{display:block}
.treasure-history-row b{font-size:15px;color:#fff4d2}
.treasure-history-row small{margin-top:4px;color:#bda98d;font-size:11px}
.treasure-history-row>strong{text-align:right;color:#50ed91;font-size:19px}
.treasure-history-row>strong small{font-size:10px;font-weight:500}
@media(max-width:420px){
  .treasure-history{padding:20px 12px 30px}.treasure-history-head h2{font-size:19px}
  .treasure-history-row{grid-template-columns:44px minmax(0,1fr) auto;padding:12px 10px;gap:9px}
  .treasure-history-coin,.treasure-history-coin img{width:40px;height:40px}
  .treasure-history-row>strong{font-size:16px}
}

/* Voucher exhausted state: centered notice and fully locked muted chests. */
.voucher-empty-notice{
  grid-column:1!important;grid-row:3!important;z-index:18!important;place-self:center!important;
  min-width:min(78%,310px);min-height:58px;padding:12px 24px;display:flex;align-items:center;justify-content:center;gap:11px;
  border:1px solid rgba(244,190,66,.9);border-radius:999px;
  background:linear-gradient(135deg,rgba(40,22,12,.97),rgba(15,10,8,.96));
  box-shadow:0 18px 48px rgba(0,0,0,.62),inset 0 1px 0 rgba(255,226,139,.18),0 0 24px rgba(211,145,28,.13);
  color:#ffe4a3;font-size:clamp(15px,3vw,20px);font-weight:900;letter-spacing:.2px;text-align:center;text-shadow:0 2px 7px rgba(0,0,0,.9);
  pointer-events:none;opacity:0;visibility:hidden;transform:translateY(8px) scale(.96);
  transition:opacity .22s ease,transform .22s ease,visibility .22s ease;
}
.voucher-empty-notice[hidden]{display:none!important}
.voucher-empty-notice.is-visible{opacity:1;visibility:visible;transform:none}
.voucher-empty-notice-icon{
  width:27px;height:27px;flex:0 0 27px;display:grid;place-items:center;border-radius:50%;
  background:linear-gradient(145deg,#ffdc72,#b87012);color:#2a1505;font-family:Georgia,serif;font-size:18px;font-weight:900;
  box-shadow:0 0 14px rgba(238,174,49,.28)
}
.chest-board.voucher-empty .chest{pointer-events:none!important;cursor:not-allowed!important;filter:none!important;transform:none!important}
.chest-board.voucher-empty .chest-glow{display:none!important}
.chest-board.voucher-empty .chest-lid,.chest-board.voucher-empty .chest-base{
  background:linear-gradient(90deg,#27221a,#544c3c 22%,#81765e 50%,#4d4535 78%,#201c16)!important;
  border-color:#8e836d!important;
  box-shadow:inset 0 -8px 12px rgba(10,8,7,.65),inset 0 3px 4px rgba(226,213,176,.12),0 8px 14px rgba(0,0,0,.48)!important
}
.chest-board.voucher-empty .chest-lid::after{background:linear-gradient(90deg,#373126,#81755c,#302a21)!important;border-color:#91866e!important}
.chest-board.voucher-empty .chest-base::before{border-color:rgba(194,182,148,.3)!important}
.chest-board.voucher-empty .chest-lock{
  opacity:1!important;background:linear-gradient(145deg,#827861,#3a3429)!important;border-color:#aaa087!important;
  box-shadow:0 3px 7px rgba(0,0,0,.55)!important
}
.chest-board.voucher-empty .chest-lock::after{background:#17140f!important;box-shadow:0 7px 0 -1px #17140f!important}
@media(max-width:420px){
  .voucher-empty-notice{min-width:min(76%,270px);min-height:50px;padding:10px 17px;font-size:14px;gap:8px}
  .voucher-empty-notice-icon{width:23px;height:23px;flex-basis:23px;font-size:15px}
}

/* Compact premium Voucher notice: centered without masking a full chest row. */
.voucher-empty-notice{
  position:relative!important;
  overflow:hidden;
  min-width:0!important;
  width:max-content!important;
  max-width:calc(100% - 54px)!important;
  min-height:0!important;
  padding:10px 18px 10px 12px!important;
  gap:10px!important;
  border:1px solid rgba(255,204,93,.72)!important;
  border-radius:16px!important;
  background:
    linear-gradient(105deg,rgba(255,210,102,.10),transparent 34%),
    linear-gradient(145deg,rgba(31,17,11,.96),rgba(12,8,7,.94))!important;
  box-shadow:
    0 14px 34px rgba(0,0,0,.54),
    inset 0 1px 0 rgba(255,239,184,.18),
    0 0 0 5px rgba(83,44,15,.10)!important;
  color:#fff0bf!important;
  font-size:clamp(14px,2.35vw,17px)!important;
  font-weight:850!important;
  line-height:1.25!important;
  letter-spacing:.15px!important;
  white-space:nowrap;
  backdrop-filter:blur(14px) saturate(1.2);
  -webkit-backdrop-filter:blur(14px) saturate(1.2);
}
.voucher-empty-notice::before{
  content:"";
  position:absolute;
  inset:1px 12px auto;
  height:1px;
  border-radius:999px;
  background:linear-gradient(90deg,transparent,rgba(255,225,142,.45),transparent);
  pointer-events:none;
}
.voucher-empty-notice-icon{
  width:26px!important;
  height:26px!important;
  flex:0 0 26px!important;
  border:1px solid rgba(255,230,159,.7)!important;
  background:linear-gradient(145deg,#ffe18a,#c9861d)!important;
  color:#241205!important;
  font-family:system-ui,-apple-system,"Segoe UI",sans-serif!important;
  font-size:16px!important;
  line-height:1!important;
  box-shadow:0 5px 14px rgba(189,113,13,.28),inset 0 1px 0 rgba(255,255,255,.48)!important;
}
@media(max-width:420px){
  .voucher-empty-notice{
    max-width:calc(100% - 34px)!important;
    padding:9px 14px 9px 10px!important;
    gap:8px!important;
    border-radius:14px!important;
    font-size:13px!important;
    white-space:normal!important;
  }
  .voucher-empty-notice-icon{
    width:23px!important;
    height:23px!important;
    flex-basis:23px!important;
    font-size:14px!important;
  }
}

/* Stable 810px desktop canvas, matching the rest of the activity site. */
@media(min-width:768px){
  body.layout-treasure{min-width:810px!important}
  body.layout-treasure .game-shell{width:810px!important;min-width:810px!important;max-width:810px!important;margin-left:auto!important;margin-right:auto!important}
  .game-header{padding-left:18px!important;padding-right:18px!important}
  .brand img{width:48px!important;height:48px!important}
  .brand strong{font-size:17px!important}
  .treasure-top{height:230px!important}
  .chest-board{
    width:68%!important;
    max-width:780px!important;
    row-gap:70px!important;
  }
  .chest-visual{transform:scale(.72)!important}
  .treasure-stage{height:360px!important}
  .game-intro{width:100%!important;max-width:760px!important;margin-left:auto!important;margin-right:auto!important}
}
