/* ===== Сайт скульптора Сергея Кривцова — тёмно-золотая музейная палитра ===== */
:root {
  --bg: #100e0b;
  --bg-alt: #15120d;
  --surface: #1c1a17;
  --gold: #D4AF37;
  --gold-light: #E8C84A;
  --text: #f0f0f0;
  --text-2: #a8a8a8;
  --text-3: #6a6a6a;
  --border: rgba(212, 175, 55, .18);
  --serif: "Playfair Display", serif;
  --serif-2: "Cormorant Garamond", serif;
  --sans: "Inter", sans-serif;
  --script: "Marck Script", cursive;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
/* музейный свет: тёплая радиальная подсветка (живая, следует за курсором/скроллом) + мягкая виньетка */
body::before {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(130% 78% at calc(50% + var(--gx, 0px)) calc(-8% + var(--gy, 0px)), rgba(212,175,55,.075) 0%, rgba(212,175,55,.02) 27%, transparent 58%),
    radial-gradient(118% 92% at 50% 30%, #17130c 0%, #110f0b 50%, #0a0807 100%);
}
img { display: block; max-width: 100%; }
a { color: var(--gold); text-decoration: none; }
a:hover { color: var(--gold-light); }

.container { max-width: 1180px; margin: 0 auto; padding: 0 24px; }
section { padding: 104px 0; }
section:nth-of-type(even) { background-color: rgba(255, 246, 230, .018); }
/* свет под каждой секцией — контент сидит в «пятне света», как экспонат */
section:not(.hero) { background-image: radial-gradient(96% 56% at 50% -6%, rgba(212,175,55,.05) 0%, transparent 55%); }

h1, h2, h3 { font-family: var(--serif); font-weight: 600; line-height: 1.2; }
.section-title {
  font-size: clamp(28px, 4vw, 42px);
  text-align: center;
  margin-bottom: 12px;
}
.section-sub {
  font-family: var(--serif-2);
  font-size: 22px;
  color: var(--text-2);
  text-align: center;
  max-width: 640px;
  margin: 0 auto 48px;
}
.gold-line {
  width: 64px; height: 1px;
  background: var(--gold);
  margin: 20px auto 28px;
  position: relative;
}
.gold-line::after {
  content: "◆"; color: var(--gold); font-size: 9px;
  position: absolute; top: -7px; left: 50%; transform: translateX(-50%);
  background: inherit;
}

/* ===== Шапка ===== */
.site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 50;
  background: transparent;
  border-bottom: 1px solid transparent;
  transition: background .35s ease, border-color .35s ease;
}
.site-header.scrolled {
  background: rgba(13, 13, 13, .88);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(212, 175, 55, .22);
}
.site-header .container {
  display: flex; align-items: center; justify-content: space-between;
  height: 64px;
}
.logo { font-family: var(--serif); font-size: 19px; color: var(--text); letter-spacing: .04em; }
.logo span { color: var(--gold); }
.nav { display: flex; gap: 26px; }
.nav a { color: var(--text-2); font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
.nav a:hover { color: var(--gold-light); }
.burger {
  display: none; background: none; border: none; cursor: pointer;
  width: 30px; height: 22px; position: relative;
}
.burger span, .burger span::before, .burger span::after {
  content: ""; position: absolute; left: 0; width: 100%; height: 2px;
  background: var(--gold); transition: .25s;
}
.burger span { top: 10px; }
.burger span::before { top: -8px; }
.burger span::after { top: 8px; }

/* ===== HERO ===== */
.hero {
  min-height: 100vh;
  display: flex; align-items: center; justify-content: center;
  text-align: center;
  position: relative;
  background: #000;
  padding: 120px 24px 80px;
}
.hero::before {
  content: "";
  position: absolute; inset: 0;
  background: url("../img/works/tigr-i-krokodil-1.webp") center 38% / cover no-repeat;
  opacity: .5;
}
.hero::after {
  content: "";
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at center, transparent 30%, rgba(0,0,0,.78) 100%),
    linear-gradient(to bottom, rgba(13,13,13,.55), transparent 35%, rgba(13,13,13,.97));
}
.hero-inner { position: relative; z-index: 1; max-width: 820px; }
.hero-kicker {
  font-family: var(--serif-2); font-size: 19px; letter-spacing: .35em;
  text-transform: uppercase; color: var(--gold-light); margin-bottom: 22px;
}
.hero h1 {
  font-family: var(--script); font-weight: 400;
  font-size: clamp(46px, 8.4vw, 92px); line-height: 1.05;
  margin-bottom: 14px; color: #f5ecd2;
  text-shadow: 0 2px 30px rgba(0,0,0,.55);
}
.hero-tagline {
  font-family: var(--serif-2); font-size: clamp(20px, 3vw, 28px);
  color: var(--text-2); margin-bottom: 8px;
}
.hero-honor {
  display: inline-block;
  font-size: 13px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--gold);
  border: 1px solid var(--border);
  padding: 10px 22px; margin: 22px 0 38px;
}
.btn {
  display: inline-block;
  font-family: var(--sans); font-size: 13px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--gold); background: transparent;
  padding: 16px 38px;
  border: 1px solid rgba(212, 175, 55, .6);
  cursor: pointer;
  transition: .3s;
}
.btn:hover { background: var(--gold); border-color: var(--gold); color: #0d0d0d; }
.btn-ghost { border-color: rgba(212, 175, 55, .28); color: var(--text-2); }
.btn-ghost:hover { background: transparent; border-color: var(--gold); color: var(--gold-light); }
.hero-scroll {
  position: absolute; bottom: 26px; left: 50%; transform: translateX(-50%);
  color: var(--text-3); font-size: 22px; z-index: 1;
  animation: drift 2.2s ease-in-out infinite;
}
@keyframes drift { 50% { transform: translate(-50%, 8px); } }

/* ===== Статистика ===== */
.stats { padding: 64px 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.stats-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px;
  text-align: center;
}
.stat-num {
  font-family: var(--serif); font-size: clamp(26px, 3.4vw, 40px);
  color: var(--gold);
}
.stat-label { font-size: 13px; color: var(--text-2); margin-top: 6px; letter-spacing: .04em; }

/* ===== Биография ===== */
.bio-grid { display: grid; grid-template-columns: 1fr; gap: 40px; max-width: 800px; margin: 0 auto; }
.bio-text p { margin-bottom: 18px; color: var(--text-2); font-size: 17px; }
.bio-text p strong { color: var(--text); font-weight: 600; }
.bio-more { display: none; }
.bio-more.open { display: block; }
.bio-toggle {
  background: none; border: none; cursor: pointer;
  color: var(--gold); font-family: var(--sans); font-size: 13px;
  letter-spacing: .16em; text-transform: uppercase;
  padding: 10px 0; border-bottom: 1px solid var(--border);
}
.bio-toggle:hover { color: var(--gold-light); }

/* ===== Timeline ===== */
.timeline { max-width: 720px; margin: 0 auto; position: relative; padding-left: 36px; }
.timeline::before {
  content: ""; position: absolute; left: 8px; top: 6px; bottom: 6px;
  width: 1px; background: var(--border);
}
.tl-item { position: relative; padding-bottom: 34px; }
.tl-item:last-child { padding-bottom: 0; }
.tl-item::before {
  content: ""; position: absolute; left: -32px; top: 8px;
  width: 9px; height: 9px; transform: rotate(45deg);
  background: var(--gold);
}
.tl-year { font-family: var(--serif); font-size: 21px; color: var(--gold-light); }
.tl-text { color: var(--text-2); margin-top: 4px; }

/* ===== Работы ===== */
.filter-tabs {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 30px;
  margin-bottom: 48px;
}
.tab {
  background: none; border: none; cursor: pointer;
  color: var(--text-2); font-family: var(--sans); font-size: 12px;
  letter-spacing: .16em; text-transform: uppercase;
  padding: 10px 2px; transition: color .25s;
  position: relative;
}
.tab::after {
  content: ""; position: absolute; left: 50%; right: 50%; bottom: 4px;
  height: 1px; background: var(--gold); transition: left .3s, right .3s;
}
.tab:hover { color: var(--gold-light); }
.tab.active { color: var(--gold); }
.tab.active::after { left: 0; right: 0; }

.works-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
  gap: 22px;
}
.work-card {
  position: relative; overflow: hidden; cursor: pointer;
  background: var(--surface);
  border: 1px solid var(--border);
  aspect-ratio: 4 / 3.4;
}
.work-card.wide { grid-column: span 2; aspect-ratio: auto; }
.work-card img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .5s ease;
}
.work-card::after {       /* виньетка, «съедающая» разнобой фонов */
  content: ""; position: absolute; inset: 0; pointer-events: none;
  box-shadow: inset 0 0 90px 28px rgba(13, 13, 13, .82);
}
.work-card:hover { transform: translateY(-6px); }
.work-card:hover img { transform: scale(1.04); }
.work-overlay {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 1;
  padding: 44px 20px 18px;
  background: linear-gradient(to top, rgba(13,13,13,.95), transparent);
  opacity: 0; transform: translateY(10px);
  transition: .35s ease;
}
.work-card:hover .work-overlay { opacity: 1; transform: none; }
.work-overlay h3 { font-size: 19px; margin-bottom: 10px; }
.work-overlay .mini-btn {
  display: inline-block; font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--gold); border: 1px solid var(--border); padding: 8px 14px;
}
.work-card { transition: transform .35s ease; }
@media (hover: none) {
  .work-overlay { opacity: 1; transform: none; padding-top: 30px; }
}

