/* Шрифт Pragmatica © ParaType (ООО НПП «ПараТайп», paratype.ru); веб-лицензия №21053250 на ИП Бекаревич М. Г. — условие п. 2.2.2 а) лицензии. */
/* Сайт галереи — айдентика её сайта (design/README.md) и система мини-аппа 30.09 (docs/design-audit/design-system):
   Pragmatica одним весом, чёрное на белом, рамка из подписей сверху и снизу, без теней, скруглений и цвета.
   Правки по дизайн-аудиту 07.10 (docs/design-audit-2026-10-07) — номера находок в комментариях. */
@font-face{font-family:Pragmatica;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/Pragmatica_Book.woff2) format("woff2"),url(fonts/Pragmatica_Book.woff) format("woff")}
@font-face{font-family:Pragmatica;font-style:oblique;font-weight:400;font-display:swap;src:url(fonts/Pragmatica_Oblique.woff2) format("woff2"),url(fonts/Pragmatica_Oblique.woff) format("woff")}
:root{--paper:#fff;--ink:#000;--title:18px;--fs:16px;--sm:15px;--label:13px;--cap:12px;--bar:44px;--tap:44px;--gap:8px;--pad:16px;--wide:1440px;
  --safe-b:env(safe-area-inset-bottom,0px)}
@media(min-width:900px){:root{--title:22px;--fs:17px;--pad:32px;--gap:16px;--bar:56px}}
/* Ночная тема (Маша/Даниил 14.10): те же два цвета наоборот — белое на чёрном. По системе, пока человек не выбрал сам
   («Ночь» / «День» в подвале, выбор — в localStorage; site.js и строка в <head> ставят data-theme до отрисовки). */
