/* Основа: фон-скринтон, шапка, сетка страницы, общие элементы управления */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background-color:var(--bg);
  background-image:radial-gradient(var(--tone) 1.1px, transparent 1.7px);
  background-size:12px 12px;
  color:var(--ink);
  font-family:var(--font-body);
  font-size:15px;
  line-height:1.5;
  padding-block:22px 48px;
  padding-left:max(16px, env(safe-area-inset-left, 0px));
  padding-right:max(16px, env(safe-area-inset-right, 0px));
}
img{max-width:100%}
code{font-family:var(--font-mono);font-size:.9em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:-1px}

.shell{max-width:max(1060px, calc(var(--bw) + 420px));margin-inline:auto;display:flex;flex-direction:column;gap:24px}

.top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:8px 28px}
.brand{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
h1{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(30px, 5.2vw, 46px);line-height:1;margin:0;
  letter-spacing:.01em;text-wrap:balance;
  text-shadow:3px 3px 0 var(--accent);
}
.jp{font-family:var(--font-display);font-size:14px;letter-spacing:.24em;color:var(--accent)}
.tag{margin:0;color:var(--muted);font-size:14px;max-width:44ch}

.stage{display:grid;grid-template-columns:var(--bw) minmax(270px, 340px);gap:30px;justify-content:center;align-items:start}
.play{display:flex;flex-direction:column;min-width:0}
@media (max-width: 940px){
  .stage{grid-template-columns:minmax(0,1fr)}
  .play,.side{width:100%;max-width:620px;justify-self:center}
  .play{max-width:calc(620px * var(--bscale, 1))}
}

.label{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}
.hint{font-size:12.5px;color:var(--muted);margin:0}

.seg{display:flex;border:2px solid var(--line);border-radius:9px;overflow:hidden;background:var(--surface)}
.seg button{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);font:inherit;font-weight:700;font-size:13.5px;padding:8px 6px;cursor:pointer}
.seg button + button{border-left:2px solid var(--line)}
.seg button small{display:block;font-size:11px;font-weight:600;line-height:1.2;opacity:.72}
/* Сегменты в сетке по 4: линии между кнопками рисует фон сквозь зазоры */
.seg.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;background:var(--line)}
.seg.grid4 button{border:0;background:var(--surface);font-size:13px;padding:8px 2px;line-height:1.2}
.seg.grid4 button:disabled{opacity:1;background:var(--surface);color:color-mix(in srgb, var(--ink) 35%, var(--surface))}
.seg.grid4 button[aria-checked="true"]:disabled{background:color-mix(in srgb, var(--ink) 55%, var(--surface));color:var(--surface)}
.seg button:hover{background:color-mix(in srgb, var(--accent) 10%, var(--surface))}
.seg button[aria-checked="true"]{background:var(--ink);color:var(--surface)}
.seg button:disabled{opacity:.4;cursor:not-allowed}
.seg button:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}

.btn{font:inherit;font-weight:800;font-size:14px;line-height:1.2;border:2px solid var(--line);background:var(--surface);color:var(--ink);border-radius:9px;padding:10px 12px;box-shadow:3px 3px 0 var(--shadow);cursor:pointer;transition:transform .08s, box-shadow .08s}
.btn:hover{background:color-mix(in srgb, var(--accent) 10%, var(--surface))}
.btn:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--shadow)}
.btn.primary{background:var(--accent);color:var(--on-accent)}
.btn.primary:hover{background:color-mix(in srgb, var(--accent) 86%, var(--ink))}
.btn.warn{color:var(--danger)}
.btn.warn.armed{background:var(--danger);color:#FFFFFF}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:3px 3px 0 var(--shadow)}
.btn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}

.actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}
.actions .primary,.actions .wide{grid-column:1 / -1}

.field{display:flex;flex-direction:column;gap:6px}
.input{font:inherit;font-size:14px;padding:9px 11px;border:2px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);min-width:0;width:100%}
.input::placeholder{color:var(--muted);opacity:.8}
.input:focus-visible{outline:3px solid var(--accent);outline-offset:1px}
.input.mono{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase}
.code-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}

.check{display:flex;gap:9px;align-items:center;font-size:13.5px;cursor:pointer}
.check input{accent-color:var(--accent);width:17px;height:17px;margin:0}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}
