/* FinDash marketing — interactive room wheel.
   Every rule is scoped under .wheelsec so the section themes independently
   of the page: --bg and --muted collide with site.css :root, so they are
   re-declared here and overridden per room by wheel.js on this element only. */

.wheelsec{
  --bg:#082016; --bg2:#04120d; --accent:#CFA040; --pos:#00C880; --ink:#EDEFE9; --muted:#93A79A;
  --ease:cubic-bezier(.22,.61,.36,1);
  position:relative;overflow:hidden;isolation:isolate;
  background:var(--bg);color:var(--ink);
  border-block:1px solid rgba(255,255,255,.06);
  padding:20px 0 72px;
  transition:background-color .7s var(--ease),color .7s var(--ease);
}
.wheelsec::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
  background:radial-gradient(125% 95% at 50% 44%, transparent 40%, rgba(0,0,0,.52) 100%)}
.wheelsec::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:4;opacity:.045;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:140px 140px}

.wheelsec__bg{position:absolute;inset:-30%;pointer-events:none;z-index:0;filter:blur(46px);opacity:.88}
.wheelsec__bg i{position:absolute;display:block;border-radius:50%;transition:background .8s var(--ease)}
.wheelsec__bg i:nth-child(1){width:60vw;height:60vw;left:-10vw;top:-32%;background:radial-gradient(circle at 50% 50%,var(--accent),transparent 62%);opacity:.30;animation:wdrift1 46s ease-in-out infinite}
.wheelsec__bg i:nth-child(2){width:52vw;height:52vw;right:-12vw;bottom:-32%;background:radial-gradient(circle at 50% 50%,var(--pos),transparent 62%);opacity:.23;animation:wdrift2 58s ease-in-out infinite}
.wheelsec__bg i:nth-child(3){width:40vw;height:40vw;left:38vw;top:-6%;background:radial-gradient(circle at 50% 50%,var(--accent),transparent 65%);opacity:.19;animation:wdrift3 72s ease-in-out infinite}
@keyframes wdrift1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(6vw,8vh) scale(1.12)}}
@keyframes wdrift2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-7vw,-6vh) scale(1.08)}}
@keyframes wdrift3{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-5vw,7vh) scale(1.15)}}

.wheelsec__in{position:relative;z-index:3;min-height:560px;
  display:grid;grid-template-columns:minmax(360px,44%) 1fr;align-items:center;gap:24px;
  width:min(100% - 40px,1120px);margin-inline:auto}

.wheel{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;
  width:min(100%,400px,56vh);margin:auto}
