:root{
  --espresso:#1b1210;
  --espresso-2:#2a1c18;
  --crema:#f3e3cd;
  --crema-dim:#c9b49a;
  --gold:#e0a54a;
  --gold-hot:#ffc46b;
  --milk:#fffaf2;
  --red:#c0503c;
  --shadow:0 22px 60px rgba(0,0,0,.55);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  color:var(--crema);
  background:
    radial-gradient(1200px 700px at 15% -10%, #402b22 0%, transparent 60%),
    radial-gradient(900px 600px at 110% 110%, #3a2418 0%, transparent 55%),
    var(--espresso);
  min-height:100%;
  overflow-x:hidden;
}

/* háttér gőz */
.steam-bg{
  position:fixed; inset:0; pointer-events:none; opacity:.25;
  background:
    radial-gradient(400px 400px at 20% 80%, rgba(224,165,74,.18), transparent 70%),
    radial-gradient(500px 500px at 80% 20%, rgba(224,165,74,.12), transparent 70%);
  animation:drift 18s ease-in-out infinite alternate;
}
@keyframes drift{to{transform:translate3d(0,-24px,0) scale(1.06)}}

.wrap{max-width:1120px;margin:0 auto;padding:48px 24px 64px;position:relative}

.head{text-align:center;margin-bottom:44px}
.kicker{
  margin:0 0 14px; font-size:12px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold); font-weight:700;
}
h1{
  font-family:Fraunces,Georgia,serif; font-weight:900;
  font-size:clamp(30px,5.2vw,58px); line-height:1.05; margin:0 0 14px;
  color:var(--milk);
}
h1 span{
  color:var(--gold-hot);
  background:linear-gradient(180deg,transparent 62%,rgba(224,165,74,.28) 62%);
  padding:0 .08em;
}
.lead{margin:0;color:var(--crema-dim);font-size:clamp(14px,1.6vw,17px)}

.stage{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,380px);
  gap:48px; align-items:center;
}
@media (max-width:900px){
  .stage{grid-template-columns:1fr;gap:32px}
  .wrap{padding:32px 18px 48px}
}

/* ---------- kerék ---------- */
.wheel-box{position:relative;width:min(100%,470px);margin:0 auto;aspect-ratio:1}
.wheel-spin{
  width:100%;height:100%;
  transform:rotate(0deg);
  filter:drop-shadow(var(--shadow));
}
.wheel-spin.spinning{transition:transform 5.2s cubic-bezier(.13,.85,.16,1)}
#wheel{width:100%;height:100%;display:block}

.pointer{
  position:absolute; top:-14px; left:50%; transform:translateX(-50%);
  width:0;height:0;z-index:4;
  border-left:17px solid transparent;
  border-right:17px solid transparent;
  border-top:34px solid var(--gold-hot);
  filter:drop-shadow(0 4px 10px rgba(0,0,0,.6));
  transform-origin:50% 0;
}
.pointer.tick{animation:tick .09s ease-out}
@keyframes tick{50%{transform:translateX(-50%) rotate(-9deg)}}

.hub{
  position:absolute; inset:0; margin:auto;
  width:30%; aspect-ratio:1; z-index:3;
  border-radius:50%;
  display:grid;place-items:center;
  pointer-events:none;
}
.hub img{
  width:100%;height:100%;border-radius:50%;object-fit:cover;
  border:5px solid var(--milk);
  background:var(--espresso-2);
  box-shadow:0 10px 30px rgba(0,0,0,.6);
}
.hub-ring{
  position:absolute; inset:-11px; border-radius:50%;
  border:2px dashed rgba(224,165,74,.5);
  animation:slow 26s linear infinite;
}
@keyframes slow{to{transform:rotate(360deg)}}
.hub.pop{animation:pop .5s cubic-bezier(.2,1.6,.4,1)}
@keyframes pop{40%{transform:scale(1.12)}}

/* ---------- panel ---------- */
.panel{display:flex;flex-direction:column;gap:22px}

