/* ============================================================
   ВИЗАРТЪ · Торговая платформа — общие стили
   Дополнение к style.css: топбар с вензелем, сургучные печати,
   смотровой лист, витрины анфилады, паспорт предмета, депеши.
   Переменные и базовые классы наследуются из style.css.
   ============================================================ */

:root {
  --brass-1: #b08c4e;
  --brass-2: #7d5c2a;
  --brass-3: #5c421c;
  --wax-free:    #C9A227;
  --wax-reserve: #3E5B4C;
  --wax-auction: #6E1B2E;
  --wax-sold:    #8A6420;
  --rail: linear-gradient(180deg, #a9853f 0%, #7c5a27 18%, #5d4319 52%, #7a5926 84%, #4a340f 100%);
}

body.pf { padding-top: 74px; }

/* ---------- Топбар платформы: всегда на месте ---------- */
.topbar--platform {
  transform: none;
  gap: 18px;
  padding: 8px 24px;
}
.topbar--platform .topbar__nav { margin-left: auto; }

/* Медальон-вензель пользователя */
.pf-user { position: relative; flex: 0 0 auto; }
.pf-user__disc {
  display: flex; align-items: center; gap: 10px;
  padding: 4px 12px 4px 4px;
  background: none; border: none; cursor: pointer;
  font-family: var(--font-serif);
  font-size: 15px; letter-spacing: .1em;
  color: var(--smoke);
  transition: color .35s var(--ease-lux);
}
.pf-user__disc:hover { color: var(--gold-hi); }
.pf-user__medallion {
  position: relative;
  width: 44px; height: 44px;
  border-radius: 50%;
  display: grid; place-items: center;
  background:
    radial-gradient(circle at 34% 28%, #a9834a, #6d5128 58%, #3d2c11);
  box-shadow:
    0 0 0 1px rgba(201,162,39,.55),
    inset 0 1px 0 rgba(255,240,200,.35),
    inset 0 -3px 7px rgba(0,0,0,.5),
    0 3px 10px rgba(0,0,0,.6);
  transition: transform .5s var(--ease-lux), box-shadow .5s var(--ease-lux);
}
.pf-user__disc:hover .pf-user__medallion,
.pf-user__disc[aria-expanded="true"] .pf-user__medallion {
  transform: rotate(15deg);
  box-shadow:
    0 0 0 1px rgba(240,211,139,.9),
    inset 0 1px 0 rgba(255,246,214,.5),
    inset 0 -3px 7px rgba(0,0,0,.45),
    0 4px 16px rgba(0,0,0,.6),
    0 0 26px rgba(201,162,39,.4);
}
.pf-user__letters {
  font-family: var(--font-display);
  font-size: 17px; letter-spacing: .04em;
  color: #f6e6bb;
  text-shadow: 0 1px 0 rgba(0,0,0,.55), 0 0 10px rgba(232,197,95,.35);
  transform: translateY(1px);
}
.pf-user__medallion img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.pf-user__caption {
  max-width: 150px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
@media (max-width: 900px) { .pf-user__caption { display: none; } }

/* Сургучный кружок с числом депеш */
.pf-user__dot {
  position: absolute; top: -3px; right: -4px;
  min-width: 20px; height: 20px;
  padding: 0 5px;
  border-radius: 10px;
  display: grid; place-items: center;
  font-family: var(--font-num);
  font-size: 11px;
  color: #f7e7c2;
  background: radial-gradient(circle at 35% 30%, #9c2739, #6E1B2E 60%, #40101c);
  box-shadow: 0 0 0 1px rgba(201,162,39,.6), 0 2px 6px rgba(0,0,0,.6);
}
.pf-user__dot[hidden] { display: none; }

/* Поднос (выпадающее меню) */
.pf-tray {
  position: absolute; top: calc(100% + 12px); right: 0;
  min-width: 236px;
  padding: 10px;
  background: linear-gradient(170deg, rgba(43,6,15,.98), rgba(20,8,6,.99));
  border: 1px solid rgba(201,162,39,.45);
  outline: 1px solid rgba(201,162,39,.16);
  outline-offset: 4px;
  box-shadow: 0 24px 60px rgba(0,0,0,.75), inset 0 1px 0 rgba(232,197,95,.12);
  opacity: 0; visibility: hidden;
  transform: translateY(-10px);
  transition: opacity .4s var(--ease-lux), transform .4s var(--ease-lux), visibility .4s;
  z-index: 5;
}
.pf-tray.is-open { opacity: 1; visibility: visible; transform: none; }
.pf-tray__title {
  font-family: var(--font-serif);
  font-size: 13px; letter-spacing: .2em; text-transform: uppercase;
  color: var(--bronze);
  padding: 6px 12px 10px;
  border-bottom: 1px solid rgba(201,162,39,.2);
}
.pf-tray__item {
  display: flex; align-items: center; justify-content: space-between;
  gap: 14px;
  width: 100%;
  padding: 11px 12px;
  background: none; border: none;
  font-family: var(--font-serif);
  font-size: 17px; letter-spacing: .05em;
  color: var(--parchment);
  text-align: left; cursor: pointer;
  transition: background .3s, color .3s, padding-left .3s var(--ease-lux);
}
.pf-tray__item:hover { background: rgba(110,27,46,.45); color: var(--gold-hi); padding-left: 18px; }
.pf-tray__count {
  min-width: 22px; height: 22px; padding: 0 6px;
  border-radius: 11px;
  display: grid; place-items: center;
  font-family: var(--font-num); font-size: 12px;
  color: #f7e7c2;
  background: radial-gradient(circle at 35% 30%, #9c2739, #6E1B2E 60%, #40101c);
  box-shadow: 0 0 0 1px rgba(201,162,39,.55);
}

/* ============================================================
   СУРГУЧНЫЕ ПЕЧАТИ СТАТУСОВ — чистый CSS
   ============================================================ */
.seal {
  --size: 56px;
  --wax: #C9A227;
  --wax-hi: #efd693;
  --wax-lo: #7d6415;
  --wax-dk: #4a3c0c;
  position: relative;
  width: var(--size); height: var(--size);
  display: grid; place-items: center;
  flex: 0 0 auto;
  border-radius: 49% 51% 52% 48% / 51% 48% 52% 49%;
  background:
    radial-gradient(circle at 33% 27%, var(--wax-hi) 0%, var(--wax) 42%,
                    var(--wax-lo) 78%, var(--wax-dk) 100%);
  box-shadow:
    inset 0 2px 3px rgba(255,244,208,.28),
    inset 0 -4px 8px rgba(0,0,0,.5),
    inset 3px 0 6px rgba(0,0,0,.22),
    0 5px 13px rgba(0,0,0,.65),
    0 1px 0 rgba(255,240,200,.14);
  color: rgba(20,10,4,.8);
  filter: drop-shadow(0 1px 1px rgba(0,0,0,.5));
}
/* растёкшийся край сургуча */
.seal::before {
  content: '';
  position: absolute; inset: 12%;
  border-radius: 52% 48% 49% 51% / 48% 52% 48% 52%;
  border: 1px solid rgba(20,10,4,.34);
  box-shadow: inset 0 1px 0 rgba(255,244,208,.2);
  pointer-events: none;
}
.seal__glyph {
  position: absolute; inset: 0;
  display: grid; place-items: center;
  color: inherit;
  pointer-events: none;
}
.seal__letter {
  font-family: var(--font-display);
  font-size: calc(var(--size) * .4);
  line-height: 1;
  transform: translateY(1px);
  text-shadow: 0 1px 0 rgba(255,244,208,.25), 0 -1px 1px rgba(0,0,0,.5);
}

/* «Свободно» — старое золото, вензель */
.seal--free { --wax: #C9A227; --wax-hi: #f2dc9d; --wax-lo: #8a6a17; --wax-dk: #52400c; }

/* «Резерв» — патина-вердигри, песочные часы */
.seal--reserve { --wax: #3E5B4C; --wax-hi: #7d9c8b; --wax-lo: #22362c; --wax-dk: #101d16; color: rgba(232,220,192,.72); }
.seal--reserve .seal__glyph::before,
.seal--reserve .seal__glyph::after {
  content: '';
  position: absolute;
  left: 50%; top: 50%;
  margin-left: calc(var(--size) * -.125);
  width: 0; height: 0;
  border-left: calc(var(--size) * .125) solid transparent;
  border-right: calc(var(--size) * .125) solid transparent;
  opacity: .85;
}
.seal--reserve .seal__glyph::before {
  margin-top: calc(var(--size) * -.19);
  border-top: calc(var(--size) * .19) solid currentColor;
}
.seal--reserve .seal__glyph::after {
  border-bottom: calc(var(--size) * .19) solid currentColor;
}

/* «Аукцион» — бордо с золотым ободком и язычком пламени */
.seal--auction {
  --wax: #6E1B2E; --wax-hi: #b04358; --wax-lo: #3d0e1a; --wax-dk: #1e0509;
  box-shadow:
    inset 0 2px 3px rgba(255,214,164,.22),
    inset 0 -4px 8px rgba(0,0,0,.55),
    0 0 0 2px rgba(201,162,39,.85),
    0 0 0 3px rgba(43,6,15,.9),
    0 0 18px rgba(201,162,39,.32),
    0 5px 13px rgba(0,0,0,.65);
}
.seal--auction::before { border-color: rgba(232,197,95,.45); }
.seal__flame {
  position: relative;
  width: calc(var(--size) * .2); height: calc(var(--size) * .2);
  border-radius: 0 50% 50% 50%;
  transform: rotate(-45deg);
  background:
    radial-gradient(ellipse at 62% 72%, rgba(255,255,240,.95) 0%, rgba(255,244,207,.75) 22%, rgba(255,244,207,0) 46%),
    linear-gradient(135deg, #fff6d8 0%, #E8C55F 42%, #C9A227 72%, #a37f42 100%);
  box-shadow: 0 0 7px rgba(232,197,95,.6), 0 0 15px rgba(201,162,39,.28);
  animation: flame-flicker 2.9s ease-in-out infinite;
}
@keyframes flame-flicker {
  0%, 100% { transform: rotate(-45deg) scale(1);    opacity: .92; }
  22%      { transform: rotate(-45deg) scale(1.16); opacity: 1; }
  47%      { transform: rotate(-45deg) scale(.9);   opacity: .78; }
  71%      { transform: rotate(-45deg) scale(1.08); opacity: 1; }
}
.seal--auction.is-scheduled .seal__flame { animation: none; opacity: .55; }

/* «Продано» — тёмная бронза, лавровая ветвь, вдавлена глубже */
.seal--sold {
  --wax: #8A6420; --wax-hi: #c19c55; --wax-lo: #4a350f; --wax-dk: #241804;
  color: rgba(240,224,186,.62);
  box-shadow:
    inset 0 3px 5px rgba(0,0,0,.55),
    inset 0 -6px 12px rgba(0,0,0,.62),
    inset 0 1px 0 rgba(255,240,200,.1),
    0 2px 5px rgba(0,0,0,.7);
  filter: none;
}
.seal--sold::before { border-color: rgba(20,10,4,.45); }
.seal--sold .seal__glyph::before,
.seal--sold .seal__glyph::after {
  content: '';
  position: absolute;
  left: 50%; top: 50%;
  margin-top: calc(var(--size) * -.165);
  width: calc(var(--size) * .15); height: calc(var(--size) * .33);
  border: 1.4px solid currentColor;
  border-radius: 100% 0 100% 0;
  opacity: .85;
}
.seal--sold .seal__glyph::before {
  margin-left: calc(var(--size) * -.2);
  transform: rotate(-20deg);
}
.seal--sold .seal__glyph::after {
  margin-left: calc(var(--size) * .05);
  transform: rotate(20deg) scaleX(-1);
}

/* Тултип печати — латунная табличка */
.seal[data-tip]::after {
  content: attr(data-tip);
  position: absolute;
  top: calc(100% + 10px); right: 0;
  width: max-content; max-width: 210px;
  padding: 7px 12px;
  font-family: var(--font-serif);
  font-size: 13px; letter-spacing: .05em; line-height: 1.35;
  color: #f6e6bb;
  background: linear-gradient(170deg, #7d5c2a, #4d3716);
  border: 1px solid rgba(232,197,95,.5);
  border-radius: 2px;
  box-shadow: 0 8px 22px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,244,208,.3);
  opacity: 0; visibility: hidden;
  transform: translateY(-6px);
  transition: opacity .3s var(--ease-lux), transform .3s var(--ease-lux), visibility .3s;
  pointer-events: none;
  z-index: 12;
}
.seal[data-tip]:hover::after,
.seal[data-tip]:focus-visible::after { opacity: 1; visibility: visible; transform: none; }

.seal--lg { --size: 88px; }
.seal--sm { --size: 34px; }

/* ============================================================
   ПОРТАЛ ЗАЛА
   ============================================================ */
.hall-portal {
  position: relative;
  padding: 56px 24px 44px;
  text-align: center;
  overflow: hidden;
  border-bottom: 1px solid rgba(201,162,39,.28);
  background:
    radial-gradient(ellipse at 50% -20%, rgba(201,162,39,.16), transparent 62%),
    linear-gradient(rgba(74,14,28,.9), rgba(43,6,15,.94));
  transition: background .8s var(--ease-lux);
}
.hall-portal--emerald {
  background:
    radial-gradient(ellipse at 50% -20%, rgba(201,162,39,.14), transparent 62%),
    linear-gradient(rgba(6,46,34,.94), rgba(4,26,20,.96));
}
.hall-portal::after {
  content: '';
  position: absolute; inset: 0;
  background: url('../assets/textures/craquelure.png') center / 700px repeat;
  mix-blend-mode: soft-light;
  opacity: .16;
  pointer-events: none;
}
.hall-portal__kicker {
  font-family: var(--font-serif);
  font-size: 13px; letter-spacing: .34em; text-transform: uppercase;
  color: var(--bronze);
}
.hall-portal__title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(34px, 6vw, 62px);
  letter-spacing: .14em; text-indent: .14em;
  text-transform: uppercase;
  color: var(--gold-hi);
  margin-top: 10px;
  text-shadow: 0 2px 18px rgba(201,162,39,.3), 0 3px 5px rgba(0,0,0,.7);
}
.hall-portal__subtitle {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: clamp(16px, 2vw, 21px);
  color: var(--smoke);
  margin-top: 8px;
}
.hall-portal .gold-rule { margin: 20px auto 0; }

/* ---------- Ряд медальонов-залов ---------- */
.hall-row {
  display: flex; flex-wrap: wrap;
  justify-content: center;
  gap: 22px 30px;
  padding: 34px 20px 8px;
}
.hall-medallion {
  display: flex; flex-direction: column; align-items: center;
  gap: 10px;
  background: none; border: none; cursor: pointer;
  padding: 4px;
}
.hall-medallion__disc {
  position: relative;
  width: 92px; height: 92px;
  border-radius: 50%;
  overflow: hidden;
  background: radial-gradient(circle at 35% 28%, #6d5128, #3d2c11);
  box-shadow:
    0 0 0 1px rgba(201,162,39,.45),
    0 0 0 5px rgba(201,162,39,.08),
    0 0 0 6px rgba(201,162,39,.24),
    0 10px 26px rgba(0,0,0,.65);
  transition: box-shadow .5s var(--ease-lux), transform .5s var(--ease-lux), filter .5s;
  filter: saturate(.8) brightness(.82);
}
.hall-medallion__disc img { width: 100%; height: 100%; object-fit: cover; }
.hall-medallion__vensel {
  position: absolute; inset: 0;
  display: grid; place-items: center;
  font-family: var(--font-display);
  font-size: 30px; letter-spacing: .06em;
  color: #e6cd93;
  text-shadow: 0 1px 0 rgba(0,0,0,.6), 0 0 14px rgba(232,197,95,.3);
}
.hall-medallion:hover .hall-medallion__disc {
  filter: saturate(1) brightness(1.08);
  transform: rotate(15deg) scale(1.03);
  box-shadow:
    0 0 0 1px rgba(240,211,139,.85),
    0 0 0 5px rgba(201,162,39,.14),
    0 0 0 6px rgba(240,211,139,.45),
    0 14px 34px rgba(0,0,0,.7),
    0 0 38px rgba(201,162,39,.32);
}
/* активный — вдавлен оттиском печати и подсвечен */
.hall-medallion.is-active .hall-medallion__disc {
  filter: saturate(1.05) brightness(1.02);
  transform: scale(.94);
  box-shadow:
    inset 0 3px 10px rgba(0,0,0,.75),
    inset 0 -2px 6px rgba(255,240,200,.14),
    0 0 0 1px rgba(240,211,139,.9),
    0 0 0 5px rgba(201,162,39,.16),
    0 0 0 6px rgba(240,211,139,.55),
    0 0 34px rgba(201,162,39,.4);
}
.hall-medallion__label {
  font-family: var(--font-serif);
  font-size: 15px; letter-spacing: .12em;
  color: var(--smoke);
  transition: color .3s, text-shadow .3s;
}
.hall-medallion:hover .hall-medallion__label { color: var(--gold-hi); }
.hall-medallion.is-active .hall-medallion__label {
  color: var(--gold-hi);
  text-shadow: 0 0 14px rgba(232,197,95,.45);
}
.hall-medallion__count {
  font-family: var(--font-num);
  font-size: 11px; color: var(--bronze);
  letter-spacing: .08em;
}

/* ============================================================
   СМОТРОВОЙ ЛИСТ — панель фильтров на латунной рейке
   ============================================================ */
.viewlist {
  position: relative;
  max-width: 1320px;
  margin: 30px auto 0;
  padding: 3px;
  background: var(--rail);
  border-radius: 4px;
  box-shadow:
    inset 0 1px 0 rgba(255,244,208,.45),
    inset 0 -2px 5px rgba(0,0,0,.5),
    0 12px 30px rgba(0,0,0,.6);
}
.viewlist__inner {
  background: linear-gradient(170deg, rgba(30,12,10,.94), rgba(18,8,6,.96));
  border: 1px solid rgba(201,162,39,.28);
  border-radius: 2px;
  padding: 18px 22px 20px;
}
.viewlist__head {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 16px; flex-wrap: wrap;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(201,162,39,.2);
}
.viewlist__title {
  font-family: var(--font-serif);
  font-size: 14px; letter-spacing: .3em; text-transform: uppercase;
  color: var(--bronze);
}
.viewlist__reset {
  background: none; border: none; cursor: pointer;
  font-family: var(--font-serif); font-style: italic;
  font-size: 15px; color: var(--smoke);
  border-bottom: 1px dotted rgba(168,143,106,.6);
  padding: 0 0 2px;
  transition: color .3s, border-color .3s;
}
.viewlist__reset:hover { color: var(--gold-hi); border-color: var(--gold-hi); }

.viewlist__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 20px 26px;
  margin-top: 18px;
  align-items: start;
}
.field__label {
  display: block;
  font-family: var(--font-serif);
  font-size: 12px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--bronze);
  margin-bottom: 9px;
}

/* ---------- Поиск «Спросить хранителя» ---------- */
.keeper-search { position: relative; }
.keeper-search__box {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 14px;
  background: linear-gradient(170deg, rgba(43,6,15,.9), rgba(20,8,6,.95));
  border: 1px solid rgba(201,162,39,.35);
  border-radius: 2px;
  transition: border-color .4s, box-shadow .4s;
}
.keeper-search__box:focus-within {
  border-color: rgba(232,197,95,.8);
  box-shadow: 0 0 22px rgba(201,162,39,.22), inset 0 0 18px rgba(201,162,39,.08);
}
.keeper-search__glyph {
  width: 15px; height: 15px;
  border: 1.5px solid var(--bronze);
  border-radius: 50%;
  position: relative; flex: 0 0 auto;
}
.keeper-search__glyph::after {
  content: ''; position: absolute;
  right: -6px; bottom: -5px;
  width: 8px; height: 1.5px;
  background: var(--bronze);
  transform: rotate(45deg);
}
.keeper-search input {
  flex: 1; min-width: 0;
  background: none; border: none; outline: none;
  font-family: var(--font-text);
  font-size: 17px;
  color: var(--parchment);
}
.keeper-search input::placeholder { color: #7a6647; font-style: italic; }
.keeper-search__clear {
  background: none; border: none; cursor: pointer;
  color: var(--bronze); font-size: 18px; line-height: 1;
  padding: 2px 4px;
  transition: color .3s, transform .3s;
}
.keeper-search__clear:hover { color: var(--gold-hi); transform: rotate(90deg); }

.suggest {
  position: absolute; top: calc(100% + 8px); left: 0; right: 0;
  z-index: 20;
  background: linear-gradient(170deg, rgba(35,10,14,.99), rgba(16,7,5,.99));
  border: 1px solid rgba(201,162,39,.45);
  box-shadow: 0 22px 54px rgba(0,0,0,.8);
  max-height: 340px; overflow-y: auto;
  scrollbar-width: thin; scrollbar-color: var(--bronze) transparent;
  opacity: 0; visibility: hidden; transform: translateY(-8px);
  transition: opacity .3s var(--ease-lux), transform .3s var(--ease-lux), visibility .3s;
}
.suggest.is-open { opacity: 1; visibility: visible; transform: none; }
.suggest__item {
  display: flex; align-items: center; gap: 12px;
  width: 100%;
  padding: 9px 12px;
  background: none; border: none; cursor: pointer;
  text-align: left;
  border-bottom: 1px solid rgba(201,162,39,.12);
  transition: background .3s;
}
.suggest__item:last-child { border-bottom: none; }
.suggest__item:hover, .suggest__item:focus-visible { background: rgba(110,27,46,.4); outline: none; }
.suggest__thumb {
  width: 44px; height: 44px; flex: 0 0 auto;
  object-fit: cover;
  box-shadow: 0 0 0 1px rgba(201,162,39,.45);
}
.suggest__body { min-width: 0; }
.suggest__title {
  font-family: var(--font-serif);
  font-size: 16px; color: var(--parchment);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.suggest__epoch {
  font-size: 13px; font-style: italic; color: var(--smoke);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.suggest__empty {
  padding: 14px 16px;
  font-family: var(--font-serif); font-style: italic;
  color: var(--smoke); font-size: 15px;
}

/* ---------- Выпадающий свиток ---------- */
.scroll-select { position: relative; }
.scroll-select__button {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; width: 100%;
  padding: 10px 14px;
  background: linear-gradient(170deg, rgba(43,6,15,.9), rgba(20,8,6,.95));
  border: 1px solid rgba(201,162,39,.35);
  border-radius: 2px;
  font-family: var(--font-serif);
  font-size: 16px; letter-spacing: .04em;
  color: var(--parchment);
  cursor: pointer; text-align: left;
  transition: border-color .4s, color .3s, box-shadow .4s;
}
.scroll-select__button:hover { border-color: rgba(232,197,95,.7); color: var(--gold-hi); }
.scroll-select__button::after {
  content: ''; flex: 0 0 auto;
  width: 7px; height: 7px;
  border-right: 1.4px solid var(--bronze);
  border-bottom: 1.4px solid var(--bronze);
  transform: translateY(-3px) rotate(45deg);
  transition: transform .4s var(--ease-lux);
}
.scroll-select__button[aria-expanded="true"]::after { transform: translateY(1px) rotate(-135deg); }
.scroll-select__panel {
  position: absolute; top: calc(100% + 6px); left: 0; right: 0;
  z-index: 22;
  padding: 6px;
  background:
    url('../assets/textures/parchment.png') center / cover,
    var(--parchment);
  border: 1px solid rgba(107,79,34,.55);
  box-shadow: 0 22px 50px rgba(0,0,0,.75);
  transform-origin: top center;
  opacity: 0; visibility: hidden; transform: scaleY(.6);
  transition: opacity .35s var(--ease-lux), transform .35s var(--ease-lux), visibility .35s;
}
.scroll-select__panel.is-open { opacity: 1; visibility: visible; transform: none; }
.scroll-select__option {
  display: block; width: 100%;
  padding: 9px 12px;
  background: none; border: none; cursor: pointer;
  font-family: var(--font-serif);
  font-size: 16px; color: #3a2a12;
  text-align: left;
  transition: background .25s, padding-left .25s var(--ease-lux);
}
.scroll-select__option:hover { background: rgba(140,106,63,.18); padding-left: 17px; }
.scroll-select__option[aria-selected="true"] {
  color: #6b4f22; font-weight: 600;
  background: rgba(140,106,63,.14);
}
.scroll-select__option[aria-selected="true"]::before { content: '· '; }

/* ---------- Цена: два ползунка ---------- */
.range { position: relative; height: 26px; margin-top: 6px; }
.range__track {
  position: absolute; top: 11px; left: 0; right: 0;
  height: 4px; border-radius: 2px;
  background: linear-gradient(180deg, #2a1a08, #3d2c11);
  box-shadow: inset 0 1px 2px rgba(0,0,0,.8), 0 1px 0 rgba(201,162,39,.18);
}
.range__fill {
  position: absolute; top: 0; height: 100%;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--bronze), var(--gold) 45%, var(--gold-hi));
  box-shadow: 0 0 12px rgba(201,162,39,.4);
}
.range input[type="range"] {
  position: absolute; top: 0; left: 0;
  width: 100%; height: 26px;
  margin: 0; padding: 0;
  background: none;
  -webkit-appearance: none; appearance: none;
  pointer-events: none;
}
.range input[type="range"]:focus-visible { outline: 1px dashed var(--gold-hi); outline-offset: 3px; }
.range input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none; appearance: none;
  pointer-events: auto;
  width: 22px; height: 22px;
  border-radius: 50%;
  cursor: grab;
  background: radial-gradient(circle at 34% 28%, #e2c176, #9c7a45 55%, #4d3716);
  border: 1px solid rgba(232,197,95,.75);
  box-shadow: inset 0 1px 0 rgba(255,246,214,.6), 0 3px 9px rgba(0,0,0,.7);
}
.range input[type="range"]::-moz-range-thumb {
  pointer-events: auto;
  width: 20px; height: 20px;
  border-radius: 50%;
  cursor: grab;
  background: radial-gradient(circle at 34% 28%, #e2c176, #9c7a45 55%, #4d3716);
  border: 1px solid rgba(232,197,95,.75);
  box-shadow: inset 0 1px 0 rgba(255,246,214,.6), 0 3px 9px rgba(0,0,0,.7);
}
.range__labels {
  display: flex; justify-content: space-between;
  margin-top: 6px;
  font-family: var(--font-num);
  font-size: 13px; letter-spacing: .04em;
  color: var(--gold);
}

/* ---------- Чекбоксы-печати ---------- */
.stamps { display: flex; flex-wrap: wrap; gap: 8px 14px; }
.stamp {
  display: inline-flex; align-items: center; gap: 9px;
  cursor: pointer;
  font-family: var(--font-serif);
  font-size: 15px; letter-spacing: .04em;
  color: var(--smoke);
  transition: color .3s;
  min-height: 30px;
}
.stamp:hover { color: var(--parchment); }
.stamp input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.stamp__wax {
  position: relative;
  width: 22px; height: 22px; flex: 0 0 auto;
  border-radius: 48% 52% 51% 49% / 51% 49% 52% 48%;
  background: linear-gradient(170deg, #3a2a12, #241705);
  box-shadow: inset 0 1px 0 rgba(255,240,200,.14), inset 0 -2px 4px rgba(0,0,0,.6), 0 2px 5px rgba(0,0,0,.5);
  transition: background .4s var(--ease-lux), box-shadow .4s var(--ease-lux), transform .3s;
}
.stamp input:checked + .stamp__wax {
  background: radial-gradient(circle at 34% 28%, var(--stamp-hi, #e0bf5f), var(--stamp-wax, #C9A227) 55%, var(--stamp-lo, #7d6415));
  box-shadow:
    inset 0 2px 3px rgba(255,244,208,.3),
    inset 0 -3px 6px rgba(0,0,0,.5),
    0 3px 9px rgba(0,0,0,.6);
  transform: scale(.94);
}
.stamp input:focus-visible + .stamp__wax { outline: 1px dashed var(--gold-hi); outline-offset: 3px; }
.stamp input:checked ~ .stamp__text { color: var(--gold-hi); }
.stamp--reserve { --stamp-wax: #3E5B4C; --stamp-hi: #6e907e; --stamp-lo: #22362c; }
.stamp--auction { --stamp-wax: #6E1B2E; --stamp-hi: #a8384f; --stamp-lo: #3d0e1a; }
.stamp--sold    { --stamp-wax: #8A6420; --stamp-hi: #c19a4c; --stamp-lo: #4a350f; }

/* ============================================================
   АНФИЛАДА: сетка витрин
   ============================================================ */
.anfilada { max-width: 1320px; margin: 0 auto; padding: 34px 24px 80px; }
.anfilada__meta {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 16px; flex-wrap: wrap;
  padding: 0 2px 20px;
  font-family: var(--font-serif);
  font-size: 15px; letter-spacing: .1em;
  color: var(--smoke);
}
.anfilada__count { font-family: var(--font-num); color: var(--gold); }

.showcase-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
  gap: 46px 38px;
  perspective: 1400px;
}

/* Витрина — карточка каталога */
.showcase { position: relative; }
.showcase__link { display: block; color: inherit; }
.showcase .card__frame { padding: 13px; }
.showcase .card__image-wrap { aspect-ratio: 4 / 5; }
.showcase--coin .card__image-wrap { aspect-ratio: 1 / 1; }

.showcase .seal {
  position: absolute;
  top: -14px; right: -14px;
  z-index: 6;
  transform: translateZ(56px) rotate(6deg);
}
/* На круглой витрине монеты печать садится на кромку медальона */
.showcase--coin .seal { top: 4%; right: 4%; }
.showcase--coin .cameo { top: 4%; left: 4%; }

.showcase--cold .card__frame > *:not(.seal) { filter: brightness(.76) saturate(.8); }
.showcase--cold .card__price { opacity: .62; }
.showcase--cold .seal { transform: translateZ(0) rotate(6deg); }

/* Медальон-камея быстрого избранного */
.cameo {
  position: absolute;
  top: -12px; left: -12px;
  z-index: 7;
  width: 40px; height: 40px;
  border-radius: 50%;
  display: grid; place-items: center;
  cursor: pointer;
  border: 1px solid rgba(201,162,39,.6);
  background: radial-gradient(circle at 34% 28%, #6d5128, #3a2a12 60%, #1d1408);
  box-shadow: inset 0 1px 0 rgba(255,240,200,.28), 0 4px 12px rgba(0,0,0,.7);
  transform: translateZ(52px) scale(.8);
  opacity: 0;
  transition: opacity .4s var(--ease-lux), transform .4s var(--ease-lux), box-shadow .4s;
}
.card:hover .cameo,
.card:focus-within .cameo,
.cameo:focus-visible,
.cameo.is-on { opacity: 1; transform: translateZ(52px) scale(1); }
.cameo:hover {
  box-shadow: inset 0 1px 0 rgba(255,246,214,.4), 0 6px 18px rgba(0,0,0,.75), 0 0 24px rgba(201,162,39,.45);
}
.cameo__profile {
  width: 19px; height: 19px;
  border-radius: 50% 50% 46% 54% / 56% 54% 46% 44%;
  background: linear-gradient(150deg, #9c7a45, #4d3716);
  box-shadow: inset -1px -1px 2px rgba(0,0,0,.6), inset 1px 1px 1px rgba(255,240,200,.35);
  transition: background .4s, box-shadow .4s;
}
.cameo.is-on {
  border-color: rgba(240,211,139,.95);
  background: radial-gradient(circle at 34% 28%, #e2c176, #a37f42 55%, #5c421c);
}
.cameo.is-on .cameo__profile {
  background: linear-gradient(150deg, #fff2cc, #C9A227);
  box-shadow: inset -1px -1px 2px rgba(90,60,10,.5), 0 0 10px rgba(232,197,95,.8);
}
@media (hover: none) { .cameo { opacity: 1; transform: translateZ(52px) scale(1); } }

/* Строка статуса под карточкой */
.showcase__line {
  display: flex; align-items: baseline; justify-content: center;
  gap: 10px; flex-wrap: wrap;
  margin-top: 10px;
  transform: translateZ(18px);
}
.showcase__price {
  font-family: var(--font-num);
  font-size: 17px; letter-spacing: .05em;
  color: var(--gold-hi);
}
.showcase__price--muted { color: var(--smoke); font-size: 15px; font-family: var(--font-serif); font-style: italic; }
.showcase__hint {
  font-family: var(--font-serif); font-style: italic;
  font-size: 14px; color: var(--smoke);
}

/* ---------- Скелет: пустые витрины ---------- */
.skeleton { position: relative; overflow: hidden; }
.skeleton__frame {
  border: 1px solid rgba(201,162,39,.18);
  outline: 1px solid rgba(201,162,39,.08);
  outline-offset: 5px;
  background: linear-gradient(160deg, rgba(74,14,28,.55), rgba(43,6,15,.75));
  padding: 13px;
  box-shadow: 0 14px 34px rgba(0,0,0,.5);
}
.skeleton__glass {
  aspect-ratio: 4 / 5;
  background: linear-gradient(160deg, rgba(20,8,6,.85), rgba(35,14,12,.7));
  position: relative; overflow: hidden;
}
.skeleton__plate {
  height: 46px; margin-top: 16px;
  background: linear-gradient(170deg, rgba(120,92,48,.35), rgba(80,60,28,.3));
  border: 1px solid rgba(201,162,39,.14);
}
.skeleton__glass::after,
.skeleton__plate::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(105deg, transparent 34%, rgba(232,197,95,.16) 50%, transparent 66%);
  transform: translateX(-120%);
  animation: skeleton-sheen 2.2s var(--ease-lux) infinite;
}
.skeleton__plate { position: relative; overflow: hidden; }
@keyframes skeleton-sheen {
  from { transform: translateX(-120%); }
  to   { transform: translateX(120%); }
}

/* ---------- Пусто / ошибка ---------- */
.hall-state {
  grid-column: 1 / -1;
  text-align: center;
  padding: 70px 24px 60px;
}
.hall-state__ornament {
  display: flex; align-items: center; justify-content: center;
  gap: 14px;
  margin-bottom: 26px;
}
.hall-state__ornament img { width: 58px; opacity: .8; }
.hall-state__ornament img:nth-child(2) { transform: rotate(90deg); }
.hall-state__ornament img:nth-child(3) { transform: rotate(180deg); }
.hall-state__title {
  font-family: var(--font-display);
  font-size: clamp(24px, 3.4vw, 34px);
  letter-spacing: .1em;
  color: var(--gold-hi);
}
.hall-state__text {
  font-family: var(--font-serif); font-style: italic;
  font-size: 19px; color: var(--smoke);
  max-width: 560px; margin: 12px auto 0;
  line-height: 1.6;
}
.hall-state__action { margin-top: 26px; display: inline-flex; gap: 14px; flex-wrap: wrap; justify-content: center; }

/* ---------- Пагинация «по пролётам анфилады» ---------- */
.spans {
  display: flex; align-items: center; justify-content: center;
  gap: 12px; flex-wrap: wrap;
  margin-top: 56px;
}
.spans__label {
  font-family: var(--font-serif); font-style: italic;
  font-size: 14px; color: var(--bronze);
  letter-spacing: .1em;
  width: 100%; text-align: center; margin-bottom: 4px;
}
.span-medallion {
  width: 42px; height: 42px;
  border-radius: 50%;
  display: grid; place-items: center;
  cursor: pointer;
  border: 1px solid rgba(201,162,39,.4);
  background: radial-gradient(circle at 34% 28%, #6d5128, #3a2a12 62%, #1d1408);
  font-family: var(--font-num);
  font-size: 15px;
  color: #d9bd80;
  box-shadow: inset 0 1px 0 rgba(255,240,200,.24), 0 4px 12px rgba(0,0,0,.6);
  transition: transform .4s var(--ease-lux), box-shadow .4s var(--ease-lux), color .3s;
}
.span-medallion:hover:not(:disabled) {
  color: #fff2cc;
  transform: translateY(-2px);
  box-shadow: inset 0 1px 0 rgba(255,246,214,.4), 0 8px 20px rgba(0,0,0,.7), 0 0 24px rgba(201,162,39,.4);
}
.span-medallion.is-current {
  color: #241705;
  background: radial-gradient(circle at 34% 28%, #f0d38b, #C9A227 58%, #8a6a17);
  border-color: rgba(255,246,214,.7);
  box-shadow: inset 0 2px 4px rgba(0,0,0,.35), 0 0 22px rgba(201,162,39,.5);
  transform: scale(.96);
}
.span-medallion:disabled { opacity: .3; cursor: default; }
.spans__gap { color: var(--bronze); font-family: var(--font-num); }

/* ============================================================
   ДЕПЕШИ (тосты)
   ============================================================ */
.dispatches {
  position: fixed; right: 24px; bottom: 24px;
  z-index: 95;
  display: flex; flex-direction: column; gap: 12px;
  max-width: min(380px, calc(100vw - 40px));
  pointer-events: none;
}
.dispatch {
  position: relative;
  display: flex; align-items: flex-start; gap: 14px;
  padding: 16px 18px 16px 16px;
  pointer-events: auto;
  background: linear-gradient(168deg, rgba(48,10,18,.98), rgba(22,8,6,.99));
  border: 1px solid rgba(201,162,39,.5);
  outline: 1px solid rgba(201,162,39,.16);
  outline-offset: 3px;
  box-shadow: 0 20px 48px rgba(0,0,0,.75);
  animation: dispatch-in .55s var(--ease-lux) both;
}
.dispatch.is-out { animation: dispatch-out .45s var(--ease-lux) both; }
@keyframes dispatch-in {
  from { opacity: 0; transform: translateX(30px) rotate(1.5deg); }
  to   { opacity: 1; transform: none; }
}
@keyframes dispatch-out {
  from { opacity: 1; transform: none; }
  to   { opacity: 0; transform: translateX(26px); }
}
.dispatch__seal {
  width: 26px; height: 26px; flex: 0 0 auto;
  margin-top: 3px;
  border-radius: 48% 52% 51% 49% / 51% 49% 52% 48%;
  background: radial-gradient(circle at 34% 28%, #e0bf5f, #C9A227 55%, #7d6415);
  box-shadow: inset 0 1px 0 rgba(255,244,208,.4), inset 0 -2px 4px rgba(0,0,0,.45), 0 2px 6px rgba(0,0,0,.6);
}
.dispatch--warn .dispatch__seal { background: radial-gradient(circle at 34% 28%, #a8384f, #6E1B2E 55%, #3d0e1a); }
.dispatch__body { font-family: var(--font-text); font-size: 16px; line-height: 1.5; color: var(--parchment); }
.dispatch__title {
  font-family: var(--font-serif);
  font-size: 12px; letter-spacing: .24em; text-transform: uppercase;
  color: var(--bronze);
  margin-bottom: 5px;
}
.dispatch__close {
  position: absolute; top: 6px; right: 8px;
  background: none; border: none; cursor: pointer;
  color: var(--bronze); font-size: 15px; line-height: 1;
  padding: 4px;
  transition: color .3s, transform .3s;
}
.dispatch__close:hover { color: var(--gold-hi); transform: rotate(90deg); }

/* ============================================================
   ВИТРИНА ЛОТА
   ============================================================ */
.lot-hall {
  background:
    radial-gradient(ellipse at 50% -10%, rgba(201,162,39,.13), transparent 58%),
    linear-gradient(rgba(74,14,28,.72), rgba(43,6,15,.86));
  transition: background .8s var(--ease-lux);
  min-height: 70vh;
}
.lot-hall--emerald {
  background:
    radial-gradient(ellipse at 50% -10%, rgba(201,162,39,.12), transparent 58%),
    linear-gradient(rgba(6,46,34,.8), rgba(4,26,20,.9));
}
.lot-wrap { max-width: 1340px; margin: 0 auto; padding: 26px 24px 90px; }

.crumbs {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  font-family: var(--font-serif);
  font-size: 14px; letter-spacing: .12em;
  color: var(--bronze);
  padding-bottom: 22px;
}
.crumbs a { color: var(--smoke); transition: color .3s; }
.crumbs a:hover { color: var(--gold-hi); }
.crumbs__sep { opacity: .6; }

.lot-grid {
  display: grid;
  grid-template-columns: 58fr 42fr;
  gap: 46px;
  align-items: start;
}

/* ---------- Левая колонна: витрина ---------- */
.vitrine { position: sticky; top: 92px; }
.vitrine__stage {
  position: relative;
  padding: 26px;
  background: radial-gradient(ellipse at 50% 12%, rgba(201,162,39,.12), rgba(10,6,4,.5) 72%);
  border: 1px solid rgba(201,162,39,.2);
}
.vitrine__frame {
  position: relative;
  overflow: hidden;
  cursor: crosshair;
  box-shadow:
    0 0 0 1px rgba(201,162,39,.55),
    0 0 0 12px rgba(36,24,14,.95),
    0 0 0 13px rgba(201,162,39,.42),
    0 0 0 20px rgba(24,15,9,.9),
    0 34px 76px rgba(0,0,0,.85);
}
.vitrine__frame img { width: 100%; display: block; }
.vitrine__craquelure {
  position: absolute; inset: 0;
  background: url('../assets/textures/craquelure.png') center / 520px repeat;
  mix-blend-mode: soft-light;
  opacity: .26;
  pointer-events: none;
}
/* диагональный блик стекла витрины */
.vitrine__glass {
  position: absolute; inset: 0;
  pointer-events: none;
  background:
    linear-gradient(118deg,
      rgba(255,246,214,0) 26%,
      rgba(255,246,214,.14) 38%,
      rgba(255,246,214,.05) 44%,
      rgba(255,246,214,0) 52%),
    linear-gradient(118deg,
      rgba(255,246,214,0) 58%,
      rgba(255,246,214,.07) 65%,
      rgba(255,246,214,0) 72%);
  transition: opacity .5s;
}
.vitrine.is-monocle .vitrine__glass { opacity: .25; }

/* Монокль */
.monocle {
  position: absolute;
  width: 220px; height: 220px;
  border-radius: 50%;
  pointer-events: none;
  opacity: 0;
  transform: translate(-50%, -50%) scale(.7);
  background-repeat: no-repeat;
  box-shadow:
    0 0 0 2px rgba(201,162,39,.85),
    0 0 0 9px rgba(36,24,14,.96),
    0 0 0 10px rgba(232,197,95,.5),
    0 18px 44px rgba(0,0,0,.85),
    inset 0 0 34px rgba(0,0,0,.4);
  transition: opacity .35s var(--ease-lux), transform .35s var(--ease-lux);
  z-index: 4;
}
.monocle::after {
  content: '';
  position: absolute; inset: 0;
  border-radius: 50%;
  background: linear-gradient(128deg, rgba(255,246,214,.16) 12%, transparent 34%, transparent 66%, rgba(255,246,214,.07) 84%);
  pointer-events: none;
}
.monocle.is-on { opacity: 1; transform: translate(-50%, -50%) scale(1); }

.btn-monocle {
  display: inline-flex; align-items: center; gap: 10px;
  margin-top: 18px;
  padding: 10px 20px;
  cursor: pointer;
  background: linear-gradient(170deg, rgba(43,6,15,.9), rgba(20,8,6,.95));
  border: 1px solid rgba(201,162,39,.45);
  border-radius: 2px;
  font-family: var(--font-serif);
  font-size: 16px; letter-spacing: .08em;
  color: var(--gold);
  transition: color .3s, border-color .3s, box-shadow .4s, background .4s;
}
.btn-monocle:hover { color: var(--gold-hi); border-color: rgba(232,197,95,.8); box-shadow: 0 0 24px rgba(201,162,39,.25); }
.btn-monocle[aria-pressed="true"] {
  background: linear-gradient(170deg, #7d5c2a, #4d3716);
  color: #f6e6bb;
  box-shadow: inset 0 2px 6px rgba(0,0,0,.55), 0 0 20px rgba(201,162,39,.3);
}
.btn-monocle__lens {
  width: 15px; height: 15px;
  border: 1.5px solid currentColor; border-radius: 50%;
  position: relative;
}
.btn-monocle__lens::after {
  content: ''; position: absolute; right: -6px; bottom: -5px;
  width: 8px; height: 1.5px; background: currentColor; transform: rotate(45deg);
}
.vitrine__note {
  font-family: var(--font-serif); font-style: italic;
  font-size: 14px; color: var(--bronze);
  margin-top: 10px;
}

/* Латунная табличка лота */
.brass-plate {
  margin-top: 22px;
  padding: 13px 22px;
  text-align: center;
  background: var(--rail);
  border: 1px solid rgba(240,211,139,.5);
  border-radius: 3px;
  box-shadow:
    inset 0 1px 0 rgba(255,244,208,.5),
    inset 0 -3px 8px rgba(0,0,0,.4),
    0 8px 20px rgba(0,0,0,.55);
  font-family: var(--font-serif);
  font-size: 17px; letter-spacing: .08em;
  color: #2a1c08;
  text-shadow: 0 1px 0 rgba(255,246,214,.45);
}
.brass-plate__no { font-family: var(--font-num); letter-spacing: .12em; }

/* Лента миниатюр */
.thumbs {
  display: flex; gap: 12px; flex-wrap: wrap;
  margin-top: 18px;
}
.thumb {
  width: 78px; height: 78px;
  padding: 3px;
  cursor: pointer;
  background: var(--rail);
  border: 1px solid rgba(240,211,139,.4);
  border-radius: 2px;
  box-shadow: inset 0 1px 0 rgba(255,244,208,.35), 0 4px 12px rgba(0,0,0,.55);
  transition: transform .35s var(--ease-lux), box-shadow .35s;
}
.thumb img { width: 100%; height: 100%; object-fit: cover; }
.thumb:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0,0,0,.65), 0 0 20px rgba(201,162,39,.3); }
.thumb.is-current { box-shadow: 0 0 0 2px rgba(232,197,95,.9), 0 6px 16px rgba(0,0,0,.6); }

/* ---------- Правая колонна: паспорт предмета ---------- */
.passport { min-width: 0; }
.passport__head { display: flex; align-items: flex-start; gap: 20px; }
.passport__headings { min-width: 0; flex: 1; }
.passport__epoch {
  font-family: var(--font-serif);
  font-size: 12px; letter-spacing: .26em; text-transform: uppercase;
  color: var(--bronze);
}
.passport__title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(28px, 3.6vw, 44px);
  line-height: 1.14;
  letter-spacing: .04em;
  color: var(--gold-hi);
  margin-top: 8px;
  text-shadow: 0 2px 16px rgba(201,162,39,.24), 0 3px 5px rgba(0,0,0,.6);
}
.passport__origin {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 19px;
  color: var(--smoke);
  margin-top: 10px;
}
.passport__seal-caption {
  font-family: var(--font-serif);
  font-size: 12px; letter-spacing: .18em; text-transform: uppercase;
  color: var(--bronze);
  text-align: center;
  margin-top: 8px;
}

/* Гравированная латунная пластина паспорта */
.plate {
  margin-top: 28px;
  padding: 22px 26px;
  background: var(--rail);
  border: 1px solid rgba(240,211,139,.45);
  border-radius: 3px;
  box-shadow:
    inset 0 1px 0 rgba(255,244,208,.45),
    inset 0 -4px 10px rgba(0,0,0,.4),
    0 12px 30px rgba(0,0,0,.55);
}
.plate__title {
  font-family: var(--font-serif);
  font-size: 12px; letter-spacing: .28em; text-transform: uppercase;
  color: #3a2a10;
  text-shadow: 0 1px 0 rgba(255,246,214,.4);
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(60,40,12,.3);
}
.plate__row {
  display: flex; align-items: baseline; gap: 8px;
  padding: 11px 0;
  border-bottom: 1px solid rgba(60,40,12,.16);
}
.plate__row:last-child { border-bottom: none; }
.plate__key {
  font-family: var(--font-serif);
  font-size: 15px; letter-spacing: .06em;
  color: #3c2a0e;
  text-shadow: 0 1px 0 rgba(255,246,214,.42);
  flex: 0 0 auto;
}
.plate__dots {
  flex: 1 1 auto;
  min-width: 20px;
  height: 1px;
  transform: translateY(-3px);
  background-image: radial-gradient(circle, rgba(45,30,8,.55) 1px, transparent 1.2px);
  background-size: 5px 2px;
  background-repeat: repeat-x;
}
.plate__val {
  font-family: var(--font-text);
  font-size: 16px;
  color: #241705;
  text-align: right;
  text-shadow: 0 1px 0 rgba(255,246,214,.35);
  max-width: 62%;
}

/* ---------- Блок цены / торга ---------- */
.deal {
  margin-top: 26px;
  padding: 26px 28px;
  border: 1px solid rgba(201,162,39,.4);
  outline: 1px solid rgba(201,162,39,.14);
  outline-offset: 5px;
  background: linear-gradient(165deg, rgba(74,14,28,.7), rgba(24,9,7,.86));
  box-shadow: 0 18px 44px rgba(0,0,0,.6);
}
.deal--emerald { background: linear-gradient(165deg, rgba(6,46,34,.78), rgba(6,20,16,.9)); }
.deal--cold { background: linear-gradient(165deg, rgba(40,26,12,.6), rgba(18,10,6,.85)); }
.deal__label {
  font-family: var(--font-serif);
  font-size: 12px; letter-spacing: .26em; text-transform: uppercase;
  color: var(--bronze);
}
.deal__price {
  font-family: var(--font-num);
  font-size: 34px; letter-spacing: .03em;
  color: var(--gold-hi);
  margin-top: 8px;
  text-shadow: 0 2px 18px rgba(201,162,39,.3);
}
.deal__price--sm { font-size: 24px; }
.deal__sub {
  font-family: var(--font-serif); font-style: italic;
  font-size: 16px; color: var(--smoke);
  margin-top: 8px; line-height: 1.55;
}
.deal__row {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 14px; flex-wrap: wrap;
  margin-top: 14px;
  font-family: var(--font-serif);
  font-size: 15px; color: var(--smoke);
}
.deal__row b { font-family: var(--font-num); font-weight: 400; color: var(--parchment); }
.deal__actions { margin-top: 22px; display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }

/* Печать-кнопка */
.seal-button {
  position: relative;
  display: inline-flex; align-items: center; gap: 13px;
  padding: 11px 26px 11px 12px;
  cursor: pointer;
  border: 1px solid rgba(232,197,95,.6);
  border-radius: 40px;
  background: linear-gradient(170deg, rgba(74,14,28,.9), rgba(30,10,8,.95));
  font-family: var(--font-serif);
  font-size: 17px; letter-spacing: .07em;
  color: var(--gold-hi);
  box-shadow: inset 0 1px 0 rgba(255,244,208,.2), 0 8px 22px rgba(0,0,0,.55);
  transition: transform .3s var(--ease-lux), box-shadow .4s, color .3s, background .4s;
  min-height: 48px;
}
.seal-button:hover:not(:disabled) {
  color: #fff2cc;
  box-shadow: inset 0 1px 0 rgba(255,246,214,.3), 0 12px 30px rgba(0,0,0,.65), 0 0 28px rgba(201,162,39,.35);
  transform: translateY(-2px);
}
.seal-button:active:not(:disabled) { transform: translateY(1px) scale(.985); }
.seal-button:disabled { opacity: .5; cursor: default; }
.seal-button__wax {
  width: 30px; height: 30px; flex: 0 0 auto;
  border-radius: 48% 52% 51% 49% / 51% 49% 52% 48%;
  background: radial-gradient(circle at 34% 28%, #e0bf5f, #C9A227 55%, #7d6415);
  box-shadow: inset 0 1px 0 rgba(255,244,208,.45), inset 0 -2px 4px rgba(0,0,0,.4), 0 2px 6px rgba(0,0,0,.55);
}
.seal-button--bordeaux .seal-button__wax { background: radial-gradient(circle at 34% 28%, #a8384f, #6E1B2E 55%, #3d0e1a); }
.seal-button.is-busy { pointer-events: none; opacity: .7; }

.link-quiet {
  font-family: var(--font-serif); font-style: italic;
  font-size: 16px; color: var(--smoke);
  border-bottom: 1px dotted rgba(168,143,106,.55);
  transition: color .3s, border-color .3s;
}
.link-quiet:hover { color: var(--gold-hi); border-color: var(--gold-hi); }

/* Обратный отсчёт */
.countdown {
  display: inline-flex; align-items: baseline; gap: 8px;
  font-family: var(--font-num);
  font-size: 22px; letter-spacing: .08em;
  color: var(--parchment);
}
.countdown small {
  font-family: var(--font-serif); font-style: italic;
  font-size: 14px; color: var(--smoke); letter-spacing: .04em;
}
.candle-line {
  display: flex; align-items: center; gap: 10px;
  margin-top: 12px;
  font-family: var(--font-serif); font-style: italic;
  font-size: 16px; color: var(--gold);
}
.candle-flame {
  width: 12px; height: 12px;
  border-radius: 0 50% 50% 50%;
  transform: rotate(-45deg);
  background:
    radial-gradient(ellipse at 62% 72%, rgba(255,255,240,.95) 0%, rgba(255,244,207,.7) 24%, rgba(255,244,207,0) 48%),
    linear-gradient(135deg, #fff6d8, #E8C55F 44%, #C9A227 74%, #a37f42);
  box-shadow: 0 0 9px rgba(232,197,95,.7);
  animation: flame-flicker 2.9s ease-in-out infinite;
  flex: 0 0 auto;
}

/* ---------- Цепь хранителей ---------- */
.chain { margin-top: 34px; }
.chain__title {
  font-family: var(--font-display);
  font-size: 24px; letter-spacing: .1em;
  color: var(--gold);
  text-transform: uppercase;
}
.chain__list { position: relative; margin-top: 22px; padding-left: 8px; }
.chain__list::before {
  content: '';
  position: absolute;
  left: 25px; top: 14px; bottom: 22px;
  width: 2px;
  background: linear-gradient(180deg, rgba(201,162,39,.15), rgba(201,162,39,.75) 12%, rgba(201,162,39,.75) 86%, rgba(201,162,39,.1));
  box-shadow: 0 0 10px rgba(201,162,39,.3);
}
.chain__node {
  position: relative;
  display: flex; align-items: flex-start; gap: 18px;
  padding: 0 0 26px 0;
}
.chain__node:last-child { padding-bottom: 0; }
.chain__seal {
  position: relative; z-index: 2;
  width: 36px; height: 36px; flex: 0 0 auto;
  border-radius: 49% 51% 52% 48% / 51% 48% 52% 49%;
  background: radial-gradient(circle at 33% 27%, #a8384f, #6E1B2E 52%, #3d0e1a);
  box-shadow:
    inset 0 1px 0 rgba(255,214,164,.3),
    inset 0 -3px 6px rgba(0,0,0,.5),
    0 0 0 4px rgba(24,10,8,.95),
    0 4px 12px rgba(0,0,0,.7);
  display: grid; place-items: center;
  font-family: var(--font-display);
  font-size: 14px;
  color: rgba(247,231,194,.72);
}
.chain__body { padding-top: 3px; min-width: 0; }
.chain__text { font-size: 17px; line-height: 1.55; color: var(--parchment); }
.chain__year {
  font-family: var(--font-num);
  font-size: 13px; color: var(--gold);
  letter-spacing: .08em;
  margin-top: 3px;
}
/* последний узел — пустая печать */
.chain__node--open .chain__seal {
  background: radial-gradient(circle at 33% 27%, rgba(120,96,50,.4), rgba(60,44,18,.5) 60%, rgba(30,20,8,.6));
  border: 1px dashed rgba(201,162,39,.6);
  box-shadow: 0 0 0 4px rgba(24,10,8,.95), 0 0 18px rgba(201,162,39,.18);
}
.chain__node--open .chain__text {
  font-family: var(--font-serif); font-style: italic;
  color: var(--gold);
  letter-spacing: .04em;
}

/* ---------- Описание с буквицей ---------- */
.lot-desc { margin-top: 34px; }
.lot-desc__title {
  font-family: var(--font-display);
  font-size: 24px; letter-spacing: .1em;
  color: var(--gold);
  text-transform: uppercase;
  margin-bottom: 16px;
}
.lot-desc__body { font-size: 18px; line-height: 1.72; color: #e8dcc0; }
.lot-desc__body p + p { margin-top: 1em; }
.lot-desc__body p:first-of-type::first-letter {
  font-family: var(--font-display);
  font-size: 3.5em;
  float: left;
  line-height: .82;
  margin: 8px 12px 0 0;
  color: var(--gold-hi);
  text-shadow: 0 2px 14px rgba(201,162,39,.35);
}

/* ---------- Хранитель также показал бы ---------- */
.similar { max-width: 1340px; margin: 0 auto; padding: 20px 24px 90px; }
.similar__title {
  font-family: var(--font-display);
  font-size: clamp(24px, 3vw, 34px);
  letter-spacing: .12em;
  color: var(--gold-hi);
  text-align: center;
  text-transform: uppercase;
}
.similar__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 40px 30px;
  margin-top: 34px;
  perspective: 1400px;
}

/* ---------- Мобильная sticky-панель цены ---------- */
.lot-sticky {
  position: fixed; left: 0; right: 0; bottom: 0;
  z-index: 75;
  display: none;
  align-items: center; justify-content: space-between;
  gap: 14px;
  height: 64px;
  padding: 0 16px;
  background:
    url('../assets/textures/velvet-dark.png') center / cover,
    linear-gradient(180deg, rgba(48,10,18,.98), rgba(20,8,6,.99));
  border-top: 1px solid rgba(201,162,39,.6);
  box-shadow: 0 -12px 30px rgba(0,0,0,.7), inset 0 1px 0 rgba(232,197,95,.28);
}
.lot-sticky__price {
  font-family: var(--font-num);
  font-size: 19px; color: var(--gold-hi);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.lot-sticky__label {
  font-family: var(--font-serif); font-style: italic;
  font-size: 13px; color: var(--smoke);
}
.lot-sticky .seal-button { padding: 8px 18px 8px 9px; font-size: 15px; min-height: 44px; }
.lot-sticky .seal-button__wax { width: 24px; height: 24px; }

/* Заглушка загрузки лота */
.lot-loading {
  padding: 90px 24px;
  text-align: center;
  font-family: var(--font-serif); font-style: italic;
  font-size: 20px; color: var(--smoke);
  letter-spacing: .08em;
}

/* ---------- Футер платформы ---------- */
.pf-footer {
  text-align: center;
  padding: 40px 20px 50px;
  border-top: 1px solid rgba(201,162,39,.2);
  background: linear-gradient(rgba(10,7,5,.55), rgba(8,5,3,.95));
}
.pf-footer__row {
  display: flex; justify-content: center; gap: 28px; flex-wrap: wrap;
  font-family: var(--font-serif);
  font-size: 15px; letter-spacing: .08em;
}
.pf-footer__row a { color: var(--smoke); transition: color .3s; }
.pf-footer__row a:hover { color: var(--gold-hi); }
.pf-footer__note { font-size: 13px; color: #7a6a50; margin-top: 14px; }

/* ============================================================
   АДАПТИВ
   ============================================================ */
@media (max-width: 1080px) {
  .lot-grid { grid-template-columns: 1fr; gap: 34px; }
  .vitrine { position: static; }
  .passport__title { font-size: clamp(26px, 5vw, 36px); }
}

@media (max-width: 760px) {
  body.pf { padding-top: 66px; }
  .topbar--platform { padding: 8px 14px; }
  .topbar--platform .topbar__nav { margin-left: 0; }
  .hall-portal { padding: 34px 18px 30px; }
  .hall-row { gap: 16px 18px; padding: 24px 14px 4px; }
  .hall-medallion__disc { width: 66px; height: 66px; }
  .hall-medallion__label { font-size: 13px; letter-spacing: .08em; }
  .hall-medallion__vensel { font-size: 22px; }
  .viewlist { margin: 22px 14px 0; }
  .viewlist__inner { padding: 14px 14px 16px; }
  .viewlist__grid { grid-template-columns: 1fr; gap: 16px; }
  .anfilada { padding: 26px 14px 60px; }
  .showcase-grid { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 34px 20px; }
  .lot-wrap { padding: 18px 14px 96px; }
  .similar { padding: 10px 14px 96px; }
  .vitrine__stage { padding: 14px; }
  .vitrine__frame {
    box-shadow:
      0 0 0 1px rgba(201,162,39,.55),
      0 0 0 7px rgba(36,24,14,.95),
      0 0 0 8px rgba(201,162,39,.42),
      0 20px 44px rgba(0,0,0,.8);
  }
  .plate { padding: 16px 16px; }
  .plate__row { flex-direction: column; align-items: flex-start; gap: 2px; }
  .plate__dots { display: none; }
  .plate__val { text-align: left; max-width: 100%; }
  .deal { padding: 20px 18px; }
  .deal__price { font-size: 28px; }
  .lot-sticky { display: flex; }
  .dispatches { right: 12px; left: 12px; bottom: 78px; max-width: none; }
  .btn-monocle, .vitrine__note { display: none; }
  .passport .seal--lg { --size: 68px; }
  .passport__head { gap: 14px; }
  .passport__seal-caption { font-size: 11px; letter-spacing: .12em; }
  .lot-desc__body { font-size: 17px; }
}

@media (hover: none) {
  .seal[data-tip]::after { display: none; }
}

/* ---------- Пониженная анимация ---------- */
@media (prefers-reduced-motion: reduce) {
  .seal__flame, .candle-flame { animation: none; }
  .skeleton__glass::after, .skeleton__plate::after { animation: none; opacity: .1; transform: none; }
  .hall-medallion:hover .hall-medallion__disc { transform: none; }
}

/* ============================================================
   ДОВОДКА
   ============================================================ */

/* 3D-цепочка не должна рваться на ссылке-обёртке витрины */
.showcase__link { transform-style: preserve-3d; }

/* Скрытые блоки остаются скрытыми и в мобильной раскладке */
.lot-sticky[hidden] { display: none !important; }
.similar[hidden] { display: none !important; }

/* Подсказка хранителя: две строки в колонку */
.suggest__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }

/* Поиск занимает две колонки смотрового листа, где место позволяет */
@media (min-width: 900px) {
  .keeper-search { grid-column: span 2; }
}

/* Ряд «также показал бы»: витрины чуть скромнее */
.similar__grid .card__plate { width: 92%; }

/* Фокус — видимая золотая нить, а не системная синяя рамка */
.pf-tray__item:focus-visible,
.scroll-select__button:focus-visible,
.scroll-select__option:focus-visible,
.suggest__item:focus-visible,
.span-medallion:focus-visible,
.hall-medallion:focus-visible,
.seal-button:focus-visible,
.btn-monocle:focus-visible,
.cameo:focus-visible,
.viewlist__reset:focus-visible,
.thumb:focus-visible,
.link-quiet:focus-visible {
  outline: 1px solid var(--gold-hi);
  outline-offset: 3px;
}

/* ============================================================
   МОСТ ВИТРИНЫ: переходы с парадной страницы в залы платформы
   (index.html подключает этот файл ради медальона посетителя
   и двух дверей в героическом зале)
   ============================================================ */

.hero__doors {
  margin-top: 30px;
  display: flex; align-items: center; justify-content: center;
  gap: 26px; flex-wrap: wrap;
}
.hero__doors-link {
  font-family: var(--font-serif);
  font-size: 17px; letter-spacing: .1em;
  color: var(--smoke);
  border-bottom: 1px solid rgba(201,162,39,.35);
  padding-bottom: 2px;
  transition: color .35s var(--ease-lux), border-color .35s var(--ease-lux);
}
.hero__doors-link:hover { color: var(--gold-hi); border-color: var(--gold-hi); }

.item-modal__inquire {
  font-family: var(--font-serif);
  font-size: 16px; letter-spacing: .08em;
  color: var(--bronze);
  border-bottom: 1px solid rgba(138,100,32,.45);
  padding-bottom: 2px;
  transition: color .3s var(--ease-lux), border-color .3s var(--ease-lux);
}
.item-modal__inquire:hover { color: var(--bordeaux); border-color: var(--bordeaux); }

@media (max-width: 600px) {
  .hero__doors { gap: 16px; }
  .hero__doors .btn-gold { width: 100%; text-align: center; }
}

/* На узком экране парадный топбар оставляет две двери в платформу и
   служебные ссылки: залы всё равно разложены медальонами сразу под героем,
   а ниже 760px витрина прячет навигацию за бургер (style.css). */
@media (max-width: 1120px) and (min-width: 761px) {
  .topbar:not(.topbar--platform):not(.topbar--cab) .topbar__nav { gap: 20px; }
  .topbar:not(.topbar--platform):not(.topbar--cab) .topbar__nav a[href="#paintings"],
  .topbar:not(.topbar--platform):not(.topbar--cab) .topbar__nav a[href="#coins"],
  .topbar:not(.topbar--platform):not(.topbar--cab) .topbar__nav a[href="#sculptures"],
  .topbar:not(.topbar--platform):not(.topbar--cab) .topbar__nav a[href="#antiques"] { display: none; }
}