:root{color-scheme:light}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#000;--ink:#fff;color-scheme:dark}}
:root[data-theme=dark]{--paper:#000;--ink:#fff;color-scheme:dark}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}                                         /* скрытое скриптом («Порог» при рамке) — и у кнопок с display (№516) */
html{-webkit-text-size-adjust:100%}
html,body{background:var(--paper);color:var(--ink);font:400 var(--fs)/1.4 Pragmatica,"Helvetica Neue",Helvetica,Arial,sans-serif;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}
b,strong,h1,h2,h3,th{font-weight:400}                                      /* один вес (№305): ложного полужирного нет */
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;text-transform:uppercase;padding:0;text-align:left}
img{display:block;max-width:100%;font-size:var(--cap);font-style:oblique}            /* alt без JS — мелким курсивом */
ul,ol{list-style:none}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* заголовок, повторяющий раздел в верхней строке, — только для чтения с экрана; на телефоне раздел скрыт (430px) — там виден (Игорь 16.10) */
@media(min-width:431px){h1.dup{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}
.skip{position:absolute;left:-9999px}.skip:focus{left:var(--pad);top:8px;z-index:100;background:var(--paper);padding:8px}
.u{text-transform:uppercase;letter-spacing:.02em}.o{font-style:oblique}
.on{text-decoration:underline;text-underline-offset:.2em}
.inv{background:var(--ink);color:var(--paper);padding:0 .25em;-webkit-box-decoration-break:clone;box-decoration-break:clone;white-space:nowrap}   /* плашка — одним куском (№434) */
.nb{white-space:nowrap}

/* рамка: верх — имя · раздел · язык; низ — разделы. Фиксированы, как на её сайте. На компьютере подписи крупнее
   и стоят по краям (№228); текущий раздел — подчёркиванием, как язык (№229) */
.bar{position:fixed;left:0;right:0;z-index:20;background:var(--paper);height:var(--bar);display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;
  padding:0 var(--pad);text-transform:uppercase;font-size:var(--label);letter-spacing:.02em;line-height:1;gap:12px}
@media(min-width:900px){.bar{font-size:var(--fs)}}
.bar.top{top:0}
.bar.top>a:first-child{white-space:nowrap;flex-shrink:0}                       /* имя не сжимается — сжимается раздел (№428) */
.bar.bottom{bottom:0;height:calc(var(--bar) + var(--safe-b));padding-bottom:var(--safe-b);display:flex}
.bar a,.bar b{display:inline-flex;align-items:center;min-height:var(--tap);font-weight:400}
.bar .section-name{text-align:center;font-style:oblique;white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}   /* раздел виден и на телефоне (№230) */
.bar .langs{justify-self:end;display:flex;align-items:center}
.bar .langs a,.bar .langs b{min-width:var(--tap);justify-content:center}                              /* №224 */
.bar .langs>:first-child{justify-content:flex-start}.bar .langs>:last-child{justify-content:flex-end}   /* текст — к внешним краям: точка посередине, правый край по полю, касание 44 (№517, №573) */
@media(max-width:360px){.bar .langs b,.bar .langs span[aria-hidden]{display:none}.bar .langs a{justify-content:flex-end}}   /* на узком — только другой язык, по полю (№428, №573) */
.bar .langs .login{margin-right:var(--pad);min-width:0;justify-content:flex-start;white-space:nowrap}   /* «Войти» / «Кабинет» — вход на сайте (14.10) */
.bar .langs b,.nav a[aria-current]{text-decoration:underline;text-underline-offset:.2em}
.nav{display:flex;justify-content:space-between;align-items:center;width:100%}
.nav .wide{display:none}
@media(min-width:760px){.nav .wide{display:inline-flex}.nav .narrow{display:none}}

main{max-width:var(--wide);margin:0 auto;padding:calc(var(--bar) + 8px) var(--pad) var(--pad);min-height:70vh}
h1{font-size:var(--title);text-transform:uppercase;line-height:1.25;letter-spacing:.01em;padding:4px 0 8px}
.section{text-transform:uppercase;letter-spacing:.02em;font-size:var(--label);line-height:16px;padding:32px 0 12px}
.section a{text-decoration:underline;text-underline-offset:.2em;display:inline-flex;align-items:center;min-height:var(--tap)}
.label{font-style:oblique;font-size:var(--label);padding:24px 0 8px}
.year{font-size:var(--label);padding:16px 0 4px}
.note{font-style:oblique;font-size:var(--label);line-height:18px;padding:6px 0;max-width:44em}
.note a{text-decoration:underline;text-underline-offset:.2em}
.lead{font-size:var(--fs);line-height:1.45;max-width:44em;padding:4px 0 8px}
.crumbs{font-size:var(--label);text-transform:uppercase;letter-spacing:.02em}
.crumbs a{text-decoration:underline;text-underline-offset:.2em;display:inline-flex;align-items:center;min-height:var(--tap)}
.caption{font-size:var(--sm);line-height:20px;padding:2px 0}
.kicker{font-size:var(--label);padding-top:12px;text-transform:uppercase;letter-spacing:.02em}
.price{font-size:var(--fs);padding:2px 0 4px}
.line{padding:6px 0;line-height:1.35}
.msg{min-height:30vh;display:flex;flex-direction:column;justify-content:center;gap:12px}
.act,.lnk{display:inline-flex;align-items:center;min-height:var(--tap);text-transform:uppercase;text-decoration:underline;text-underline-offset:.25em;letter-spacing:.02em;font-size:var(--label)}
.lnk+.lnk{margin-left:var(--pad)}
.lnks{display:flex;flex-wrap:wrap;gap:0 var(--pad)}.lnks .lnk+.lnk{margin-left:0}     /* ряд ссылок переносится без сдвига (№445) */
.home main>section+section{padding-top:24px}                                       /* отступ между секциями главной один (№442) */
.actions-row{display:flex;flex-wrap:wrap;gap:0 var(--pad);font-size:var(--label);text-transform:uppercase;letter-spacing:.02em}
.actions-row a,.actions-row button{text-decoration:underline;text-underline-offset:.25em;min-height:var(--tap);display:inline-flex;align-items:center;font-size:var(--label)}
.links{display:flex;flex-wrap:wrap;gap:0 var(--pad);font-size:var(--label);text-transform:uppercase;letter-spacing:.02em;padding:4px 0}
.links a{text-decoration:underline;text-underline-offset:.2em;min-height:var(--tap);display:inline-flex;align-items:center}
.main{display:block;background:var(--ink);color:var(--paper);text-align:center;text-transform:uppercase;letter-spacing:.02em;padding:16px;margin:12px 0 4px;font-size:var(--label);line-height:18px}
.state+.main{margin-top:24px}                                         /* кнопка не прилипает к Состоянию «В торгах» (№449) */
@media(max-width:899px){.work-page .main{position:sticky;bottom:calc(var(--bar) + var(--safe-b));margin-left:calc(-1*var(--pad));margin-right:calc(-1*var(--pad));z-index:5;
  border-top:8px solid var(--paper)}}   /* полоса бумаги: липкая кнопка не сливается с Состоянием над ней (№526) */
/* Состояние «требует действия» — инверсия (лот в торгах); «сообщает» — капс и линия, без заливки (№220) */
.state{background:var(--ink);color:var(--paper);margin:8px calc(-1*var(--pad)) 12px;padding:14px var(--pad);font-size:var(--sm);line-height:20px}
@media(min-width:900px){.work-page .state{margin-left:0;margin-right:0;padding-left:16px;padding-right:16px}}   /* №273 */
.state .lnk{color:inherit}
.state .note{padding-bottom:0}
.notice{padding:8px 0 4px;border-bottom:1px solid var(--ink);font-size:var(--label);line-height:18px;margin-bottom:16px}
.notice .u{font-size:var(--label)}
.notice .note{padding:2px 0}
.notice a.inline{text-decoration:underline;text-underline-offset:.2em}
/* «Аукционы» (Игорь 16.10): торгов нет — плашка между двумя линиями, на компьютере ссылки справа; прошедшие — карточками с фото лотов */
.notice.idle{border-top:1px solid var(--ink);padding:16px 0 12px;margin:8px 0 8px}
.notice.idle .u{font-size:var(--title);line-height:1.25;text-transform:uppercase;padding-bottom:4px}
.notice.idle .note{font-size:var(--sm);line-height:20px}
@media(min-width:760px){.notice.idle{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:0 var(--pad);align-items:end}
  .notice.idle .lnks{flex-direction:column;align-items:flex-start;gap:0}}
.days-grid{display:grid;grid-template-columns:1fr;gap:28px var(--pad)}
@media(min-width:600px){.days-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1100px){.days-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.days-grid a{display:flex;flex-direction:column;gap:4px}
.days-grid .strip{display:flex;flex-wrap:wrap;align-content:flex-start;gap:0 8px;margin-bottom:10px;aspect-ratio:2/1;overflow:hidden}   /* одна высота у всех карточек */
@media(min-width:600px){.days-grid .strip{aspect-ratio:5/2}}   /* в две-три колонки — ниже, чтобы в ряд влезали две работы */
.days-grid .strip img{flex:none;height:100%;width:auto;max-width:100%;aspect-ratio:auto 3/4;object-fit:contain;object-position:left bottom;display:block}   /* целиком и одной высоты; не влезла — уходит на скрытую строку; 3/4 — пока не загрузилась, иначе у «ленивой» ширина 0 */
.days-grid .strip .ph{flex:1;height:100%;border:1px solid var(--ink)}
.days-grid .t{font-size:var(--title);line-height:1.25;text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:1px}
.days-grid .o{font-size:var(--sm);font-style:oblique}
.days-grid .d{font-size:var(--label);line-height:18px}
.days-grid a:hover img{opacity:.88}
.status{padding:12px 0;border-bottom:1px solid var(--ink);font-size:var(--sm);line-height:20px;margin-bottom:8px}
.status a{display:block}

/* фильтры каталога: на телефоне строки переносятся (№223), у каждой группы курсивная метка (№238),
   выбранное — инверсия вокруг слова, поле касания 44 px */
.filters{display:flex;flex-wrap:wrap;gap:0 var(--pad);text-transform:uppercase;font-size:var(--label);letter-spacing:.02em;align-items:center}
.filters a{flex:none;min-height:var(--tap);display:inline-flex;align-items:center}
.filters a.cur>span{background:var(--ink);color:var(--paper);padding:3px .4em}
.filters{position:relative;padding-left:calc(4.5em + var(--pad))}
.filters .grp{font-style:oblique;text-transform:none;letter-spacing:0;position:absolute;left:0;top:0;min-height:var(--tap);display:flex;align-items:center}
.found{display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--pad);font-size:var(--label);padding-top:4px}

/* сетка работ: независимые колонки (fmt.columns), высота фото из aspect-ratio; на компьютере — 3 колонки, на главной,
   у автора и в серии (.wide) — 2 крупные, как на её сайте (№226, №227) */
.grid{display:flex;gap:var(--gap);align-items:flex-start}
.grid .col{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:calc(var(--gap) + 8px)}
.grid.g3{display:none}
@media(min-width:900px){.grid.g2:not(.wide){display:none}.grid.g3{display:flex}}
.tile a{display:block}
.tile img,.tile .ph,.lots img,.lots .ph{width:100%;height:auto;background:var(--paper)}
.tile img,.lots img{object-fit:cover}   /* пропорция плитки разошлась с фото — обрезка по краям, а не сжатие (Игорь 14.10) */
.js .tile img:not([data-ok]),.js .lots img:not([data-ok]){outline:1px solid var(--ink);outline-offset:-1px}   /* пока фото не пришло — рамка Картинки (№432) */
.ph{display:flex;align-items:center;justify-content:center;border:1px solid var(--ink);aspect-ratio:4/5;font-style:oblique;font-size:var(--cap);text-align:center;padding:8px}
.cap{display:block;font-size:var(--cap);line-height:16px;padding:8px 0 2px}
.cap>span{display:block}
.cap .t{text-transform:uppercase;letter-spacing:.02em}
.cap .who{font-style:oblique}
.lots{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gap);padding-top:16px;align-items:start}
@media(min-width:900px){.lots{grid-template-columns:repeat(4,1fr)}}