.spin-btn{
  display:flex;flex-direction:column;align-items:center;gap:3px;
  width:100%;padding:20px 24px;border:0;border-radius:18px;cursor:pointer;
  background:linear-gradient(180deg,var(--gold-hot),#c9862f);
  color:#2a1708;
  box-shadow:0 12px 0 -2px #8f5d1c, 0 20px 40px rgba(0,0,0,.45);
  transition:transform .12s ease, box-shadow .12s ease, filter .2s ease;
  font-family:inherit;
}
.spin-btn__label{font-family:Fraunces,serif;font-weight:900;font-size:26px;letter-spacing:.01em}
.spin-btn__sub{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;opacity:.72}
.spin-btn:hover{filter:brightness(1.06)}
.spin-btn:active{transform:translateY(6px);box-shadow:0 6px 0 -2px #8f5d1c,0 10px 22px rgba(0,0,0,.4)}
.spin-btn:disabled{filter:grayscale(.55) brightness(.8);cursor:not-allowed;transform:translateY(6px);box-shadow:0 6px 0 -2px #6d4a1c}
.spin-btn:focus-visible{outline:3px solid var(--milk);outline-offset:3px}

.mute{
  align-self:center;background:none;border:0;cursor:pointer;font-family:inherit;
  font-size:12px;letter-spacing:.06em;color:var(--crema-dim);padding:2px 6px;
  border-bottom:1px dashed rgba(224,165,74,.35);
}
.mute:hover{color:var(--gold-hot)}
.mute[aria-pressed="true"]{color:rgba(201,180,154,.5)}

.result{
  min-height:150px;padding:22px;border-radius:18px;
  background:rgba(255,255,255,.045);
  border:1px solid rgba(224,165,74,.22);
  display:flex;flex-direction:column;justify-content:center;
}
.result__idle{margin:0;color:var(--crema-dim);text-align:center;font-size:15px}
.result__time{
  font-family:Fraunces,serif;font-weight:900;
  font-size:clamp(44px,8vw,64px);line-height:1;color:var(--gold-hot);
  margin:0 0 8px;letter-spacing:-.02em;
}
.result__label{margin:0 0 12px;font-size:16px;color:var(--milk);font-weight:500}
.result__note{
  margin:0;font-size:13.5px;color:var(--crema-dim);
  border-top:1px dashed rgba(224,165,74,.25);padding-top:11px;
}
.result.in{animation:fadeUp .45s ease-out}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}}

.stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.stat{
  background:rgba(255,255,255,.04);border-radius:14px;padding:13px 16px;
  border:1px solid rgba(255,255,255,.06);
}
.stat__k{display:block;font-family:Fraunces,serif;font-weight:900;font-size:24px;color:var(--milk)}
.stat__l{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--crema-dim);margin-top:2px}

.history h2{
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold);margin:0 0 10px;font-weight:700;
}
.history ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:150px;overflow:auto}
.history li{
  display:flex;justify-content:space-between;gap:12px;
  font-size:13.5px;padding:7px 12px;border-radius:9px;
  background:rgba(255,255,255,.035);color:var(--crema);
}
.history li span:last-child{color:var(--crema-dim);font-variant-numeric:tabular-nums}
.history li.empty{justify-content:center;color:var(--crema-dim);background:none}

.foot{margin-top:52px;text-align:center}
.foot p{margin:0;font-size:12px;color:rgba(201,180,154,.6)}

/* konfetti */
.bean{
  position:fixed;top:-20px;width:12px;height:16px;border-radius:50% 50% 45% 45%;
  background:var(--gold);z-index:50;pointer-events:none;
  animation:fall linear forwards;
}
@keyframes fall{to{transform:translateY(105vh) rotate(720deg);opacity:0}}

@media (prefers-reduced-motion:reduce){
  .wheel-spin.spinning{transition-duration:1s}
  .steam-bg,.hub-ring{animation:none}
  .bean{display:none}
}

