:root{
  --bg:#0b0a0f;
  --s1:#141320;
  --s2:#1a1826;
  --s3:#232134;
  --line:#332f45;
  --line-2:#201e2c;

  --t1:#eef3f7;
  --t2:#9fadb8;
  --t3:#6b7a86;

  --paper:#eef3f7;
  --ink:#0b0f12;
  --hi:#c9a5ff;
  --ok:#5ad48c;
  --mid:#e6b73f;
  --no:#f0736f;

  --r:9px;
  --pad:clamp(16px,3.4vw,34px);
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
  --ease:cubic-bezier(.2,.7,.3,1);
}

*{box-sizing:border-box}
[hidden]{display:none !important}
html,body{height:100%}
body{
  margin:0; background:var(--bg); color:var(--t1);
  font-family:var(--sans); font-size:15px; line-height:1.5;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  display:flex; flex-direction:column;
}
main{flex:1 0 auto; display:flex; flex-direction:column}
h1,h2,h3{margin:0; font-weight:660; letter-spacing:-.022em}

.topbar{
  position:sticky; top:0; z-index:20;
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:11px var(--pad);
  background:color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-2);
}
.brand{
  display:flex; align-items:center; gap:9px; cursor:pointer;
  background:none; border:0; padding:0; color:var(--t1); font:inherit;
}
.brand-mark{
  flex:none; width:30px; height:30px; border-radius:8px; display:block;
  background:#fdfcfa; box-shadow:0 0 0 1px rgba(255,255,255,.08);
}
.brand-txt{font-size:15px; font-weight:650; letter-spacing:-.015em}
.brand-txt i{font-style:normal; color:var(--t3)}
.brand:hover .brand-txt i{color:var(--t2)}
.topbar-right{display:flex; align-items:center; gap:10px}

.hud{display:flex; gap:7px}
.hud-cell{
  display:flex; align-items:baseline; gap:7px;
  padding:5px 11px; border:1px solid var(--line); border-radius:7px; background:var(--s1);
}
.hud-k{font-size:9.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--t3)}
.hud-v{font-family:var(--mono); font-size:14px; font-variant-numeric:tabular-nums}
.hud-cell.hot{border-color:#4a3a12; background:#1c1708}
.hud-cell.hot .hud-v{color:var(--mid)}
.hud-v.bump{animation:bump .34s var(--ease)}
@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.22)}100%{transform:scale(1)}}

