  :root{ --paper:#efdcc3; --paper2:#f6ead8; --ink:#14100d; --ink2:rgba(20,16,13,.62); --gold:#c8902e; }
  *{box-sizing:border-box;margin:0;padding:0}
  html,body{height:100%}
  body{background:var(--paper);color:var(--ink);
    font-family:'Segoe UI','Helvetica Neue',Helvetica,Arial,sans-serif;min-height:100%;display:flex;flex-direction:column;
    align-items:center;-webkit-tap-highlight-color:transparent;overflow:hidden}
  .topbar{width:100%;max-width:1100px;display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.2rem;gap:1rem}
  .topbar a.brand{display:flex;align-items:center;text-decoration:none}
  .topbar a.brand img{height:54px;width:auto}
  @media (max-width:520px){ .topbar a.brand img{height:44px} }
  .topbar .back{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);text-decoration:none;font-weight:600;
    border:2px solid var(--ink);padding:.5rem .95rem;transition:all .18s;white-space:nowrap}
  .topbar .back:hover{background:var(--ink);color:var(--paper)}
  .stage-wrap{width:100%;max-width:680px;flex:1 1 auto;display:flex;flex-direction:column;padding:0 1rem 1rem;align-items:center}
  .stage{position:relative;width:100%;aspect-ratio:1/1;max-height:62vh;overflow:hidden;
    border:2px solid var(--ink);background:var(--paper2)}
  canvas{display:block;width:100%;height:100%;touch-action:none}
  .hud{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center;margin:.9rem 0 .2rem;font-variant-numeric:tabular-nums}
  .hud .chip{border:2px solid var(--ink);padding:.32rem .8rem;font-size:.86rem;display:flex;gap:.4rem;align-items:baseline;font-weight:500}
  .hud .chip b{font-weight:800}
  /* d-pad */
  .pad{display:grid;grid-template-columns:repeat(3,54px);grid-template-rows:repeat(3,54px);gap:.4rem;margin:.9rem auto .2rem}
  .pad button{background:transparent;border:2px solid var(--ink);color:var(--ink);
    font-size:1.2rem;cursor:pointer;display:grid;place-items:center;transition:.12s;user-select:none}
  .pad button:active{background:var(--ink);color:var(--paper)}
  .pad .up{grid-column:2;grid-row:1}.pad .left{grid-column:1;grid-row:2}.pad .right{grid-column:3;grid-row:2}.pad .down{grid-column:2;grid-row:3}
  .hint{font-size:.78rem;color:var(--ink2);text-align:center;margin-top:.5rem}
  .hint kbd{border:1.5px solid var(--ink);padding:.05rem .4rem;font-family:inherit;color:var(--ink);font-weight:600}
  /* overlays */
  .overlay{position:absolute;inset:0;z-index:6;display:flex;flex-direction:column;align-items:center;justify-content:center;
    text-align:center;gap:.55rem;padding:1.4rem;background:rgba(239,220,195,.95)}
  .overlay.hidden{display:none}
  .overlay h1{font-weight:800;line-height:1;font-size:clamp(2.6rem,10vw,4.6rem);letter-spacing:-.01em;color:var(--ink)}
  .overlay .tag{font-size:.74rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ink2);font-weight:600}
  .overlay p{max-width:30rem;color:var(--ink);font-size:1rem;line-height:1.5}
  .overlay p.s{color:var(--ink2);font-size:.92rem}
  .overlay .sub{font-size:.98rem}
  .overlay .art{height:clamp(86px,17vh,140px);width:auto;display:block}
  .overlay .barrel{position:absolute;right:.6rem;bottom:.4rem;height:clamp(60px,11vh,92px);width:auto;opacity:.9;pointer-events:none}
  .row{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center;margin-top:.9rem}
  .btn{cursor:pointer;border:2px solid var(--ink);background:var(--ink);color:var(--paper);font-family:inherit;
    font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:.84rem;padding:.78rem 1.7rem;transition:all .15s;text-decoration:none}
  .btn:hover{background:transparent;color:var(--ink)}
  .btn.ghost{background:transparent;color:var(--ink)}
  .btn.ghost:hover{background:var(--ink);color:var(--paper)}
  .footer-note{width:100%;max-width:1100px;text-align:center;color:var(--ink2);font-size:.76rem;padding:.2rem 1rem .8rem}
  .lang-switch{display:inline-flex;gap:.25rem;align-items:center;font-size:.78rem;letter-spacing:.1em;font-weight:600}
  .lang-switch a{color:inherit;opacity:.55;padding:.2rem .35rem;text-decoration:none;border-bottom:1px solid transparent}
  .lang-switch a:hover{opacity:1}
  .lang-switch a.active{opacity:1;border-bottom-color:currentColor}