/* герой: одна работа с «порогом» (главная — №221; страница работы и предмета) */
.hero{position:relative;margin:0 calc(-1*var(--pad))}
.feature .hero{margin:0}                                       /* герой главной — в полях, как подпись и сетка (№437) */
@media(min-width:900px){.hero{margin:0}}
@media(max-width:899px){.hero>.ph,.hero a>.ph{margin:0 var(--pad)}}   /* рамка «не загрузилось» у героя — в полях, а не по краю экрана (№576) */
.hero img{width:100%;height:auto;max-height:calc(100vh - 2*var(--bar) - var(--tap) - 24px);object-fit:contain;object-position:left top;transition:filter .6s ease-out}
@media(max-width:899px){.work-page .hero img{max-height:60vh;object-position:center top}.work-page .live .hero img{max-height:45vh}}   /* №264, №267 */
.hero-acts{display:flex;justify-content:space-between;align-items:center;gap:var(--pad);font-size:var(--label);letter-spacing:.02em}
.hero-acts button,.hero-acts a{min-height:var(--tap);display:inline-flex;align-items:center;text-decoration:underline;text-underline-offset:.25em;text-transform:uppercase}
.hero-acts .photos{display:flex;align-items:center}
.hero-acts .photos button{min-width:var(--tap);justify-content:center;text-decoration:none}                  /* №420 */
.hero-acts .photos button.cur>span{background:var(--ink);color:var(--paper);padding:3px .4em}
.hero-acts .right{display:flex;gap:var(--pad);margin-left:auto}
.feature{padding:24px 0 8px}
@media(min-width:900px){.feature{display:flex;flex-direction:column;align-items:center}.feature .hero img{max-height:calc(100vh - 2*var(--bar) - 120px);object-position:center top}
  .feature .fcap,.feature .hero-acts{width:auto;max-width:100%}
  /* ширина героя — из доступной высоты и пропорции картины: картина и подпись в первом экране, подпись — под левым краем (№630) */
  .feature figure{--avail:calc(100svh - 2*var(--bar) - 120px);width:min(100%,calc(var(--avail) / var(--r,1.25)))}
  .notice+.feature figure{--avail:calc(100svh - 2*var(--bar) - 220px)}     /* над героем — торги */
  .feature .hero img{width:100%;max-height:none}}
