@font-face{font-family:'Oswald';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/oswald-cyrillic-500-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Oswald';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/oswald-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Oswald';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/oswald-cyrillic-600-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Oswald';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/oswald-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Oswald';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/oswald-cyrillic-700-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Oswald';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/oswald-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/golos-text-cyrillic-400-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/golos-text-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/golos-text-cyrillic-500-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/golos-text-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/golos-text-cyrillic-600-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/golos-text-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'PT Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/pt-mono-cyrillic-400-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'PT Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/pt-mono-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* Layout: одна колонка-телефон 560px; гость — нижнее меню из 5 вкладок, бар — свои 5 вкладок. Ночной бар, поэтому одна тёмная тема. */
:root{
  --ink:#110F0E;      /* фон: прокуренный зал */
  --ink-2:#1B1816;    /* поверхности */
  --ink-3:#28231F;    /* приподнятые элементы */
  --line:#3B342E;     /* линии */
  --paper:#F1E6CD;    /* основной текст: пожелтевшая бумага pulp-журнала */
  --muted:#A69C89;    /* вторичный текст */
  --yellow:#F3C11B;   /* акцент: жёлтый комбинезон */
  --yellow-2:#C99A06;
  --on-yellow:#16120A;
  --blood:#D23A2F;    /* куш, «идёт», акценты-заголовки */
  --red-deep:#A3201A; /* красный по жёлтому */
  --ok:#86BF72;       /* верный ответ */
  --f-display:"Oswald","Arial Narrow",Impact,sans-serif;
  --f-body:"Golos Text",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"PT Mono",ui-monospace,Menlo,Consolas,monospace;
  --r:4px;
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{background:var(--ink);color:var(--paper)}
body{font-family:var(--f-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100%}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--ink)}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.07;mix-blend-mode:screen;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}
.wrap{max-width:560px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}

/* ---------- шапка ---------- */
.hdr{position:sticky;top:env(safe-area-inset-top,0px);z-index:25;background:color-mix(in srgb,var(--ink) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:12px}
.logo{display:flex;align-items:baseline;gap:6px;line-height:1}
.logo b{font-family:var(--f-display);font-weight:700;font-size:22px;letter-spacing:.06em;text-transform:uppercase}
.logo i{font-family:var(--f-display);font-weight:700;font-style:normal;font-size:22px;letter-spacing:.06em;text-transform:uppercase;color:var(--blood)}
.role{display:flex;border:1px solid var(--line);border-radius:999px;padding:2px;font-size:12px}
.role button{padding:5px 12px;border-radius:999px;color:var(--muted);font-weight:500}
.role button[aria-pressed="true"]{background:var(--paper);color:var(--ink)}
.role-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.role-note{font-size:10px;color:var(--muted);letter-spacing:.04em}

main{padding-block:20px calc(110px + env(safe-area-inset-bottom,0px))}
main > .wrap{display:flex;flex-direction:column;gap:28px}

/* ---------- типографика ---------- */
.eyebrow{font-family:var(--f-display);font-weight:500;color:var(--blood);font-size:13px;line-height:1.2;letter-spacing:.28em;text-transform:uppercase}
.h1{font-family:var(--f-display);font-weight:700;text-transform:uppercase;font-size:clamp(34px,9vw,46px);line-height:.95;letter-spacing:.01em;margin:4px 0 0;text-wrap:balance}
.h1::after{content:"";display:block;height:3px;margin-top:14px;background:linear-gradient(90deg,var(--blood),transparent 85%)}
.h2{font-family:var(--f-display);font-weight:600;text-transform:uppercase;font-size:20px;letter-spacing:.04em;margin:0;line-height:1.1}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}
.sec-head .link{font-size:13px;color:var(--yellow)}
.muted{color:var(--muted)}
.small{font-size:13px}
.mono{font-family:var(--f-mono)}
.num{font-variant-numeric:tabular-nums}
p{margin:0}