/* MOBIL — horná lišta sa zalamuje a nepreteká */
@media (max-width:520px){
  .topbar{ flex-wrap:wrap; gap:.4rem .8rem; padding:.55rem .8rem; }
  .topbar a.brand img{ height:38px; }
  .topbar .back{ padding:.5rem .8rem; font-size:.7rem; }
  .lang-switch a{ padding:.5rem .55rem; }
  /* úvodná karta sa musí zmestiť do malého štvorca hracej plochy */
  .overlay{ padding:.8rem .9rem; gap:.35rem; overflow-y:auto; justify-content:safe center; }
  .overlay .art{ height:60px; }
  .overlay .barrel{ display:none; }
  .overlay h1{ font-size:2.2rem; }
  .overlay p{ font-size:.9rem; line-height:1.4; }
  .overlay p.s{ font-size:.82rem; }
}

/* REBRÍČEK a kód hráča */
.chipbtn{background:transparent;color:var(--ink);font-family:inherit;cursor:pointer;transition:all .15s}
.chipbtn:hover{background:var(--ink);color:var(--paper)}
.overlay .row{margin-top:.5rem}
.overlay a{color:inherit}
.footer-note a{color:inherit;text-underline-offset:2px}
.overlay.lb{position:fixed;inset:0;z-index:50;background:var(--paper);justify-content:flex-start;overflow-y:auto;gap:.5rem;padding:1.2rem 1.2rem 1.6rem}
.overlay.lb>*{flex-shrink:0}
.overlay.lb h2{font-weight:800;line-height:1;font-size:clamp(1.8rem,6vw,2.6rem)}
.overlay.lb .note{border:2px solid var(--gold);padding:.4rem .7rem;color:var(--ink);font-size:.86rem}
.lblist{list-style:none;counter-reset:r;width:100%;max-width:26rem;text-align:left}
.lblist li{counter-increment:r;display:flex;gap:.6rem;align-items:baseline;padding:.28rem .2rem;border-bottom:1.5px solid rgba(20,16,13,.18);font-size:.95rem}
.lblist li::before{content:counter(r)'.';width:1.8rem;font-weight:800;text-align:right;font-variant-numeric:tabular-nums}
.lblist li .nm{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lblist li b{font-variant-numeric:tabular-nums;white-space:nowrap}
.lblist li:nth-child(1)::before{color:var(--gold)}
.lblist li.you{background:rgba(200,144,46,.22)}
.overlay.lb .me{width:100%;max-width:26rem;display:flex;flex-direction:column;gap:.35rem;margin-top:.3rem;text-align:left}
.overlay.lb .mine{font-weight:700;font-size:.95rem}
.overlay.lb .code{font-size:.9rem}
.overlay.lb .code b{font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:.06em;user-select:all;font-size:1.02rem}
.overlay.lb p.s{font-size:.8rem;margin:0}
.inl{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;width:100%;max-width:26rem}
.inl label{font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;min-width:5.2rem;text-align:left}
.inl input{flex:1 1 7rem;min-width:0;border:2px solid var(--ink);background:var(--paper2);color:var(--ink);font:inherit;padding:.5rem .6rem;font-size:16px}
.btn.small{padding:.5rem .9rem;font-size:.74rem}
.msg{min-height:1.2rem;font-size:.85rem;font-weight:600}
.msg.bad{color:#8a1c1c}
.rankline{font-weight:700}
.overlay .note{max-width:26rem}
@media (max-width:520px){ .overlay.lb{padding:.9rem .9rem 1.4rem;justify-content:flex-start} .lblist li{font-size:.88rem} .inl label{min-width:100%} }