/* набор героя (Маша 21.10): на компьютере — в ряд, картины одной высоты; на телефоне и в мини-аппе — одна (.main) */
.hero-row{display:flex;justify-content:center;align-items:flex-start;gap:var(--pad);width:100%}
@media(max-width:899px){.hero-row .hero:not(.hero-main){display:none}.hero-row .hero.hero-main{width:100%}}
@media(min-width:900px){.feature .hero-row figure{width:min(calc((100% - (var(--n) - 1)*var(--pad))/var(--n)),calc(var(--avail) / var(--r,1.25)))}}
.fcap{font-size:var(--label);line-height:18px;padding-top:8px}
.fcap .t{text-transform:uppercase;letter-spacing:.02em}

/* страница работы и предмета: 3 : 2, картинка липнет слева, ряд «Порог · Крупно» под ней по её ширине (№283);
   «ещё из серии», «предметы» — на всю ширину под колонками (№282) */
.work-page main{max-width:1280px}
@media(min-width:900px){
  .work-top{display:grid;grid-template-columns:minmax(0,3fr) minmax(320px,2fr);column-gap:48px;align-items:start}
  .work-top>.visual{position:sticky;top:calc(var(--bar) + 8px);width:fit-content;max-width:100%}             /* ряд под картинкой — по её ширине (№283) */
  .work-top>.visual:has(.hero .ph){width:100%}                                                                   /* рамка вместо фото — по колонке (№427) */
  .work-top>.visual .hero img{width:auto;max-width:100%}
}
.list{border-top:1px solid var(--ink)}
.list>li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto;gap:12px;padding:10px 0;border-bottom:1px solid var(--ink);font-size:var(--sm);line-height:20px;align-items:baseline}
.list>li>.o,.list .sub{font-size:var(--label)}
.list .sub{display:block;font-style:oblique}
.list .r{text-align:right;white-space:nowrap}
.work-page .info .list>li{grid-template-columns:minmax(0,1fr) auto;row-gap:2px}                                /* №293 */
.work-page .info .list>li>.what{grid-column:1/-1;font-size:var(--label);text-transform:uppercase;letter-spacing:.02em}
/* «История на торгах» (Игорь 19.10): две колонки — справа под действиями (дата · итог, ниже вид и лот), одна колонка — внизу */
.finals-side{display:none}
.work-page .info .finals-side .list>li>.o{grid-column:1/-1;font-style:oblique}
@media(min-width:900px){.finals-side{display:block;margin-top:32px}.work-more .finals-bottom{display:none}}
@media(min-width:601px){.days>li{grid-template-columns:minmax(0,1.2fr) minmax(0,1.4fr) 8em}}   /* сумма — колонкой одной ширины, середина не прыгает (№477) */
.days>li>.o{text-align:left;justify-self:start}                     /* средняя колонка не прыгает (№477) */
.text p{max-width:40em;padding:0 0 12px;line-height:1.5}
.mention{display:grid;grid-template-columns:64px 1fr;gap:12px;align-items:center;min-height:var(--tap);padding:8px 0;border-bottom:1px solid var(--ink)}
.mention img{width:64px;height:auto}
.mention .t{text-decoration:underline;text-underline-offset:.2em}
.mention .act{margin-top:4px}                                       /* «Открыть →» своей строкой с той же левой линии (№455, №527) */
.press .u{text-decoration:underline;text-underline-offset:.2em}      /* издание со стрелкой — ссылка (№463) */
@media(min-width:601px){.work-more .list>li{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) 10em}}   /* колонки истории торгов не съезжают (№451); на телефоне — сумма справа (№525) */
.mention .o{display:block;font-size:var(--label)}
.big{position:fixed;inset:0;z-index:50;background:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--pad)}
.big[hidden]{display:none}
.big img{max-width:100%;max-height:calc(100vh - 100px);object-fit:contain;touch-action:pinch-zoom}
.big button{padding-top:var(--pad);font-size:var(--label);min-height:var(--tap);text-decoration:underline}

