/* Знак студии León Verde v3 — стили. Источник: leonverde-podpis/v3/. Не менять на сайте клиента.
   Цвет — от подвала (currentColor): светлый, тёмный и цветной подвал работают без правок.
   Пути к шрифтам и монете — от этого файла, поэтому папку v3 копируют целиком. */
@font-face { font-family: "LV Cinzel v3"; font-weight: 600; font-display: swap; src: url(cinzel-600-v3.woff2) format("woff2"); }
@font-face { font-family: "LV Hand v3"; font-weight: 400; font-display: swap; src: url(hand-v3.woff2) format("woff2"); }

/* ОДНА СТРОКА (слово Яна 28.10.2026: «зачем монета сверху, подпись снизу… по горизонтали… геометрия, композиция нарушена»).
   Знак никогда не переносится: nowrap и flex: none — в чужом flex-ряду подвала он не сжимается и не ломается на две строки
   (так было: ряд «лого · © · знак» space-between на 900–1290 px сжимал знак до 360–450 px, flex-wrap ставил Instagram под монету).
   Ширина знака в одну строку ≈ 420 px × масштаб; на узком экране — заранее заданная компактная раскладка той же строкой
   (--lv-s: 0,8 до 599 px, 0,72 до 379 px), масштаб сайта --lv-u там не действует.
   Знак — последней строкой подвала, на одной оси с © клиента (обёртка .lv-end ниже или своя строка с теми же свойствами);
   в узкую колонку сетки (< 440 px) знак не ставить. Проверка — clean_pass.mjs, пункт «знак v3». */
.lv-sign { --lv-u: 1; --lv-s: var(--lv-u); --lv-line: rgba(127, 127, 127, .3); box-sizing: border-box; display: flex; flex-wrap: nowrap; flex: none; align-items: center; justify-content: center; gap: 0 calc(28px * var(--lv-s)); min-width: max-content; margin: 0; padding: 0; border: 0; color: inherit; line-height: 1; text-align: center; font-style: normal; white-space: nowrap; }
.lv-sign > * { flex: none; }
@media (max-width: 599px) { .lv-sign { --lv-s: .8; } }
@media (max-width: 379px) { .lv-sign { --lv-s: .72; } }
/* последняя строка подвала: © клиента и знак на одной оси (центры по вертикали), тонкая черта сверху.
   <div class="lv-end"><p>© 2026 Имя клиента</p> <div class="lv-sign" …></div></div>
   До 899 px — столбиком по центру (© над знаком), знак — всё равно одной строкой. */
.lv-end { --lv-line: rgba(127, 127, 127, .3); display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; gap: 16px 40px; margin: 40px 0 0; padding: 28px 0 0; border-top: 1px solid var(--lv-line); }
@supports (color: color-mix(in srgb, red 50%, transparent)) { .lv-end { --lv-line: color-mix(in srgb, currentColor 22%, transparent); } }
.lv-end > :not(.lv-sign) { margin: 0; min-width: 0; }
@media (max-width: 899px) { .lv-end { flex-direction: column; justify-content: center; text-align: center; } }
@supports (color: color-mix(in srgb, red 50%, transparent)) { .lv-sign { --lv-line: color-mix(in srgb, currentColor 22%, transparent); } }
.lv-sign *, .lv-sign *::before, .lv-sign *::after { box-sizing: border-box; }
.lv-sign a, .lv-sign a:hover, .lv-sign a:focus { color: inherit; text-decoration: none !important; border: 0; background: none; }

/* слева — логотип: монета + LEÓN VERDE, под ним по центру EX LEONE LUX */
.lv-sign .lv-logo { display: flex; flex-wrap: nowrap; align-items: center; gap: calc(14px * var(--lv-s)); }
.lv-sign .lv-coin { flex: none; position: relative; width: calc(56px * var(--lv-s)); height: calc(56px * var(--lv-s)); margin: 0; padding: 0; border: 0; border-radius: 50%; background: none; color: inherit; cursor: pointer; perspective: 420px; -webkit-tap-highlight-color: transparent; }
.lv-sign .lv-coin:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.lv-sign .lv-coin-in { position: absolute; inset: 0; transform-style: preserve-3d; transition: transform 1.1s cubic-bezier(.3, .75, .2, 1); }
.lv-sign .lv-face { position: absolute; inset: 0; border-radius: 50%; background: center / cover no-repeat; backface-visibility: hidden; -webkit-backface-visibility: hidden; box-shadow: 0 6px 14px -8px rgba(0, 0, 0, .55); }
.lv-sign .lv-front { background-image: url(moneta-96.webp); }
.lv-sign .lv-back { background-image: url(moneta-back.svg); transform: rotateY(180deg); }
.lv-sign .lv-coin.is-flipped .lv-coin-in { transform: rotateY(180deg); }
@media (hover: hover) { .lv-sign .lv-coin:not(.is-flipped):hover .lv-coin-in, .lv-sign .lv-coin:not(.is-flipped):focus-visible .lv-coin-in { transform: rotateY(180deg); } }
/* блик — слой поверх монеты: при появлении знака в экране, потом раз в 6 с, пока знак виден */
.lv-sign .lv-glint { position: absolute; inset: 0; z-index: 2; border-radius: 50%; overflow: hidden; pointer-events: none; }
.lv-sign .lv-glint::after { content: ""; position: absolute; top: -20%; bottom: -20%; left: -20%; width: 70%; background: linear-gradient(105deg, rgba(255,255,255,0) 0%, rgba(255,250,228,.25) 30%, rgba(255,253,240,.95) 50%, rgba(255,250,228,.25) 70%, rgba(255,255,255,0) 100%); transform: translateX(-120%) skewX(-12deg); }
.lv-sign.is-in .lv-glint::after { animation: lv-shine 6s .3s cubic-bezier(.45, .05, .35, 1) infinite; }
.lv-sign.is-in.is-out .lv-glint::after { animation-play-state: paused; }
@keyframes lv-shine { 0% { transform: translateX(-120%) skewX(-12deg); } 22%, 100% { transform: translateX(260%) skewX(-12deg); } }
/* Одна композиция (слово Яна 13.10 ≈11:1x): у обеих частей одна сетка — строка 1 (LEÓN VERDE | значок + leonverde.pe)
   и строка 2 (EX LEONE LUX | сайт сделан в León Verde) одной высоты; оба блока по центру монеты.
   Строка 1 — по нижнему краю (общая базовая линия), строка 2 — по верхнему. */