.btn{
  --bd:var(--line); --bgc:var(--s2); --fg:var(--t1);
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font:inherit; font-size:14.5px; font-weight:560; cursor:pointer;
  padding:10px 17px; border:1px solid var(--bd); border-radius:var(--r);
  background:var(--bgc); color:var(--fg); text-decoration:none;
  transition:background .14s, border-color .14s, color .14s, transform .1s var(--ease);
}
.btn:hover:not(:disabled){--bd:#4a4038; --bgc:var(--s3)}
.btn:active:not(:disabled){transform:translateY(1px)}
.btn:disabled{opacity:.42; cursor:not-allowed}
.btn-primary{--bd:var(--paper); --bgc:var(--paper); --fg:var(--ink); font-weight:640}
.btn-primary:hover:not(:disabled){--bd:#fff; --bgc:#fff}
.btn-quiet{--bgc:transparent; --fg:var(--t2)}
.btn-quiet:hover{--fg:var(--t1)}
.btn-lg{padding:13px 22px; font-size:15.5px}
.btn kbd{
  font-family:var(--mono); font-size:10.5px; line-height:1; padding:3px 5px;
  border-radius:4px; background:rgba(0,0,0,.14); color:inherit; opacity:.62;
}
.btn-quiet kbd,.btn:not(.btn-primary) kbd{background:rgba(255,255,255,.07)}
:focus-visible{outline:2px solid var(--hi); outline-offset:2px; border-radius:4px}

.screen{width:100%; max-width:1340px; margin:0 auto; padding:var(--pad)}

.menu{position:relative; flex:1; display:flex; align-items:center; padding-top:6px; padding-bottom:calc(var(--pad) + 96px)}
.marquee{
  position:absolute; left:0; right:0; bottom:0; height:124px;
  overflow:hidden; pointer-events:none; z-index:0;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 55%),linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
          mask-image:linear-gradient(180deg,transparent,#000 55%),linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  -webkit-mask-composite:source-in; mask-composite:intersect;
}
.marquee-row{
  display:flex; gap:10px; align-items:flex-end; height:100%;
  width:max-content; animation:drift 110s linear infinite; opacity:.42;
}
.marquee-row img{
  width:150px; height:110px; object-fit:cover; border-radius:7px;
  filter:grayscale(.15) saturate(1.05) contrast(1.02); flex:none;
}
@keyframes drift{from{transform:translateX(0)}to{transform:translateX(-50%)}}

.menu-inner{
  position:relative; z-index:1; width:100%;
  display:grid; grid-template-columns:1.02fr .98fr; gap:clamp(30px,5vw,80px); align-items:center;
}
.kicker{
  margin:0 0 16px; font-family:var(--mono); font-size:11px; letter-spacing:.17em;
  text-transform:uppercase; color:var(--t3);
}
.menu h1{font-size:clamp(36px,5.4vw,62px); line-height:1.02; letter-spacing:-.035em; margin-bottom:18px}
.lede{margin:0; color:var(--t2); font-size:16px; max-width:44ch}
.how{list-style:none; margin:26px 0 0; padding:0; display:grid; gap:11px; max-width:42ch}
.how li{display:flex; align-items:flex-start; gap:11px; color:var(--t2); font-size:14px}
.how li > span:first-child{
  flex:none; width:20px; height:20px; border-radius:5px; margin-top:1px;
  display:grid; place-items:center; background:var(--s2); border:1px solid var(--line);
  font-family:var(--mono); font-size:10.5px; color:var(--t1);
}

.setup{
  background:color-mix(in srgb, var(--s1) 92%, transparent);
  border:1px solid var(--line); border-radius:14px; padding:22px;
  display:grid; gap:19px; backdrop-filter:blur(14px);
}
.seg button:hover[aria-checked="false"]{color:var(--t1)}
.best{margin:0; text-align:center; font-family:var(--mono); font-size:12px; color:var(--t3); min-height:17px}

.play{display:grid; grid-template-columns:minmax(0,1fr) 392px; gap:20px; align-items:start; flex:1}
.stage{min-width:0; display:grid; gap:11px}

.roundbar{display:flex; align-items:center; justify-content:space-between; gap:16px}
.pips{display:flex; gap:5px; min-width:0; flex-wrap:wrap}
.pip{
  width:20px; height:5px; border-radius:99px; background:var(--s3);
  transition:background .3s, width .3s var(--ease);
}
.pip.now{width:34px; background:var(--paper)}
.pip.ok{background:var(--ok)} .pip.mid{background:var(--mid)} .pip.no{background:var(--no)}
.roundbar-right{display:flex; align-items:center; gap:12px; flex:none}
.round-n{font-size:12.5px; color:var(--t3)}
@keyframes blink{50%{opacity:.15}}

.photo{
  position:relative; border:1px solid var(--line); border-radius:13px; overflow:hidden;
  background:#080605; aspect-ratio:5/4; cursor:grab; touch-action:none;
}
.photo-inner{width:100%; height:100%; transform-origin:0 0; will-change:transform}
.photo-inner img{
  width:100%; height:100%; object-fit:cover; display:block; user-select:none;
  opacity:0; transition:opacity .5s var(--ease);
}
.photo-inner img.ready{opacity:1}
.photo-loading{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center; gap:10px;
  background:var(--s1); color:var(--t3); font-family:var(--mono); font-size:13px;
  transition:opacity .35s;
}
.photo-loading.hide{opacity:0; pointer-events:none}
.spin{
  width:14px; height:14px; border:2px solid var(--line); border-top-color:var(--t2);
  border-radius:50%; animation:spin .8s linear infinite; display:block;
}
@keyframes spin{to{transform:rotate(360deg)}}
.photo-tip.gone{opacity:0}

.panel{
  border:1px solid var(--line); border-radius:13px; background:var(--s1);
  padding:17px; position:sticky; top:70px;
}
.block{margin-bottom:18px}
.panel-h{display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:10px}
.panel-h h2{font-size:14.5px; font-weight:620}
.panel-hint{font-family:var(--mono); font-size:10.5px; color:var(--t3)}

@keyframes shake{0%,100%{transform:translateX(0)}22%{transform:translateX(-5px)}55%{transform:translateX(4px)}80%{transform:translateX(-2px)}}
.verdict{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:9px 13px; border-radius:9px; border:1px solid; margin-bottom:15px;
  animation:slidein .3s var(--ease) both;
}
.verdict b{font-size:12.5px; font-weight:600; letter-spacing:.01em}
.verdict-pts{font-family:var(--mono); font-size:15px; font-variant-numeric:tabular-nums}
.verdict.good{color:var(--ok); border-color:#23503a; background:#0d1a14}
.verdict.near{color:var(--mid); border-color:#4d3d15; background:#1a1508}
.verdict.bad{color:var(--no); border-color:#582826; background:#1a100f}
@keyframes slidein{from{opacity:0; transform:translateY(-6px)}}

.bname{font-size:22px; line-height:1.16; margin:16px 0 4px; padding-top:16px; border-top:1px solid var(--line-2)}
.bmeta{margin:0 0 16px; color:var(--t3); font-size:13px}
.reveal{animation:slidein .32s var(--ease) both}
.reveal-actions{display:flex; gap:8px}
.reveal-actions .btn-primary{flex:1}

.results{max-width:880px; display:flex; flex-direction:column; gap:26px}
.res-head{text-align:center}
.res-score{
  font-family:var(--mono); font-size:clamp(46px,9vw,76px); letter-spacing:-.04em;
  line-height:1; margin-bottom:12px; font-variant-numeric:tabular-nums;
}
.res-score small{font-size:.3em; color:var(--t3); letter-spacing:0; margin-left:6px}
.res-head .lede{margin:0 auto; text-align:center}
.res-stats{display:grid; grid-template-columns:repeat(auto-fit,minmax(148px,1fr)); gap:9px}
.stat{border:1px solid var(--line); border-radius:var(--r); background:var(--s1); padding:13px 15px}
.stat .k{font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--t3)}
.stat .v{font-family:var(--mono); font-size:21px; margin-top:4px; font-variant-numeric:tabular-nums}

.res-list{list-style:none; margin:0; padding:0; display:grid; gap:5px}
.res-item{
  --c:var(--t3); --m:var(--t3);
  position:relative; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:13px;
  padding:12px 15px; border:1px solid var(--line-2); border-radius:var(--r);
  background:var(--s1); overflow:hidden;
}
.res-item::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:var(--w,0%);
  background:var(--c); opacity:.075; transition:width .7s var(--ease);
}
.res-item.ok{--c:var(--ok)} .res-item.mid{--c:var(--mid)} .res-item.no{--c:var(--no)}
.res-item.m-ok{--m:var(--ok)} .res-item.m-mid{--m:var(--mid)} .res-item.m-no{--m:var(--no)}
.res-mark{
  position:relative; z-index:1;
  width:22px; height:22px; border-radius:6px; display:grid; place-items:center;
  background:var(--m); color:var(--ink); font-size:12px; font-weight:800; line-height:1;
}
.res-body{position:relative; z-index:1; min-width:0}
.res-name{display:block; font-size:14px; font-weight:600; color:var(--t1)}
.res-sub{display:block; font-size:12px; color:var(--t3); margin-top:3px; line-height:1.4}
.res-sub b{color:var(--c); font-weight:600}
.res-pts{position:relative; z-index:1; font-family:var(--mono); font-size:15px; color:var(--t1); font-variant-numeric:tabular-nums}
.res-actions{display:flex; gap:9px; justify-content:center; flex-wrap:wrap}

.foot a{color:var(--t2)}
.foot{
  flex:none; padding:15px var(--pad); border-top:1px solid var(--line-2);
  color:var(--t3); font-size:11.5px; text-align:center;
}

@media (max-width:1100px){
  .menu-inner{grid-template-columns:1fr; gap:26px; align-content:start}
  .menu{align-items:start; padding-top:22px}
  .how{display:none}
  .play{grid-template-columns:1fr; align-content:start}
  .panel{position:static}
  .photo{aspect-ratio:16/10}
}
@media (max-width:640px){
  body{font-size:14.5px}
  .topbar{padding:10px 14px; gap:8px}
  .topbar-right{gap:6px; min-width:0}
  .topbar-right .btn{padding:8px 10px; font-size:12.5px}
  .brand-txt{display:none}
  .hud{gap:5px}
  .hud-cell{padding:5px 9px; gap:6px}
  .hud-k{display:none}
  .marquee{display:none}
  .res-actions .btn{flex:1}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important}
  .marquee-row{animation:none}
}

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

.daily{
  display:flex; align-items:center; justify-content:space-between; gap:14px; width:100%;
  padding:14px 16px; border-radius:11px; cursor:pointer; font:inherit; text-align:left;
  color:var(--t1); border:1px solid #2a5f56;
  background:linear-gradient(135deg,#12241f,#0f1d1b);
  transition:border-color .16s, transform .1s var(--ease);
}
.daily:hover{border-color:var(--hi)}
.daily:active{transform:translateY(1px)}
.daily-l{display:grid; gap:2px; min-width:0}
.daily-l b{font-size:15.5px; font-weight:650}
.daily-l small{font-size:12.5px; color:var(--t2)}
.daily-r{
  flex:none; font-family:var(--mono); font-size:11px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--hi); border:1px solid #2a5f56;
  border-radius:99px; padding:4px 10px; white-space:nowrap;
}
.daily.done{border-color:var(--line); background:var(--s2)}
.daily.done .daily-r{color:var(--t3); border-color:var(--line)}
.setup-sep::before,.setup-sep::after{content:""; flex:1; height:1px; background:var(--line-2)}

.share-note{
  margin:-14px 0 0; text-align:center; font-family:var(--mono); font-size:12px;
  color:var(--ok); min-height:17px;
}

@media (max-width:430px){
  .brand-txt{display:none}
}

.daily-streak{
  flex:none; font-family:var(--mono); font-size:11.5px; color:var(--mid);
  padding:5px 10px; border:1px solid #4d3d15; border-radius:20px;
  background:#1a1508; white-space:nowrap;
}

.credito{
  margin:0 0 13px; font-size:11.5px; line-height:1.5; color:var(--t3);
  padding-top:11px; border-top:1px solid var(--line-2);
}
.credito b{font-weight:600; color:var(--t2)}
.credito a{color:var(--t2)}
.credito a:hover{color:var(--t1)}

.ad{
  margin:22px auto 0; max-width:728px; width:100%; min-height:100px;
  display:grid; place-items:center; overflow:hidden;
  border:1px dashed var(--line-2); border-radius:var(--r);
}
.ad:empty{display:none}

.chip-juego{
  display:inline-flex; align-items:center; gap:7px; padding:5px 11px 5px 9px;
  border:1px solid var(--line); border-radius:99px; background:var(--s1);
  font-size:12px; font-weight:560; color:var(--t2); white-space:nowrap;
}
.chip-juego .gicono{width:15px; height:15px; color:var(--acc,var(--hi))}
.chip-juego b{font-weight:620; color:var(--t1)}

.escena{
  position:relative; display:grid; place-items:center; height:min(58vh,470px);
  border:1px solid var(--line); border-radius:13px; background:var(--s1); overflow:hidden;
}
.escena img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  display:block; opacity:0; transition:opacity .35s;
}
.escena img.ready{opacity:1}
.escena-cargando{
  position:absolute; inset:0; display:grid; place-content:center; justify-items:center; gap:9px;
  color:var(--t3); font-size:12.5px; background:var(--s1); transition:opacity .3s;
}
.escena-cargando.hide{opacity:0; pointer-events:none}

.frase{
  display:grid; gap:16px; justify-items:center; padding:34px 26px; text-align:center;
}
.frase q{
  quotes:"«" "»"; font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(22px,4.4vw,38px); line-height:1.32; color:var(--t1); text-wrap:balance;
}
.frase .frase-r{font-size:14px; color:var(--t3); font-style:italic}
.frase .frase-tag{font-family:var(--mono); font-size:11px; color:var(--t3); letter-spacing:.06em}

.tocador{display:grid; gap:18px; justify-items:center; padding:30px 22px}
.tocar{
  width:104px; height:104px; border-radius:50%; cursor:pointer;
  border:1px solid var(--line); background:var(--s2); color:var(--t1);
  display:grid; place-items:center; transition:border-color .16s, background .16s, transform .1s var(--ease);
}
.tocar:hover{border-color:var(--hi); background:var(--s3)}
.tocar:active{transform:scale(.96)}
.tocar-ico{
  width:0; height:0; margin-left:6px;
  border-left:26px solid currentColor; border-top:16px solid transparent; border-bottom:16px solid transparent;
}
.tocador.sonando .tocar-ico{
  width:22px; height:26px; margin-left:0; border:0;
  border-left:8px solid currentColor; border-right:8px solid currentColor;
}
.onda{display:flex; align-items:flex-end; gap:4px; height:40px}
.onda i{width:4px; border-radius:2px; background:var(--line); transition:height .12s, background .2s}
.tocador.sonando .onda i{background:var(--hi)}
.barra{width:min(320px,88%); display:grid; gap:6px}
.barra-pista{height:4px; border-radius:2px; background:var(--s3); overflow:hidden}
.barra-oida{height:100%; width:0; background:var(--hi); transition:width .1s linear}
.barra-pies{display:flex; justify-content:space-between; font-family:var(--mono); font-size:10.5px; color:var(--t3)}

.opciones{display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:16px}
.opciones.dos{grid-template-columns:1fr 1fr}
.opcion{
  position:relative; display:flex; align-items:center; gap:9px; text-align:left;
  min-height:48px; padding:10px 12px 10px 10px;
  border:1px solid var(--line); border-radius:var(--r); background:var(--s2);
  color:var(--t1); font:inherit; font-size:13.5px; line-height:1.25; cursor:pointer;
  transition:border-color .13s, background .13s, transform .1s var(--ease);
}
.opcion .num{
  flex:none; width:19px; height:19px; display:grid; place-items:center; border-radius:5px;
  background:var(--s3); border:1px solid var(--line);
  font-family:var(--mono); font-size:10px; color:var(--t3); transition:.13s;
}
.opcion:hover:not(:disabled){border-color:#5a5480; background:var(--s3)}
.opcion[aria-pressed="true"]{border-color:var(--hi); background:#191430}
.opcion[aria-pressed="true"] .num{background:var(--hi); border-color:var(--hi); color:#120c22}
.opcion:disabled{cursor:default; opacity:.42}
.opcion.correct{opacity:1; border-color:var(--ok); background:#0e1d16; color:var(--ok)}
.opcion.correct .num{background:var(--ok); border-color:var(--ok); color:#08150e}
.opcion.wrong{opacity:1; border-color:#5a2725; background:#1c100f; color:var(--no); animation:shake .34s}

.mezcla{display:flex; flex-wrap:wrap; gap:6px; margin:18px 0 0; padding:0; list-style:none}
.mezcla li{
  display:inline-flex; align-items:center; gap:6px; padding:5px 10px;
  border:1px solid var(--line); border-radius:99px; background:var(--s1);
  font-size:11.5px; color:var(--t2);
}
.mezcla .gicono{width:13px; height:13px}

@media (max-width:640px){
  .opciones{grid-template-columns:1fr}
  .escena{height:min(42vh,320px)}
  .tocar{width:88px; height:88px}
}

.how li > span:last-child{flex:1; min-width:0}

@media (max-width:640px){
  .menu-inner,.menu-hero,.setup{min-width:0}
  .daily{flex-wrap:wrap}
  .daily-l{flex:1 1 100%; min-width:0}
  .daily-streak{order:3}
}