/* магазин: разделы по технике и виду (№270) */
.jump{display:flex;flex-wrap:wrap;gap:0 var(--pad);font-size:var(--label);text-transform:uppercase;letter-spacing:.02em}
.jump a{min-height:var(--tap);display:inline-flex;align-items:center;text-decoration:underline;text-underline-offset:.2em}

/* авторы, пресса, выставки, тексты */
.people{display:grid;grid-template-columns:1fr;gap:16px var(--gap)}
@media(min-width:600px){.people{grid-template-columns:repeat(2,1fr)}}
@media(min-width:900px){.people{grid-template-columns:repeat(4,1fr)}}
.people a{display:flex;flex-direction:column;gap:2px;font-size:var(--sm);line-height:20px}
.people .name{text-decoration:underline;text-underline-offset:.2em;align-self:flex-start;min-height:var(--tap);display:inline-flex;align-items:center}
.people img{width:50%;aspect-ratio:4/5;object-fit:cover;margin-bottom:6px}   /* фото художников — вдвое меньше (Маша 16.10) */
.people .o{font-size:var(--label)}
.portrait{max-width:420px;margin:0 0 16px}
.portrait.half{max-width:210px}   /* портрет на странице художника — вдвое меньше (Маша 16.10) */
/* художники «Маша представляет» — ч/б портрет кружком (Маша 16.10); у самой Маши — как было */
.people.round img{aspect-ratio:1;border-radius:50%;filter:grayscale(1)}
.portrait.round img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:50%;filter:grayscale(1)}
@media(min-width:900px){.about{display:grid;grid-template-columns:1fr 1fr;column-gap:16px;align-items:start}
  .about .portrait{position:sticky;top:calc(var(--bar) + 8px);max-width:none;margin:0;grid-column:2;grid-row:1}
  .about .about-text{grid-column:1;grid-row:1}
  .about .portrait img{width:100%;max-height:calc(100vh - 2*var(--bar) - 16px);object-fit:contain;object-position:right top}}
.artist-intro .portrait img{width:100%;max-height:30vh;aspect-ratio:4/5;object-fit:cover;object-position:center top}   /* вдвое меньше (Маша 16.10) */
@media(min-width:900px){.artist-intro .portrait img{max-height:25vh;aspect-ratio:auto;object-fit:contain;object-position:right top}}
/* у Маши на её странице — тоже ч/б кружок (Маша 16.10) */
.artist-intro .portrait.round{max-width:210px}
.artist-intro .portrait.round img{max-height:none;aspect-ratio:1;object-fit:cover;object-position:center}
@media(min-width:900px){.artist-intro .portrait.round{justify-self:end;width:210px}}
.clamp p{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;max-height:4lh;padding-bottom:0;margin-bottom:0}
.cv{padding:12px 0}.cv summary{cursor:pointer;font-size:var(--label);min-height:var(--tap);display:flex;align-items:center;text-decoration:underline;text-underline-offset:.2em;list-style:none}
.cv summary::-webkit-details-marker{display:none}
.press{display:grid;grid-template-columns:repeat(2,1fr);gap:24px var(--gap)}
@media(min-width:900px){.press{grid-template-columns:repeat(4,1fr)}}
.press a{display:flex;flex-direction:column;gap:4px;font-size:var(--sm);line-height:20px}
.press img{width:100%;aspect-ratio:3/2;object-fit:contain;background:var(--paper);margin-bottom:6px}
.ex>li{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;gap:12px;padding:10px 0;border-bottom:1px solid var(--ink);font-size:var(--sm);line-height:20px}
/* «Выставки» (Игорь 16.10): год крупно слева и липнет при прокрутке, справа выставки — название, площадка · город, вид и даты */
.ex-year{display:grid;grid-template-columns:1fr;border-top:1px solid var(--ink);padding:12px 0 20px}
.ex-year .y{font-size:var(--title);line-height:1.25;padding-bottom:8px}
.ex2>li{display:flex;flex-direction:column;gap:2px;padding:10px 0 12px}
.ex2>li+li{border-top:1px solid color-mix(in srgb,var(--ink) 25%,transparent)}
.ex2 .t{text-transform:uppercase;letter-spacing:.02em;font-size:var(--sm);line-height:20px}
.ex2 .pl{font-size:var(--sm);line-height:20px}
.ex2 .k{font-size:var(--label);font-style:oblique}
@media(min-width:760px){.ex-year{grid-template-columns:minmax(0,1fr) minmax(0,3fr);gap:0 var(--pad);padding:16px 0 24px}
  .ex-year .y{position:sticky;top:calc(var(--bar) + 12px);align-self:start;font-size:calc(var(--title) * 1.6)}
  .ex2>li{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);column-gap:var(--pad);padding:4px 0 14px}
  .ex2>li:first-child{padding-top:6px}.ex2>li+li{padding-top:14px}
  .ex2 .k{grid-column:1}.ex2 .pl{grid-column:2;grid-row:1}}