/* ===== Lightbox ===== */
.lightbox {
  position: fixed; inset: 0; z-index: 100;
  background: rgba(8, 8, 8, .96);
  display: none;
  align-items: center; justify-content: center;
  padding: 24px;
}
.lightbox.open { display: flex; }
.lb-inner { max-width: 980px; width: 100%; }
.lb-stage { position: relative; text-align: center; }
.lb-stage img {
  margin: 0 auto; max-height: 70vh; max-width: 100%;
  border: 1px solid var(--border);
  background: var(--surface);
}
.lb-arrow {
  position: absolute; top: 50%; transform: translateY(-50%);
  background: rgba(13,13,13,.6); border: 1px solid var(--border);
  color: var(--gold); font-size: 22px; cursor: pointer;
  width: 46px; height: 46px; line-height: 1;
}
.lb-arrow:hover { background: var(--gold); color: #0d0d0d; }
.lb-prev { left: 8px; }
.lb-next { right: 8px; }
.lb-close {
  position: absolute; top: 18px; right: 22px;
  background: none; border: none; color: var(--text-2);
  font-size: 34px; cursor: pointer; z-index: 2;
}
.lb-close:hover { color: var(--gold); }
.lb-caption { text-align: center; margin-top: 18px; }
.lb-caption h3 { font-size: 24px; }
.lb-caption .lb-series { font-family: var(--serif-2); color: var(--text-3); font-size: 16px; }
.lb-caption .lb-details { color: var(--text-2); font-size: 14px; margin-top: 6px; }
.lb-caption .lb-count { color: var(--text-3); font-size: 12px; margin-top: 6px; letter-spacing: .1em; }
.lb-caption .btn { margin-top: 16px; padding: 12px 28px; }

/* ===== Рабочий процесс ===== */
.process-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px;
}
.process-step {
  background: var(--surface); border: 1px solid var(--border);
  padding: 30px 24px;
}
.process-step .num {
  font-family: var(--serif); font-size: 38px; color: var(--gold);
  opacity: .55;
}
.process-step h3 { font-size: 19px; margin: 10px 0 8px; }
.process-step p { color: var(--text-2); font-size: 14px; }
.process-photo {
  margin-top: 16px; height: 110px;
  border: 1px dashed var(--border);
  display: flex; align-items: center; justify-content: center;
  color: var(--text-3); font-size: 12px; letter-spacing: .08em;
}

