:root{
  --bg:#F2F1E9;
  --ink:#2B2B2B;
  --phone:#2E2E2E;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{
  margin:0;
  background:#E4E3DC;
  font-family:-apple-system,BlinkMacSystemFont,"Inter","Helvetica Neue",Arial,sans-serif;
  color:var(--ink);
  display:flex;align-items:center;justify-content:center;
  overscroll-behavior:none;
}

/* корпус телефона — только на широких экранах */
.phone{
  width:min(100vw,390px);
  height:min(100vh,844px);
  background:var(--bg);
  overflow:hidden;
  position:relative;
}
@media (min-width:520px) and (min-height:700px){
  .phone{
    border:12px solid var(--phone);
    border-radius:52px;
    height:844px;
    box-shadow:0 30px 60px rgba(0,0,0,.25);
  }
}

.screen{position:absolute;inset:0;overflow:hidden}

.view{
  position:absolute;inset:0;
  display:none;
  padding:calc(env(safe-area-inset-top) + 20px) 22px calc(env(safe-area-inset-bottom) + 22px);
}
.view.is-active{display:flex}

.stack{
  flex:1;display:flex;flex-direction:column;align-items:center;
  width:100%;
}
.spacer{flex:1}

.title{width:100%;max-width:300px;display:block}

/* стартовый экран */
.hero{
  position:relative;
  width:100%;flex:1;
  min-height:200px;
  margin:6px 0 4px;
}
.hero img{position:absolute;width:62%}
.hero__a{right:-1%;top:2%}
.hero__b{left:-3%;top:44%}

/* кнопка */
.btn{
  position:relative;
  appearance:none;background:none;border:0;padding:0;
  width:min(100%,290px);
  aspect-ratio:313.56 / 118.5;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
.btn__fill{
  position:absolute;inset:4%;
  border-radius:999px;
  background:var(--ink);
  opacity:0;
  transition:opacity .1s ease;
}
.btn__ring{position:absolute;inset:0;width:100%;height:100%}
.btn__label{position:relative;display:block}

/* нажатие: кнопка заливается и падает вниз */
.btn.is-falling .btn__fill{opacity:1}
.btn.is-falling .btn__label{filter:invert(1)}
.btn.is-falling{animation:btn-fall .58s cubic-bezier(.45,0,.85,.5) forwards}
@keyframes btn-fall{
  0%   {transform:translateY(0) rotate(0)}
  14%  {transform:translateY(-6px) rotate(-1.5deg)}
  100% {transform:translateY(70vh) rotate(11deg)}
}
@media (prefers-reduced-motion:reduce){
  .btn.is-falling{animation-duration:.01s}
}

.note{
  margin:18px 0 4px;
  font-size:15px;line-height:1.45;text-align:center;font-weight:500;
}

/* экраны финала */
.view--end .stack{justify-content:flex-start}
.view--end .note{margin-top:16px}
.prize{width:94%;margin:26px 0 auto}
#view-lose .btn{margin-top:auto}

/* игра */
.view--game{flex-direction:column;padding:0}
.hud{
  display:flex;align-items:center;gap:16px;
  padding:calc(env(safe-area-inset-top) + 14px) 18px 8px;
  font-size:19px;font-weight:500;letter-spacing:.4px;
  font-variant-numeric:tabular-nums;
}
#hud-name{margin-left:auto;text-transform:uppercase}
#canvas{flex:1;width:100%;display:block;touch-action:none}

.hint{
  position:absolute;inset:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:14px;
  color:#fff;font-weight:600;font-size:17px;
  background:linear-gradient(180deg,rgba(70,70,68,.78),rgba(70,70,68,.12));
  opacity:0;pointer-events:none;transition:opacity .35s ease;
}
.hint.is-on{opacity:1}
.hint p{margin:0}
.hint__row{display:flex;align-items:center;gap:14px;font-size:20px}
.hint__row i{display:block;width:92px;height:11px;border-radius:99px;background:#fff}

.promo{
  display:block;
  width:max-content;
  margin:14px auto 0;
  font-size:26px;font-weight:800;letter-spacing:3px;
  border:2px dashed var(--ink);border-radius:14px;
  padding:10px 18px;
}
