:root{
  --bg:#fbfbfd; --bg2:#f5f5f7; --fg:#1d1d1f; --fg2:#6e6e73; --line:#d2d2d7;
  --btn:#1d1d1f; --btn-fg:#ffffff; --glass:rgba(251,251,253,.78); --error:#d70015;
  --seg1:#ffffff; --seg2:#f5f5f7; --pink:#ff4d7e; --violet:#8b5cf6;
  --font:"IBM Plex Sans Arabic",-apple-system,"SF Arabic","Segoe UI",system-ui,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#000000; --bg2:#161617; --fg:#f5f5f7; --fg2:#a1a1a6; --line:#424245;
    --btn:#f5f5f7; --btn-fg:#1d1d1f; --glass:rgba(22,22,23,.78); --error:#ff6961;
    --seg1:#1d1d1f; --seg2:#2a2a2d; --pink:#ff6b93; --violet:#a78bfa;
    color-scheme:dark;
  }
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html,body{height:100%}
body{
  margin:0; background:var(--bg); color:var(--fg);
  font-family:var(--font); font-size:17px; line-height:1.47;
  -webkit-font-smoothing:antialiased; -webkit-tap-highlight-color:transparent;
}
main{height:100%}

.scene{
  min-height:100%; padding:max(48px,env(safe-area-inset-top)) 20px max(40px,env(safe-area-inset-bottom));
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; gap:16px;
}
.scene.enter{animation:enter .7s cubic-bezier(.2,.8,.2,1) both}
@keyframes enter{from{opacity:0;transform:translateY(16px)}}

.eyebrow{margin:0;font-size:.95rem;font-weight:600;color:var(--pink)}
.display{margin:0;font-size:clamp(3.2rem,15vw,5.6rem);font-weight:700;line-height:1.05;text-wrap:balance}
.headline{margin:0;font-size:clamp(2.6rem,12vw,4rem);font-weight:700;line-height:1.08}
.title{margin:0;font-size:clamp(2.2rem,9vw,3rem);font-weight:700;line-height:1.1}
.lead{margin:0;max-width:30ch;font-size:clamp(1.1rem,4.6vw,1.35rem);font-weight:500;color:var(--fg2);line-height:1.5;text-wrap:balance}
.grad{
  background:linear-gradient(100deg,var(--pink),var(--violet));
  -webkit-background-clip:text; background-clip:text; color:transparent;
  padding-block:.1em;
}

.btn{
  margin-top:12px; font:600 1.05rem var(--font); color:var(--btn-fg); background:var(--btn);
  border:0; border-radius:980px; padding:12px 30px; min-width:132px; cursor:pointer;
  transition:transform .2s, opacity .2s;
}
.btn:hover{opacity:.88}
.btn:active{transform:scale(.97)}
.link{font:500 1rem var(--font);color:var(--pink);background:none;border:0;cursor:pointer;padding:8px}
.link:hover{text-decoration:underline}
:focus-visible{outline:3px solid color-mix(in srgb,var(--violet) 60%,transparent);outline-offset:3px;border-radius:12px}