.dial{position:relative;width:100%;aspect-ratio:1;margin-top:-17%;touch-action:none;cursor:grab}
.dial.dragging{cursor:grabbing}
.dial > svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.core svg{position:static}
.track{fill:none;stroke:var(--ink);stroke-opacity:.06;stroke-width:2;transition:stroke-opacity .5s var(--ease),stroke .7s var(--ease)}
.dial.expanded .track{stroke-opacity:.12}
.arc{fill:none;stroke:url(#arcFade);stroke-width:3.5;stroke-linecap:round}
.trail{fill:none;stroke:var(--accent);stroke-width:3.5;stroke-linecap:butt}

.targets{position:absolute;inset:0;pointer-events:none}
.orb{position:absolute;transform:translate(-50%,-50%);border-radius:50%;opacity:0;
  transition:opacity .5s var(--ease),border-color .5s var(--ease),box-shadow .5s var(--ease);
  background:
    radial-gradient(circle at 38% 30%, color-mix(in srgb,var(--c2) 40%, transparent) 0%, color-mix(in srgb,var(--c2) 18%, transparent) 58%, color-mix(in srgb,var(--c2) 6%, transparent) 100%),
    linear-gradient(180deg, transparent 38%, color-mix(in srgb,var(--c1) 20%, transparent) 100%);
  border:1px solid color-mix(in srgb,var(--c2) 26%, transparent);
  box-shadow:0 0 14px -5px color-mix(in srgb,var(--c2) 22%, transparent)}
.orb::before{content:"";position:absolute;left:14%;top:38%;width:72%;height:52%;border-radius:50%;
  background:radial-gradient(closest-side, color-mix(in srgb,var(--c1) 45%, transparent), transparent 100%);
  filter:blur(8px)}
.orb::after{content:"";position:absolute;left:30%;top:16%;width:40%;height:14%;border-radius:50%;
  background:radial-gradient(closest-side, rgba(255,255,255,.16), rgba(255,255,255,0) 100%);
  filter:blur(3px)}
.orb .rimlight{position:absolute;inset:0;border-radius:50%;
  box-shadow:inset 0 -4px 10px -5px color-mix(in srgb,var(--c1) 55%, transparent)}
.orb.dim{width:6.4%;height:6.4%;opacity:.16}
.dial.expanded .orb.dim{opacity:.8}
.dial.expanded .orb.dim.is-active{opacity:0}
.orb.live{opacity:1;width:11%;height:11%;z-index:2;
  box-shadow:0 0 26px -8px color-mix(in srgb,var(--c2) 22%, transparent),0 0 10px 1px color-mix(in srgb,var(--c2) 6%, transparent);
  border-color:color-mix(in srgb,var(--c2) 14%, transparent)}

.title{width:100%;text-align:center;pointer-events:none;padding-top:20px}
.title .nm{font-family:var(--block);text-transform:uppercase;font-size:clamp(24px,2.4vw,33px);letter-spacing:.06em;line-height:1.16;
  display:flex;align-items:flex-end;justify-content:center;min-height:2.32em;
  text-shadow:0 1px 14px color-mix(in srgb,var(--bg) 92%, transparent),0 1px 4px color-mix(in srgb,var(--bg) 70%, transparent)}
.title .count{display:flex;align-items:center;justify-content:center;gap:5px;margin-top:5px;
  font-size:10px;letter-spacing:.22em;color:var(--muted);opacity:.32;font-variant-numeric:tabular-nums;
  transition:color .6s var(--ease)}
.title .count .ct-dot{width:3.5px;height:3.5px;border-radius:50%;background:var(--accent);transition:background .6s var(--ease)}
.core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:46%;text-align:center;pointer-events:none}
.core .icon{width:26px;height:26px;display:block;margin:0 auto 9px;color:var(--accent);transition:color .6s var(--ease);
  filter:drop-shadow(0 1px 6px color-mix(in srgb,var(--bg) 80%, transparent))}
.core .icon path{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.core .wtier{font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:var(--accent);transition:color .6s var(--ease);
  text-shadow:0 1px 10px color-mix(in srgb,var(--bg) 92%, transparent)}
#goo{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.whint{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
  opacity:.8;text-align:center;margin-top:4px}

.panel{max-width:560px}
.kick{font-family:var(--block);font-size:clamp(14px,1.4vw,20px);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);transition:color .6s var(--ease)}
.kick::after{content:"";display:block;width:36px;height:1px;margin-top:9px;background:color-mix(in srgb,var(--accent) 55%, transparent);transition:background .6s var(--ease)}
.panel h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(30px,3.6vw,50px);line-height:1.04;margin:16px 0 14px;letter-spacing:-.015em}
.panel h2 em{font-style:italic;color:var(--accent);transition:color .6s var(--ease)}
.panel p.cap{color:color-mix(in srgb,var(--ink) 66%, var(--muted));font-size:15px;line-height:1.62;margin:0 0 22px;max-width:44ch;transition:color .6s var(--ease)}
.fig{display:flex;gap:22px;align-items:flex-start}
.shotwrap{position:relative;width:min(300px,48%);flex:0 0 auto}
.shotglow{position:absolute;inset:-55%;border-radius:50%;pointer-events:none;z-index:0;
  background:radial-gradient(closest-side, color-mix(in srgb,var(--accent) 34%, transparent) 0%, color-mix(in srgb,var(--accent) 12%, transparent) 44%, transparent 100%);
  filter:blur(30px);opacity:.62;transition:background .7s var(--ease)}
.device{position:relative;z-index:1;padding:8px;border-radius:34px;
  background:linear-gradient(180deg, rgba(255,255,255,.11), rgba(255,255,255,.025) 26%, color-mix(in srgb,var(--accent) 20%, transparent));
  box-shadow:0 42px 80px -30px rgba(0,0,0,.92),0 12px 34px -14px rgba(0,0,0,.75),0 0 0 1px rgba(255,255,255,.05);
  transition:background .7s var(--ease)}