/* ---------- кнопки, поля ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:var(--r);font-family:var(--f-display);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:15px;transition:transform .12s ease,background .12s}
.btn:active{transform:translateY(1px)}
.btn-y{background:var(--yellow);color:var(--on-yellow)}
.btn-y:hover{background:#FFD23A}
.btn-k{background:var(--on-yellow);color:var(--yellow)}
.btn-o{border:1px solid var(--line);color:var(--paper)}
.btn-o:hover{border-color:var(--muted)}
.btn-r{background:var(--blood);color:#fff}
.btn[disabled]{opacity:.4;cursor:not-allowed}
.btn-block{width:100%}
.btn-sm{min-height:34px;padding:0 12px;font-size:13px}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:12px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}
.inp{width:100%;min-height:44px;padding:10px 12px;background:var(--ink);border:1px solid var(--line);border-radius:var(--r);color:var(--paper)}
.inp:focus{border-color:var(--yellow);outline:none}
textarea.inp{min-height:88px;resize:vertical}
.row{display:flex;gap:10px;flex-wrap:wrap}
.row > *{flex:1 1 140px;min-width:0}
.form{display:flex;flex-direction:column;gap:14px}
.chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;padding:7px 14px;border:1px solid var(--line);border-radius:999px;font-size:13px;color:var(--muted);white-space:nowrap}
.chip[aria-pressed="true"]{background:var(--paper);color:var(--ink);border-color:var(--paper)}

/* ---------- поверхности ---------- */
.panel{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.list{display:flex;flex-direction:column}
.li{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.li:last-child{border-bottom:0}
.li .grow{flex:1;min-width:0}
.li .t{font-weight:500}
.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.pill-live{background:var(--blood);color:#fff}
.pill-live::before{content:"";width:6px;height:6px;border-radius:50%;background:#fff;animation:blink 1.2s infinite}
.pill-reg{background:var(--yellow);color:var(--on-yellow)}
.pill-done{border:1px solid var(--line);color:var(--muted)}
.pill-tag{border:1px solid var(--line);color:var(--paper)}
@keyframes blink{50%{opacity:.25}}

/* ---------- карта гостя ---------- */
.card-gold{position:relative;overflow:hidden;background:var(--yellow);color:var(--on-yellow);border-radius:6px;padding:20px;display:flex;flex-direction:column;gap:18px}
.card-gold::after{content:"";position:absolute;right:-60px;top:-40px;width:220px;height:220px;border:28px solid rgba(22,18,10,.07);border-radius:50%}
.cg-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;position:relative;z-index:1}
.cg-kicker{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;opacity:.75}
.cg-name{font-family:var(--f-display);font-weight:700;font-size:26px;text-transform:uppercase;line-height:1;margin-top:6px}
.cg-level{font-family:var(--f-display);font-weight:700;font-size:17px;text-transform:uppercase;letter-spacing:.04em;color:var(--red-deep)}
.cg-bal{display:flex;align-items:baseline;gap:10px;position:relative;z-index:1}
.cg-bal .n{font-family:var(--f-display);font-weight:700;font-size:64px;line-height:.9;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.cg-bal .u{font-family:var(--f-display);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:15px}
.cg-prog{position:relative;z-index:1;display:flex;flex-direction:column;gap:6px;font-size:13px}
.bar{height:6px;background:rgba(22,18,10,.18);border-radius:3px;overflow:hidden}
.bar > i{display:block;height:100%;background:var(--red-deep);border-radius:3px}
.cg-foot{display:flex;gap:10px;position:relative;z-index:1}
.cg-foot .btn{flex:1}

/* ---------- плитки ---------- */
.duo{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tile{display:flex;flex-direction:column;gap:6px;text-align:left;background:var(--ink-2);border:1px solid var(--line);border-radius:var(--r);padding:14px;min-width:0}
.tile:hover{border-color:var(--muted)}
.tile .big{font-family:var(--f-display);font-weight:600;text-transform:uppercase;font-size:19px;line-height:1.05}
.tile .k{font-family:var(--f-mono);font-size:12px;color:var(--muted)}
.tile .v{font-family:var(--f-display);font-size:22px;font-weight:600;color:var(--yellow);font-variant-numeric:tabular-nums}
.tile .v.red{color:var(--blood)}

/* ---------- краны ---------- */
.taps{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;margin-inline:calc(-1 * max(16px,env(safe-area-inset-left,0px)));padding-inline:max(16px,env(safe-area-inset-left,0px))}
.taps::-webkit-scrollbar{display:none}
.tap{flex:none;width:150px;border:1px solid var(--line);border-radius:var(--r);padding:12px;display:flex;flex-direction:column;gap:4px;background:var(--ink-2)}
.tap .no{font-family:var(--f-mono);font-size:11px;color:var(--muted)}
.tap .nm{font-family:var(--f-display);font-weight:600;font-size:17px;text-transform:uppercase;line-height:1.1}
.tap .st{font-size:12px;color:var(--muted)}
.tap .pr{display:flex;justify-content:space-between;font-family:var(--f-mono);font-size:13px;margin-top:6px}
.tap.out{opacity:.45}
.tap.out .nm{text-decoration:line-through}

/* ---------- новости ---------- */
.news{display:flex;flex-direction:column;gap:12px}
.post{border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:6px}
.post:first-child{border-top:0;padding-top:0}
.post .meta{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted)}
.post h3{font-family:var(--f-display);font-weight:600;font-size:20px;text-transform:uppercase;margin:0;line-height:1.15;text-wrap:balance}
.post p{color:#D8CDB4;max-width:62ch}

/* ---------- викторина ---------- */
.chapter{background:#000;border:1px solid var(--line);border-top:3px solid var(--blood);border-radius:var(--r);padding:28px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}
.chapter .ch{font-family:var(--f-display);font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:clamp(34px,9vw,44px);line-height:1}
.chapter .tt{font-family:var(--f-display);font-weight:600;letter-spacing:.3em;text-transform:uppercase;font-size:14px;color:var(--blood)}
.chapter .rules{font-size:13px;color:var(--muted)}
.streak{display:flex;gap:6px;align-items:center;justify-content:center;flex-wrap:wrap}
.streak i{width:22px;height:6px;border-radius:1px;background:var(--line)}
.streak i.on{background:var(--yellow)}
.q{font-family:var(--f-display);font-weight:500;font-size:22px;line-height:1.25;text-wrap:balance}
.opts{display:grid;gap:10px}
.opt{display:flex;align-items:center;gap:12px;text-align:left;padding:14px;border:1px solid var(--line);border-radius:var(--r);background:var(--ink-2);min-height:54px;transition:border-color .12s}
.opt:hover:not([disabled]){border-color:var(--yellow)}
.opt .l{font-family:var(--f-mono);color:var(--yellow);width:18px;flex:none}
.opt.right{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,var(--ink-2))}
.opt.right .l{color:var(--ok)}
.opt.wrong{border-color:var(--blood);background:color-mix(in srgb,var(--blood) 14%,var(--ink-2))}
.opt.wrong .l{color:var(--blood)}
.opt[disabled]{cursor:default}
.timer{height:4px;background:var(--line);border-radius:2px;overflow:hidden}
.timer i{display:block;height:100%;background:var(--yellow);transition:width .25s linear}
.timer.low i{background:var(--blood)}
.verdict{display:flex;gap:14px;align-items:flex-start;padding:16px;border-radius:var(--r);border:1px solid var(--line);background:var(--ink-2)}
.verdict .big{font-family:var(--f-display);font-weight:700;font-size:28px;line-height:1;text-transform:uppercase}
.verdict.good .big{color:var(--ok)}
.verdict.bad .big{color:var(--blood)}
.countdown{font-family:var(--f-mono);font-size:28px;color:var(--yellow);letter-spacing:.04em}
.rank{font-family:var(--f-display);font-weight:600;width:26px;color:var(--muted);font-variant-numeric:tabular-nums}
.me-row .t{color:var(--yellow)}

/* ---------- турниры ---------- */
.tcard{display:flex;flex-direction:column;gap:12px;text-align:left;width:100%;background:var(--ink-2);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.tcard:hover{border-color:var(--muted)}
.tcard .top{display:flex;justify-content:space-between;gap:10px;align-items:center}
.tcard .game{font-family:var(--f-display);font-weight:500;text-transform:uppercase;letter-spacing:.16em;font-size:13px;color:var(--blood)}
.tcard .name{font-family:var(--f-display);font-weight:600;font-size:22px;text-transform:uppercase;line-height:1.1}
.tcard .facts{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.tcard .pot{font-family:var(--f-display);font-weight:700;font-size:28px;color:var(--yellow);line-height:1;font-variant-numeric:tabular-nums}
.tcard .pot small{display:block;font-family:var(--f-mono);font-weight:400;font-size:11px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px}
.seats{display:flex;gap:3px;flex-wrap:wrap;max-width:200px}
.seats i{width:10px;height:10px;border:1px solid var(--muted);border-radius:1px}
.seats i.on{background:var(--paper);border-color:var(--paper)}
.jackpot{position:relative;overflow:hidden;border-radius:6px;border:1px solid #4a3a12;padding:26px 20px 22px;text-align:center;background:radial-gradient(120% 90% at 50% 115%,rgba(243,193,27,.42),rgba(243,193,27,.08) 45%,transparent 70%),var(--ink-2)}
.jackpot .k{font-family:var(--f-mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.jackpot .n{font-family:var(--f-display);font-weight:700;font-size:clamp(52px,15vw,72px);line-height:1;color:var(--yellow);text-shadow:0 0 28px rgba(243,193,27,.45);font-variant-numeric:tabular-nums;margin:8px 0}
.jackpot .how{font-size:13px;color:#D8CDB4}
.split{display:flex;justify-content:center;gap:18px;margin-top:12px;font-size:13px}
.split b{font-family:var(--f-display);font-weight:600;color:var(--paper);font-size:17px}
.back{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--muted)}
.back:hover{color:var(--paper)}
.facts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.facts-grid div{background:var(--ink-2);padding:12px;display:flex;flex-direction:column;gap:2px;min-width:0}
.facts-grid .k{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.facts-grid .v{font-family:var(--f-display);font-weight:600;font-size:17px}
.bracket-scroll{overflow-x:auto;margin-inline:calc(-1 * max(16px,env(safe-area-inset-left,0px)));padding-inline:max(16px,env(safe-area-inset-left,0px));padding-bottom:6px}
.bracket{display:flex;gap:22px;min-width:min-content}
.round{display:flex;flex-direction:column;width:170px;flex:none}
.round h4{font-family:var(--f-mono);font-weight:400;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}
.round .ms{flex:1;display:flex;flex-direction:column;justify-content:space-around;gap:14px}
.match{position:relative;border:1px solid var(--line);border-radius:var(--r);background:var(--ink-2)}
.match.live{border-color:var(--blood);box-shadow:0 0 0 1px var(--blood)}
.round:not(:last-child) .match::after{content:"";position:absolute;right:-23px;top:50%;width:22px;border-top:1px solid var(--line)}
.pl{display:flex;justify-content:space-between;align-items:center;gap:6px;width:100%;padding:8px 10px;font-size:14px;text-align:left;min-height:36px}
.pl + .pl{border-top:1px solid var(--line)}
.pl.w{color:var(--yellow);font-weight:600}
.pl.l{color:var(--muted);text-decoration:line-through;text-decoration-color:rgba(166,156,137,.5)}
.pl.tbd{color:var(--muted);font-style:italic}
.pl.me:not(.l){background:rgba(243,193,27,.08)}
button.pl:hover{background:var(--ink-3)}
.match .tag{position:absolute;top:-9px;right:8px;background:var(--blood);color:#fff;font-size:9px;letter-spacing:.12em;padding:2px 6px;border-radius:2px;text-transform:uppercase;font-weight:600}
.champ{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px solid var(--yellow);border-radius:var(--r);padding:14px 10px;text-align:center}
.champ .k{font-family:var(--f-mono);font-size:10px;letter-spacing:.2em;color:var(--muted);text-transform:uppercase}
.champ .nm{font-family:var(--f-display);font-weight:700;font-size:20px;color:var(--yellow);text-transform:uppercase}
.vs{font-family:var(--f-display);font-weight:600;font-size:12px;text-transform:uppercase;color:var(--blood);padding:0 6px}
.seg{display:flex;border-bottom:1px solid var(--line);gap:20px}
.seg button{padding:10px 0;color:var(--muted);font-family:var(--f-display);text-transform:uppercase;letter-spacing:.08em;font-size:14px;border-bottom:2px solid transparent;margin-bottom:-1px}
.seg button[aria-pressed="true"]{color:var(--paper);border-color:var(--blood)}

/* ---------- награды ---------- */
.earn{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.earn div{background:var(--ink-2);padding:12px 10px;display:flex;flex-direction:column;gap:2px}
.earn b{font-family:var(--f-display);font-weight:600;color:var(--yellow);font-size:18px}
.earn span{font-size:12px;color:var(--muted);line-height:1.3}
.rewards{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.rw{display:flex;flex-direction:column;gap:8px;background:var(--ink-2);border:1px solid var(--line);border-radius:var(--r);padding:14px;min-width:0}
.rw .cost{font-family:var(--f-mono);font-size:13px;color:var(--yellow)}
.rw .nm{font-family:var(--f-display);font-weight:600;font-size:18px;text-transform:uppercase;line-height:1.1;text-wrap:balance}
.rw .ds{font-size:13px;color:var(--muted);flex:1}
.rw .need{font-size:12px;color:var(--muted)}
.rw .bar{background:var(--line)}
.rw .bar > i{background:var(--yellow)}
.rw.ok{border-color:#5a4a16}
.balance-strip{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;border-radius:var(--r);background:var(--yellow);color:var(--on-yellow)}
.balance-strip b{font-family:var(--f-display);font-weight:700;font-size:30px;line-height:1;font-variant-numeric:tabular-nums}

/* ---------- билет-купон ---------- */
.ticket{position:relative;background:var(--paper);color:var(--on-yellow);border-radius:6px;padding:22px 20px;display:flex;flex-direction:column;gap:10px;text-align:center}
.ticket::before,.ticket::after{content:"";position:absolute;top:58%;width:22px;height:22px;border-radius:50%;background:var(--ink-2)}
.ticket::before{left:-11px}.ticket::after{right:-11px}
.ticket .perf{border-top:2px dashed rgba(22,18,10,.3);margin:6px -8px}
.ticket .k{font-family:var(--f-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;opacity:.7}
.ticket .ttl{font-family:var(--f-display);font-weight:700;font-size:26px;text-transform:uppercase;line-height:1.05}
.ticket .code{font-family:var(--f-mono);font-size:34px;letter-spacing:.12em}

/* ---------- профиль ---------- */
.ladder{display:flex;flex-direction:column}
.step{display:grid;grid-template-columns:22px 1fr auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.step:last-child{border-bottom:0}
.step .dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--line);justify-self:center}
.step.done .dot{background:var(--muted);border-color:var(--muted)}
.step.cur .dot{background:var(--yellow);border-color:var(--yellow);box-shadow:0 0 0 4px rgba(243,193,27,.18)}
.step .nm{font-family:var(--f-display);font-weight:600;text-transform:uppercase;font-size:16px}
.step.cur .nm{color:var(--yellow)}
.step .rq{font-size:12px;color:var(--muted)}
.step .cb{font-family:var(--f-mono);font-size:13px}
.delta{font-family:var(--f-mono);font-size:14px;white-space:nowrap}
.delta.plus{color:var(--ok)}
.delta.minus{color:var(--blood)}
.code-box{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px dashed var(--muted);border-radius:var(--r);padding:12px 14px}
.code-box .mono{font-size:20px;letter-spacing:.1em;user-select:all}

/* ---------- админка ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.stats div{background:var(--ink-2);padding:12px 10px;display:flex;flex-direction:column;gap:2px;min-width:0}
.stats b{font-family:var(--f-display);font-weight:600;font-size:24px;line-height:1.1;font-variant-numeric:tabular-nums}
.stats span{font-size:11px;color:var(--muted);line-height:1.25}
.guest-pick{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.guest-pick button{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;text-align:left;border-bottom:1px solid var(--line);font-size:14px}
.guest-pick button:last-child{border-bottom:0}
.guest-pick button:hover{background:var(--ink-3)}
.guest-pick button[aria-pressed="true"]{background:rgba(243,193,27,.12);color:var(--yellow)}
.preview{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px;border-radius:var(--r);background:var(--ink);border:1px solid var(--line)}
.preview b{font-family:var(--f-display);font-size:24px;color:var(--yellow);font-variant-numeric:tabular-nums}
.hint{font-size:12px;color:var(--muted)}
details.panel summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}
details.panel summary::-webkit-details-marker{display:none}
details.panel summary::after{content:"+";font-family:var(--f-display);font-size:22px;color:var(--yellow)}
details.panel[open] summary::after{content:"−"}
details.panel[open] summary{margin-bottom:14px}
.tbl-scroll{overflow-x:auto}
table.tbl{width:100%;border-collapse:collapse;font-size:14px;min-width:460px}
.tbl th{text-align:left;font-weight:500;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:8px 8px 8px 0;border-bottom:1px solid var(--line)}
.tbl td{padding:10px 8px 10px 0;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
.tbl td.r,.tbl th.r{text-align:right}
.optrow{display:flex;align-items:center;gap:10px}
.optrow input[type=radio]{accent-color:var(--yellow);width:18px;height:18px;flex:none}

/* ---------- нижнее меню ---------- */
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--ink-2);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}
.tabbar-in{max-width:560px;margin:0 auto;display:grid;grid-template-columns:repeat(5,1fr)}
.tab{display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 2px 8px;color:var(--muted);font-size:11px;position:relative}
.tab svg{width:23px;height:23px}
.tab[aria-current="page"]{color:var(--yellow)}
.tab[aria-current="page"]::before{content:"";position:absolute;top:-1px;left:25%;right:25%;height:3px;background:var(--blood)}
.tab .badge{position:absolute;top:6px;left:calc(50% + 8px);width:8px;height:8px;border-radius:50%;background:var(--blood)}
svg.i{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* ---------- шторка и тост ---------- */
.scrim{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.65);display:flex;align-items:flex-end;justify-content:center;animation:fade .18s ease}
.sheet{width:100%;max-width:560px;max-height:88vh;overflow:auto;background:var(--ink-2);border-top:1px solid var(--line);border-radius:12px 12px 0 0;padding:20px max(16px,env(safe-area-inset-right,0px)) calc(24px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));display:flex;flex-direction:column;gap:16px;animation:up .22s ease}
.sheet-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.x{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line)}
@keyframes up{from{transform:translateY(30px);opacity:.4}}
@keyframes fade{from{opacity:0}}
.toast{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:80;background:var(--paper);color:var(--ink);padding:12px 16px;border-radius:var(--r);font-weight:500;font-size:14px;max-width:min(92vw,520px);box-shadow:0 10px 30px rgba(0,0,0,.5);animation:up .2s ease}
.qr-wrap{background:var(--paper);border-radius:6px;padding:18px;display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--on-yellow)}
.qr-wrap canvas{width:200px;height:200px;image-rendering:pixelated}

/* ---------- вход ---------- */
.login{min-height:100vh;display:flex;flex-direction:column;justify-content:center;gap:28px;padding-block:40px}
.login .poster{display:flex;flex-direction:column;gap:6px}
.login .big{font-family:var(--f-display);font-weight:700;text-transform:uppercase;font-size:clamp(56px,17vw,92px);line-height:.85;letter-spacing:-.01em}
.login .big em{font-style:normal;color:var(--blood);display:block}
.login .tag{font-size:17px;color:#D8CDB4;max-width:30ch;border-left:3px solid var(--blood);padding-left:12px}
.empty{padding:22px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:var(--r);font-size:14px}

/* ---------- акции, афиша, меню, зал славы ---------- */
.promo{display:flex;flex-direction:column;gap:8px;text-align:left;width:100%;background:var(--ink-2);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.promo .top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.promo .when{font-family:var(--f-mono);font-size:12px;color:var(--yellow);letter-spacing:.04em}
.promo h3{font-family:var(--f-display);font-weight:600;font-size:21px;text-transform:uppercase;margin:0;line-height:1.1;text-wrap:balance}
.promo p{color:#D8CDB4;font-size:14px;max-width:60ch}
.promo.today{border-color:var(--yellow-2);background:linear-gradient(180deg,rgba(243,193,27,.09),transparent 65%),var(--ink-2)}
.promo .prize{font-size:13px;color:var(--paper)}
.week{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.day{display:grid;grid-template-columns:56px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);align-items:start}
.day .d{display:flex;flex-direction:column;line-height:1.15}
.day .d b{font-family:var(--f-display);font-weight:600;font-size:20px;text-transform:uppercase}
.day .d span{font-family:var(--f-mono);font-size:11px;color:var(--muted)}
.day.now{background:linear-gradient(90deg,rgba(243,193,27,.07),transparent)}
.day.now .d b{color:var(--yellow)}
.day .evs{display:flex;flex-direction:column;gap:6px;min-width:0}
.ev{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.ev .nm{font-weight:500;min-width:0}
.ev .tm{font-family:var(--f-mono);font-size:13px;color:var(--muted);white-space:nowrap}
.ev.t .nm{color:var(--yellow)}
.dish{display:grid;grid-template-columns:1fr auto;gap:4px 14px;padding:14px 0;border-bottom:1px solid var(--line);align-items:baseline}
.dish:last-child{border-bottom:0}
.dish .nm{font-family:var(--f-display);font-weight:600;font-size:18px;text-transform:uppercase;line-height:1.15;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;min-width:0}
.dish .pr{font-family:var(--f-display);font-weight:600;font-size:19px;color:var(--yellow);white-space:nowrap;font-variant-numeric:tabular-nums}
.dish .ds{grid-column:1/-1;font-size:14px;color:#D8CDB4;max-width:60ch}
.dish .tags{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.dish.out{opacity:.45}
.tagx{font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:2px;padding:1px 6px}
.sig{font-family:var(--f-display);font-weight:500;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--blood);border:1px solid var(--blood);border-radius:2px;padding:1px 6px}
.medal{font-family:var(--f-display);font-weight:700;width:30px;font-size:18px;color:var(--muted);font-variant-numeric:tabular-nums}
.medal.top{color:var(--yellow)}
.daypick{display:flex;gap:6px;flex-wrap:wrap}
.daypick label{display:flex;align-items:center;gap:4px;font-size:13px;border:1px solid var(--line);border-radius:var(--r);padding:6px 8px;cursor:pointer}
.daypick input{accent-color:var(--yellow)}
.check{display:flex;align-items:center;gap:8px;font-size:14px}
.check input{accent-color:var(--yellow);width:18px;height:18px}

/* ---------- стойка, сканер, вход ---------- */
.btn-scan{min-height:64px;font-size:18px;width:100%}
.scan{position:relative;width:100%;max-width:280px;aspect-ratio:1;margin:0 auto;background:radial-gradient(circle at 50% 45%,#2a2420,#000 75%);border-radius:8px;overflow:hidden}
.scan i{position:absolute;width:38px;height:38px;border:3px solid var(--yellow)}
.scan .c1{top:10%;left:10%;border-right:0;border-bottom:0}
.scan .c2{top:10%;right:10%;border-left:0;border-bottom:0}
.scan .c3{bottom:10%;left:10%;border-right:0;border-top:0}
.scan .c4{bottom:10%;right:10%;border-left:0;border-top:0}
.scan .ln{position:absolute;left:12%;right:12%;height:2px;background:var(--blood);box-shadow:0 0 14px var(--blood);animation:scanln 1.8s ease-in-out infinite alternate}
@keyframes scanln{from{top:14%}to{top:86%}}
.counter{display:flex;flex-direction:column;gap:16px;border-color:var(--blood);border-top-width:3px}
.counter-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.counter-head .nm{font-family:var(--f-display);font-weight:700;font-size:26px;text-transform:uppercase;line-height:1}
.block{display:flex;flex-direction:column;gap:10px;padding-top:14px;border-top:1px solid var(--line)}
.block h3{margin:0;font-family:var(--f-mono);font-weight:400;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.calc{display:flex;flex-direction:column;gap:4px;font-size:14px}
.calc div{display:flex;justify-content:space-between;gap:12px}
.calc .sum{border-top:1px dashed var(--line);padding-top:6px;font-weight:600}
.calc .sum b{font-family:var(--f-display);font-size:20px;color:var(--yellow)}
.flags{display:flex;gap:6px;flex-wrap:wrap}
.pill-red{background:var(--blood);color:#fff}
.pill-ok{border:1px solid var(--ok);color:var(--ok)}
.pill-warn{border:1px solid var(--yellow);color:var(--yellow)}
.qr-timer{font-family:var(--f-mono);font-size:12px;opacity:.75}
.what-for{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;padding:12px;border:1px solid var(--blood);border-radius:var(--r)}
.what-for .k{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--blood)}
.what-for .ttl{font-family:var(--f-display);font-weight:700;font-size:22px;text-transform:uppercase;line-height:1.1}
.btn-tg{background:#2AABEE;color:#fff}
.btn-tg:hover{background:#3db5f0}
.tg-sheet{display:flex;flex-direction:column;gap:14px;align-items:center;text-align:center}
.tg-ava{width:64px;height:64px;border-radius:50%;background:var(--yellow);color:var(--on-yellow);display:grid;place-items:center;font-family:var(--f-display);font-weight:700;font-size:22px}
.err{color:var(--blood);font-size:13px}
.logi{display:grid;grid-template-columns:auto 1fr auto;gap:2px 12px;padding:10px 0;border-bottom:1px solid var(--line);align-items:baseline}
.logi .tm{font-family:var(--f-mono);font-size:12px;color:var(--muted);white-space:nowrap}
.logi .what{min-width:0}
.logi .who{grid-column:2/-1;font-size:12px;color:var(--muted)}
.link-btn{color:var(--yellow);text-decoration:underline;text-underline-offset:2px;font:inherit}
.doc-text{display:flex;flex-direction:column;gap:10px;font-size:14px;line-height:1.55}
.doc-text h3{font-family:var(--f-display);font-weight:600;text-transform:uppercase;font-size:16px;letter-spacing:.03em;margin:8px 0 0}
.check{align-items:flex-start}
.check input{margin-top:2px;flex:none}
.note{font-size:13px;color:#D8CDB4;border-left:3px solid var(--blood);padding:6px 0 6px 12px}

@media (min-width:600px){
  .rewards{grid-template-columns:1fr 1fr 1fr}
}
@media (max-width:380px){
  .stats{grid-template-columns:1fr 1fr}
  .duo{grid-template-columns:1fr}
  .cg-bal .n{font-size:54px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}

/* База без обёртки артефакта: страница открывается внутри Telegram. */
html{-webkit-text-size-adjust:100%}
body{margin:0}
[hidden]{display:none!important}
img{max-width:100%}
.boot{min-height:70vh;display:grid;place-items:center;color:var(--muted)}
.btn-block + .hint{margin-top:-6px}

/* Пустая дата в Safari/Telegram на Mac показывает сегодняшнее число серым — делаем это явно подсказкой. */
input[type=date].inp:invalid{color:var(--muted)}