/* ---------- fogadóiroda ---------- */
.bets{
  margin-top:56px;padding:26px 26px 22px;border-radius:22px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(224,165,74,.22);
}
.bets__head{
  display:flex;justify-content:space-between;align-items:flex-end;gap:24px;
  flex-wrap:wrap;margin-bottom:20px;
}
.bets h2{
  font-family:Fraunces,serif;font-weight:900;font-size:26px;margin:0 0 5px;color:var(--milk);
}
.bets__sub{margin:0;font-size:14px;color:var(--crema-dim);max-width:52ch}
.bets__sub b{color:var(--crema)}
.consensus{text-align:right;flex-shrink:0}
.consensus__k{display:block;font-family:Fraunces,serif;font-weight:900;font-size:34px;color:var(--gold-hot);line-height:1}
.consensus__l{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--crema-dim);margin-top:3px}
.consensus__l b{color:var(--crema)}

.bet-form{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.field{display:flex;flex-direction:column;gap:5px;flex:1 1 190px;min-width:150px}
.field--time{flex:0 0 130px}
.field span{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--crema-dim)}
.field input{
  font-family:inherit;font-size:15px;padding:11px 13px;border-radius:11px;
  background:rgba(0,0,0,.28);color:var(--milk);
  border:1px solid rgba(224,165,74,.28);
}
.field input:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:transparent}
.field input::placeholder{color:rgba(201,180,154,.45)}

.btn{
  font-family:inherit;font-size:14px;font-weight:700;cursor:pointer;
  padding:12px 18px;border-radius:11px;border:1px solid transparent;transition:filter .15s,background .15s;
}
.btn--primary{background:var(--gold-hot);color:#2a1708}
.btn--primary:hover{filter:brightness(1.07)}
.btn--ghost{background:rgba(255,255,255,.06);color:var(--crema);border-color:rgba(224,165,74,.3)}
.btn--ghost:hover{background:rgba(255,255,255,.11)}
.btn--link{background:none;color:var(--crema-dim);padding:12px 6px;text-decoration:underline;border:0}
.btn--link:hover{color:var(--crema)}
.btn:disabled{opacity:.5;cursor:not-allowed}

.bet-msg{margin:11px 0 0;font-size:13px;min-height:18px;color:var(--gold-hot)}
.bet-msg.err{color:#ff9a86}

.bet-list{list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:9px}
.bet-list li{
  display:flex;align-items:center;gap:11px;
  padding:11px 14px;border-radius:12px;
  background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.05);
}
.bet-list li.empty{grid-column:1/-1;justify-content:center;color:var(--crema-dim);background:none;border:0;font-size:14px}
.bet-list li.win{border-color:var(--gold);background:rgba(224,165,74,.14)}
.bet-list li.mine{border-color:rgba(224,165,74,.45)}
.bet__time{
  font-family:Fraunces,serif;font-weight:900;font-size:19px;color:var(--gold-hot);
  font-variant-numeric:tabular-nums;flex-shrink:0;
}
.bet__name{flex:1;font-size:14.5px;color:var(--milk);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bet__badge{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);font-weight:700;flex-shrink:0}
.bet__del{
  background:none;border:0;color:rgba(201,180,154,.55);cursor:pointer;font-size:17px;line-height:1;padding:0 2px;
}
.bet__del:hover{color:#ff9a86}

.actual{
  margin-top:22px;padding-top:18px;border-top:1px dashed rgba(224,165,74,.25);
  display:flex;align-items:center;gap:11px;flex-wrap:wrap;
}
.actual__q{font-size:14px;color:var(--crema-dim)}
.actual input{
  font-family:inherit;font-size:14px;padding:9px 12px;border-radius:10px;
  background:rgba(0,0,0,.28);color:var(--milk);border:1px solid rgba(224,165,74,.28);
}
.actual__info{flex-basis:100%;margin:4px 0 0;font-size:14px;color:var(--milk)}
.actual__info b{color:var(--gold-hot)}

@media (max-width:640px){
  .bets{padding:20px 16px 18px}
  .bets__head{align-items:flex-start}
  .consensus{text-align:left}
  .bet-form .btn{flex:1 1 auto}
}