/* ===== Заказ ===== */
.commission { text-align: center; }
.commission-box {
  max-width: 760px; margin: 0 auto;
  border: 1px solid var(--border);
  padding: 56px 40px;
  background:
    linear-gradient(var(--surface), var(--surface)) padding-box;
}
.commission-box h2 { font-size: clamp(26px, 3.6vw, 36px); margin-bottom: 18px; }
.commission-box p { color: var(--text-2); max-width: 580px; margin: 0 auto 14px; }
.commission-box .btn { margin-top: 18px; }

/* ===== Признание рынком ===== */
.market-grid { max-width: 760px; margin: 0 auto; text-align: center; }
.market-grid p { color: var(--text-2); margin-bottom: 16px; }
.market-sample {
  font-family: var(--serif-2); font-size: 19px; color: var(--text);
  border-left: 2px solid var(--gold);
  padding: 14px 22px; margin: 26px auto;
  max-width: 560px; text-align: left;
  background: var(--surface);
}
.market-sample span { display: block; font-family: var(--sans); font-size: 13px; color: var(--text-3); margin-top: 6px; }

/* ===== Списки (выставки, преподавание) ===== */
.plain-list { max-width: 720px; margin: 0 auto; list-style: none; }
.plain-list li {
  padding: 18px 0; border-bottom: 1px solid var(--border);
  color: var(--text-2);
  display: flex; gap: 22px;
}
.plain-list li:last-child { border-bottom: none; }
.plain-list .when {
  font-family: var(--serif); color: var(--gold-light);
  flex: 0 0 92px; font-size: 17px;
}