.lock-inner{width:100%;max-width:380px;display:flex;flex-direction:column;align-items:center;gap:14px}
.mark{width:44px;height:44px;fill:url(#hg);margin-bottom:6px}
#lockForm{width:100%;margin-top:18px}
.field{position:relative;width:100%}
.field input{
  width:100%; height:58px; padding:22px 16px 6px 56px;
  font:400 1.1rem var(--font); color:var(--fg); background:var(--bg);
  border:1px solid var(--line); border-radius:12px; outline:none;
  transition:border-color .2s, box-shadow .2s;
}
.field input:focus{border-color:var(--violet);box-shadow:0 0 0 4px color-mix(in srgb,var(--violet) 18%,transparent)}
.field label{
  position:absolute; inset-inline-start:16px; top:50%; transform:translateY(-50%);
  font-size:1.05rem; color:var(--fg2); pointer-events:none; transition:all .18s ease;
}
.field input:focus + label,.field input:not(:placeholder-shown) + label{top:16px;font-size:.75rem}
.go{
  position:absolute; inset-inline-end:12px; top:50%; transform:translateY(-50%);
  width:34px; height:34px; border-radius:50%; border:1.5px solid var(--fg2); background:none;
  color:var(--fg2); display:grid; place-items:center; cursor:pointer; padding:0; transition:all .2s;
}
.go svg{width:18px;height:18px}
.field input:not(:placeholder-shown) ~ .go{background:var(--btn);border-color:var(--btn);color:var(--btn-fg)}
.field.error input{border-color:var(--error);background:color-mix(in srgb,var(--error) 6%,var(--bg))}
.field.shake{animation:shake .42s}
@keyframes shake{20%{transform:translateX(-9px)}40%{transform:translateX(8px)}60%{transform:translateX(-5px)}80%{transform:translateX(3px)}}
.hint{min-height:1.5em;margin:12px 0 0;font-size:.95rem;color:var(--fg2)}
.hint.error{color:var(--error)}
.hint.ok{color:var(--violet);font-weight:600}

.hero .btn{margin-top:20px}
.specs{
  list-style:none; margin:44px 0 0; padding:28px 0 0; border-top:1px solid var(--line);
  width:100%; max-width:440px; display:grid; grid-template-columns:repeat(3,1fr); gap:12px;
}
.specs li{display:flex;flex-direction:column;gap:4px}
.specs b{font-size:2rem;font-weight:600;line-height:1;font-variant-numeric:tabular-nums}
.specs span{font-size:.85rem;color:var(--fg2)}
.signature{margin:28px 0 0;font-size:.8rem;color:var(--fg2)}

.game{position:relative;justify-content:flex-start;padding:0;overflow:hidden;height:100%}
.bar{
  position:relative; z-index:3; width:100%;
  padding:calc(env(safe-area-inset-top,0px) + 14px) 20px 0;
  background:var(--glass); -webkit-backdrop-filter:saturate(180%) blur(20px); backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid var(--line);
}
.bar-row{display:flex;justify-content:space-between;align-items:baseline;max-width:640px;margin-inline:auto;padding-bottom:12px}
.bar-title{font-weight:600;font-size:1.05rem}
.bar-count{font-size:.95rem;color:var(--fg2);font-variant-numeric:tabular-nums}
.bar-count b{color:var(--fg);font-weight:600}
.progress{height:3px;margin-inline:-20px;background:transparent}
.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--violet),var(--pink));transition:width .45s cubic-bezier(.2,.8,.2,1)}
.tease{position:relative;z-index:2;margin:28px 20px 0;font-size:clamp(1.3rem,6vw,1.7rem);font-weight:600;min-height:1.6em;transition:opacity .2s}
.arena{position:absolute;inset:0;z-index:1;overflow:hidden}
.heart{
  position:absolute; top:-80px; width:54px; height:54px; padding:10px; box-sizing:content-box;
  cursor:pointer; touch-action:manipulation; animation:fall linear forwards;
}
.heart svg{width:100%;height:100%;fill:url(#hg);filter:drop-shadow(0 6px 14px color-mix(in srgb,var(--pink) 35%,transparent))}
.heart.pop{animation:pop .38s cubic-bezier(.2,.8,.2,1) forwards!important}
@keyframes fall{to{transform:translateY(calc(100vh + 140px)) rotate(var(--r))}}
@keyframes pop{to{transform:scale(1.7);opacity:0}}
.plus{position:absolute;z-index:2;pointer-events:none;font-weight:700;font-size:1.1rem;color:var(--violet);animation:plus .8s ease-out forwards}
@keyframes plus{to{transform:translateY(-44px);opacity:0}}

.wheel-wrap{position:relative;width:min(86vw,360px);aspect-ratio:1;max-width:100%;margin-top:26px}
#wheel{
  position:relative; z-index:1; width:100%; height:100%; border-radius:50%; display:block;
  box-shadow:0 0 0 1px var(--line),0 30px 60px -20px rgba(0,0,0,.25);
}
.glow{
  position:absolute; inset:-14px; border-radius:50%; z-index:0; opacity:.35; filter:blur(22px);
  background:conic-gradient(from 0deg,var(--pink),var(--violet),#5ac8fa,var(--pink));
  transition:opacity .6s;
}
.wheel-wrap.spinning .glow{opacity:.9;animation:glow 2s linear infinite}
@keyframes glow{to{transform:rotate(360deg)}}
.pointer{
  position:absolute; z-index:3; top:-10px; left:50%; transform:translateX(-50%);
  width:22px; height:26px; background:var(--fg);
  clip-path:polygon(0 0,100% 0,50% 100%); filter:drop-shadow(0 2px 3px rgba(0,0,0,.25));
}
.hub{
  position:absolute; z-index:2; top:50%; left:50%; transform:translate(-50%,-50%);
  width:76px; height:76px; border-radius:50%; border:0; cursor:pointer;
  background:var(--btn); color:var(--btn-fg); font:700 1.15rem var(--font);
  box-shadow:0 0 0 6px var(--bg),0 8px 24px rgba(0,0,0,.25); transition:transform .2s, opacity .2s;
}
.hub:active{transform:translate(-50%,-50%) scale(.94)}
.hub:disabled{opacity:.4;cursor:default}
.result{margin-top:30px;display:flex;flex-direction:column;align-items:center;gap:8px;max-width:340px}
.result h3{margin:0;font-size:clamp(1.6rem,7vw,2.1rem);font-weight:700}
.result p{margin:0;color:var(--fg2);font-size:1.05rem;text-wrap:balance}
.result.enter{animation:enter .6s cubic-bezier(.2,.8,.2,1) both}

@media (prefers-reduced-motion:reduce){
  .scene.enter,.result.enter{animation:none}
  .wheel-wrap.spinning .glow{animation:none}
}