@media(max-width:600px){.ex>li,.list>li{grid-template-columns:1fr auto}.ex>li>*:nth-child(2),.list>li>.o{grid-column:1/-1;grid-row:2}
  article:not(.work) .list>li>.r:nth-child(3){grid-column:1/-1;text-align:left}}                                /* №241 */
.steps{counter-reset:s;padding:8px 0}
.steps>li{counter-increment:s;display:grid;grid-template-columns:32px 1fr;padding:10px 0;border-bottom:1px solid var(--ink);max-width:44em}
.steps>li::before{content:counter(s);font-size:var(--label)}
.steps>li p{grid-column:2;padding-top:4px;line-height:1.45}
.steps.short>li{font-size:var(--sm)}
.plain>li{padding:6px 0;max-width:44em;line-height:1.45}
.plain>li::before{content:"— "}
.offer{max-width:44em}.offer dt{text-transform:uppercase;letter-spacing:.02em;font-size:var(--label);padding-top:16px}.offer dd{padding-top:4px;line-height:1.45}
.text h2.section{padding-top:32px}
.text .table{overflow-x:auto;max-width:44em;margin:8px 0 20px}                                        /* на телефоне листается сама таблица, не страница */
.text table{border-collapse:collapse;width:100%;min-width:34em}                         /* сравнение техник в журнале (SEO-GEO.md) */
.text th,.text td{text-align:left;vertical-align:top;padding:8px 12px 8px 0;border-bottom:1px solid currentColor;line-height:1.4}
.text th{font-size:var(--label);text-transform:uppercase;letter-spacing:.02em;font-weight:normal}
.text ul.dots{padding:0 0 12px 1.2em;max-width:40em;list-style:disc}.text ul.dots li{padding:0 0 6px;line-height:1.5}
.note.shop-end{padding-top:32px}                                       /* заметка магазина — вывод, не третья строка подписи (№578) */                                     /* метка раздела отделена от пунктов (№331) */
.page-designers .steps.short>li{max-width:44rem}                        /* rem — от корня, не от уменьшенного кегля (№331) */
.form-line{display:flex;gap:var(--pad);align-items:flex-end;max-width:520px}
/* «Коллекционерам» (Игорь 16.10): пункт — номер, название, строка «о чём»; на компьютере — три в ряд, у каждого своя линия сверху */
.idx{display:grid;grid-template-columns:1fr;gap:0 var(--pad);border-bottom:1px solid var(--ink)}
.idx>li{border-top:1px solid var(--ink)}
.idx a{display:grid;grid-template-columns:2.2em minmax(0,1fr);column-gap:8px;row-gap:4px;padding:14px 0 18px;align-items:baseline}
.idx .n{font-size:var(--label);grid-row:span 2}
.idx .t{font-size:var(--title);line-height:1.25}
.idx .d{grid-column:2;font-style:oblique;font-size:var(--sm);line-height:20px}
.idx a:hover .t,.idx a:focus-visible .t{text-decoration:underline;text-underline-offset:.2em}
@media(min-width:760px){.idx{grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:0}
  .idx a{grid-template-columns:1fr;padding:12px 0 8px;min-height:9.5em;align-content:start}.idx .n{grid-row:auto;padding-bottom:20px}.idx .d{grid-column:1;max-width:22em}}
.cert-check{margin-top:48px;border-top:1px solid var(--ink)}
.cert-check .section{padding-top:16px}
.cert-check .d{font-size:var(--sm);line-height:20px;max-width:28em}
@media(min-width:760px){.cert-check{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 var(--pad)}.cert-check>div+div{grid-column:2/-1;padding-top:16px}}
input{font:inherit;font-size:16px;border:0;border-bottom:1px solid var(--ink);outline:0;background:none;padding:10px 0;min-height:var(--tap);width:100%;color:var(--ink);border-radius:0;text-transform:uppercase}
::placeholder{color:var(--ink);font-style:oblique;opacity:1;text-transform:none}
.faces{display:flex;flex-wrap:wrap;gap:0 16px}
.faces li a,.faces li{display:flex;align-items:center;gap:8px;font-size:var(--label);min-height:var(--tap)}
.faces a span{text-decoration:underline;text-underline-offset:.2em}
.faces img{width:32px;height:32px;object-fit:cover}