.lv-sign { --lv-r1: calc(30px * var(--lv-s)); --lv-r2: calc(14px * var(--lv-s)); --lv-rg: calc(5px * var(--lv-s)); }
.lv-sign .lv-name, .lv-sign .lv-made { display: grid; grid-template-rows: var(--lv-r1) var(--lv-r2); row-gap: var(--lv-rg); justify-items: center; align-content: center; }
.lv-sign .lv-name { position: relative; padding: 0 2px; opacity: .9; transition: opacity .2s; }
.lv-sign .lv-name:hover, .lv-sign .lv-name:focus-visible { opacity: 1; }
/* padding-left = разрядке: строки центрируются по буквам, без хвоста разрядки справа */
/* padding-left = разрядке: строки центрируются по буквам, без хвоста разрядки справа */
.lv-sign .lv-name b { align-self: end; display: block; font: 600 calc(16px * var(--lv-s))/1 "LV Cinzel v3", Georgia, serif; letter-spacing: .18em; padding-left: .18em; }
.lv-sign .lv-motto { align-self: start; display: block; font: 600 calc(10px * var(--lv-s))/1 "LV Cinzel v3", Georgia, serif; letter-spacing: .3em; padding-left: .3em; opacity: .66; }
/* касание ≥ 44 px: невидимое поле вокруг ссылки */
.lv-sign .lv-name::before, .lv-sign .lv-ig::before { content: ""; position: absolute; inset: -10px -8px; }

/* справа — значок Instagram + «leonverde.pe» рукописью; под ними по центру совсем мелко и тонко «сайт сделан в León Verde» */
/* тонкая черта между частями — на любой ширине: знак всегда одной строкой */
.lv-sign .lv-made { padding-left: calc(28px * var(--lv-s)); border-left: 1px solid var(--lv-line); }
/* сдвиг вниз = разница базовых линий рукописи и Cinzel (замер 13.10: 6 px при --lv-u 1) — «leonverde.pe» стоит на одной линии с LEÓN VERDE */
.lv-sign .lv-ig { align-self: end; transform: translateY(calc(6px * var(--lv-s))); position: relative; display: inline-flex; align-items: center; gap: calc(9px * var(--lv-s)); padding: 0 2px 0 0; border-radius: 6px; }
.lv-sign .lv-ig:focus-visible { outline: 2px solid currentColor; outline-offset: 6px; }
.lv-sign .lv-ig-i { display: inline-grid; place-items: center; flex: none; transition: transform .25s; transform: translateY(calc(-1px * var(--lv-s))); }
.lv-sign .lv-ig-i svg { display: block; width: calc(20px * var(--lv-s)); height: calc(20px * var(--lv-s)); }
.lv-sign .lv-ig:hover .lv-ig-i { transform: translateY(calc(-1px * var(--lv-s))) rotate(-8deg) scale(1.08); }
.lv-sign .lv-hand { display: inline-block; padding: 0 .12em; font: 400 calc(26px * var(--lv-s))/1 "LV Hand v3", cursive; white-space: nowrap; clip-path: inset(-40% -12% -40% -12%); transition: clip-path 1.2s .55s cubic-bezier(.45, .05, .3, 1); }
.lv-sign.js:not(.is-in) .lv-hand { clip-path: inset(-40% 100% -40% -12%); }
.lv-sign .lv-by { align-self: start; display: block; margin: 0; font-family: inherit; font-weight: 300; font-size: max(8.5px, calc(9.5px * var(--lv-s))); line-height: 1; letter-spacing: .05em; opacity: .5; white-space: nowrap; }

@media (prefers-reduced-motion: reduce) {
  .lv-sign .lv-coin-in { transition: none; }
  .lv-sign .lv-glint { display: none; }
  .lv-sign .lv-hand, .lv-sign.js:not(.is-in) .lv-hand { transition: none; clip-path: none; }
}
