/* GIFTRON — «Белая броня»: аниме-меха × трансформеры. Белые бронепластины со скошенными углами и панельными швами,
   кобальт и сигнальный красный, жёлтый «осторожно», бирюзовое свечение энергии. Меню и шапка — стекло кабины (iOS 26). */
:root{
  --bg:#ECEFF4; --card:rgba(255,255,255,.8); --solid:#FFFFFF; --ink:#121A2C; --ink-2:#36405A; --muted:#687290; --faint:#A1A9BC; --line:rgba(18,26,44,.1);
  --accent:#FF3B4E; --accent-2:#FF7A45; --blue:#2B5BFF; --gold:#FFB915; --mint:#0DB8A5; --energon:#18D9C8; --red:#EE2F45;
  --rim:inset 0 1px 0 rgba(255,255,255,.95),inset 0 0 0 1px rgba(255,255,255,.6);
  --sh-1:var(--rim),0 1px 2px rgba(18,26,44,.05),0 6px 16px -6px rgba(18,26,44,.12);
  --sh-2:var(--rim),0 2px 4px rgba(18,26,44,.05),0 16px 32px -14px rgba(18,26,44,.24);
  --sh-3:var(--rim),0 6px 10px rgba(18,26,44,.06),0 28px 56px -18px rgba(18,26,44,.32);
  --blur:blur(18px) saturate(180%);
  --cut:14px;                                              /* скос бронепластины */
  --plate:polygon(var(--cut) 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%,0 var(--cut));
  --display:'Tektur','M PLUS 1p',system-ui,sans-serif;
  --body:'M PLUS 1p',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --top:calc(var(--tg-safe-area-inset-top,0px) + var(--tg-content-safe-area-inset-top,0px));
  --bottom:max(var(--tg-safe-area-inset-bottom,0px),env(safe-area-inset-bottom));
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg);-webkit-text-size-adjust:100%}
body{min-height:100dvh;color:var(--ink);background:transparent;font:500 15px/1.45 var(--body);-webkit-font-smoothing:antialiased;overscroll-behavior:none}
button,input{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;user-select:none;-webkit-user-select:none}
button:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
img{-webkit-user-drag:none;user-select:none;display:block}
[hidden]{display:none!important}
.mono{font-family:var(--mono);font-size:.92em}
.muted{color:var(--muted)}

/* ангар: чертёжная сетка и цветные отсветы прожекторов */
body::before{content:"";position:fixed;inset:-10%;z-index:-1;pointer-events:none;
  background:radial-gradient(40% 26% at 10% 6%,rgba(43,91,255,.16),rgba(43,91,255,0) 70%),radial-gradient(34% 24% at 94% 26%,rgba(255,59,78,.11),rgba(255,59,78,0) 70%),
  radial-gradient(40% 30% at 16% 84%,rgba(24,217,200,.13),rgba(24,217,200,0) 70%),radial-gradient(34% 26% at 90% 90%,rgba(255,185,21,.1),rgba(255,185,21,0) 70%),
  linear-gradient(rgba(18,26,44,.045) 1px,transparent 1px) 0 0/26px 26px,linear-gradient(90deg,rgba(18,26,44,.045) 1px,transparent 1px) 0 0/26px 26px}
.glass{background:rgba(255,255,255,.55);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--sh-2)}
#app{max-width:520px;margin:0 auto;padding:calc(var(--top) + 6px) 16px calc(112px + var(--bottom));opacity:0;transition:opacity .3s}
#app.ready{opacity:1}

/* ───── иконки ───── */
.ic{width:1em;height:1em;flex:none;display:inline-block;vertical-align:-.13em}
.amt{display:inline-flex;align-items:center;gap:.3em;font-variant-numeric:tabular-nums;white-space:nowrap}
.amt .ic{width:1.05em;height:1.05em}

/* ───── шапка ───── */
.top{position:sticky;top:0;z-index:15;display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin:0 -16px;padding:calc(var(--top) + 8px) 16px 10px;margin-top:calc(-1 * (var(--top) + 6px));
  background:rgba(236,239,244,.6);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}