.device::after{content:"";position:absolute;inset:0;border-radius:34px;pointer-events:none;z-index:4;
  background:linear-gradient(155deg, rgba(255,255,255,.16) 0%, rgba(255,255,255,0) 34%)}
.device::before{content:"";position:absolute;inset:8px;border-radius:26px;pointer-events:none;z-index:3;
  background:linear-gradient(160deg, rgba(255,255,255,.07) 0%, rgba(255,255,255,.022) 18%, rgba(255,255,255,0) 36%),
    radial-gradient(92% 46% at 50% 0%, rgba(255,255,255,.065), transparent 72%);
  box-shadow:inset 0 0 34px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.08)}
.device img{width:100%;height:auto;display:block;border-radius:26px;position:relative;box-shadow:0 0 0 1px rgba(0,0,0,.55)}
.chips{display:flex;flex-direction:column;gap:9px;padding-top:6px}
.wchip{border:1px solid color-mix(in srgb,var(--accent) 40%, transparent);background:color-mix(in srgb,var(--accent) 11%, transparent);
  border-left:2px solid color-mix(in srgb,var(--accent) 78%, transparent);border-radius:9px;padding:9px 12px;min-width:186px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
  transition:border-color .6s var(--ease),background .6s var(--ease),box-shadow .6s var(--ease)}
.wchip b{display:block;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);transition:color .6s var(--ease)}
.wchip span{font-size:13px;font-variant-numeric:tabular-nums}
.fade{animation:wfade .5s var(--ease) both}
@keyframes wfade{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

@media (min-width:701px) and (max-width:860px){
  .wheelsec__in{grid-template-columns:minmax(260px,42%) 1fr;gap:18px}
  .wheel{width:min(100%,320px)}
  .panel{padding-left:0}
  .panel h2{font-size:clamp(26px,3.6vw,36px)}
  .fig{gap:14px}
  .shotwrap{width:min(180px,42%)}
  .wchip{min-width:140px}
}
@media (max-width:700px){
  .wheelsec{padding:8px 0 56px}
  .wheelsec__bg{filter:blur(38px)}
  .wheelsec__in{grid-template-columns:1fr;gap:22px;min-height:0;justify-items:center;width:min(100% - 16px,1120px)}
  .wheel{width:min(100%,251px)}
  .dial{width:100%}
  .orb.dim{width:10%;height:10%}
  .orb.live{width:14%;height:14%}
  .core .icon{width:19px;height:19px;margin-bottom:6px}
  .title .nm{font-size:clamp(19px,5.6vw,26px)}
  .core .wtier{font-size:8.5px;letter-spacing:.24em}
  .title .count{font-size:9px;margin-top:4px}
  .panel{max-width:none;text-align:center;touch-action:pan-y}
  .kick{font-size:13px;letter-spacing:.14em}
  .panel h2{font-size:clamp(26px,7.4vw,33px);line-height:1.08;margin:12px 0 10px}
  .panel p.cap{font-size:15px;line-height:1.6;margin:0 auto 20px;max-width:34ch}
  .fig{flex-direction:column;align-items:center;gap:20px}
  .shotwrap{width:min(62vw,238px)}
  .shotglow{inset:-28%;filter:blur(24px)}
  .device{padding:7px;border-radius:30px}
  .device::before{inset:7px;border-radius:23px}
  .device img{border-radius:23px}
  .kick::after{margin:8px auto 0}
  .chips{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:8px;padding-top:0;width:100%;max-width:420px}
  .wchip{flex:1 1 calc(50% - 4px);min-width:0;padding:9px 11px}
  .wchip:nth-child(3){flex-basis:100%}
  .wchip b{font-size:8.5px;letter-spacing:.14em}
  .wchip span{font-size:12.5px}
}
@media (max-width:380px){
  .wheel{width:min(100%,240px)}
  .panel h2{font-size:25px}
  .shotwrap{width:min(58vw,204px)}
}
@media (prefers-reduced-motion:reduce){
  .wheelsec__bg i{animation:none}
  .wheelsec,.core .wtier,.core .icon,.wchip,.wchip b,.arc,.trail,.orb,.device,.shotglow,.kick::after{transition:none}
}