/* подвал — полное меню; на телефоне «Меню» нижней полосы открывает его поверх страницы (#menu:target, без JS — №231) */
.foot{max-width:var(--wide);margin:48px auto 0;padding:24px var(--pad) calc(var(--bar) + var(--safe-b) + 24px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px var(--pad);font-size:var(--label);text-transform:uppercase;letter-spacing:.02em}
@media(min-width:900px){.foot{grid-template-columns:repeat(3,minmax(0,1fr))}}
.foot a{display:block;padding:13px 0;text-decoration:underline;text-underline-offset:.2em;line-height:1.2}  /* №224, №318: однострочная ≈ 44 */
/* зазор между ссылками подвала не зависит от числа строк (№521): одинаковые поля сверху и снизу вместо min-height с центровкой */
.foot .label{font-style:oblique;text-transform:none;letter-spacing:0;padding:0 0 4px;font-size:var(--label)}
.foot .copy{grid-column:1/-1;text-transform:none;letter-spacing:0}
.foot .copy a{display:inline}
.foot .req{text-transform:none;letter-spacing:0;font-size:.85em}   /* реквизиты продавца (20.10) — мелко, одной строкой с переносами */
.foot .copy .theme{display:inline-flex;align-items:center;text-transform:none;letter-spacing:0;text-decoration:underline;text-underline-offset:.2em;min-height:var(--tap)}   /* ночная тема (14.10); нажимается по высоте пальца (№634) */   /* ночная тема (14.10) */
.foot .close{display:none}
@media(max-width:360px){.foot{grid-template-columns:1fr}}   /* 320: колонки подвала одна под другой — пары не идут лесенкой (№574) */
/* меню — под верхней полосой: имя (на главную) и язык остаются; «Закрыть» — в нижней полосе на месте «Меню» (№440) */
#menu:target{position:fixed;inset:var(--bar) 0 0;z-index:25;background:var(--paper);margin:0;overflow:auto;max-width:none;padding-top:8px}
#menu:target .close{display:flex;position:fixed;bottom:0;top:auto;right:var(--pad);height:calc(var(--bar) + var(--safe-b));padding-bottom:var(--safe-b);min-height:var(--tap);text-transform:uppercase;align-items:center;background:var(--paper);z-index:26}

@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media print{.bar,.foot,.main,.actions-row,.hero-acts{display:none}main{padding-top:0}}

/* плавная смена страниц (скорость, 15.10): Safari 18.2+, Chrome 126+; остальные — как раньше; без анимаций — если человек их выключил */
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.18s}
@media(prefers-reduced-motion:reduce){@view-transition{navigation:none}}

/* открыто в Telegram из мини-аппа (вариант А, 15.10): без «Войти» — человек уже вошёл через Telegram; в нижней полосе — «Кабинет» */
.nav .tgonly{display:none}
html.tg .nav .tgonly{display:inline-flex}
html.tg .notg{display:none}   /* «Галерея в Telegram», «Нет Telegram?» — не внутри Telegram (№623) */
html.tg .bar .langs .login{display:none}

/* на узком телефоне раздел посередине не помещается рядом с названием и «Кабинетом» — прячем, он и так подчёркнут в нижней полосе */
@media(max-width:430px){.bar .section-name{visibility:hidden}}

/* фильтры (вариант А, этап 4, 15.10): первая строка — вид без метки слева и «доступно сейчас»; серия и художник — ниже, с меткой */
.filters.kinds{padding-left:0}
.filters .toggle{margin-left:24px}   /* «Доступно сейчас» — рядом с видами, а не у края (№640) */
.filters a:not(.cur)>span{text-decoration:underline;text-underline-offset:.25em}   /* невыбранный фильтр — ссылка-действие (№640) */
@media(max-width:599px){.filters .toggle{margin-left:0}}

/* «Для вас» на странице работы (вариант А, этап 2, 15.10): личное вошедшего и поля вопроса / предложения — в стиле состояний сайта */
.lk{padding:12px 0 4px;border-bottom:1px solid var(--ink);margin-bottom:12px}
.lk .label{margin-bottom:4px}
.lk-line{font-size:var(--sm);line-height:20px;padding:4px 0}
.lk-line .act,.lk .act{display:inline-flex;min-height:var(--tap);align-items:center;background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;text-underline-offset:.2em;cursor:pointer}
.lk-msg{font-style:oblique}.lk-msg.err{text-decoration:underline}
.lk-form{display:grid;gap:8px;padding:8px 0}
.lk-form textarea,.lk-form input{font:inherit;font-size:16px;border:1px solid var(--ink);background:var(--paper);color:var(--ink);padding:8px;border-radius:0;width:100%}
.lk-form .actions-row{gap:var(--pad)}
[data-fav]{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;margin-right:var(--pad);min-height:var(--tap)}
[data-fav][aria-pressed="true"]{text-decoration:underline;text-underline-offset:.2em}
[aria-busy="true"]{opacity:.6}

