/* ══════════════════════════════════════════════════════════════════════
   BUILD 247:福牌连连 Lucky Tiles(竖屏老虎机)
   单位:--u = 舞台宽度的 1%(舞台固定 9:16,手机竖拿刚好铺满;横屏 / 电脑居中)
   流畅度:会动的东西只动 transform / opacity;发光用叠在上面的伪元素改 opacity,不用 filter 动画
   ══════════════════════════════════════════════════════════════════════ */
body.portrait-game{overflow:hidden}
body.portrait-game header.top,body.portrait-game #coach{display:none !important}
#tilesview{position:fixed;top:0;left:0;width:var(--vvw,100vw);height:var(--vvh,100dvh);z-index:40;margin:0;padding:0;overflow:hidden;
  background:#07060b url(tiles/bg.webp?v=a2178359) center/cover no-repeat}
#tilesview::before{content:"";position:absolute;inset:0;background:rgba(4,4,10,.72)}
#tileswrap{position:absolute;inset:0;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.lt-stage{--u:3.9px;position:absolute;overflow:hidden;color:#fff5dc;font-family:"Chakra Petch",system-ui,sans-serif;user-select:none;-webkit-user-select:none;touch-action:manipulation;
  border-radius:calc(var(--u)*1.2);box-shadow:0 0 40px rgba(0,0,0,.6)}
.lt-bg{position:absolute;inset:0;background:url(tiles/bg.webp?v=a2178359) center/cover no-repeat}
.lt-bg.free{background-image:url(tiles/bg-free.webp?v=43a146ea);opacity:0;transition:opacity .8s ease}
.lt-bg.free.on{opacity:1}