/* ===== Контакты ===== */
.contacts-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 48px;
  max-width: 920px; margin: 0 auto;
}
.contact-buttons { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.contact-btn {
  display: flex; align-items: center; gap: 12px;
  border: 1px solid var(--border); padding: 15px 24px;
  color: var(--text); font-size: 15px; width: 100%;
  transition: .25s;
}
.contact-btn:hover { border-color: var(--gold); color: var(--gold-light); }
.contact-btn .ico { font-size: 20px; color: var(--gold); width: 24px; text-align: center; }
svg.ico { width: 20px; height: 20px; flex: 0 0 20px; color: var(--gold); }
.float-contacts a svg { width: 20px; height: 20px; display: block; }
.contact-form label { display: block; font-size: 13px; color: var(--text-2); margin: 0 0 6px; }
.contact-form input, .contact-form textarea {
  width: 100%; margin-bottom: 16px;
  background: var(--surface); border: 1px solid var(--border);
  color: var(--text); font-family: var(--sans); font-size: 15px;
  padding: 13px 14px;
}
.contact-form input:focus, .contact-form textarea:focus { outline: none; border-color: var(--gold); }
.form-note {
  display: none; margin-top: 14px; padding: 18px;
  border: 1px solid var(--border); background: var(--surface);
  color: var(--text-2); font-size: 14px;
}
.form-note.show { display: block; }
.form-note a { display: inline-block; margin: 10px 12px 0 0; }

/* ===== Footer ===== */
.site-footer {
  border-top: 1px solid var(--border);
  padding: 34px 0; text-align: center;
  color: var(--text-3); font-size: 13px;
}
.site-footer button {
  background: none; border: none; color: var(--text-3);
  cursor: pointer; font-size: 13px; text-decoration: underline;
}
.site-footer button:hover { color: var(--gold); }

/* ===== Floating ===== */
.float-contacts {
  position: fixed; right: 22px; bottom: 22px; z-index: 60;
  display: flex; flex-direction: column; gap: 10px;
}
.float-contacts a {
  width: 52px; height: 52px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 22px;
  background: var(--surface); border: 1px solid var(--gold);
  color: var(--gold);
  box-shadow: 0 4px 18px rgba(0,0,0,.5);
  transition: .25s;
}
.float-contacts a:hover { background: var(--gold); color: #0d0d0d; }

/* ===== Модалка privacy ===== */
.modal {
  position: fixed; inset: 0; z-index: 110;
  background: rgba(8,8,8,.9);
  display: none; align-items: center; justify-content: center; padding: 24px;
}
.modal.open { display: flex; }
.modal-box {
  max-width: 640px; max-height: 80vh; overflow: auto;
  background: var(--surface); border: 1px solid var(--border);
  padding: 38px;
}
.modal-box h3 { margin-bottom: 14px; }
.modal-box p { color: var(--text-2); font-size: 14px; margin-bottom: 12px; }

/* ===== Адаптив ===== */
@media (max-width: 900px) {
  .process-grid { grid-template-columns: repeat(2, 1fr); }
  .contacts-grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  section { padding: 64px 0; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .nav {
    position: fixed; top: 64px; right: 0; left: 0;
    background: rgba(13,13,13,.98);
    flex-direction: column; gap: 0;
    border-bottom: 1px solid var(--border);
    display: none;
  }
  .nav.open { display: flex; }
  .nav a { padding: 15px 24px; border-top: 1px solid rgba(212,175,55,.08); }
  .burger { display: block; }
  .work-card.wide { grid-column: span 1; aspect-ratio: 4 / 3.4; }
  .lb-arrow { width: 38px; height: 38px; font-size: 17px; }
}
@media (min-width: 721px) {
  .works-grid { grid-template-columns: repeat(3, 1fr); }
}

/* ===== v2: фото процесса, Ken Burns, reveal-анимации ===== */
.process-photo.has-img {
  border: 1px solid var(--border);
  height: 200px; padding: 0; overflow: hidden;
}
.process-photo.has-img img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .6s ease;
}
.process-step:hover .process-photo.has-img img { transform: scale(1.05); }

/* Hero: медленный кинематографичный наезд */
.hero::before {
  animation: heroZoom 22s ease-out forwards;
  will-change: transform;
}
@keyframes heroZoom {
  from { transform: scale(1.12); }
  to   { transform: scale(1); }
}

/* Появление секций при скролле */
.reveal {
  opacity: 0; transform: translateY(26px);
  transition: opacity .7s ease, transform .7s ease;
}
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .hero::before { animation: none; }
  .reveal { opacity: 1; transform: none; transition: none; }
}

/* ===== v2: hero-слайдшоу + музейные собрания ===== */
.hero::before { content: none; }           /* фон теперь — слайдшоу */
.hero-slides { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.hero-slide {
  position: absolute; inset: 0;
  background-size: cover; background-position: center 40%;
  opacity: 0; transform: scale(1.06);
  transition: opacity 1.6s ease, transform 7s ease-out;
  will-change: opacity, transform;
}
.hero-slide.active { opacity: .5; transform: scale(1); }
@media (prefers-reduced-motion: reduce) {
  .hero-slide { transition: opacity .6s ease; transform: none; }
}

.museums-grid { display: grid; gap: 18px; grid-template-columns: 1fr; margin-top: 8px; }
@media (min-width: 721px) { .museums-grid { grid-template-columns: 1fr 1fr; } }
.museum-card {
  border: 1px solid var(--border); background: #1c1a17;
  padding: 26px 24px; box-shadow: inset 0 0 60px rgba(0,0,0,.45);
}
.museum-card h3 { font-family: var(--serif); color: var(--gold-light); margin-bottom: 10px; font-size: 20px; }
.museum-card p { color: var(--text-2); font-size: 15px; line-height: 1.6; }
.museums-note { margin-top: 16px; color: var(--text-3); font-size: 14px; }

/* ===== v2: honeypot + успех формы ===== */
#f-website {
  position: absolute !important; left: -9999px !important;
  width: 1px; height: 1px; opacity: 0; pointer-events: none;
}
.form-success {
  border: 1px solid var(--gold); background: rgba(212,175,55,.08);
  color: var(--gold-light); padding: 20px; text-align: center;
  font-family: var(--serif-2); font-size: 18px; line-height: 1.5;
}

/* ===== v3: вертушка / зум / шеринг / цена ===== */
.work-card { position: relative; }
.turn-badge {
  position: absolute; top: 10px; right: 10px; z-index: 2;
  font-size: 11px; letter-spacing: .12em; color: var(--gold-light);
  border: 1px solid var(--gold); border-radius: 999px;
  padding: 3px 9px; background: rgba(0,0,0,.45); backdrop-filter: blur(2px);
  pointer-events: none;
}

.lb-stage { position: relative; }
.lb-stage.turnable { cursor: grab; }
.lb-stage.grabbing { cursor: grabbing; }
.lb-stage.is-zoomed { cursor: crosshair; overflow: hidden; }
#lb-img { transition: transform .25s ease; transform-origin: center center; max-width: 100%; }
#lb-img.zoomed { transform: scale(2.3); cursor: crosshair; }

.lb-zoom {
  position: absolute; bottom: 12px; right: 12px; z-index: 3;
  width: 40px; height: 40px; border-radius: 50%;
  background: rgba(0,0,0,.55); color: var(--gold-light);
  border: 1px solid var(--border); font-size: 17px; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .2s, color .2s;
}
.lb-zoom:hover { background: rgba(0,0,0,.8); color: #fff; }

.lb-hint {
  position: absolute; bottom: 12px; left: 12px; z-index: 3;
  font-size: 11px; letter-spacing: .08em; color: var(--text-2);
  background: rgba(0,0,0,.5); padding: 5px 11px; border-radius: 999px;
  pointer-events: none;
}
.lb-price {
  font-family: var(--serif-2); color: var(--gold-light);
  font-size: 17px; margin: 6px 0 14px; letter-spacing: .02em;
}
.lb-share { margin-left: 10px; }
@media (max-width: 560px) {
  .lb-share { margin-left: 0; margin-top: 10px; display: inline-block; }
  .lb-hint { font-size: 10px; }
}

/* ===== v3: переключатель языка ===== */
.lang-switch {
  border: 1px solid var(--border); border-radius: 4px;
  padding: 4px 10px !important; font-size: 12px; letter-spacing: .1em;
  color: var(--gold-light) !important;
}
.lang-switch:hover { border-color: var(--gold); }

/* ===== v4: кнопка «наверх» + активный пункт меню ===== */
.to-top {
  position: fixed; right: 22px; bottom: 92px; z-index: 50;
  width: 46px; height: 46px; border-radius: 50%;
  background: rgba(20,18,15,.85); color: var(--gold-light);
  border: 1px solid var(--gold); font-size: 20px; cursor: pointer;
  opacity: 0; pointer-events: none; transform: translateY(10px);
  transition: opacity .3s ease, transform .3s ease, background .2s;
  display: flex; align-items: center; justify-content: center;
}
.to-top.show { opacity: 1; pointer-events: auto; transform: none; }
.to-top:hover { background: var(--gold); color: #0d0d0d; }
.nav a.active { color: var(--gold-light); }
.nav a.active::after {
  content: ""; display: block; height: 1px; background: var(--gold);
  margin-top: 3px;
}
@media (prefers-reduced-motion: reduce) { .to-top { transition: opacity .2s; } }

/* ===== v5: блок источников (доверие) ===== */
.sources-row { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin-top: 12px; }
.source-link {
  border: 1px solid var(--border); color: var(--text-2); text-decoration: none;
  padding: 13px 24px; font-size: 14px; letter-spacing: .03em;
  display: inline-flex; align-items: center; gap: 9px; transition: border-color .2s, color .2s;
}
.source-link::before { content: "✓"; color: var(--gold); font-size: 13px; }
.source-link:hover { border-color: var(--gold); color: var(--gold-light); }

/* ===== v6: виньетка, проявка фото, золотой скроллбар, метка аукциона ===== */
.work-card::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  box-shadow: inset 0 0 55px rgba(0,0,0,.5);
}
.work-card .turn-badge, .work-card .work-overlay { z-index: 2; }

.work-card img {
  opacity: 0; transform: scale(1.02);
  transition: opacity .7s ease, transform .7s ease;
}
.work-card img.loaded { opacity: 1; transform: none; }

.lb-auction { color: var(--gold); font-size: 13px; letter-spacing: .04em; margin-bottom: 6px; }

/* Золотой скроллбар */
html { scrollbar-color: #6f5e2e #0d0d0d; scrollbar-width: thin; }
::-webkit-scrollbar { width: 12px; height: 12px; }
::-webkit-scrollbar-track { background: #0d0d0d; }
::-webkit-scrollbar-thumb { background: #3a3220; border-radius: 8px; border: 3px solid #0d0d0d; }
::-webkit-scrollbar-thumb:hover { background: var(--gold); }

@media (prefers-reduced-motion: reduce) {
  .work-card img { opacity: 1; transform: none; transition: none; }
}

/* ===== v7: монограмма в шапке + подпись мастера ===== */
.logo { display: inline-flex; align-items: center; gap: 11px; }
.logo-mark { width: 34px; height: 34px; display: block; border-radius: 3px; }
.signature {
  display: block; height: 56px; width: auto; margin-top: 28px;
  opacity: .92; filter: drop-shadow(0 1px 2px rgba(0,0,0,.4));
}
@media (max-width: 560px) { .logo-mark { width: 28px; height: 28px; } .signature { height: 46px; } }

/* ===== v8: свечение под работами + 2 аукционных образца + мастерская ===== */
.work-card { background: radial-gradient(ellipse at 50% 42%, #262626 0%, #141414 58%, #0d0d0d 100%); }
.lb-stage  { background: radial-gradient(ellipse at 50% 45%, #1d1d1d 0%, #0d0d0d 68%); }

.market-samples { display: flex; flex-wrap: wrap; gap: 16px; justify-content: center; margin: 22px 0; }
.market-samples .market-sample { margin: 0; flex: 1 1 260px; max-width: 380px; line-height: 1.55; }

.studio-note { color: var(--text-2); margin-top: 10px; font-size: 15px; }

/* ===== v9: 2 колонки, фото целиком, зернистость, блок-цитата ===== */
@media (min-width: 721px) {
  .works-grid { grid-template-columns: repeat(2, 1fr); gap: 30px; }
}
.work-card { aspect-ratio: 4 / 3.6; padding: 20px; box-sizing: border-box; }
.work-card img { object-fit: contain; }
.work-card::after { box-shadow: inset 0 0 70px rgba(0,0,0,.32); }

/* благородная зернистость поверх фона */
/* благородная фактура камня поверх фона (бесшовная, едва заметная) */
body::after {
  content: ""; position: fixed; inset: 0; z-index: 3; pointer-events: none;
  opacity: .06; mix-blend-mode: overlay;
  background-image: url("/img/texture-stone.webp?v=1");
  background-size: 480px 480px;
}

/* блок-цитата (кредо мастера) */
.credo { padding: clamp(70px, 11vw, 140px) 24px; text-align: center; }
.credo blockquote {
  max-width: 920px; margin: 0 auto; position: relative;
  font-family: var(--script); font-style: normal;
  font-size: clamp(26px, 4vw, 46px); line-height: 1.45; color: #f2e9d2;
}
.credo blockquote::before {
  content: "“"; font-family: var(--serif); font-style: normal;
  color: var(--gold); font-size: 2.4em; line-height: 0;
  display: block; margin-bottom: 18px;
}
.credo cite {
  display: block; margin-top: 30px; font-style: normal;
  font-family: var(--sans, "Inter", sans-serif); font-size: 14px;
  letter-spacing: .18em; text-transform: uppercase; color: var(--gold);
}

/* ===== v10: подписи всегда видны + структура карточки ===== */
.work-card {
  aspect-ratio: auto !important; padding: 0 !important;
  background: #141414 !important; display: flex; flex-direction: column;
  border: 1px solid var(--border);
}
.work-card::after { content: none !important; }
.work-card:hover { transform: translateY(-6px); }

.work-img {
  position: relative; aspect-ratio: 4 / 3.4; overflow: hidden;
  padding: 22px; box-sizing: border-box;
  background: radial-gradient(ellipse at 50% 42%, #282828 0%, #151515 60%, #0e0e0e 100%);
}
.work-img img {
  width: 100%; height: 100%; object-fit: contain;
  opacity: 0; transform: scale(1.02);
  transition: opacity .7s ease, transform .5s ease;
}
.work-img img.loaded { opacity: 1; transform: none; }
.work-card:hover .work-img img { transform: scale(1.045); }

.work-cap { padding: 15px 18px 18px; text-align: center; }
.work-cap h3 { font-family: var(--serif); font-size: 18px; color: var(--text); margin: 0 0 5px; line-height: 1.25; }
.work-cat { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--gold); }

.work-hint {
  position: absolute; left: 50%; bottom: 18px; transform: translate(-50%, 8px);
  opacity: 0; transition: opacity .25s ease, transform .25s ease; z-index: 3;
  border: 1px solid var(--gold); color: var(--gold-light); background: rgba(0,0,0,.55);
  padding: 8px 18px; font-size: 12px; letter-spacing: .06em; white-space: nowrap;
}
.work-card:hover .work-hint { opacity: 1; transform: translate(-50%, 0); }
@media (prefers-reduced-motion: reduce) { .work-img img { opacity: 1; transform: none; } }

/* ===== v11: расширенный подвал + лента миниатюр ракурсов ===== */
.footer-grid {
  display: grid; grid-template-columns: 1.5fr 1fr 1.1fr; gap: 30px;
  padding-bottom: 28px; border-bottom: 1px solid var(--border); text-align: left;
}
.footer-brand { display: flex; gap: 12px; align-items: center; }
.footer-brand strong { color: var(--text); font-family: var(--serif); font-size: 17px; }
.footer-brand span { color: var(--text-3); font-size: 13px; }
.footer-links { display: flex; flex-direction: column; gap: 9px; }
.footer-links a, .footer-contacts a { color: var(--text-2); text-decoration: none; font-size: 14px; }
.footer-links a:hover, .footer-contacts a:hover { color: var(--gold-light); }
.footer-contacts { display: flex; flex-direction: column; gap: 9px; }
.footer-msgr { color: var(--text-3); font-size: 14px; }
.footer-msgr a { color: var(--text-2); }
.footer-bottom { padding-top: 22px; color: var(--text-3); font-size: 13px; text-align: center; }
@media (max-width: 720px) {
  .footer-grid { grid-template-columns: 1fr; gap: 24px; text-align: center; }
  .footer-brand { justify-content: center; }
  .footer-links, .footer-contacts { align-items: center; }
}

.lb-thumbs { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin: 16px auto 0; max-width: 600px; }
.lb-thumb {
  width: 56px; height: 44px; border: 1px solid var(--border); padding: 0;
  background-size: cover; background-position: center; background-color: #141414;
  cursor: pointer; opacity: .5; transition: opacity .2s ease, border-color .2s ease;
}
.lb-thumb:hover { opacity: .85; }
.lb-thumb.active { opacity: 1; border-color: var(--gold); }

/* ===== Атмосферный фон: текучий свет (aurora) + призрачные силуэты + золотая пыль ===== */
.fx-aurora {
  position: fixed; inset: -25%; z-index: -1; pointer-events: none;
  background:
    radial-gradient(40vw 32vw at 22% 26%, rgba(212,175,55,.055), transparent 60%),
    radial-gradient(36vw 30vw at 80% 68%, rgba(176,118,42,.05), transparent 62%),
    radial-gradient(30vw 26vw at 60% 40%, rgba(212,175,55,.03), transparent 60%);
  animation: auroraDrift 30s ease-in-out infinite alternate;
  will-change: transform;
}
@keyframes auroraDrift {
  from { transform: translate3d(-2%, -1.5%, 0) scale(1); }
  to   { transform: translate3d(3%, 2%, 0) scale(1.1); }
}
.fx-ghost {
  position: fixed; z-index: -1; pointer-events: none;
  opacity: .05; filter: grayscale(.3) brightness(1.4) blur(1px);
  width: 48vw; max-width: 760px; height: auto;
  mix-blend-mode: screen; will-change: transform;
}
.fx-dust { position: fixed; inset: 0; z-index: -1; pointer-events: none; }
@media (prefers-reduced-motion: reduce) {
  .fx-aurora { animation: none; }
  .fx-dust { display: none; }
}
@media (max-width: 720px) {
  .fx-ghost { opacity: .035; width: 80vw; }
}

/* Клавиатурная навигация по галерее */
.work-card:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; border-radius: 4px; }
.work-card { cursor: pointer; }