.me-btn{display:flex;align-items:center;gap:10px;min-width:0;padding:4px 14px 4px 4px;border-radius:26px;text-align:left;background:rgba(255,255,255,.5);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--sh-1)}
.ava{width:42px;height:42px;border-radius:50%;flex:none;overflow:hidden;display:grid;place-items:center;color:#fff;
  font:700 17px/1 var(--display);background:linear-gradient(160deg,#FFB36B,#FF7A59);box-shadow:var(--sh-1)}
.ava img{width:100%;height:100%;object-fit:cover}
.me-btn b{display:block;font-weight:800;font-size:15px;line-height:1.15;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.me-btn small{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:700;color:var(--muted)}
.bal{display:flex;align-items:center;gap:8px;height:46px;padding:5px 5px 5px 14px;border-radius:23px;background:rgba(255,255,255,.6);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--sh-2)}
.bal-num{font:700 16px/1 var(--display);font-variant-numeric:tabular-nums}
.bal .ic{width:20px;height:20px}
.plus{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:#fff;background:linear-gradient(180deg,#5A82FF,#2B5BFF);box-shadow:inset 0 1px 0 rgba(255,255,255,.4)}
.plus svg{width:15px;height:15px}

/* ───── кнопки и поля ───── */
.btn{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:56px;padding:0 20px;border-radius:28px;
  font:800 16px/1 var(--body);text-decoration:none;transition:transform .14s ease,opacity .2s,box-shadow .2s}
.btn:active{transform:scale(.97)}
.btn .ic{width:19px;height:19px}
.btn-main{color:#fff;background:linear-gradient(180deg,#FF5B66,#E5233A);box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
.btn-blue{color:#fff;background:linear-gradient(180deg,#5A82FF,#2148E8);box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
.btn-soft{color:var(--ink);background:var(--card);box-shadow:var(--sh-1),inset 0 0 0 1px var(--line)}
.btn.sm{height:44px;font-size:14px;border-radius:22px}
.btn[disabled]{opacity:.5;pointer-events:none}
.btn.loading{opacity:.7;pointer-events:none}
.btn.wait{color:var(--muted);background:var(--card);box-shadow:var(--sh-1),inset 0 0 0 1px var(--line)}
.link-btn{display:block;margin:10px auto 0;padding:8px 12px;font-weight:800;font-size:14px;color:var(--muted)}
.inp{width:100%;height:52px;padding:0 16px;border-radius:18px;background:var(--bg);border:1.5px solid transparent;font-size:16px;font-weight:700;outline:none}
.inp:focus{border-color:var(--blue);background:#fff}
.inp-wrap{position:relative;display:block}
.inp-wrap .ic{position:absolute;left:16px;top:16px;width:20px;height:20px}
.inp-wrap .inp{padding-left:46px}
code.mono{display:block;padding:10px 12px;border-radius:14px;background:var(--bg);font-size:12px;line-height:1.5;word-break:break-all;user-select:all}
.note{font-size:13px;line-height:1.5;color:var(--muted)}
.h2{font:700 20px/1.15 var(--display);margin:26px 0 12px}
.h3{font:800 16px/1.2 var(--body);margin:22px 0 10px}
.chip{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;border-radius:13px;font-size:12px;font-weight:800;background:rgba(255,255,255,.7);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);color:var(--ink);box-shadow:var(--sh-1)}
.chip svg{width:14px;height:14px}

/* ───── иконки призов ───── */
.pi{display:grid;place-items:center;flex:none;width:52px;height:52px;position:relative}
.pi img{width:100%;height:100%;object-fit:contain}
.pi i{font-style:normal;font-size:40px;line-height:1}
.pi-gram .ic{width:76%;height:76%}
.pi-nft{border-radius:14px;overflow:hidden}
.pi-nft img{object-fit:cover}
.pi.xs{width:20px;height:20px}.pi.xs i{font-size:16px}.pi-nft.xs{border-radius:6px}
.pi.sm{width:38px;height:38px}.pi.sm i{font-size:30px}.pi-nft.sm{border-radius:10px}
.pi.big{width:180px;height:180px}.pi.big i{font-size:128px}
.pi-nft.big{width:220px;height:220px;border-radius:30px;box-shadow:var(--sh-3)}
/* редкость: голубой — обычные, фиолетовый — редкие, золото — дорогие, мятный — NFT */
.t1,.t2{--tc:#2B5BFF;--tbg:#E8EEFF}
.t3,.t4{--tc:#7A4DFF;--tbg:#EFEAFF}
.t5,.t6{--tc:#DE9500;--tbg:#FFF4D2}
.tn{--tc:#0DB8A5;--tbg:#DFF7F3}

/* ───── вкладки ───── */
.scr{display:none}
.scr.on{display:block;animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}}
/* Нижнее меню — жидкое стекло iOS 26: почти прозрачная капсула, которая размывает и подкрашивает то, что под ней,
   с бликом по кромке (светлее слева сверху и справа снизу) и мягким свечением изнутри. Выбранная вкладка — отдельная
   стеклянная капля: перетекает между вкладками, а если зажать меню, приподнимается в прозрачную линзу и едет за пальцем. */
.tabs{position:fixed;left:12px;right:12px;bottom:calc(10px + var(--bottom));z-index:20;max-width:496px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:2px;padding:6px;
  border-radius:34px;isolation:isolate;touch-action:none;-webkit-user-select:none;user-select:none;
  background:linear-gradient(180deg,rgba(255,255,255,.24),rgba(255,255,255,.08));
  -webkit-backdrop-filter:blur(9px) saturate(210%) brightness(1.04);backdrop-filter:blur(9px) saturate(210%) brightness(1.04);
  box-shadow:0 16px 36px -14px rgba(21,23,46,.32),0 3px 10px -3px rgba(21,23,46,.1),
    inset 0 1px 1px rgba(255,255,255,.95),inset 0 -1px 1px rgba(255,255,255,.5),inset 0 0 18px rgba(255,255,255,.34)}
.tabs::before{content:"";position:absolute;inset:0;z-index:2;border-radius:inherit;padding:1.3px;pointer-events:none;
  background:linear-gradient(135deg,#fff,rgba(255,255,255,.25) 30%,rgba(255,255,255,.06) 55%,rgba(255,255,255,.8) 92%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude}
.tabs::after{content:"";position:absolute;inset:1px;z-index:-1;border-radius:inherit;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.5),rgba(255,255,255,0) 42%,rgba(255,255,255,0) 72%,rgba(255,255,255,.22))}
.tab-blob{position:absolute;left:0;top:6px;bottom:6px;z-index:0;width:25%;border-radius:28px;pointer-events:none;will-change:transform;
  background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(255,255,255,.55));
  box-shadow:inset 0 1px 0 #fff,inset 0 -1px 1px rgba(255,255,255,.75),0 6px 16px -6px rgba(21,23,46,.24),0 0 0 .5px rgba(21,23,46,.05);
  transition:scale .32s cubic-bezier(.22,1,.36,1),background .25s,box-shadow .25s}
.tab-blob::after{content:"";position:absolute;inset:0;border-radius:inherit;background:rgba(255,59,78,.07);transition:opacity .25s}
.tabs.press .tab-blob{scale:1.06}
.tabs.drag .tab-blob{scale:1.2;background:linear-gradient(180deg,rgba(255,255,255,.42),rgba(255,255,255,.14));
  box-shadow:inset 0 1px 1px #fff,inset 0 -1px 1px rgba(255,255,255,.85),inset 0 0 14px rgba(255,255,255,.75),0 12px 26px -8px rgba(21,23,46,.32),0 0 0 .5px rgba(21,23,46,.06)}
.tabs.drag .tab-blob::after{opacity:0}
.tab{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:7px 0 6px;border-radius:26px;font-size:11px;font-weight:800;color:rgba(21,23,46,.55);transition:color .2s}
.tab svg{width:24px;height:24px;transition:transform .3s cubic-bezier(.22,1,.36,1)}
.tab.on{color:var(--accent)}
.tabs .tab.pressed{transform:none!important}
.tabs.drag .tab.on:not(.hover){color:rgba(21,23,46,.55)}
.tabs.drag .tab.hover{color:var(--accent)}
.tabs.drag .tab.hover svg{transform:scale(1.14)}
.tab .dot{position:absolute;top:2px;left:calc(50% + 6px);min-width:17px;height:17px;padding:0 5px;border-radius:9px;background:var(--accent);color:#fff;font-size:10px;font-weight:800;line-height:17px;text-align:center}

/* ───── игры: онлайн, дропы, баннеры ───── */
.online{display:flex;align-items:center;gap:7px;margin:6px 0 10px;font-size:13px;font-weight:800;color:var(--ink-2)}
.online i{width:8px;height:8px;border-radius:50%;background:var(--energon);box-shadow:0 0 0 3px rgba(24,217,200,.2)}
.drops{display:flex;gap:8px;margin:0 -16px;padding:2px 16px 14px;overflow-x:auto;scrollbar-width:none}
.drops::-webkit-scrollbar{display:none}
.drop{flex:none;width:84px;height:96px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border-radius:20px;background:var(--card);box-shadow:var(--sh-1)}
.drop .pi{width:50px;height:50px}.drop .pi i{font-size:38px}
.drop span{font:700 12px/1 var(--display);color:var(--ink-2)}
.drop .amt .ic{width:12px;height:12px}
.drops-empty{font-size:13px;color:var(--faint);padding:30px 0}
.banners{display:grid;gap:12px}
.banner{position:relative;display:block;width:100%;height:138px;border-radius:28px;overflow:hidden;text-align:left;background:var(--card);box-shadow:var(--sh-2);transition:transform .16s ease}
.banner:active{transform:scale(.98)}
.banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:right center}
.banner::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.6) 34%,rgba(255,255,255,0) 58%)}
.banner .chip{position:absolute;z-index:1;left:16px;top:16px}
.banner .chip.soon{color:var(--muted)}
.banner b{position:absolute;z-index:1;left:16px;bottom:16px;display:flex;align-items:center;gap:8px;font:700 26px/1 var(--display);letter-spacing:.01em;color:var(--ink)}
.banner b svg{width:24px;height:24px;color:var(--tint)}
.banner small{position:absolute;z-index:1;left:16px;bottom:62px;font-size:12px;font-weight:800;color:var(--muted)}

/* ───── полноэкранные страницы (кейсы, колесо, профиль…) ───── */
.page{position:fixed;inset:0;z-index:30;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;background:rgba(236,239,244,.9);-webkit-backdrop-filter:blur(30px) saturate(160%);backdrop-filter:blur(30px) saturate(160%);transform:translateX(100%);transition:transform .34s cubic-bezier(.22,1,.36,1)}
.page.on{transform:none}
.page-in{max-width:520px;margin:0 auto;padding:calc(var(--top) + 8px) 16px calc(32px + var(--bottom))}
.page-head{display:flex;align-items:center;gap:12px;min-height:52px;margin-bottom:6px}
.page-head h2{flex:1;font:700 21px/1.1 var(--display)}
.back{width:44px;height:44px;flex:none;border-radius:22px;display:grid;place-items:center;background:rgba(255,255,255,.6);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--sh-1)}
.back svg{width:18px;height:18px}
.page-head .amt{font:700 17px/1 var(--display)}

/* ───── кейсы ───── */
.cases{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.case{display:flex;flex-direction:column;gap:10px;padding:10px 10px 14px;border-radius:26px;background:rgba(255,255,255,.6);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--sh-2);text-align:left;transition:transform .16s ease}
.case:active{transform:scale(.97)}
.case-art{position:relative;aspect-ratio:1;border-radius:18px;overflow:hidden;background:var(--tbg)}
.case-art img{width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply}
.case-art .chip{position:absolute;left:8px;top:8px;height:22px;font-size:11px;padding:0 8px}
.case b{font:700 15px/1.15 var(--display);padding:0 4px}
.case-row{display:flex;align-items:center;gap:6px;padding:0 4px}
.price{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 10px;border-radius:15px;background:var(--bg);font:700 14px/1 var(--display)}
.price .ic{width:16px;height:16px}
.case-art .upto{left:auto;top:auto;right:8px;bottom:8px;gap:3px;color:var(--ink-2)}
.upto .ic{width:11px;height:11px}
.r3{--tc:#2B5BFF;--tbg:#E8EEFF}.r4{--tc:#7A4DFF;--tbg:#EFEAFF}.r5{--tc:#DE9500;--tbg:#FFF4D2}.rn{--tc:#0DB8A5;--tbg:#DFF7F3}

.case-hero{display:grid;place-items:center;margin:4px auto 0;width:180px;aspect-ratio:1;border-radius:32px;overflow:hidden;background:var(--tbg)}
.case-hero img{width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply}
.reel{position:relative;height:150px;margin:18px -16px 0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.reel-strip{display:flex;gap:10px;height:100%;align-items:center;will-change:transform}
.rc{position:relative;flex:0 0 100px;height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border-radius:24px;background:var(--card);box-shadow:var(--sh-1);overflow:hidden}
.rc::before{content:"";position:absolute;inset:0;background:var(--tbg);opacity:.85}
.rc>*{position:relative}
.rc .pi{width:60px;height:60px}.rc .pi i{font-size:46px}
.rc-v{display:flex;align-items:center;gap:4px;font:700 13px/1 var(--display);color:var(--ink-2)}
.rc-v .ic{width:13px;height:13px}
.rc.tn{justify-content:flex-end;padding-bottom:8px}
.rc.tn .pi{position:absolute;inset:0;width:auto;height:auto;border-radius:0}
.rc.tn .rc-v{padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.85)}
.rc.won{animation:won 1s cubic-bezier(.22,1,.36,1) both}
@keyframes won{40%{transform:scale(1.1)}100%{transform:scale(1.05);box-shadow:0 0 0 2.5px var(--tc),var(--sh-2)}}
.reel-mark{position:absolute;left:50%;top:6px;bottom:6px;width:3px;margin-left:-1.5px;border-radius:2px;background:var(--accent);pointer-events:none}
.reel-mark::before,.reel-mark::after{content:"";position:absolute;left:50%;width:12px;height:12px;border-radius:3px;background:var(--accent);transform:translateX(-50%) rotate(45deg)}
.reel-mark::before{top:-6px}.reel-mark::after{bottom:-6px}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.tile{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;padding:12px 6px 11px;border-radius:22px;min-width:0;text-align:center;background:var(--card);box-shadow:var(--sh-1);overflow:hidden}
.tile::before{content:"";position:absolute;left:0;right:0;top:0;height:64%;background:var(--tbg)}
.tile>*{position:relative}
.tile b{font-weight:800;font-size:13px;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tile .amt{font:700 12px/1 var(--display);color:var(--ink-2)}
.tile .amt .ic{width:12px;height:12px}
.tile.tn::before{height:100%}
/* в сетке с NFT карточки вытягиваются по высоте: заливка на всю карточку, содержимое по центру */
.grid:has(.tn) .tile::before{height:100%}
.grid:has(.tn) .tile:not(.tn){justify-content:center}
.tile.tn .pi{width:100%;height:auto;aspect-ratio:1;border-radius:16px}
.tile-row{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}
.chance{font:500 11px/1 var(--mono);color:var(--muted)}
.stock{font-size:11px;font-weight:800;color:var(--mint)}
.badge{position:absolute;top:6px;left:6px;right:6px;padding:3px 0;border-radius:9px;background:rgba(21,23,46,.75);font-size:10px;font-weight:800;color:#fff;z-index:1}
button.tile{transition:transform .14s}
button.tile:active{transform:scale(.96)}

/* ───── колесо ───── */

/* ───── инвентарь, задания, лидеры ───── */
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:12px 0 14px}
.sec-head h1{font:700 26px/1.1 var(--display)}
.sec-head .sub{font-size:13px;font-weight:700;color:var(--muted);margin-top:4px}
.chip-btn{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 14px;border-radius:19px;font-size:13px;font-weight:800;white-space:nowrap;background:var(--card);box-shadow:var(--sh-1)}
.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:26px 8px 10px}
.empty img{width:180px;height:180px;object-fit:contain;mix-blend-mode:multiply}
.empty b{font:700 19px/1.2 var(--display)}
.empty span{font-size:14px;color:var(--muted);max-width:300px}
.empty .row-btns{display:flex;gap:8px;margin-top:12px;width:100%;max-width:360px}
.tasks{display:grid;gap:10px}
.task{display:flex;align-items:center;gap:14px;padding:14px;border-radius:24px;background:var(--card);box-shadow:var(--sh-1);text-align:left;width:100%}
.task-ic{width:48px;height:48px;flex:none;border-radius:16px;display:grid;place-items:center;font-size:24px;background:var(--bg)}
.task-ic img{width:100%;height:100%;object-fit:cover;border-radius:16px}
.task-main{flex:1;min-width:0;display:grid;gap:2px}
.task-main b{font-weight:800}
.task-main span{font-size:13px;color:var(--muted)}
.task .go{flex:none;height:36px;padding:0 14px;border-radius:18px;display:grid;place-items:center;font-size:13px;font-weight:800;color:#fff;background:var(--accent)}
.task .done{background:var(--bg);color:var(--mint)}
.ref-card{padding:18px;border-radius:26px;background:var(--card);box-shadow:var(--sh-2)}
.ref-card .big{font:700 40px/1 var(--display);color:var(--accent)}
.link-box{display:flex;align-items:center;gap:8px;height:52px;padding:0 6px 0 16px;margin:14px 0 10px;border-radius:26px;background:var(--bg)}
.link-box .mono{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.link-box button{height:40px;padding:0 14px;border-radius:20px;background:#fff;box-shadow:var(--sh-1);font-size:13px;font-weight:800}
.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:12px}
.kpis.three{grid-template-columns:repeat(3,1fr)}
.kpis>div{display:flex;flex-direction:column;gap:6px;padding:14px 12px;border-radius:20px;min-width:0;background:var(--card);box-shadow:var(--sh-1)}
.kpis b{font:700 18px/1 var(--display);overflow:hidden;text-overflow:ellipsis}
.kpis b .ic{width:16px;height:16px}
.kpis span{font-size:12px;font-weight:700;color:var(--muted)}
.lead-card{padding:18px 14px 20px;border-radius:30px;background:var(--card);box-shadow:var(--sh-2);text-align:center}
.lead-card .lbl{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.timer{display:flex;justify-content:center;gap:8px;margin:10px 0 18px}
.timer div{width:58px;padding:9px 0 7px;border-radius:16px;background:var(--bg)}
.timer b{display:block;font:700 22px/1 var(--display)}
.timer small{font-size:10px;font-weight:800;color:var(--muted)}
.podium{display:grid;grid-template-columns:1fr 1.15fr 1fr;align-items:end;gap:8px}
.pod{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}
.pod .place{font:700 22px/1 var(--display);color:var(--faint)}
.pod.p1 .place{color:var(--gold)}.pod.p3 .place{color:#E07A4F}
.pod .ava{width:64px;height:64px;font-size:24px;border-radius:22px}
.pod.p1 .ava{width:84px;height:84px;font-size:30px;border-radius:28px}
.pod b{font-weight:800;font-size:13px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pod .amt{font:700 15px/1 var(--display)}
.pod small{font-size:11px;font-weight:800;color:var(--muted)}
.list{display:grid;gap:8px}
.row{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:20px;background:var(--card);box-shadow:var(--sh-1);min-width:0}
.row.me{box-shadow:0 0 0 2px var(--accent),var(--sh-1)}
.row .rk{width:22px;font:700 15px/1 var(--display);color:var(--faint);text-align:center;flex:none}
.row .ava{width:40px;height:40px;font-size:15px;border-radius:14px}
.row-main{flex:1;min-width:0;display:grid;gap:2px}
.row-main b{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row-main span{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row>.amt{font-weight:800;font-size:14px}
.row .amt .ic{width:14px;height:14px}

/* ───── профиль ───── */
.prof{display:flex;align-items:center;gap:14px;margin:6px 0 4px}
.prof .ava{width:64px;height:64px;font-size:24px}
.prof h2{font:700 21px/1.15 var(--display)}
.lvl{margin-top:14px;padding:14px 16px;border-radius:22px;background:var(--card);box-shadow:var(--sh-1)}
.lvl-top{display:flex;justify-content:space-between;font-size:13px;font-weight:800}
.bar{height:8px;margin-top:10px;border-radius:4px;background:var(--bg);overflow:hidden}
.bar i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,var(--accent-2),var(--accent))}
.fair{display:grid;gap:12px;padding:16px;border-radius:24px;background:var(--card);box-shadow:var(--sh-1)}
.fair label{display:grid;gap:6px;font-size:12px;font-weight:800;color:var(--muted)}
.prev{display:grid;gap:12px;padding-top:12px;border-top:1px solid var(--line)}
.verify{display:grid;grid-template-columns:96px 1fr;gap:8px}
.verify .inp{height:44px}

/* ───── нижний лист ───── */
.sheet-wrap{position:fixed;inset:0;z-index:40;background:rgba(21,23,46,0);transition:background .26s}
.sheet-wrap.on{background:rgba(21,23,46,.32)}
.sheet{position:absolute;left:8px;right:8px;bottom:calc(8px + var(--bottom));max-width:504px;max-height:86dvh;margin:0 auto;overflow-y:auto;overscroll-behavior:contain;
  padding:10px 18px 20px;border-radius:32px;background:rgba(255,255,255,.8);-webkit-backdrop-filter:blur(30px) saturate(180%);backdrop-filter:blur(30px) saturate(180%);box-shadow:var(--sh-3);transform:translateY(112%);transition:transform .34s cubic-bezier(.22,1,.36,1)}
.sheet-wrap.on .sheet{transform:none}
.grip{width:38px;height:5px;margin:0 auto 14px;border-radius:3px;background:#E1E3EC}
.sheet-title{font:700 20px/1.2 var(--display);margin-bottom:14px;text-align:center}
.seg{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:16px}
.seg button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px 10px;border-radius:18px;background:var(--bg);font-size:12px;font-weight:800;color:var(--ink-2)}
.seg button svg{width:24px;height:24px}
.seg button.on{background:#fff;box-shadow:0 0 0 2px var(--blue),var(--sh-1);color:var(--blue)}
.seg button.off{opacity:.45}
.presets{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}
.preset{height:50px;border-radius:16px;background:rgba(243,244,248,.8);box-shadow:var(--rim);font:700 15px/1 var(--display);display:flex;align-items:center;justify-content:center;gap:5px}
.preset .ic{width:16px;height:16px}
.preset.on{background:#fff;box-shadow:0 0 0 2px var(--blue)}
.est{display:flex;align-items:center;justify-content:center;gap:6px;margin:12px 0 14px;font-size:14px;font-weight:800;color:var(--ink-2)}
.wallet-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;padding:10px 12px 10px 14px;border-radius:16px;background:var(--bg);font-size:13px;font-weight:800}
.wallet-row button{color:var(--muted);font-weight:800;font-size:13px}
.manual{display:grid;gap:10px;margin-top:12px}
.manual label{display:grid;gap:6px;font-size:12px;font-weight:800;color:var(--muted)}
.copy-line{display:flex;gap:8px;align-items:stretch}
.copy-line code{flex:1;min-width:0}
.copy-line button{flex:none;padding:0 12px;border-radius:12px;background:var(--bg);font-size:12px;font-weight:800}
.waiting{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:14px 0}
.spinner{width:44px;height:44px;border-radius:50%;border:4px solid var(--bg);border-top-color:var(--blue);animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.item-sheet{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}
.item-sheet h2{font:700 22px/1.15 var(--display);margin-top:6px}
.item-sheet>.amt{font:700 17px/1 var(--display)}
.stack{display:grid;gap:8px;width:100%;margin-top:14px}
.odds-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}
.odds-row b{flex:1;font-weight:800}

/* ───── окно выигрыша ───── */
.win{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:24px 16px;background:rgba(21,23,46,.38);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .22s}
.win.on{opacity:1}
.win-card{position:relative;width:min(100%,360px);display:flex;flex-direction:column;align-items:center;gap:6px;padding:26px 18px 18px;border-radius:36px;text-align:center;overflow:hidden;background:rgba(255,255,255,.82);-webkit-backdrop-filter:blur(30px) saturate(180%);backdrop-filter:blur(30px) saturate(180%);box-shadow:var(--sh-3);transform:scale(.92) translateY(14px);transition:transform .42s cubic-bezier(.22,1,.36,1)}
.win.on .win-card{transform:none}
.rays{position:absolute;left:50%;top:126px;width:620px;height:620px;margin:-310px 0 0 -310px;pointer-events:none;opacity:.55;
  background:repeating-conic-gradient(from 0deg,var(--tbg) 0 8deg,rgba(255,255,255,0) 8deg 20deg);
  -webkit-mask-image:radial-gradient(circle,#000 0,transparent 58%);mask-image:radial-gradient(circle,#000 0,transparent 58%);animation:rot 30s linear infinite}
@keyframes rot{to{transform:rotate(360deg)}}
.win-art{position:relative;width:220px;height:220px;display:grid;place-items:center}
.win-art .lottie{width:190px;height:190px}
.eyebrow{position:relative;font:800 11px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.win-title{position:relative;font:700 26px/1.15 var(--display)}
.win-val{position:relative;font:700 18px/1 var(--display)}
.win-val .ic{width:19px;height:19px}
.win-btns{position:relative;display:grid;gap:8px;width:100%;margin-top:16px}

/* ───── тост и заглушки ───── */
#toast{position:fixed;left:50%;top:calc(var(--top) + 12px);z-index:60;max-width:min(92vw,420px);padding:12px 18px;border-radius:20px;color:var(--ink);background:rgba(255,255,255,.8);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);
  font-weight:800;font-size:14px;line-height:1.35;text-align:center;box-shadow:var(--sh-3);transform:translate(-50%,-160%);opacity:0;transition:transform .3s cubic-bezier(.22,1,.36,1),opacity .2s;pointer-events:none}
#toast.show{transform:translate(-50%,0);opacity:1}
#toast.err{color:var(--red)}
.fatal{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px;min-height:80dvh;padding:0 12px}
.fatal img{width:160px;mix-blend-mode:multiply}
.fatal h2{font:700 22px/1.2 var(--display)}
.fatal p{color:var(--muted);max-width:300px}
.fatal .btn{width:auto;margin-top:8px}

@media (hover:hover){.banner:hover,.case:hover{box-shadow:var(--sh-3)}}
@media (prefers-reduced-motion:reduce){.rays,.spinner{animation:none}.page,.sheet,.win-card{transition-duration:.01s}}

/* ───── upgrade ───── */
.seg2{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;margin:18px 0 12px;border-radius:18px;background:#E9EBF2}
.seg2 button{height:38px;border-radius:14px;font-weight:800;font-size:13px;color:var(--muted)}
.seg2 button.on{background:#fff;color:var(--ink);box-shadow:var(--sh-1)}
.hscroll{display:flex;gap:8px;overflow-x:auto;margin:0 -16px;padding:2px 16px 10px;scrollbar-width:none}
.hscroll::-webkit-scrollbar{display:none}
.tile.mini{flex:none;width:84px;padding:10px 6px}
.tile.mini::before{height:100%}
.tile.mini span{font:700 12px/1 var(--display)}
.tile.sel{box-shadow:0 0 0 2.5px var(--accent),var(--sh-1)}
.chips-row{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
button.chip{height:32px;padding:0 14px;border-radius:16px;font-size:13px}
.chip.on{background:var(--ink);color:#fff}

/* ───── mines ───── */
.mines-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:4px 0 14px}
.mines-stats div{display:grid;gap:5px;padding:10px 12px;border-radius:18px;background:var(--card);box-shadow:var(--sh-1);min-width:0}
.mines-stats div>span{font-size:11px;font-weight:800;color:var(--muted)}
.mines-stats b{font:700 16px/1 var(--display);white-space:nowrap}
.mines-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:16px}
.mc{aspect-ratio:1;border-radius:16px;background:var(--card);box-shadow:var(--sh-1);display:grid;place-items:center;font-size:26px;transition:transform .12s ease}
.mc:not([disabled]):active{transform:scale(.92)}
.mc .ic{width:56%;height:56%}
.mc.safe{background:#EAF3FF;animation:pop .3s cubic-bezier(.22,1,.36,1)}
.mc.boom{background:#FFE0E3;animation:pop .3s cubic-bezier(.22,1,.36,1)}
.mc.mine{background:#FFF0F3}
.mc.dim{opacity:.45}
@keyframes pop{from{transform:scale(.7)}}
.mines-ctrl .lbl{display:block;font-size:12px;font-weight:800;color:var(--muted);margin-top:4px}
.page .inp,.scr .inp{background:rgba(255,255,255,.75);box-shadow:var(--sh-1)}

/* ───── crash ───── */
.crash-stage{position:relative;height:340px;margin-top:4px;border-radius:30px;overflow:hidden;container-type:size;background:#DCE9FF;box-shadow:var(--sh-2)}
.crash-sky{position:absolute;left:0;top:0;width:100%;aspect-ratio:720/1290;background-size:100% 100%;will-change:transform}
.crash-streaks i{position:absolute;top:-30%;width:2px;height:26%;border-radius:2px;background:linear-gradient(rgba(255,255,255,0),rgba(255,255,255,.9));opacity:0}
.crash-stage[data-phase="fly"] .crash-streaks i{animation:streak 1s linear infinite}
.crash-streaks i:nth-child(1){left:10%}.crash-streaks i:nth-child(2){left:24%;animation-delay:-.4s!important}
.crash-streaks i:nth-child(3){left:41%;animation-delay:-.75s!important}.crash-streaks i:nth-child(4){left:63%;animation-delay:-.2s!important}
.crash-streaks i:nth-child(5){left:78%;animation-delay:-.6s!important}.crash-streaks i:nth-child(6){left:91%;animation-delay:-.9s!important}
@keyframes streak{0%{transform:translateY(0);opacity:0}15%{opacity:.9}100%{transform:translateY(520%);opacity:0}}
.crash-hist{position:absolute;left:12px;right:12px;top:12px;z-index:3;display:flex;gap:6px;overflow:hidden}
.crash-hist span{flex:none;padding:6px 10px;border-radius:13px;font:700 12px/1 var(--display);color:var(--ink-2)}
.crash-hist span.good{color:#0E8A62}
.crash-hist span.gold{color:#B86E06}
.crash-pill{position:absolute;left:50%;top:13%;z-index:3;transform:translateX(-50%);display:grid;justify-items:center;gap:3px;min-width:170px;padding:12px 22px 10px;border-radius:26px}
.crash-pill b{font:700 44px/1 var(--display);font-variant-numeric:tabular-nums}
.crash-pill span{font-size:12px;font-weight:800;color:var(--ink-2)}
.crash-stage[data-phase="crash"] .crash-pill b{color:var(--red)}
.crash-rocket{position:absolute;left:50%;bottom:4%;z-index:2;width:128px;height:128px;will-change:transform}
.crash-anim{position:absolute;inset:0;display:grid;place-items:center;font-size:72px}
.crash-anim img,.crash-anim svg{width:100%!important;height:100%!important}
.crash-stage[data-phase="crash"] .crash-rocket{opacity:0;transition:opacity .2s}
.crash-boom{position:absolute;left:50%;top:58%;z-index:4;width:12px;height:12px;margin:-6px;border-radius:50%;pointer-events:none;opacity:0;
  background:radial-gradient(circle,#FFF6C2 0,#FFB347 34%,#FF5A5F 58%,rgba(255,90,95,0) 72%)}
.crash-boom.go{animation:boom .75s cubic-bezier(.22,1,.36,1) forwards}
@keyframes boom{0%{transform:scale(1);opacity:1}100%{transform:scale(30);opacity:0}}
.crash-ctrl{display:grid;grid-template-columns:1.4fr 1fr;gap:8px;margin-top:14px}
.inp-wrap.auto .pre{position:absolute;left:16px;top:15px;font:700 16px/1 var(--display);color:var(--muted)}
.inp-wrap.auto .inp{padding-left:34px}
.amt.win{color:var(--mint)}
.chips-row.scroll{flex-wrap:nowrap;overflow-x:auto;margin:10px -16px;padding:2px 16px 4px;scrollbar-width:none}
.chips-row.scroll::-webkit-scrollbar{display:none}
.chips-row.scroll .chip{flex:none}

/* ───── pvp ───── */
.pdot{width:10px;height:10px;border-radius:50%;flex:none}

/* ───── приятные тапы: мягкое проседание под пальцем ───── */
button,.banner,.case,.tile{transition:transform .34s cubic-bezier(.22,1,.36,1),box-shadow .2s,opacity .2s}
.pressed{transform:scale(.955)!important;transition-duration:.09s!important}
.btn.pressed,.banner.pressed{transform:scale(.97)!important}

/* ───── конфетти в окне выигрыша ───── */
.confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:inherit}
.confetti i{position:absolute;top:-14px;width:8px;height:12px;border-radius:2px;opacity:0;animation:conf 1.7s cubic-bezier(.22,1,.36,1) forwards}
@keyframes conf{0%{opacity:1;transform:translate(0,0) rotate(0)}100%{opacity:0;transform:translate(var(--dx),460px) rotate(var(--r))}}
.win-art .pi{animation:pop-in .55s cubic-bezier(.22,1,.36,1)}
@keyframes pop-in{from{transform:scale(.5) translateY(20px);opacity:0}}

/* ───── mines: клетка переворачивается, мина трясёт ───── */
.mc.safe{animation:flip .4s cubic-bezier(.22,1,.36,1)}
@keyframes flip{from{transform:rotateY(90deg) scale(.9)}}
.mc.boom{animation:shake .45s ease}
@keyframes shake{20%{transform:translateX(-5px) rotate(-4deg)}40%{transform:translateX(5px) rotate(4deg)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}
.mc{background:rgba(255,255,255,.7)}

/* ───── upgrade: кольцо отвечает на результат ───── */
@keyframes ring-win{40%{transform:scale(1.07)}}

@media (prefers-reduced-motion:reduce){.confetti,.crash-streaks{display:none}.mc.safe,.mc.boom,.win-art .pi{animation:none}}

/* ───── живые призы (Lottie) ───── */
.pi.anim{overflow:hidden}
.pi.anim svg{display:block;width:100%!important;height:100%!important}
.pi-nft.big.anim{width:220px;height:220px}
.win-art .pi.big:not(.pi-nft).anim{width:190px;height:190px}

/* ───── огонь из сопла: ракеты Stellar Rocket нарисованы под 45°, хвост — слева снизу ───── */
.flame{position:absolute;left:33%;top:70%;width:0;height:0;transform:rotate(45deg) scale(.4);transform-origin:0 0;transition:transform .5s cubic-bezier(.22,1,.36,1),opacity .3s;opacity:.9}
.crash-stage[data-phase="fly"] .flame{transform:rotate(45deg) scale(1);opacity:1}
.crash-stage[data-phase="crash"] .flame{opacity:0}
.flame i{position:absolute;top:-14px;transform-origin:50% 0;border-radius:50% 50% 50% 50% / 22% 22% 78% 78%;animation:flick .11s ease-in-out infinite alternate}
.flame i:nth-child(1){left:-12px;width:24px;height:82px;filter:blur(2.5px);background:linear-gradient(rgba(255,120,40,.95),rgba(255,70,80,.6) 55%,rgba(255,70,80,0))}
.flame i:nth-child(2){left:-8px;width:16px;height:58px;filter:blur(1.2px);background:linear-gradient(#FFE27A,rgba(255,170,50,.85) 55%,rgba(255,140,40,0));animation-duration:.08s}
.flame i:nth-child(3){left:-4px;width:8px;height:30px;filter:blur(.6px);background:linear-gradient(#fff,rgba(255,250,210,0));animation-duration:.06s}
@keyframes flick{from{transform:scaleY(.82) scaleX(1.06)}to{transform:scaleY(1.16) scaleX(.92)}}
.sparks b{position:absolute;left:-2px;top:26px;width:4px;height:4px;border-radius:50%;background:#FFD27A;opacity:0}
.crash-stage[data-phase="fly"] .sparks b{animation:spark .6s linear infinite}
.sparks b:nth-child(2){animation-delay:-.08s!important;margin-left:-6px}.sparks b:nth-child(3){animation-delay:-.16s!important;margin-left:5px}
.sparks b:nth-child(4){animation-delay:-.24s!important;margin-left:-3px}.sparks b:nth-child(5){animation-delay:-.32s!important;margin-left:7px}
.sparks b:nth-child(6){animation-delay:-.4s!important;margin-left:-8px}.sparks b:nth-child(7){animation-delay:-.48s!important;margin-left:2px}
.sparks b:nth-child(8){animation-delay:-.56s!important;margin-left:-1px}
@keyframes spark{0%{transform:translateY(0);opacity:1}100%{transform:translateY(80px) scale(.3);opacity:0}}
.crash-name{position:absolute;left:12px;bottom:12px;z-index:3;padding:6px 11px;border-radius:13px;font-size:12px;font-weight:800;color:var(--ink-2)}
.crash-stage[data-phase="fly"] .crash-name{opacity:0;transition:opacity .4s}
/* «Что внутри»: ожившая плитка */
.tile.live{box-shadow:0 0 0 2.5px var(--tc),var(--sh-1)}
@media (prefers-reduced-motion:reduce){.flame i,.sparks b{animation:none}}

/* ───── заряд колеса, фонд лидеров, сумма в $ ───── */
.charge{margin:-4px 0 16px;padding:14px 16px;border-radius:22px;background:rgba(255,255,255,.6);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--sh-1)}
.charge-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}
.charge-top b{font-weight:800;font-size:14px}
.charge-top span{font:700 15px/1 var(--display);color:var(--mint)}
.charge-bar{--p:0;position:relative;height:12px;border-radius:3px;background:rgba(18,26,44,.08);overflow:hidden}
.charge-bar i{position:absolute;inset:0;transform-origin:left;transform:scaleX(var(--p));border-radius:3px;background:linear-gradient(90deg,#2B5BFF,var(--energon));transition:transform .6s cubic-bezier(.22,1,.36,1)}
.charge .note{margin-top:8px;font-size:12px}
.pool{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:4px 8px;margin:12px 0 2px;text-align:center}
.pool span{font-weight:800;font-size:13px;color:var(--muted)}
.pool .amt{font:700 18px/1 var(--display)}
.pool small{flex-basis:100%;font-size:11.5px;font-weight:700;color:var(--muted)}
.inp-wrap .cur{position:absolute;left:18px;top:50%;transform:translateY(-50%);font-weight:800;font-size:17px;color:var(--muted)}

/* ───── колёса: колесо фортуны, PvP и Upgrade — общий обод с лампочками, стеклянная ступица, бантик ───── */
.dial{position:relative;width:min(100%,340px);aspect-ratio:1;margin:36px auto 18px}
.dial::before{content:"";position:absolute;inset:1.5%;border-radius:50%;box-shadow:0 28px 54px -20px rgba(21,23,46,.38),0 8px 18px -8px rgba(21,23,46,.16)}
.dial>svg,.dial-spin{position:absolute;inset:0;width:100%;height:100%;display:block}
.dial-spin{overflow:hidden}
.dial-spin>svg{width:100%;height:100%;display:block}
.dial-disc{will-change:transform}
.dial>.ptr{position:absolute;left:calc(50% - 34px);top:-28px;width:68px;height:57px;z-index:3;transform-origin:50% 38%;filter:drop-shadow(0 6px 8px rgba(21,23,46,.25))}
.bulb{animation:bulb 1.6s ease-in-out infinite}
.bulb.b2{animation-delay:-.8s}
.dial.spinning .bulb{animation-duration:.36s}
@keyframes bulb{50%{opacity:.3}}
.dial-hub{position:absolute;left:50%;top:50%;z-index:2;transform:translate(-50%,-50%);border-radius:50%;display:grid;place-items:center;align-content:center;
  background:radial-gradient(circle at 34% 28%,#fff 0,#F7F8FC 55%,#E8EBF3 100%);
  box-shadow:inset 0 1px 0 #fff,inset 0 -6px 14px rgba(21,23,46,.06),0 0 0 5px rgba(255,255,255,.92),0 12px 26px -10px rgba(21,23,46,.35)}
/* колесо фортуны */
.wheel-hub{width:23%;height:23%}
.wheel-hub .ic{width:48%;height:48%}
.dial.ready .wheel-hub{animation:hub 1.8s ease-in-out infinite}
@keyframes hub{50%{box-shadow:inset 0 1px 0 #fff,0 0 0 5px rgba(255,255,255,.92),0 0 0 13px rgba(24,217,200,.28),0 12px 26px -10px rgba(21,23,46,.35)}}
.seg-win{fill:#fff;opacity:0;pointer-events:none}
.seg-win.on{animation:segwin 1.1s ease-in-out 3}
@keyframes segwin{50%{opacity:.5}}
/* PvP */
.pvp-hub{width:51%;height:51%;gap:5px;padding:12px;text-align:center}
.hub-lbl{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.hub-pot{font:700 25px/1 var(--display)}
.hub-pot .ic{width:20px;height:20px}
.hub-time{padding:5px 11px;border-radius:4px;background:rgba(255,59,78,.1);color:#D91F35;font-size:15px;font-weight:700}
.hub-note{font-size:12px;font-weight:800;color:var(--muted)}
.pvp-hub .ava{width:48px;height:48px;font-size:20px;box-shadow:0 0 0 3px #fff,var(--sh-1)}
.hub-name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800;font-size:14px}
.hub-win{font:700 15px/1 var(--display);color:var(--mint)}
.pseg{transition:opacity .45s}
.pseg.dim{opacity:.28}
.pav{transition:opacity .3s}
.dial-cap{margin:-2px 0 12px;text-align:center;font-size:13px;font-weight:700;color:var(--muted)}
.dial-cap b{color:var(--ink)}
/* Upgrade */
.up-hub{width:52%;height:52%;background:radial-gradient(circle at 34% 28%,#fff 0,var(--tbg,#F3F4F8) 100%)}
.up-hub .pi{width:66%;height:auto;aspect-ratio:1}
.up-hub .pi i{font-size:84px}
.up-hub .pi-nft{width:74%;height:auto;aspect-ratio:1;border-radius:50%;box-shadow:0 0 0 4px #fff,var(--sh-2)}
.up-q{font:700 54px/1 var(--display);color:var(--faint)}
.up-dial.win{animation:ring-win .9s cubic-bezier(.22,1,.36,1)}
.up-dial.win #up-glow{animation:glow .9s ease-in-out 2}
@keyframes glow{50%{opacity:1}}
.up-dial.lose{animation:shake .45s ease}
.up-dial.lose>.ptr{filter:drop-shadow(0 0 12px rgba(240,71,91,.95))}
.up-chance{margin:-4px 0 16px;text-align:center;font-weight:800;font-size:15px;color:var(--muted)}
.up-chance b{margin-left:6px;font:700 30px/1 var(--display);color:var(--ink);vertical-align:-4px}
.up-pair{display:grid;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);align-items:center;gap:6px}
.up-card{position:relative;display:grid;align-content:start;gap:9px;min-height:98px;padding:12px 12px 14px;border-radius:22px;background:var(--card);box-shadow:var(--sh-1);text-align:left;overflow:hidden}
.up-card::before{content:"";position:absolute;inset:0;background:var(--tbg,transparent);opacity:.8}
.up-card>*{position:relative}
.up-card small{font-size:10.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.up-card-in{display:flex;align-items:center;gap:10px;min-width:0}
.up-card-in .pi{width:46px;height:46px}
.up-card-in .pi i{font-size:36px}
.up-card-in>span:last-child{display:grid;gap:4px;min-width:0}
.up-card-in b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800;font-size:13px;line-height:1.2}
.up-card-in .amt{font:700 14px/1 var(--display)}
.up-card .up-empty{font-size:13px;font-weight:800;color:var(--faint)}
.up-mid{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--accent);box-shadow:var(--sh-1)}
.up-mid svg{width:18px;height:18px}
.up-mults{display:flex;align-items:center;gap:6px;margin:14px 0 2px}
.up-mults .chip{height:34px;padding:0 13px;font-size:13px}
.up-mults .chip.on{background:var(--ink);color:#fff}
.up-all{margin-left:auto;display:inline-flex;align-items:center;gap:3px;padding:6px 0;font-weight:800;font-size:13px;color:var(--accent);white-space:nowrap}
.up-all svg{width:16px;height:16px}
.up-slider{display:flex;align-items:center;gap:12px;margin:12px 0 8px}
.up-x{flex:none;min-width:66px;height:30px;padding:0 10px;border-radius:15px;display:grid;place-items:center;color:#fff;font:700 14px/1 var(--display);
  background:linear-gradient(180deg,#FF5B66,#E5233A);box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
#up-range{--p:0;flex:1;min-width:0;height:8px;margin:0;border-radius:4px;-webkit-appearance:none;appearance:none;outline-offset:6px;
  background:linear-gradient(90deg,var(--accent) calc(var(--p) * 100%),#E2E5EE 0)}
#up-range::-webkit-slider-thumb{-webkit-appearance:none;width:30px;height:30px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px rgba(21,23,46,.08),0 4px 12px rgba(21,23,46,.25)}
#up-range::-moz-range-thumb{width:30px;height:30px;border:0;border-radius:50%;background:#fff;box-shadow:0 0 0 1px rgba(21,23,46,.08),0 4px 12px rgba(21,23,46,.25)}
.up-sugg .tile.mini{padding-top:24px}
.tile>.xb{position:absolute;top:6px;left:6px;z-index:1;padding:3px 6px;border-radius:8px;background:rgba(21,23,46,.8);color:#fff;font:800 10px/1.1 var(--body)}
.up-go{height:60px;margin-top:8px;font-size:17px}
.up-find{display:flex;align-items:center;gap:8px}
.up-find .inp-wrap{flex:1}
.up-find .inp::-webkit-search-cancel-button{display:none}
.up-find .chip{height:52px;padding:0 14px;border-radius:18px;font-size:13px}
.up-price{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 12px}
.tile.off{opacity:.42}
@media (prefers-reduced-motion:reduce){.bulb,.dial.ready .wheel-hub,.seg-win.on,.up-dial.win,.up-dial.lose{animation:none}}

/* ═════════ БЕЛАЯ БРОНЯ: детали мехи ═════════
   Бронепластина — скошены левый верхний и правый нижний углы. Тень даёт обёртка (filter: drop-shadow),
   потому что clip-path срезает собственную тень пластины. */
.banner,.case,.btn-main,.btn-blue,.up-card,.task .go{border-radius:3px;clip-path:var(--plate)}
.banners,.cases,.up-pair{filter:drop-shadow(0 12px 14px rgba(18,26,44,.14)) drop-shadow(0 2px 2px rgba(18,26,44,.06))}
.banner,.case,.up-card{box-shadow:none}
.case{background:rgba(255,255,255,.88)}
.btn-main,.btn-blue{--cut:12px;height:58px;font:700 15px/1 var(--display);letter-spacing:.04em;text-transform:uppercase}
.btn.sm.btn-main,.btn.sm.btn-blue{--cut:9px;height:46px;font-size:14px}
.btn-main::after,.btn-blue::after{content:"";position:absolute;right:12px;top:50%;width:14px;height:6px;margin-top:-3px;opacity:.55;
  background:repeating-linear-gradient(115deg,#fff 0 3px,transparent 3px 6px)}       /* метка «тяга»: штрихи на правом торце */
.task .go{--cut:7px}
/* баннер игры: название на светлой пластине со скосом */
.banner b{font:800 27px/1 var(--display);letter-spacing:.03em;padding:6px 12px 6px 10px;margin-left:-4px;
  background:linear-gradient(90deg,rgba(255,255,255,.92),rgba(255,255,255,.6));clip-path:polygon(0 0,100% 0,calc(100% - 10px) 100%,0 100%)}
.banner::after{background:linear-gradient(90deg,rgba(236,239,244,.95) 0%,rgba(236,239,244,.55) 32%,rgba(236,239,244,0) 56%)}
/* заголовки разделов — капсом, под ними трёхцветная полоса брони: кобальт · красный · жёлтый */
.sec-head h1,.page-head h2,.sheet-title,.h2{text-transform:uppercase;letter-spacing:.02em}
.sec-head h1::after,.page-head h2::after{content:"";display:block;width:46px;height:4px;margin-top:7px;
  background:linear-gradient(90deg,var(--blue) 0 50%,var(--accent) 50% 80%,var(--gold) 80%)}
.page-head h2::after{width:34px;height:3px;margin-top:5px}
.case b{text-transform:uppercase;letter-spacing:.01em}
/* кнопка «назад», цены и фишки — меньше округлости, больше «панели» */
.back{border-radius:12px}
.price,.preset,.chip,button.chip,.chip-btn,.seg button,.seg2,.seg2 button,.inp,.link-box,.timer div,.kpis>div,.row,.tile,.drop,.rc,.mc,.task,.ref-card,.lead-card,.lvl,.fair,.charge,.mines-stats div{border-radius:10px}
.inp{border-radius:8px}
.chip,button.chip{border-radius:6px}
.tile.sel{box-shadow:0 0 0 2.5px var(--accent),var(--sh-1)}
/* энергия: выигрыши — бирюзовым */
.amt.win,.hub-win{color:var(--mint)}
.stock{color:var(--mint)}
/* «%» у Tektur нарисован как «/.» — в крупных цифрах знак процента берём из текстового шрифта */
.charge-top .pc,.up-chance .pc,.ref-card .pc,span.pc{margin-left:.06em;font-family:var(--body);font-weight:800;font-size:.78em}
.dial>.ptr{left:calc(50% - 40px);top:-32px;width:80px;height:67px}
.row-btns .btn::after,.fatal .btn::after{display:none}          /* в узких кнопках штрихи «тяги» наезжают на текст */

/* ───── обложка кейса: тематическая капсула внизу, над ней — настоящие призы из кейса ─────
   Самый ценный — крупно по центру, два следующих — меньше, слева и справа позади. NFT — круглыми медальонами. */
.case-art .case-pod{position:absolute;left:50%;bottom:-4%;width:72%;height:auto;aspect-ratio:1;transform:translateX(-50%);object-fit:contain}
.case-art::before{content:"";position:absolute;left:18%;right:18%;bottom:22%;height:62%;pointer-events:none;
  background:linear-gradient(0deg,rgba(255,255,255,.75),rgba(255,255,255,0));clip-path:polygon(30% 100%,70% 100%,100% 0,0 0)}   /* луч из капсулы */
.case-loot{position:absolute;left:0;right:0;top:6%;height:58%;pointer-events:none}
.lt{position:absolute;display:grid;place-items:center;filter:drop-shadow(0 6px 8px rgba(18,26,44,.22))}
.lt .pi{width:100%;height:100%}
.lt .pi i{font-size:2.4em}
.lt.l1{left:50%;top:6%;width:46%;aspect-ratio:1;transform:translateX(-50%);z-index:3}
.lt.l2{left:8%;top:30%;width:32%;aspect-ratio:1;transform:rotate(-10deg);z-index:2}
.lt.l3{right:8%;top:30%;width:32%;aspect-ratio:1;transform:rotate(10deg);z-index:2}
.lt-nft .pi-nft{border-radius:50%;box-shadow:0 0 0 2.5px #fff}
.case-art .chip.upto{z-index:4}
.case-art .chip{z-index:4}
.case-art .lt img{mix-blend-mode:normal}

/* ───── сгенерированные детали (вырезаны из InkFlow: dev/cutout.py) ───── */
.dial>.ptr{left:calc(50% - 31px);top:-44px;width:62px;height:auto;aspect-ratio:250/320;transform-origin:50% 18%;
  filter:drop-shadow(0 6px 6px rgba(18,26,44,.3))}
.wheel-hub{background:none;box-shadow:none;width:27%;height:27%}
.wheel-hub img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 6px 10px rgba(18,26,44,.3))}
.dial.ready .wheel-hub{animation:none}
.dial.ready .wheel-hub img{animation:core 1.8s ease-in-out infinite}
@keyframes core{50%{transform:scale(1.06)}}
.reel-mark{background:var(--ink);width:2px;margin-left:-1px}
.reel-mark::before,.reel-mark::after{display:none}
.reel-mark img{position:absolute;left:50%;top:-6px;width:26px;transform:translateX(-50%);filter:drop-shadow(0 3px 3px rgba(18,26,44,.3))}
.reel-mark img.up{top:auto;bottom:-6px;transform:translateX(-50%) rotate(180deg)}
.mc img{width:68%;height:68%;min-width:0;object-fit:contain;filter:drop-shadow(0 3px 4px rgba(18,26,44,.25))}
.mc.dim img{filter:grayscale(.4)}
@media (prefers-reduced-motion:reduce){.dial.ready .wheel-hub img{animation:none}}

.task-ic .task-svg{width:62%;height:62%}

/* пока открыта шторка или окно выигрыша — фон не листается (см. lockScroll в core.js) */
html.locked,html.locked .page{overflow:hidden}
.sheet-wrap,.win{touch-action:none}
.sheet{touch-action:pan-y}

/* ───── профиль: поддержка и правила; админ-панель ───── */
.prof-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.prof-links .chip-btn svg{width:17px;height:17px}
.prof-links .chip-btn.admin{color:var(--accent)}
.terms{font-size:14px;line-height:1.6;color:var(--ink-2)}
.adm-box{display:grid;gap:8px;margin-top:10px;padding:14px;border-radius:10px;background:var(--card);box-shadow:var(--sh-1)}
.adm-box>b{font-weight:800}
.adm-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}
.adm-row .btn{width:auto;padding:0 16px}
.adm-req{display:grid;gap:10px;margin-bottom:10px;padding:14px;border-radius:10px;background:var(--card);box-shadow:var(--sh-1)}
.adm-top{display:flex;align-items:center;gap:12px}
.adm-user{font-size:12.5px;line-height:1.5;color:var(--muted)}
.adm-err{color:var(--red);font-weight:700}
.adm-btns{display:flex;flex-wrap:wrap;gap:6px}
.adm-btns .btn{flex:1 1 auto;width:auto;min-width:96px;padding:0 12px}
.kpis b.neg{color:var(--red)}

/* ───── бэк-офис ───── */
.adm-tabs{margin-top:2px}
.adm-tabs .chip{position:relative}
.adm-count{margin-left:5px;font-style:normal;color:var(--accent)}
.adm-count:empty{display:none}
.adm-days{margin:4px 0 12px}
.adm-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
.adm-kpis>div{gap:4px}
.adm-kpis b{font:700 17px/1.15 var(--display);display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.adm-kpis small{font-size:11px;font-weight:700;color:var(--faint)}
.amt.neg,.neg{color:var(--red)}
.adm-chart{padding:12px 12px 8px;border-radius:10px;background:var(--card);box-shadow:var(--sh-1)}
.adm-chart-top{font-size:11px;font-weight:800;color:var(--muted);margin-bottom:6px}
.adm-chart svg{display:block;width:100%;height:120px}
.adm-chart rect{fill:var(--mint)}
.adm-chart rect.neg{fill:var(--red)}
.adm-chart line{stroke:rgba(18,26,44,.15);stroke-width:1}
.adm-chart text{font:700 9px var(--body);fill:var(--faint)}
.adm-table{display:grid;gap:2px;border-radius:10px;overflow:hidden;background:var(--card);box-shadow:var(--sh-1)}
.adm-tr{display:grid;grid-template-columns:minmax(0,1.5fr) 1fr .7fr 1fr;align-items:center;gap:8px;padding:10px 12px;font-size:13px;font-weight:700;border-bottom:1px solid var(--line)}
.adm-tr:last-child{border-bottom:0}
.adm-tr>span:not(:first-child){text-align:right;justify-content:flex-end}
.adm-tr b{display:block;font-weight:800}
.adm-tr small{display:block;font-size:11px;color:var(--faint)}
.adm-th{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.adm-nft{display:flex!important;align-items:center;gap:8px;min-width:0}
.adm-nft img{width:28px;height:28px;border-radius:7px;flex:none}
.adm-nft b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.adm-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.adm-actions .btn{flex:1 1 auto;width:auto;padding:0 14px}
.adm-row3{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:8px}
.adm-check{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--ink-2)}
.adm-check input{width:18px;height:18px;accent-color:var(--accent)}
.adm-note{height:auto;min-height:80px;padding:12px 14px;line-height:1.45;resize:vertical;font:600 14px/1.45 var(--body)}
.adm-search{margin-bottom:6px}
.adm-player{width:100%;text-align:left}
.adm-right{display:grid;justify-items:end;gap:3px;flex:none}
.adm-right small{font-size:11px;font-weight:700;color:var(--muted)}
.adm-user{display:block;padding:0;text-align:left;font-size:12.5px;line-height:1.5;color:var(--ink-2);font-weight:700}
.adm-bet{flex:none;font-size:12.5px;font-weight:700;color:var(--ink-2)}
.flags{display:flex;flex-wrap:wrap;gap:6px}
.flag{display:inline-block;padding:3px 8px;border-radius:6px;background:rgba(238,47,69,.1);color:var(--red);font-size:11.5px;font-weight:800}
.flag.ok{background:rgba(13,184,165,.1);color:var(--mint)}
.adm-empty{padding:18px 0;text-align:center}
.adm-days{grid-template-columns:repeat(3,1fr)}
.list button.row{width:100%;text-align:left}
.row-main b .adm-user{display:inline;font-size:inherit;color:inherit;font-weight:inherit}