/* 顶栏 */
.lt-top{position:absolute;left:2.5%;right:2.5%;top:calc(var(--u)*2);height:calc(var(--u)*10);display:flex;align-items:center;justify-content:space-between;gap:calc(var(--u)*2);z-index:5}
.lt-tb{height:calc(var(--u)*7.4);padding:0 calc(var(--u)*2.6);border-radius:calc(var(--u)*4);border:1px solid rgba(255,214,120,.55);background:rgba(20,10,6,.62);
  color:#ffe3a0;font-weight:700;font-size:calc(var(--u)*3.3);display:flex;align-items:center;gap:calc(var(--u)*1)}
.lt-tb span{font-size:calc(var(--u)*5);line-height:1;margin-top:-.15em}
.lt-title{flex:1;text-align:center;line-height:1.05;padding:calc(var(--u)*1.2) calc(var(--u)*2);border-radius:calc(var(--u)*2);
  background:linear-gradient(180deg,rgba(18,76,58,.92),rgba(9,44,34,.92));border:calc(var(--u)*.5) solid #d9a94a;box-shadow:inset 0 0 0 1px rgba(255,236,170,.5),0 calc(var(--u)*.8) calc(var(--u)*2) rgba(0,0,0,.5)}
.lt-title b{display:block;font-size:calc(var(--u)*5.2);letter-spacing:.12em;font-weight:900;
  background:linear-gradient(180deg,#fff6c8,#f2c55a 55%,#b9802a);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none}
.lt-title i{display:block;font-style:normal;font-size:calc(var(--u)*2.2);letter-spacing:.42em;color:#f5d68a;opacity:.85;font-family:Cinzel,"Chakra Petch",serif}
.lt-bal{display:flex;align-items:center;gap:calc(var(--u)*1.2);height:calc(var(--u)*7.4);padding:0 calc(var(--u)*2.6);border-radius:calc(var(--u)*4);background:rgba(20,10,6,.66);border:1px solid rgba(255,214,120,.55)}
.lt-bal b{font-size:calc(var(--u)*3.5);color:#ffe9a8;font-variant-numeric:tabular-nums}
.lt-coin{width:calc(var(--u)*4);height:calc(var(--u)*4);border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff3b0,#f2bf3a 45%,#a8701a);box-shadow:inset 0 0 0 calc(var(--u)*.4) #c8902a}

/* 倍数灯笼 */
.lt-lanterns{position:absolute;left:12%;right:12%;top:calc(var(--u)*14 + var(--ex,0px)*.15);height:calc(var(--u)*12);display:flex;justify-content:space-between;z-index:3}
.lt-lan{position:relative;width:calc(var(--u)*13.5);height:calc(var(--u)*12);display:flex;align-items:center;justify-content:center;will-change:transform}
.lt-lan span{position:absolute;inset:calc(var(--u)*1.4) 0 calc(var(--u)*.6);border-radius:45%;background:radial-gradient(ellipse at 50% 40%,#c8372f,#7d1414 70%);
  box-shadow:inset 0 0 calc(var(--u)*1.5) rgba(0,0,0,.45),0 0 0 calc(var(--u)*.35) #d9a94a}
.lt-lan span::before,.lt-lan span::after{content:"";position:absolute;left:30%;right:30%;height:calc(var(--u)*1.2);background:#d9a94a;border-radius:calc(var(--u)*.4)}
.lt-lan span::before{top:calc(var(--u)*-.9)}.lt-lan span::after{bottom:calc(var(--u)*-.9)}
.lt-lan b{position:relative;font-size:calc(var(--u)*4.2);font-weight:900;color:#ffd99a;text-shadow:0 1px 0 #5a0b0b}
.lt-lan::after{content:"";position:absolute;inset:calc(var(--u)*-2);border-radius:50%;background:radial-gradient(circle,rgba(255,200,90,.75),rgba(255,140,40,0) 65%);opacity:0;transition:opacity .25s}
.lt-lan.on::after{opacity:1}
.lt-lan.on span{background:radial-gradient(ellipse at 50% 40%,#ff9a3c,#d2361d 70%)}
.lt-lan.on b{color:#fff;text-shadow:0 0 calc(var(--u)*1.5) #ffcf5a,0 1px 0 #7a1a0a}
.isfree .lt-lan b{color:#fff3c0}

.lt-freebar{position:absolute;left:25%;right:25%;top:calc(var(--u)*26.6 + var(--ex,0px)*.22);height:calc(var(--u)*5);display:flex;align-items:center;justify-content:center;z-index:4;opacity:0;transition:opacity .3s}
.lt-freebar.on{opacity:1}
.lt-freebar b{padding:calc(var(--u)*.6) calc(var(--u)*3);border-radius:calc(var(--u)*3);background:linear-gradient(180deg,#b5211b,#6e0d0b);border:1px solid #f0c45a;font-size:calc(var(--u)*3.2);color:#ffe7a6;letter-spacing:.06em}

/* 牌盘 */
.lt-board{position:absolute;left:5%;width:90%;top:calc(var(--u)*32 + var(--ex,0px)*.3);height:calc(var(--u)*117);border-radius:calc(var(--u)*2.2);z-index:2;
  background:linear-gradient(180deg,rgba(6,28,24,.78),rgba(4,18,16,.82));
  box-shadow:0 0 0 calc(var(--u)*.7) #c99a3e,0 0 0 calc(var(--u)*1.3) #6b4a14,0 0 0 calc(var(--u)*1.7) #f2d27a,0 calc(var(--u)*1.5) calc(var(--u)*4) rgba(0,0,0,.65),inset 0 0 calc(var(--u)*4) rgba(0,0,0,.6)}
.isfree .lt-board{background:linear-gradient(180deg,rgba(60,8,8,.78),rgba(34,4,4,.84))}
.lt-tiles{position:absolute;inset:calc(var(--u)*1.2);overflow:hidden;border-radius:calc(var(--u)*1.4)}
.lt-t{position:absolute;left:0;top:0;width:20%;height:20%;padding:calc(var(--u)*.45);box-sizing:border-box;will-change:transform;backface-visibility:hidden;contain:layout paint}
.lt-t img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-drag:none}
.lt-t .glow{position:absolute;inset:0;border-radius:calc(var(--u)*1.6);box-shadow:0 0 calc(var(--u)*2.4) calc(var(--u)*.6) rgba(255,214,90,.95),inset 0 0 calc(var(--u)*1.4) rgba(255,240,160,.9);opacity:0;transition:opacity .15s;pointer-events:none}
.lt-t.hit .glow{opacity:1}
.lt-t{transition:opacity .16s ease}
.lt-tiles.show .lt-t:not(.hit){opacity:.32}
.lt-t.hit .glow{box-shadow:inset 0 0 0 calc(var(--u)*.7) #ffd75a,inset 0 0 calc(var(--u)*2.2) rgba(255,230,140,.95)}
/* 金框牌:一圈金边 + 一道走过的光(光条只动 transform) */
.lt-t.gold::before{content:"";position:absolute;inset:calc(var(--u)*.25);border-radius:calc(var(--u)*1.7);border:calc(var(--u)*.9) solid #f6c94e;
  box-shadow:0 0 calc(var(--u)*1.2) rgba(255,200,60,.85),inset 0 0 calc(var(--u)*.8) rgba(255,230,140,.8);pointer-events:none;z-index:1}
.lt-t.gold::after{content:"";position:absolute;top:0;bottom:0;left:-40%;width:30%;background:linear-gradient(100deg,rgba(255,255,255,0),rgba(255,250,220,.55),rgba(255,255,255,0));
  transform:translateX(0) skewX(-14deg);animation:ltShine 2.6s linear infinite;pointer-events:none;z-index:2;mix-blend-mode:screen}
.lt-t{overflow:hidden}
@keyframes ltShine{0%{transform:translateX(0) skewX(-14deg)}60%,100%{transform:translateX(560%) skewX(-14deg)}}
@media (prefers-reduced-motion:reduce){.lt-t.gold::after{animation:none;opacity:0}}

/* 金龙飞过 */
.lt-dragon{position:absolute;left:-60%;top:30%;width:60%;height:40%;pointer-events:none;z-index:6;opacity:0;
  background:radial-gradient(ellipse at 70% 50%,rgba(255,236,150,.95),rgba(255,190,60,.55) 30%,rgba(255,150,30,0) 65%)}
.lt-dragon.go{animation:ltDragon .9s cubic-bezier(.3,.1,.4,1) forwards}
@keyframes ltDragon{0%{opacity:0;transform:translateX(0) scaleY(.6)}15%{opacity:1}85%{opacity:1}100%{opacity:0;transform:translateX(330%) scaleY(1)}}

/* 中间一行:规则 · 本转赢 · 公平 */
.lt-mid{position:absolute;left:4%;right:4%;top:calc(var(--u)*151 + var(--ex,0px)*.62);height:calc(var(--u)*8);display:flex;align-items:center;gap:calc(var(--u)*2);z-index:3}
.lt-sb{height:calc(var(--u)*6.4);min-width:calc(var(--u)*14);padding:0 calc(var(--u)*2);border-radius:calc(var(--u)*3.2);border:1px solid rgba(255,214,120,.5);background:rgba(18,10,6,.62);color:#ffe3a0;font-size:calc(var(--u)*3);font-weight:700}
.lt-meter{flex:1;height:100%;border-radius:calc(var(--u)*4);background:linear-gradient(180deg,rgba(30,14,6,.82),rgba(14,6,2,.88));border:1px solid #c99a3e;display:flex;align-items:center;justify-content:center;gap:calc(var(--u)*2)}
.lt-meter i{font-style:normal;font-size:calc(var(--u)*2.8);color:#d9b56a}
.lt-meter b{font-size:calc(var(--u)*4.6);color:#ffe28a;font-variant-numeric:tabular-nums;text-shadow:0 0 calc(var(--u)*1.4) rgba(255,190,60,.55)}

/* 底下操作区 */
.lt-ctrl{position:absolute;left:3%;right:3%;top:calc(var(--u)*160 + var(--ex,0px)*.9);height:calc(var(--u)*17);display:flex;align-items:center;justify-content:space-between;z-index:3}
.lt-betbox{display:flex;align-items:center;gap:calc(var(--u)*1.2);height:calc(var(--u)*10);padding:0 calc(var(--u)*1.2);border-radius:calc(var(--u)*5);background:rgba(18,10,6,.7);border:1px solid rgba(255,214,120,.55)}
.lt-betbox button{width:calc(var(--u)*7.6);height:calc(var(--u)*7.6);border-radius:50%;border:1px solid #d9a94a;background:radial-gradient(circle at 40% 35%,#2f7a5c,#0f3b2d);color:#ffe7a6;font-size:calc(var(--u)*5);line-height:1;font-weight:700}
.lt-betbox button:disabled{opacity:.35}
.lt-betbox div{min-width:calc(var(--u)*14);text-align:center;line-height:1.1}
.lt-betbox i{display:block;font-style:normal;font-size:calc(var(--u)*2.4);color:#d9b56a}
.lt-betbox b{font-size:calc(var(--u)*4);color:#fff1c4;font-variant-numeric:tabular-nums}
.lt-spin{position:relative;width:calc(var(--u)*17.5);height:calc(var(--u)*17.5);margin-top:0;border-radius:50%;border:0;padding:0;
  background:radial-gradient(circle at 40% 32%,#5ed39a,#1b8a5a 45%,#0b4a30 80%);box-shadow:0 0 0 calc(var(--u)*.9) #e7b84c,0 0 0 calc(var(--u)*1.6) #6b4a14,0 calc(var(--u)*1.4) calc(var(--u)*3) rgba(0,0,0,.6),inset 0 calc(var(--u)*-1.5) calc(var(--u)*2.5) rgba(0,0,0,.35)}
.lt-spin .arrow{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:calc(var(--u)*9.5);color:#f7ffe9;text-shadow:0 2px 0 #0b4a30;will-change:transform}
.lt-spin.busy .arrow{animation:ltSpinA .8s linear infinite}
@keyframes ltSpinA{to{transform:rotate(360deg)}}
.lt-spin .ring{position:absolute;inset:calc(var(--u)*-2.2);border-radius:50%;border:calc(var(--u)*.5) solid rgba(255,220,120,.0);transition:border-color .3s}
.lt-spin.auto .ring{border-color:rgba(255,220,120,.85)}
.lt-spin em{position:absolute;left:0;right:0;bottom:calc(var(--u)*2.6);font-style:normal;font-size:calc(var(--u)*3.2);font-weight:900;color:#fff7c9}
.lt-spin:active{transform:scale(.96)}
.lt-side{display:flex;flex-direction:column;gap:calc(var(--u)*1.6)}
.lt-sq{min-width:calc(var(--u)*17);height:calc(var(--u)*6.4);border-radius:calc(var(--u)*3.2);border:1px solid rgba(255,214,120,.55);background:rgba(18,10,6,.7);color:#ffe3a0;font-size:calc(var(--u)*3);font-weight:700}
.lt-sq.on{background:linear-gradient(180deg,#d8a640,#9b6a1c);color:#2a1604;border-color:#ffe4a0}

/* 中奖小牌(本步赢多少) */
.lt-pop{position:absolute;left:0;right:0;top:calc(var(--u)*82 + var(--ex,0px)*.3);display:flex;justify-content:center;z-index:7;pointer-events:none}
.lt-popin{padding:calc(var(--u)*1.6) calc(var(--u)*4);border-radius:calc(var(--u)*3);background:rgba(24,8,4,.82);border:1px solid #f0c45a;text-align:center;opacity:0}
.lt-pop.on .lt-popin{animation:ltPop 1.15s ease-out forwards}
.lt-popin .row{display:flex;gap:calc(var(--u)*2);justify-content:center;font-size:calc(var(--u)*2.6);color:#f5d68a}
.lt-popin .row span{display:flex;align-items:center;gap:calc(var(--u)*.8)}
.lt-popin .row img{height:calc(var(--u)*5)}
.lt-popin b{display:block;font-size:calc(var(--u)*6.4);color:#ffe28a;text-shadow:0 0 calc(var(--u)*2) rgba(255,180,40,.7);font-variant-numeric:tabular-nums}
.lt-popin em{font-style:normal;font-size:calc(var(--u)*3.4);color:#ff9f5a;font-weight:900}
@keyframes ltPop{0%{opacity:0;transform:translateY(calc(var(--u)*4)) scale(.85)}15%{opacity:1;transform:translateY(0) scale(1.05)}25%{transform:scale(1)}75%{opacity:1}100%{opacity:0;transform:translateY(calc(var(--u)*-6))}}

.lt-fx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:8}

/* 盖层:免费转 / 大赢 / 规则 / 自动 */
.lt-ov{position:absolute;inset:0;z-index:9;display:none;align-items:center;justify-content:center}
.lt-ov.on{display:flex;background:rgba(6,2,2,.55)}
.lt-ov.big.on{background:radial-gradient(circle at 50% 45%,rgba(120,30,10,.55),rgba(6,2,2,.8) 70%)}
.lt-fi{text-align:center;animation:ltIn .5s cubic-bezier(.2,1.4,.4,1) both}
.lt-fi .hu{width:calc(var(--u)*22);height:calc(var(--u)*29);margin:0 auto calc(var(--u)*2);background:url(tiles/tile-hu.webp?v=15b50424) center/contain no-repeat}
.lt-fi b{display:block;font-size:calc(var(--u)*9);font-weight:900;letter-spacing:.06em;background:linear-gradient(180deg,#fffbe0,#ffd25a 50%,#d0861c);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 calc(var(--u)*.6) 0 #5a1406)}
.lt-fi i{display:block;margin-top:calc(var(--u)*1.5);font-style:normal;font-size:calc(var(--u)*3.4);color:#ffe3a0}
.lt-bw{text-align:center;animation:ltIn .6s cubic-bezier(.2,1.5,.4,1) both}
.lt-bw .ttl{font-size:calc(var(--u)*13);font-weight:900;letter-spacing:.04em;line-height:1;background:linear-gradient(180deg,#fffbe0,#ffd04a 45%,#c66f12);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 calc(var(--u)*.8) 0 #6a1505) drop-shadow(0 0 calc(var(--u)*2) rgba(255,170,40,.6))}
.lt-bw .num{margin-top:calc(var(--u)*3);font-size:calc(var(--u)*10);font-weight:900;color:#fff1b8;font-variant-numeric:tabular-nums;text-shadow:0 0 calc(var(--u)*2.4) rgba(255,190,60,.8),0 calc(var(--u)*.6) 0 #6a1505}
.lt-bw i{display:block;margin-top:calc(var(--u)*3);font-style:normal;font-size:calc(var(--u)*3);color:#e9cf98;opacity:.8}
@keyframes ltIn{0%{opacity:0;transform:scale(.4)}100%{opacity:1;transform:scale(1)}}
.lt-pick,.lt-rules{background:linear-gradient(180deg,#1c0f08,#0d0704);border:1px solid #c99a3e;border-radius:calc(var(--u)*3);padding:calc(var(--u)*4);box-shadow:0 calc(var(--u)*2) calc(var(--u)*6) rgba(0,0,0,.6)}
.lt-pick h4{margin:0 0 calc(var(--u)*3);font-size:calc(var(--u)*4);color:#ffe3a0;text-align:center}
.lt-pick div{display:grid;grid-template-columns:repeat(3,1fr);gap:calc(var(--u)*2)}
.lt-pick button{height:calc(var(--u)*10);min-width:calc(var(--u)*18);border-radius:calc(var(--u)*2);border:1px solid #d9a94a;background:radial-gradient(circle at 40% 35%,#2f7a5c,#0f3b2d);color:#fff1c4;font-size:calc(var(--u)*4);font-weight:800}
.lt-rules{width:86%;max-height:88%;overflow:auto;font-size:calc(var(--u)*3.1);line-height:1.55;color:#f3e2bd;-webkit-overflow-scrolling:touch}
.lt-rules h3{margin:0 0 calc(var(--u)*2);font-size:calc(var(--u)*5);color:#ffd36a;text-align:center}
.lt-rules h4{margin:calc(var(--u)*3) 0 calc(var(--u)*1.5);font-size:calc(var(--u)*3.4);color:#ffd36a}
.lt-rules p{margin:0 0 calc(var(--u)*1.6)}
.lt-rules b{color:#ffe08a}
.lt-rules table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.lt-rules th{font-size:calc(var(--u)*2.6);color:#d9b56a;font-weight:600;padding-bottom:calc(var(--u)*1)}
.lt-rules td{text-align:center;padding:calc(var(--u)*.5) 0;border-top:1px solid rgba(255,214,120,.12)}
.lt-rules td img{height:calc(var(--u)*7);vertical-align:middle}
.lt-rules .sp{display:flex;gap:calc(var(--u)*4);justify-content:center;margin-top:calc(var(--u)*2)}
.lt-rules .sp span{display:flex;align-items:center;gap:calc(var(--u)*1.2)}
.lt-rules .sp img{height:calc(var(--u)*8)}
.lt-ok{display:block;margin:calc(var(--u)*3) auto 0;height:calc(var(--u)*9);padding:0 calc(var(--u)*8);border-radius:calc(var(--u)*4.5);border:0;background:linear-gradient(180deg,#f3c54a,#b9802a);color:#2a1604;font-weight:900;font-size:calc(var(--u)*3.6)}

/* 大厅门 */
.cart-lt{background:url(door-tiles.webp?v=32db7aeb) center/cover no-repeat}
