/* =====================================================================
   wheel.css — КОЛЕСО ФОРТУНЫ: страница /wheel, баннер на главной,
   метки скидки и билета на витрине и экране ящика.
   ---------------------------------------------------------------------
   Каркас страницы взят у экрана ящика (css/case.css): та же подложка
   .cmodal-backdrop, та же строка «назад + название», та же зелёная
   кнопка .copen-btn. Здесь только то, чего у ящика нет: само колесо,
   плашки состояния, панели под ним и окно итога.

   Колесо — SVG (js/wheel.ui.js), крутится ротор целиком; стрелка и
   ступица — HTML поверх него и стоят на месте. Размер задаёт --wd:
   на телефоне почти вся ширина экрана, на компьютере — 440 px.
   ===================================================================== */

/* ---------- страница ---------- */
/* Витрина и подвал под колесом спрятаны СВОИМ классом, а не только общим
   case-open (case.css): общий снимают и другие экраны при закрытии, и
   один раз это раскрыло главную под колесом. */
body.wheel-open > main,
body.wheel-open > footer{display:none}
/* Как в игре: без задержки двойного тапа и без случайного приближения —
   щипок на самой странице колеса перехватывает js/wheel.ui.js. */
body.wheel-open{touch-action:manipulation;overscroll-behavior:none;overflow-x:hidden}
.wh-backdrop{overflow-x:hidden}
.wh{touch-action:manipulation}
.wh{--wd:min(86vw,440px)}
.wh-hero{display:flex;flex-direction:column;align-items:center;text-align:center;width:100%}
.wh-top{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;min-height:34px;margin-bottom:10px}
.wh-pill{
  padding:6px 13px;border-radius:999px;
  background:rgba(5,29,72,.82);border:2px solid rgba(255,255,255,.22);
  font-family:"Manrope",system-ui,sans-serif;font-weight:800;font-size:.86rem;color:#EAF4FF;
  white-space:nowrap;
}
.wh-pill b{font-variant-numeric:tabular-nums}
.wh-pill-ready{background:linear-gradient(180deg,#63E06E,#34B747);color:#052a10;border-color:#000E3C;box-shadow:0 2px 0 #000E3C}
.wh-pill-spins{background:linear-gradient(180deg,#FFE45C,#F2A21B);color:#3a2200;border-color:#000E3C;box-shadow:0 2px 0 #000E3C}
.wh-pill-test{background:rgba(120,20,20,.9);color:#FFD9D9;text-transform:uppercase;letter-spacing:.04em;font-size:.72rem}

/* ---------- колесо ---------- */
.wh-stage{position:relative;width:var(--wd);height:var(--wd);margin:6px auto 16px}
/* Свечение — тенью, а не коробкой шире колеса: box-shadow не создаёт
   прокручиваемой области, а коробка с inset:-14% выступала за правый край
   экрана, и iPhone давал сдвинуть страницу вбок — «отступ справа». */
.wh-glow{
  position:absolute;inset:3%;border-radius:50%;pointer-events:none;
  box-shadow:0 0 60px 22px rgba(37,204,252,.42),0 0 130px 56px rgba(157,255,250,.18);
  transition:opacity .4s;
}
body.wh-spinning .wh-glow{animation:wh-pulse 1.1s ease-in-out infinite}
@keyframes wh-pulse{0%,100%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}
.wh-disc{position:absolute;inset:0;filter:drop-shadow(0 16px 24px rgba(2,10,45,.55))}
.wh-svg{width:100%;height:100%;display:block;overflow:visible}
.wh-svg text{user-select:none;-webkit-user-select:none}
.wh-big{
  font-family:"MegaBoxFont","Arial Black",system-ui,sans-serif;font-weight:900;font-size:28px;
  fill:#fff;stroke:#000E3C;stroke-width:4.2px;stroke-linejoin:round;paint-order:stroke;
  letter-spacing:.01em;dominant-baseline:middle;
}
.wh-pill-bg{fill:rgba(0,14,60,.66);stroke:rgba(255,255,255,.28);stroke-width:1}
.wh-small{
  font-family:"Manrope",system-ui,sans-serif;font-weight:800;font-size:10.5px;
  fill:#fff;letter-spacing:.06em;text-transform:uppercase;dominant-baseline:middle;
}
.wh-glyph{
  font-family:"MegaBoxFont","Arial Black",system-ui,sans-serif;font-weight:900;font-size:34px;
  fill:#fff;stroke:#000E3C;stroke-width:5px;stroke-linejoin:round;paint-order:stroke;
}

/* Стрелка: чернильный треугольник и золотой поверх него. Вздрагивает на
   каждой границе сектора (класс is-hit ставит js). */
.wh-pointer{
  position:absolute;left:50%;top:-5.5%;width:13%;height:15%;z-index:3;
  transform:translateX(-50%);transform-origin:50% 12%;
  filter:drop-shadow(0 4px 6px rgba(2,10,45,.55));
}
.wh-pointer::before,.wh-pointer::after{content:"";position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 100%)}
.wh-pointer::before{background:#000E3C}
.wh-pointer::after{inset:9% 12% 12%;background:linear-gradient(180deg,#FFF0A8,#F2A21B)}
.wh-pointer.is-hit{animation:wh-flick .16s ease-out}
@keyframes wh-flick{0%{transform:translateX(-50%) rotate(-16deg)}100%{transform:translateX(-50%) rotate(0)}}

.wh-hub{
  position:absolute;left:50%;top:50%;width:23%;height:23%;z-index:4;
  transform:translate(-50%,-50%);border-radius:50%;
  background:radial-gradient(circle at 50% 32%,#FFF0A8 0%,#F7C948 55%,#D98B12 100%);
  border:3px solid #000E3C;
  box-shadow:0 5px 0 #000E3C,0 0 0 5px rgba(255,255,255,.16),0 12px 24px rgba(2,10,45,.5);
  display:grid;place-items:center;cursor:pointer;padding:0;
}
.wh-hub img{width:66%;height:66%;object-fit:contain;filter:drop-shadow(0 2px 0 #000E3C)}
.wh-hub:active{transform:translate(-50%,-50%) scale(.95)}

/* ---------- кнопка и подпись ---------- */
.wh-spin{margin-top:2px;width:min(100%,460px)}
.wh-ico{display:inline-grid;place-items:center;width:1.1em;height:1.1em;margin-right:.35em;vertical-align:-.18em}
.wh-ico svg,.wh-chip-ico svg,.wh-src-ico svg{width:100%;height:100%;display:block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.wh-chip-ico svg{width:62%;height:62%}
.wh-note{min-height:1.4em;max-width:44ch}

/* ---------- панели ---------- */
.wh-panels{
  display:grid;gap:14px;
  width:min(100%,760px);margin:22px auto 0;
}
.wh-panel{
  background:rgba(9,42,116,.62);border:2px solid rgba(255,255,255,.14);
  border-radius:18px;padding:14px 16px 16px;
  font-family:"Manrope",system-ui,sans-serif;color:#EAF4FF;
}
.wh-h{
  margin:0 0 10px;font-family:"MegaBoxFont","Arial Black",system-ui,sans-serif;
  font-weight:900;font-size:1.05rem;letter-spacing:.04em;text-transform:uppercase;color:#fff;
  text-shadow:var(--so),var(--extrude);
}
.wh-sub{margin:0 0 8px;font-weight:600;font-size:.9rem;line-height:1.4;color:#EAF4FF}
.wh-sub-dim{color:#BBD6F5;font-size:.82rem;margin-bottom:0}
.wh-empty{margin:0;color:#BBD6F5;font-size:.9rem;font-weight:600}

/* действующие бонусы — плашки с таймером */
.wh-chips{display:flex;flex-wrap:wrap;gap:10px}
.wh-chip{
  display:flex;align-items:center;gap:10px;padding:8px 12px 8px 9px;border-radius:14px;
  background:rgba(5,29,72,.72);border:2px solid rgba(255,255,255,.18);
}
.wh-chip-ico{
  width:34px;height:34px;border-radius:10px;flex:0 0 auto;display:grid;place-items:center;
  font-family:"MegaBoxFont","Arial Black",system-ui,sans-serif;font-weight:900;font-size:17px;color:#fff;
  background:linear-gradient(160deg,#6FC6FF,#2278DE);border:2px solid #000E3C;box-shadow:0 2px 0 #000E3C;
  text-shadow:0 1px 0 #000E3C;
}
.wh-chip.is-discount .wh-chip-ico{background:linear-gradient(160deg,#8CF59A,#1C7A2E)}
.wh-chip.is-cashback .wh-chip-ico{background:linear-gradient(160deg,#4DF0C8,#0F766E)}
.wh-chip.is-ticket .wh-chip-ico{background:linear-gradient(160deg,#FFE45C,#E08A00);font-size:15px}
.wh-chip-txt{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.wh-chip-txt b{font-weight:800;font-size:.92rem}
.wh-chip-txt i{font-style:normal;font-size:.76rem;color:#BBD6F5;font-variant-numeric:tabular-nums}

.wh-mini{
  margin-left:4px;padding:7px 12px;border-radius:10px;cursor:pointer;
  background:linear-gradient(180deg,#63E06E,#34B747);border:2px solid #000E3C;box-shadow:0 3px 0 #1C7A2E;
  font-family:"MegaBoxFont","Arial Black",system-ui,sans-serif;font-weight:900;font-size:.8rem;
  letter-spacing:.04em;text-transform:uppercase;color:#fff;text-shadow:0 1px 0 #000E3C;white-space:nowrap;
}
.wh-mini:hover{filter:brightness(1.08)}
.wh-mini:active{transform:translateY(2px);box-shadow:0 1px 0 #1C7A2E}

/* буквы супербонуса */
.wh-letters{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin:10px 0}
.wh-letter{
  width:40px;height:46px;display:grid;place-items:center;border-radius:10px;
  background:rgba(0,14,60,.62);border:2px solid rgba(255,255,255,.18);
  font-family:"MegaBoxFont","Arial Black",system-ui,sans-serif;font-weight:900;font-size:22px;
  color:rgba(255,255,255,.28);
}
.wh-letter.is-on{
  background:linear-gradient(180deg,#FFE45C,#F2A21B);color:#2b1a00;
  border-color:#000E3C;box-shadow:0 3px 0 #000E3C;
}
.wh-letter.is-new{animation:wh-pop .55s cubic-bezier(.2,1.5,.4,1)}
@keyframes wh-pop{0%{transform:scale(.3) rotate(-20deg)}100%{transform:none}}

/* откуда спины */
.wh-srcs{display:grid;gap:10px}
.wh-src{
  display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;
  background:rgba(5,29,72,.55);border:2px solid rgba(255,255,255,.12);
}
.wh-src-ico{
  width:40px;height:40px;flex:0 0 auto;display:grid;place-items:center;padding:9px;border-radius:11px;color:#fff;
  background:linear-gradient(160deg,#6FC6FF 0%,#2278DE 70%,#1A5FB4 100%);border:2px solid #000E3C;box-shadow:0 3px 0 #000E3C;
}
.wh-src-body{display:flex;flex-direction:column;min-width:0;flex:1;line-height:1.2}
.wh-src-body b{font-weight:800;font-size:.95rem}
.wh-src-body i{font-style:normal;font-size:.8rem;color:#BBD6F5;margin-top:2px}
.wh-src-body em{font-style:normal;font-size:.78rem;color:#FFE45C;font-weight:800;margin-top:3px;font-variant-numeric:tabular-nums}

/* список призов с шансами */
.wh-prizes{display:grid;gap:6px;margin-bottom:8px}
.wh-prize{
  display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:10px;
  padding:6px 10px 6px 6px;border-radius:12px;background:rgba(5,29,72,.45);
}
.wh-prize-ico{width:40px;height:40px;display:grid;place-items:center;border-radius:10px;background:rgba(0,14,60,.5)}
.wh-prize-ico img{width:34px;height:34px;object-fit:contain}
.wh-prize-ico span{font-family:"MegaBoxFont","Arial Black",system-ui,sans-serif;font-weight:900;font-size:20px;color:#fff;text-shadow:0 1px 0 #000E3C}
.wh-prize-txt{font-weight:700;font-size:.9rem}
.wh-prize-chance{font-weight:800;font-size:.84rem;color:#FFE45C;font-variant-numeric:tabular-nums;white-space:nowrap}

/* ---------- окно итога ---------- */
.wh-result{
  position:fixed;inset:0;z-index:200010;display:grid;place-items:center;padding:16px;
  background:rgba(3,12,48,.72);opacity:0;transition:opacity .24s ease;
  font-family:"Manrope",system-ui,sans-serif;
}
.wh-result.show{opacity:1}
.wh-confetti{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.wh-res-card{
  position:relative;width:min(92vw,420px);padding:20px 18px 18px;border-radius:22px;
  background:linear-gradient(180deg,#1E5DD3 0%,#0C3183 100%);border:3px solid #000E3C;
  box-shadow:0 8px 0 #000E3C,0 30px 60px rgba(0,0,0,.5);text-align:center;color:#fff;
  transform:scale(.86) translateY(14px);transition:transform .32s cubic-bezier(.2,1.4,.4,1);
}
.wh-result.show .wh-res-card{transform:none}
.wh-res-title{
  font-family:"MegaBoxFont","Arial Black",system-ui,sans-serif;font-weight:900;font-size:1.7rem;
  letter-spacing:.05em;color:#FFE45C;text-shadow:var(--so),var(--extrude);
}
.wh-result.is-super .wh-res-title{
  font-size:1.95rem;color:transparent;
  background:linear-gradient(90deg,#ff3b3b,#ffe01a,#3ee66b,#22d3ee,#a855f7);
  -webkit-background-clip:text;background-clip:text;text-shadow:none;
}
.wh-res-icon{width:118px;height:118px;margin:8px auto 4px;display:grid;place-items:center}
.wh-res-icon img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 12px 18px rgba(2,10,45,.55));animation:wh-float 2.4s ease-in-out infinite}
.wh-res-glyph{font-family:"MegaBoxFont","Arial Black",system-ui,sans-serif;font-weight:900;font-size:84px;line-height:1;color:#fff;text-shadow:var(--so),var(--extrude)}
@keyframes wh-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.wh-res-head{
  font-family:"MegaBoxFont","Arial Black",system-ui,sans-serif;font-weight:900;font-size:1.3rem;
  text-transform:uppercase;letter-spacing:.03em;color:#fff;text-shadow:var(--so),var(--extrude);
}
.wh-res-text{margin:10px 0 14px;color:#EAF4FF;font-weight:600;font-size:.94rem;line-height:1.45}
.wh-res-acts{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.wh-btn{
  padding:11px 20px;border-radius:12px;cursor:pointer;
  font-family:"MegaBoxFont","Arial Black",system-ui,sans-serif;font-weight:900;font-size:1rem;
  letter-spacing:.04em;text-transform:uppercase;color:#fff;text-shadow:0 1px 0 #000E3C;
  border:2px solid #000E3C;
}
.wh-btn-ok{background:linear-gradient(180deg,#55B8FF,#2278DE);box-shadow:0 4px 0 #14508F}
.wh-btn-go{background:linear-gradient(180deg,#63E06E,#34B747);box-shadow:0 4px 0 #1C7A2E}
.wh-btn:hover{filter:brightness(1.08)}
.wh-btn:active{transform:translateY(3px);box-shadow:none}

/* ---------- баннер на главной ---------- */
#wheelBanner{margin:0 clamp(12px,2vw,20px) clamp(10px,2vw,18px)}
.wh-banner{
  --fb-skew:-5.06deg;--fb-unskew:5.06deg;
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;
  width:100%;padding:10px 18px 10px 14px;border-radius:18px;cursor:pointer;text-align:left;
  background:linear-gradient(90deg,rgba(21,27,243,.42) 0%,rgba(55,0,230,.34) 100%);
  border:3px solid rgba(0,30,170,.42);color:#fff;
  transform:skewX(var(--fb-skew));
  font-family:"Manrope",system-ui,sans-serif;
  transition:filter .14s ease;
}
.wh-banner:hover{filter:brightness(1.08)}
.wh-banner > *{transform:skewX(var(--fb-unskew))}
.wh-banner-disc{
  position:relative;width:64px;height:64px;border-radius:50%;flex:0 0 auto;
  background:conic-gradient(#3D8BFF 0 45deg,#0B2C7A 45deg 90deg,#FFE45C 90deg 135deg,#1A4DB0 135deg 180deg,
    #63E06E 180deg 225deg,#0B2C7A 225deg 270deg,#B98CFF 270deg 315deg,#22D3EE 315deg 360deg);
  border:3px solid #F7C948;box-shadow:0 0 0 3px #000E3C,0 6px 12px rgba(2,10,45,.5);
  animation:wh-turn 16s linear infinite;
}
.wh-banner-disc i{
  position:absolute;left:50%;top:50%;width:34%;height:34%;transform:translate(-50%,-50%);
  border-radius:50%;background:radial-gradient(circle at 50% 35%,#FFF0A8,#F2A21B);border:2px solid #000E3C;
}
@keyframes wh-turn{to{transform:skewX(var(--fb-unskew)) rotate(360deg)}}
.wh-banner-txt{display:flex;flex-direction:column;min-width:0;line-height:1.15}
.wh-banner-txt b{
  font-family:"MegaBoxFont","Arial Black",system-ui,sans-serif;font-weight:900;
  font-size:clamp(1rem,2.6vw,1.35rem);text-transform:uppercase;letter-spacing:.04em;
}
.wh-banner-txt i{font-style:normal;font-size:.82rem;color:#BBD6F5;font-weight:600;margin-top:3px}
.wh-banner-cta{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:0 0 auto}
.wh-banner-state{font-size:.78rem;font-weight:800;color:#BBD6F5;white-space:nowrap;font-variant-numeric:tabular-nums}
.wh-banner-state.is-ready{color:#FFE45C}
.wh-banner-btn{
  padding:8px 18px;border-radius:10px;
  background:linear-gradient(180deg,#63E06E,#34B747);border:2px solid #000E3C;box-shadow:0 3px 0 #1C7A2E;
  font-family:"MegaBoxFont","Arial Black",system-ui,sans-serif;font-weight:900;font-size:.95rem;
  letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;
}
.wh-banner.is-ready .wh-banner-btn{animation:wh-beat 1.6s ease-in-out infinite}
@keyframes wh-beat{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@media (max-width:620px){
  .wh-banner{gap:10px;padding:9px 12px 9px 10px;border-radius:14px}
  .wh-banner-disc{width:50px;height:50px}
  .wh-banner-txt i{display:none}
  .wh-banner-btn{padding:7px 12px;font-size:.82rem}
}
@media (max-width:380px){
  .wh-banner{grid-template-columns:auto 1fr}
  .wh-banner-cta{grid-column:1 / -1;flex-direction:row;justify-content:space-between;align-items:center}
}

/* ---------- метки скидки и билета на витрине и экране ящика ---------- */
/* Витрина: та же зачёркнутая цена, что у акции (.on-sale в site.css),
   но плашка зелёная — это ЛИЧНАЯ скидка, а не акция для всех. */
.bs-card .bs-off.is-wheel{background:linear-gradient(180deg,#63E06E,#34B747)}
/* Экран ящика: плашка над артом — та же, что у акции (.cx-off), но
   зелёная у скидки и золотая у билета. */
.cx-wtag{
  position:absolute;left:4%;top:4%;z-index:3;padding:5px 11px;border-radius:999px;
  background:linear-gradient(180deg,#63E06E,#34B747);border:2px solid #000E3C;box-shadow:0 2px 0 #000E3C;
  font-family:"MegaBoxFont","Arial Black",system-ui,sans-serif;font-weight:900;font-size:clamp(.72rem,1.4vw,.92rem);
  letter-spacing:.04em;color:#fff;text-shadow:0 1px 0 #000E3C;white-space:nowrap;
}
.cx-wtag.is-ticket{background:linear-gradient(180deg,#FFE45C,#F2A21B);color:#3a2200;text-shadow:none}
.cx-wtag.is-cashback{background:linear-gradient(180deg,#4DF0C8,#0F766E)}
.cx-wtag.is-second{top:calc(4% + 38px)}
.cx-wtag span{font-variant-numeric:tabular-nums;font-family:"Manrope",system-ui,sans-serif;font-weight:800;margin-left:4px}

/* ---------- телефон ---------- */
@media (max-width:640px){
  .wh{--wd:min(88vw,360px)}
  .wh-panel{padding:12px 12px 14px}
  .wh-prize{grid-template-columns:36px 1fr auto;gap:8px}
  .wh-src{padding:9px 10px}
  .wh-letter{width:34px;height:40px;font-size:19px}
}
@media (prefers-reduced-motion:reduce){
  .wh-banner-disc,.wh-banner.is-ready .wh-banner-btn,.wh-res-icon img,.wh-letter.is-new,body.wh-spinning .wh-glow{animation:none}
}
