/* Шрифт вывесок магазина — со своего сервера (лицензия SIL OFL 1.1, текст
   лежит рядом). Раньше грузился с Google, и без сети цифры и вывески
   падали на обычный шрифт. Нужны только латиница и цифры. */
@font-face{font-family:'Cherry Bomb One';font-style:normal;font-weight:400;font-display:swap;src:url('/frontend/fonts/cherry-bomb-one-latin.woff2?v=1') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
.omori-name,.omori-color-sample{color:#fff;--omori-ink:#fff;--omori-gradient:none}
.omori-color-white{--omori-ink:#fff}.omori-color-rose{--omori-ink:#f4aac6}.omori-color-peach{--omori-ink:#ffc39e}.omori-color-amber{--omori-ink:#f3d27c}.omori-color-mint{--omori-ink:#8ee0c2}.omori-color-sky{--omori-ink:#91cfff}.omori-color-iris{--omori-ink:#b9b2ff}.omori-color-lilac{--omori-ink:#d9b1f2}.omori-color-silver{--omori-ink:#cbd5e1}
.omori-color-dawn{--omori-ink:#ffc4b5;--omori-gradient:linear-gradient(110deg,#ffcf9f,#f5acc9)}
.omori-color-lagoon{--omori-ink:#9fdfdb;--omori-gradient:linear-gradient(110deg,#91ddc1,#9bc9fa)}
.omori-color-dusk{--omori-ink:#c3b9fa;--omori-gradient:linear-gradient(110deg,#aebcfa,#dfb4e5)}
.omori-color-aurora{--omori-ink:#abe4d7;--omori-gradient:linear-gradient(110deg,#98e5c2,#9ed2fc,#cfb5ff,#98e5c2)}
.omori-color-pearl{--omori-ink:#eedbed;--omori-gradient:linear-gradient(110deg,#fff1dc,#e3c5f4,#c4e5fa,#fff1dc)}
.omori-color-biter{--omori-ink:#dbfaef}.omori-color-snow{--omori-ink:#d4edff;--omori-gradient:linear-gradient(110deg,#f5fbff,#b8dfff,#f5fbff)}
.omori-name{display:inline-block;max-width:100%;vertical-align:bottom;line-height:inherit;color:var(--omori-ink)!important;text-shadow:none}
.omori-name-text,.omori-color-sample{color:var(--omori-ink);background-image:var(--omori-gradient);background-size:100% 100%}
@supports ((background-clip:text) or (-webkit-background-clip:text)){
 .omori-name-text,.omori-color-sample{background-color:var(--omori-ink);background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
}
.omori-name-profile.omori-color-aurora .omori-name-text,.omori-name-profile.omori-color-pearl .omori-name-text{background-size:220% 100%;animation:omori-flow 9s ease-in-out infinite alternate}


@keyframes omori-flow{from{background-position:0% 50%}to{background-position:100% 50%}}

.omori-status{display:inline-flex;align-items:center;vertical-align:middle;max-width:100%;padding:3px 8px;margin-left:7px;border:1px solid rgba(197,209,224,.12);border-radius:9px;background:rgba(184,198,218,.07);font-size:12px;font-weight:400;line-height:1.5;color:#c6ccd5;white-space:nowrap;transform-origin:18% 70%;overflow:hidden;text-overflow:ellipsis}
.omori-status[hidden]{display:none!important}
.chat-item__name{min-width:0;gap:0;flex-wrap:wrap}.chat-item__name>.omori-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-item__name .omori-status{margin:2px 0 0 6px}
/* OMORI shares the messenger's theme; only color samples use a fixed dark surface. */
.omori-profile-controls{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin:12px 0 4px}
.omori-profile-controls button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:7px 12px;border:1px solid var(--border-primary,#2a3744);border-radius:10px;background:var(--bg-secondary,#18222d);color:var(--text-secondary,#8e99a4);font:inherit;font-size:14px;line-height:1.4;cursor:pointer}
.omori-profile-controls button:hover{background:var(--bg-hover,#2a3744);color:var(--text-primary,#fff)}
.profile-card__info>.omori-profile-controls{justify-content:flex-start;margin:8px 0 0;gap:6px}
.omori-profile-color-row{width:100%;border:0;background:transparent;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer}
.omori-profile-color-row .info-list-item-grouped__value{white-space:normal}
.omori-profile-color-row:focus-visible,[data-action="open-omori-inventory"]:focus-visible{outline:2px solid var(--text-accent,#0088cc);outline-offset:-3px}
.omori-profile-controls button:focus-visible{outline:2px solid var(--text-accent,#0088cc);outline-offset:3px}
.omori-dialog{--omori-surface:var(--bg-secondary,#18222d);--omori-soft:var(--bg-tertiary,#222e3a);--omori-border:var(--border-primary,#2a3744);--omori-text:var(--text-primary,#fff);--omori-muted:var(--text-secondary,#9caab5);--omori-accent:var(--text-accent,#0088cc);box-sizing:border-box;width:100vw;height:100vh;max-width:none;max-height:none;margin:0;padding:0;border:none;border-radius:0;background-color:#18222d;background-image:linear-gradient(var(--omori-surface),var(--omori-surface));color:var(--omori-text);font-family:var(--font-main,inherit);font-size:16px;line-height:1.5;overflow:hidden;color-scheme:dark;box-shadow:0 24px 80px #0003}
body.theme-light .omori-dialog{background-color:#fff;color-scheme:light}
.omori-dialog--inventory { width: 100vw; height: 100vh; }
.omori-dialog::backdrop{background:#080e1680;backdrop-filter:blur(5px)}
.omori-dialog *{box-sizing:border-box}
.omori-dialog [hidden]{display:none!important}
.omori-dialog-shell{display:flex;flex-direction:column;height:100vh;max-height:none}
.omori-dialog button{font:inherit;cursor:pointer;line-height:1.4;-webkit-tap-highlight-color:transparent}
.omori-dialog button:disabled{cursor:default;opacity:.5}
.omori-dialog button:focus-visible,.omori-dialog input:focus-visible{outline:2px solid var(--omori-accent);outline-offset:3px}
.omori-dialog svg{width:20px;height:20px;flex-shrink:0}
.omori-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 24px 18px;flex-shrink:0}
.omori-eyebrow{display:block;color:var(--omori-muted);font-size:12px;line-height:1.5;letter-spacing:.05em;margin-bottom:4px}
.omori-dialog-header h2{font-size:24px;font-weight:650;line-height:1.3;letter-spacing:-.025em;margin:0;overflow-wrap:anywhere}
.omori-close{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:40px;height:40px;padding:0;border:1px solid var(--omori-border);border-radius:50%;background:transparent;color:var(--omori-muted)}
.omori-close:hover{background:var(--omori-soft);color:var(--omori-text)}
.omori-dialog-body{min-height:0;padding:0 24px 20px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--omori-border) transparent}
.omori-loading{padding:36px 0 48px;text-align:center;color:var(--omori-muted)}
.omori-dialog h3{font-size:16px;line-height:1.5;font-weight:600;margin:0 0 8px}
.omori-primary,.omori-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:11px 18px;border:1px solid transparent;border-radius:12px;font-size:14px!important;font-weight:600!important;text-align:center}
.omori-primary{background:var(--omori-accent);color:#fff}
.omori-primary:hover:enabled{filter:brightness(1.12)}
.omori-secondary{border-color:var(--omori-border);color:var(--omori-text);background:var(--omori-soft)}
.omori-text-button{padding:6px 0;border:0;background:transparent;color:var(--omori-accent);font-size:14px!important;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px}
.omori-text-button:hover{text-decoration-color:currentColor}
.omori-fine{font-size:13px;line-height:1.6;color:var(--omori-muted);margin:14px 0 0}
.omori-muted{color:var(--omori-muted)}
.omori-feedback{font-size:14px;line-height:1.5;color:var(--omori-text);margin:10px 0 0;overflow-wrap:anywhere}
.omori-feedback:empty{display:none}
.omori-feedback.is-error{color:var(--text-danger,#ff8c8c)}
/* ── Подписка OMORI — в языке магазина билетов ──────────────────────────
   Те же цвета, линии и шрифт, что у покупки тикетов у Юри: плоско, без теней,
   свечения и звёзд. Одна колонка, как чек у кассы: сверху парит 3D-билет,
   под ним вывеска, билет с ценой, что входит и «чек» с одной кнопкой.
   Окно светлое при любой теме — как и магазин, из которого оно открывается. */
.omori-dialog--premium{--omx-ink:#4d67a6;--omx-muted:#8193bd;--omx-soft:#9eadd0;--omx-faint:#a8b5d3;--omx-line:#bccdef;--omx-line-hover:#93ade7;--omx-perf:#cddaf3;--omx-accent:#6f8fdc;--omx-accent-hover:#6284d6;--omx-selected:#eef4ff;
  --omori-accent:var(--omx-accent);background:#fff url('/frontend/store/paws.webp?v=1') 0 0/200px;color:#333;color-scheme:light;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif}
body.theme-light .omori-dialog--premium{background:#fff url('/frontend/store/paws.webp?v=1') 0 0/200px}
/* Шапка — только кнопка закрытия: вывеска OMORI живёт под билетом. Заголовок
   окна остаётся для экранных читалок. */
.omori-dialog--premium .omori-dialog-header{position:absolute;top:0;right:0;z-index:2;padding:20px 24px}
.omori-dialog--premium .omori-dialog-header>div{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.omori-dialog--premium .omori-close{display:flex;align-items:center;justify-content:center;width:42px;height:42px;padding:0;border:2px solid var(--omx-line);border-radius:50%;background:#fff;color:var(--omx-ink);transition:border-color .18s ease}
.omori-dialog--premium .omori-close:hover{border-color:var(--omx-line-hover)}
/* Кольцо фокуса — мягкое, в цвет линий: крестик получает фокус сразу при
   открытии окна, и яркая рамка выглядела как второй обвод. */
.omori-dialog--premium button:focus-visible,.omx-stage:focus-visible{outline:2px solid var(--omx-perf);outline-offset:2px}
.omori-dialog--premium .omori-close:focus-visible{outline:none;border-color:var(--omx-accent)}
.omori-dialog--premium .omori-dialog-body{overflow-x:hidden;padding:56px 20px 48px;scrollbar-color:var(--omx-line) transparent}
.omori-dialog--premium .omori-loading{color:var(--omx-muted);text-align:center;padding-top:30vh}
.omori-dialog--premium .omori-feedback{color:var(--omx-ink);text-align:center}
.omori-dialog--premium .omori-feedback.is-error{color:#d0506f}

.omx{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:14px}

/* Витрина: билет парит прямо на фоне с лапками, как на вывеске ларька. */
.omx-hero{display:flex;flex-direction:column;align-items:center;margin-bottom:6px}
.omx-stage{--omx-bleed-x:110px;--omx-bleed-y:100px;position:relative;z-index:1;width:100%;height:280px;display:flex;align-items:center;justify-content:center;touch-action:pan-y;user-select:none;-webkit-user-select:none;outline:none;border-radius:24px}
.omx-stage.is-3d{cursor:grab}
.omx-stage.is-dragging{cursor:grabbing}
.omx-stage-img{width:min(86%,440px);height:auto;animation:omx-float 6s ease-in-out infinite;transition:opacity .35s ease;pointer-events:none}
.omx-stage.is-3d .omx-stage-img{opacity:0}
/* Холст шире и выше сцены на «поля»: наклонённый билет не обрезается углами.
   Он прозрачный и не ловит нажатия — крутят билет за саму сцену. */
.omori-ticket3d-canvas{position:absolute;top:calc(-1 * var(--omx-bleed-y));bottom:calc(-1 * var(--omx-bleed-y));left:calc(-1 * var(--omx-bleed-x));right:calc(-1 * var(--omx-bleed-x));width:calc(100% + 2 * var(--omx-bleed-x))!important;height:calc(100% + 2 * var(--omx-bleed-y))!important;opacity:0;transition:opacity .35s ease;pointer-events:none}
.omx-stage.is-3d .omori-ticket3d-canvas{opacity:1}
@keyframes omx-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.omx-title{margin:14px 0 0;font-family:'Cherry Bomb One','Helvetica Neue',Arial,sans-serif;font-size:56px;line-height:1;letter-spacing:1px;color:var(--omx-ink)}
.omx-subtitle{margin:8px 0 0;font-size:15px;font-weight:700;color:var(--omx-muted)}

/* Билет с ценой — копия билета из магазина, только не кнопка. */
.omx-ticket{position:relative;display:flex;align-items:stretch;min-height:100px;background:#fff;border:2px solid var(--omx-line);border-radius:18px;overflow:hidden;color:var(--omx-ink)}
.omx-ticket::before,.omx-ticket::after{content:"";position:absolute;top:50%;width:22px;height:22px;margin-top:-11px;box-sizing:border-box;background:#fff;border:2px solid var(--omx-line);border-radius:50%;pointer-events:none}
.omx-ticket::before{left:-13px}
.omx-ticket::after{right:-13px}
.omx-main{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;padding:14px 16px 14px 28px}
.omx-amount-row{display:flex;align-items:baseline;gap:8px}
.omx-amount{font-family:'Cherry Bomb One',cursive;font-size:36px;line-height:1;letter-spacing:.5px;color:var(--omx-ink)}
.omx-unit{font-size:15px;font-weight:700;color:var(--omx-muted)}
.omx-name{margin-top:8px;font-size:13px;font-weight:600;color:var(--omx-soft);line-height:1.4}
.omx-perf{flex:none;width:0;margin:14px 0;border-left:2px dashed var(--omx-perf)}
.omx-stub{flex:none;width:118px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding-right:10px}
.omx-price{font-family:'Cherry Bomb One',cursive;font-size:32px;line-height:1;color:var(--omx-ink)}
.omx-price-unit{font-size:12.5px;font-weight:700;color:var(--omx-muted)}

/* Что входит — одна карточка, разделённая «линией отрыва». */
.omx-perks{background:#fff;border:2px solid var(--omx-line);border-radius:18px;padding:2px 20px}
.omx-perk{padding:16px 0}
.omx-perk+.omx-perk{border-top:2px dashed var(--omx-perf)}
.omx-perk-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.omx-perk h4{margin:0;font-size:16px;font-weight:800;color:var(--omx-ink)}
.omx-perk p{margin:4px 0 0;font-size:13.5px;line-height:1.5;font-weight:600;color:var(--omx-soft)}
.omx-tag{font-size:12px;font-weight:800;padding:3px 9px;border-radius:999px;background:var(--omx-selected);color:var(--omx-ink)}
.omx-tag:empty{display:none}
.omx-tag--soon{color:var(--omx-soft)}
.omx-perk--soon h4{color:var(--omx-soft)}

/* Цвета подписки — пастельные кружки, градиенты залиты градиентом.
   Подпись видна при наведении и экранным читалкам. */
.omx-dots{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.omx-dots:empty{display:none}
.omx-dot{position:relative;width:28px;height:28px;border-radius:50%;background:var(--omori-ink);background-image:var(--omori-gradient,none);box-shadow:inset 0 0 0 2px rgba(255,255,255,.55),0 0 0 2px var(--omx-selected)}
.omx-dot-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Чек: баланс и одно действие — как «Купить за $20» в магазине. */
.omx-receipt{display:flex;align-items:center;gap:14px;padding:12px 12px 12px 20px;background:#fff;border:2px dashed var(--omx-perf);border-radius:18px}
.omx-summary{flex:1;min-width:0;font-size:15px;font-weight:700;color:var(--omx-ink);line-height:1.4}
.omx-summary.muted{color:var(--omx-muted);font-weight:700}
.omori-dialog .omx-buy{flex:none;border:0;border-radius:14px;padding:13px 22px;margin:0;background:var(--omx-accent);color:#fff;font-size:16px;font-weight:800;line-height:1.2;transition:background-color .18s ease,transform .18s ease}
.omori-dialog .omx-buy:hover:not(:disabled){background:var(--omx-accent-hover);transform:translateY(-1px)}
.omori-dialog .omx-buy:disabled{opacity:1;background:#dfe7f8;color:#9fb0d4}
.omori-dialog .omx-buy[aria-busy="true"]{background:#93ace7;color:#fff;cursor:progress}
.omx-note{margin:0;text-align:center;font-size:12.5px;color:var(--omx-faint)}
.omori-dialog .omx-link{align-self:center;display:inline-flex;align-items:center;gap:6px;margin:0;padding:8px 12px;border:0;border-radius:12px;background:transparent;color:var(--omx-ink);font-size:14px;font-weight:700}
.omori-dialog .omx-link:hover{background:var(--omx-selected)}
.omx-link svg{width:16px;height:16px;color:var(--omx-muted)}

@media (max-width:520px){
  .omori-dialog--premium .omori-dialog-header{padding:12px 12px}
  .omori-dialog--premium .omori-dialog-body{padding:64px 16px 32px}
  .omx-stage{height:210px;--omx-bleed-x:40px;--omx-bleed-y:80px}
  .omx-title{font-size:46px;margin-top:10px}
  .omx-amount{font-size:32px}
  .omx-stub{width:96px}
  .omx-price{font-size:26px}
  .omx-receipt{flex-direction:column;align-items:stretch;gap:10px;padding:14px}
  .omx-summary{text-align:center}
}
@media (prefers-reduced-motion:reduce){
  .omx-stage-img{animation:none}
  .omori-dialog .omx-buy{transition:none}
  .omori-dialog .omx-buy:hover:not(:disabled){transform:none}
}
/* Preview and actions stay in place while the collection scrolls. */
.omori-dialog--inventory .omori-dialog-body{display:flex;flex-direction:column;padding:0;overflow-y:auto}
.omori-inventory-top{padding:0 24px;flex-shrink:0}
.omori-preview{padding:18px 16px;text-align:center;border:1px solid #ffffff14;border-radius:16px;background:#202b35;color:#fff}
.omori-preview .omori-preview-caption{color:#b2c1cc}
.omori-preview .omori-preview-name{margin:6px 0}
.omori-preview-detail{display:block;font-size:12px;line-height:1.5;color:#b2c1cc}
.omori-tabs{display:flex;gap:20px;border-bottom:1px solid var(--omori-border);margin-top:12px}
.omori-tabs button{display:flex;align-items:center;justify-content:center;gap:8px;position:relative;padding:13px 0;border:0;background:transparent;font-size:14px;color:var(--omori-muted)}
.omori-tabs button[aria-pressed=true]{color:var(--omori-text)}
.omori-tabs button[aria-pressed=true]::after{content:'';position:absolute;height:2px;bottom:-1px;left:0;right:0;background:var(--omori-accent);border-radius:2px}
.omori-owned-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;border-radius:6px;background:var(--omori-soft);font-size:12px;color:var(--omori-muted)}
.omori-inventory-scroll{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;min-height:100px;padding:16px 24px 20px}
.omori-collection-note{font-size:13px;color:var(--omori-muted);line-height:1.5;margin-bottom:16px}
.omori-color-group{margin-bottom:20px}
.omori-color-group h3{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px;font-size:14px;margin:0 0 10px}
.omori-color-group h3>span{font-size:12px;font-weight:400;color:var(--omori-muted)}
.omori-swatches{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.omori-swatch{min-width:0;display:flex;flex-direction:column;gap:5px;text-align:left;padding:7px 7px 10px;position:relative;border:1px solid rgba(255,255,255,0.08);border-radius:16px;background:rgba(255,255,255,0.02);color:var(--omori-text);transition:all .2s ease}
.omori-swatch:hover{background:rgba(255,255,255,0.06);transform:translateY(-2px);border-color:rgba(255,255,255,0.2)}
.omori-swatch[aria-pressed=true]{border-color:var(--omori-accent);box-shadow:0 0 20px rgba(0,136,204,0.15);background:rgba(0,136,204,0.05)}
.omori-swatch[aria-pressed=true]::after{content:'';position:absolute;inset:0;border:2px solid var(--omori-accent);border-radius:16px;pointer-events:none}
.omori-swatch-sample{display:flex;align-items:center;justify-content:center;width:100%;min-height:62px;padding:12px 6px;margin-bottom:3px;background:#202b35;border-radius:8px;font-size:26px;font-weight:600;line-height:1.3}
.omori-swatch-label{font-size:14px;line-height:1.3;overflow-wrap:anywhere;padding:0 3px}
.omori-swatch small{font-size:12px;line-height:1.4;color:var(--omori-muted);padding:0 3px}
.omori-swatch .omori-name-text::before,.omori-swatch .omori-name-text::after{animation:none!important}
.omori-default-color{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;width:100%;padding:12px 14px;border:1px solid var(--omori-border);border-radius:12px;color:var(--omori-text);background:transparent;font-size:14px!important;text-align:left}
.omori-default-color span{font-size:12px;color:var(--omori-muted)}
.omori-default-color[aria-pressed=true]{border-color:var(--omori-accent)}
.omori-inventory-footer{flex-shrink:0;padding:16px 24px 20px;border-top:1px solid var(--omori-border)}
.omori-selection{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.omori-selection>div{flex:1;min-width:0}
.omori-selected-label{display:block;font-size:14px;font-weight:600;overflow-wrap:anywhere}
.omori-selected-hint{display:block;font-size:12px;line-height:1.5;color:var(--omori-muted);margin-top:3px}
.omori-balance{font-size:12px;line-height:1.5;color:var(--omori-muted)}
.omori-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.omori-save{flex:1}
.omori-own-purchase{margin-top:6px;text-align:left}
.omori-empty{padding:22px 12px 28px;text-align:center}
.omori-empty strong{font-size:16px;font-weight:600}
.omori-empty p{font-size:14px;line-height:1.6;color:var(--omori-muted);max-width:36ch;margin:8px auto 16px}
.omori-status-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.omori-status-options button{padding:12px 14px;border:1px solid var(--omori-border);border-radius:12px;background:transparent;color:var(--omori-text);font-size:14px;text-align:left}
.omori-status-options button::first-letter{text-transform:uppercase}
.omori-status-options button[aria-pressed=true]{background:var(--omori-soft);border-color:var(--omori-accent)}
.omori-auto{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px;padding-top:18px;border-top:1px solid var(--omori-border);font-size:14px;cursor:pointer}
.omori-auto small{display:block;font-size:12px;color:var(--omori-muted);line-height:1.5;margin-top:4px}
.omori-auto input{width:20px;height:20px;flex-shrink:0;accent-color:var(--omori-accent)}
.omori-description{font-size:16px;line-height:1.6;color:var(--omori-muted);margin:0 0 18px}
/* A single compact, fully clickable membership card in the existing light shop. */
.omori-store-card{display:flex;align-items:center;gap:22px;width:calc(100% - 20px);margin:0 10px 24px;padding:22px 24px;border:none;border-radius:24px;background:#ffffff;box-shadow:0 10px 30px rgba(132,165,244,0.15);color:#2d3748;text-align:left;font:inherit;line-height:1.5;cursor:pointer;transition:transform .25s ease,box-shadow .25s ease;box-sizing:border-box;position:relative;overflow:hidden}
.omori-store-card::before{content:"";position:absolute;top:0;left:0;width:100%;height:4px;background:linear-gradient(90deg,#96a8f9,#d18ce0,#ffb8d0);opacity:0;transition:opacity .25s ease}
.omori-store-card:hover{transform:translateY(-3px);box-shadow:0 15px 40px rgba(132,165,244,0.25)}
.omori-store-card:hover::before{opacity:1}
.omori-store-card:focus-visible{outline:2px solid #84a5f4;outline-offset:4px}
.omori-store-brand{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;padding-right:24px;border-right:1px solid rgba(0,0,0,0.05);font-size:32px;letter-spacing:-.065em;font-weight:700;line-height:1;background:linear-gradient(135deg,#7e9af0,#b976d8);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.omori-store-brand>span{font-size:10px;letter-spacing:.1em;margin-top:6px;font-weight:700;background:#f0f3ff;color:#7e9af0;padding:4px 10px;border-radius:12px;text-transform:uppercase;-webkit-text-fill-color:#7e9af0}
.omori-store-copy{display:flex;flex:1;flex-direction:column;min-width:0;gap:4px}
.omori-store-title{font-size:18px;font-weight:700;line-height:1.3;letter-spacing:0;color:#2d3748;overflow-wrap:anywhere}
.omori-store-desc{font-size:14px;color:#718096}
.omori-store-cta{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:#7e9af0;flex-shrink:0;padding:10px 16px;background:#f5f7ff;border-radius:16px;transition:background .2s}
.omori-store-card:hover .omori-store-cta{background:#e8eeff}
.omori-store-cta svg{width:18px;height:18px;transition:transform .2s}
.omori-store-card:hover .omori-store-cta svg{transform:translateX(3px)}
@media(max-width:600px){
 .omori-store-card{gap:14px;padding:18px 16px;border-radius:20px;margin-bottom:18px}
 .omori-store-brand{font-size:26px;padding-right:14px}
 .omori-store-title{font-size:14px}.omori-store-desc{font-size:13px}
 .omori-store-cta{font-size:0;gap:0}.omori-store-cta svg{width:18px;height:18px}
 .omori-dialog{width:calc(100vw - 20px);max-height:90dvh;border-radius:20px;box-shadow:none}
 .omori-dialog-shell{max-height:90dvh}
 .omori-dialog-header{padding:18px 18px 14px}.omori-dialog-header h2{font-size:22px}
 .omori-dialog-body{padding:0 18px 18px}
 .omori-inventory-top{padding:0 18px}.omori-inventory-scroll{padding:14px 18px 16px}
 .omori-inventory-footer{padding:14px 18px max(16px,env(safe-area-inset-bottom))}
 .omori-preview{padding:14px}.omori-preview-name{font-size:26px}
 .omori-swatches{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 .omori-swatch-label{font-size:14px}.omori-swatch-sample{min-height:56px;font-size:24px}
 .omori-selection{display:block}.omori-selection>.omori-balance{display:block;margin-top:4px}
 .omori-status{font-size:12px}.chat-item__name .omori-status{margin-left:0;margin-right:5px}
}
@media(max-height:650px){
 .omori-dialog--inventory .omori-dialog-body{overflow-y:auto;display:block}
 .omori-inventory-scroll{overflow:visible;min-height:0}
 .omori-preview{padding:10px}.omori-preview-name{font-size:24px}
}
@media(prefers-reduced-motion:reduce){
 .omori-name-profile .omori-name-text,.omori-status,.name-glitch::before,.name-glitch::after{animation:none!important;transition:none!important}
 .omori-store-card,.omori-swatch{transition:none}
}
@media(forced-colors:active){
 .omori-name-text,.omori-color-sample{background:none!important;color:CanvasText!important;-webkit-text-fill-color:CanvasText!important;text-shadow:none!important}
 .omori-swatch[aria-pressed=true],.omori-default-color[aria-pressed=true],.omori-status-options button[aria-pressed=true],.omori-mini-color[aria-pressed=true]{outline:2px solid Highlight}
}

/* Пузырёк статуса появляется с лёгким подъёмом.
   Состояние ПОКОЯ — видимое, и это важно: при смене статуса код отменяет
   все анимации элемента (getAnimations().cancel()), и если бы в покое
   стояло opacity:0, пузырёк после отмены просто исчезал бы навсегда.
   Поэтому никакого fill-mode и никакой задержки — только проигрывание. */
@keyframes omori-status-in{from{opacity:0;transform:translateY(6px) scale(.94)}to{opacity:1;transform:none}}
.omori-status{animation:omori-status-in 300ms cubic-bezier(.2,.7,.3,1)}
@media(prefers-reduced-motion:reduce){.omori-status{animation:none}}

/* ═══ Битер ═══════════════════════════════════════════════════════════
   Расслоение держится ВСЕГДА, рывки идут поверх. Так сделано намеренно:
   форсят скриншотами, а скриншот ловит случайный кадр — у чисто
   анимационного глитча он в большинстве случаев поймает спокойный момент,
   и на картинке эффекта не будет вовсе.
   Двойники берут текст из data-text и режутся clip-path — это и даёт
   нарезку, которой не сделать сдвигом тени на пиксель.                */
.omori-color-biter .omori-name-text{position:relative;display:inline-block;background-image:none;-webkit-text-fill-color:currentColor;color:#7ce8ff}
.omori-color-biter .omori-name-text::before,
.omori-color-biter .omori-name-text::after{
  content:attr(data-text);position:absolute;left:0;top:0;width:100%;pointer-events:none;
  -webkit-text-fill-color:currentColor}
.omori-color-biter .omori-name-text::before{color:#ff4d7a;transform:translate(-1.4px,-1px);mix-blend-mode:screen;animation:omori-biter-a 3.2s steps(1) infinite}
.omori-color-biter .omori-name-text::after{color:#3affc8;transform:translate(1.4px,1px);mix-blend-mode:screen;animation:omori-biter-b 3.2s steps(1) infinite}
@keyframes omori-biter-a{
  0%,86%{clip-path:inset(0 0 0 0);transform:translate(-1.4px,-1px)}
  88%{clip-path:inset(12% 0 62% 0);transform:translate(-6px,-1px)}
  90%{clip-path:inset(58% 0 22% 0);transform:translate(5px,1px)}
  92%{clip-path:inset(28% 0 46% 0);transform:translate(-3px,2px)}
  94%,100%{clip-path:inset(0 0 0 0);transform:translate(-1.4px,-1px)}}
@keyframes omori-biter-b{
  0%,88%{clip-path:inset(0 0 0 0);transform:translate(1.4px,1px)}
  90%{clip-path:inset(70% 0 8% 0);transform:translate(-5px,-2px)}
  92%{clip-path:inset(18% 0 58% 0);transform:translate(6px,0)}
  95%,100%{clip-path:inset(0 0 0 0);transform:translate(1.4px,1px)}}
/* В ленте сообщений имя не дёргается — двадцать анимаций сразу греют телефон */
.omori-name:not(.omori-name-profile) .omori-name-text::before,
.omori-name:not(.omori-name-profile) .omori-name-text::after{animation:none!important}
@media(prefers-reduced-motion:reduce){
  .omori-color-biter .omori-name-text::before{animation:none!important;transform:translate(-1.4px,-1px)}
  .omori-color-biter .omori-name-text::after{animation:none!important;transform:translate(1.4px,1px)}}

/* GACHA STORE LAYOUT */
.omori-inventory-grid {
    display: grid;
    grid-template-columns: 80px 1fr 1.2fr;
    gap: 16px;
    padding: 0 0 0 16px;
    height: 100%;
    overflow: hidden;
    min-height: 0;
}

.omori-inventory-nav {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 32px 0;
    align-items: center;
}
.omori-nav-item {
    background: transparent;
    border: none;
    color: var(--omori-muted);
    padding: 12px;
    border-radius: 16px;
    transition: all 0.2s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    width: 100%;
}
.omori-nav-item svg {
    width: 24px;
    height: 24px;
}
.omori-nav-item span {
    font-size: 10px;
    font-weight: 500;
    text-align: center;
    line-height: 1.1;
    opacity: 0.7;
}
.omori-nav-item:hover:not(:disabled) {
    color: var(--omori-text);
}
.omori-nav-item:hover:not(:disabled) span {
    opacity: 1;
}
.omori-nav-item[aria-pressed="true"] {
    color: var(--omori-accent);
    background: rgba(0, 136, 204, 0.1);
}
.omori-nav-item[aria-pressed="true"] span {
    color: var(--omori-accent);
    opacity: 1;
}
.omori-nav-item:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

.omori-inventory-preview-pane {
    display: flex;
    flex-direction: column;
    background: transparent;
    border: none;
    padding: 24px;
    align-items: center;
    justify-content: center;
    position: relative;
}
.omori-inventory-preview-pane::before {
    display: none;
}
.omori-preview-avatar-placeholder {
    width: 200px;
    height: 200px;
    border-radius: 50%;
    background: rgba(255,255,255,0.02);
    margin-bottom: 32px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.4);
    border: 1px solid rgba(255,255,255,0.04);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--omori-muted);
}
.omori-preview-avatar-placeholder svg {
    width: 96px;
    height: 96px;
    stroke-width: 1;
}

.omori-inventory-catalog-pane {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-height: 0;
    background: rgba(15, 20, 28, 0.6);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    border-left: 1px solid rgba(255,255,255,0.06);
    padding: 32px 32px 0 32px;
    border-top-left-radius: 32px;
}

/* Redefine scroll for the new grid */
.omori-inventory-catalog-pane .omori-inventory-scroll {
    flex: 1;
    overflow-y: auto;
    padding-right: 12px;
    margin-top: 16px;
}

@media(max-width: 960px) {
    .omori-inventory-grid {
        display: flex;
        flex-direction: column;
        padding: 0 16px 16px;
        overflow-y: auto;
    }
    .omori-inventory-nav {
        flex-direction: row;
        border-right: none;
        border-bottom: 1px solid var(--omori-border);
        padding-right: 0;
        padding-bottom: 16px;
        overflow-x: auto;
    }
    .omori-nav-item { white-space: nowrap; }
    .omori-inventory-preview-pane { min-height: 300px; flex-shrink: 0; }
    .omori-inventory-catalog-pane { overflow: visible; }
    .omori-inventory-catalog-pane .omori-inventory-scroll { overflow: visible; }
}

/* Текущая аватарка в круге вместо силуэта. Сам круг — как был. */
.omori-preview-avatar-placeholder{position:relative;overflow:hidden}
.omori-preview-avatar-placeholder img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.omori-preview-avatar-placeholder.has-photo svg{visibility:hidden}

/* Окно подписки на телефоне — во весь экран, как сам магазин билетов.
   Общее правило выше делает окна плавающей карточкой на 90% высоты, и у
   подписки кнопка оплаты уезжала под обрез. */
@media (max-width:600px){
  .omori-dialog.omori-dialog--premium{width:100vw;height:100dvh;max-width:none;max-height:none;border-radius:0}
  .omori-dialog--premium .omori-dialog-shell{height:100dvh;max-height:none}
}