/* шапка на телефоне (15.10): название + «Кабинет» + RU · EN не помещались — до 430 px только другой язык */
@media(max-width:430px){.bar .langs b,.bar .langs span[aria-hidden]{display:none}.bar .langs a,.bar .langs>a:first-child{justify-content:flex-end}}   /* EN: «RU» — первый в ряду, но по правому полю (№624) */

/* последний аукцион на главной — свёрнут, раскрывается по нажатию; стрелка вниз — раскрыть, вверх — свернуть (15.10) */
.fold summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:12px;min-height:var(--tap)}
.fold summary::-webkit-details-marker{display:none}
.fold summary .note{grid-column:1;font-style:oblique}
.fold .chev{grid-column:2;grid-row:1/span 2;transition:transform .15s}
.fold[open] .chev{transform:rotate(180deg)}
.fold[open] .fold-open,.fold:not([open]) .fold-close{display:none}
.fold[open] summary{margin-bottom:16px}
.fold .lots{margin-top:0}
.ff summary{display:flex;justify-content:flex-start;gap:8px;text-transform:uppercase;font-size:var(--label)}
.ff[open] summary{margin-bottom:0}
@media(min-width:600px){.ff>summary{display:none}}   /* на широком серия и художник видны всегда (site.js раскрывает) */
.lots .lv-my.inv{white-space:normal;width:fit-content;max-width:100%;margin-top:2px}   /* «вас перебили» у плитки — плашкой, но переносится по ширине плитки (№621) */
.lots .bid{min-height:var(--tap);margin-top:-4px}                /* «Сделать ставку в канале · от N» под плиткой лота (№663) */
@media(prefers-reduced-motion:reduce){.fold .chev{transition:none}}

/* пятая проверка, раздел 7 */
@media(max-width:380px){html.tg .bar.bottom .nav .shop{display:none}}   /* в Telegram до 380 пять пунктов (с «Магазин ↗») тесно — «Магазин» в «Меню» (№631) */
@media(max-width:899px){.feature .hero img{object-position:center top}}  /* узкий герой на телефоне — по центру полей (№633) */

/* страница лота с живой лентой ставок /l/{ref} (BACKLOG п. 13, макет Игоря 16.10: design/prototypes/lot-live.html):
   миниатюра слева, справа — название, что за работа и чья, ставка крупно и лидер; ниже — время, кнопка в бота, все ставки */
.lotlive{max-width:720px}
.ll-head{display:grid;grid-template-columns:120px minmax(0,1fr);gap:14px;align-items:start;padding-top:8px}
.ll-head.noimg{grid-template-columns:minmax(0,1fr)}
@media(min-width:900px){.ll-head{grid-template-columns:240px minmax(0,1fr);gap:var(--pad)}}
.ll-img img{width:100%;height:auto}
.ll-title{font-size:var(--label);line-height:16px;letter-spacing:.02em;padding:0}
.ll-title a{text-decoration:underline;text-underline-offset:.2em}
.ll-kind{font-size:var(--sm);line-height:20px;padding-top:4px}
.ll-big{font-size:38px;line-height:1.05;padding-top:10px;white-space:nowrap}
.ll-big.long{font-size:28px}
.ll-word{font-size:30px;line-height:1.1;padding-top:10px;text-transform:uppercase;letter-spacing:.01em}
.ll-word.small{font-size:20px;line-height:1.25}
@media(min-width:900px){.ll-big{font-size:56px}.ll-big.long{font-size:40px}.ll-word{font-size:44px}.ll-word.small{font-size:26px}}
.ll-who{font-size:17px;line-height:1.3;padding-top:2px}
.ll-meta{font-size:var(--sm);line-height:22px;padding-top:12px}
.ll-me{font-size:var(--sm);line-height:20px;padding-top:12px}
.lotlive .main{margin-top:16px}
.ll-bids li{display:grid;grid-template-columns:3.4em minmax(0,1fr) auto;gap:10px;font-size:var(--sm);line-height:20px;padding:8px 0;border-bottom:1px solid var(--ink)}
.ll-bids .t{font-size:var(--label);padding-top:1px}
.ll-bids .a{text-align:right;white-space:nowrap}
.ll-bids .o{font-style:oblique}
.ll-bids li.ll-day{display:block;border-bottom:0;padding:14px 0 2px;font-size:var(--cap);font-style:oblique}
.lotlive .section{border-bottom:1px solid var(--ink);padding-bottom:8px}
