/* LiveMonitor — живой слой поверх вёрстки дизайна.
   Подключается в каждый экран сборкой (prototype/build.py). Вёрстку экранов не меняет. */

@view-transition { navigation: auto; }
.lm .side { view-transition-name: lm-side; }
.lm .top { view-transition-name: lm-top; }
::view-transition-old(root) { animation: lmvOut .18s ease-in both; }
::view-transition-new(root) { animation: lmvIn .32s cubic-bezier(.2,.8,.2,1) both; }
::view-transition-group(lm-side), ::view-transition-group(lm-top) { animation-duration: .25s; }
@keyframes lmvOut { to { opacity: 0; transform: translateY(-6px) scale(.995); } }
@keyframes lmvIn { from { opacity: 0; transform: translateY(10px) scale(.995); } }

/* запасной переход для браузеров без view transitions */
html.lm-novt body { animation: lmBodyIn .35s cubic-bezier(.2,.8,.2,1) both; }
html.lm-leave body { opacity: 0; transform: translateY(-6px); transition: opacity .16s ease, transform .16s ease; }
@keyframes lmBodyIn { from { opacity: 0; transform: translateY(8px); } }

html.lm-dark { background: #0A0C10 !important; }
html { scroll-behavior: smooth; }

/* появление блоков */
.lm-rv { opacity: 0; transform: translateY(14px); }
.lm-rv.lm-in { opacity: 1; transform: none; transition: opacity .55s cubic-bezier(.2,.8,.2,1), transform .55s cubic-bezier(.2,.8,.2,1); transition-delay: var(--d, 0ms); }
.lm-rv-l { transform: translateX(-24px); }
.lm-rv-r { transform: translateX(24px); }
.lm-rv-s { transform: scale(.96); }

/* отклик на наведение и нажатие */
.lm a.cd, .lm a.ot, .lm a.c.g4, .lm .lm-hov { transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease; }
.lm a.cd:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(20,23,28,.10); border-color: var(--hl2); }
.lm a.ot:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(20,23,28,.10); }
.lm section a.c.g4:hover, .lm a.c.g6:hover { background: var(--pf); }
.lm .nav { transition: background-color .15s ease, color .15s ease, padding-left .2s ease; cursor: pointer; }
.lm .nav:not(.on):hover { background: var(--sk); color: var(--i9); }
.lm .btn, .lm .gb, .lm .gl, .lm .chip, .lm .seg span, .lm button { transition: transform .12s ease, background-color .15s ease, box-shadow .15s ease, filter .15s ease; position: relative; overflow: hidden; }
.lm .btn:hover { filter: brightness(.97); box-shadow: 0 2px 8px rgba(20,23,28,.08); }
.lm .btn.pr:hover, .lm .gb:hover { filter: brightness(1.12); }
.lm .gb:hover { transform: translateY(-1px); }
.lm .btn:active, .lm .gb:active, .lm .gl:active, .lm .chip:active, .lm button:active { transform: scale(.97); }
.lm .chip, .lm .seg span, .lm .tabs span { cursor: pointer; user-select: none; }
.lm .chip:hover { filter: brightness(.96); }
.lm .seg span:not(.on):hover { color: var(--i9); background: color-mix(in srgb, var(--sf) 50%, transparent); }
.lm .tb tbody tr, .lm .tb tr { transition: background-color .12s ease; }
.lm .tb tr:hover td { background: var(--pf); }
.lm .inp { transition: box-shadow .15s ease, background-color .15s ease; }
.lm .inp:hover { background: color-mix(in srgb, var(--sk) 80%, var(--i9) 4%); }
.lm .inp.lm-focus, .lm input:focus { box-shadow: 0 0 0 2px var(--ac); }
.lm-click { cursor: pointer; }

.lm-ripple { position: absolute; border-radius: 50%; pointer-events: none; transform: scale(0); background: currentColor; opacity: .18; animation: lmRip .55s ease-out forwards; }
@keyframes lmRip { to { transform: scale(2.6); opacity: 0; } }

/* статусы живут */
.lm .bd.cr { animation: lmGlow 2.4s ease-in-out infinite; }
@keyframes lmGlow { 50% { box-shadow: 0 0 0 4px color-mix(in srgb, var(--cr) 18%, transparent); } }
.lm a.ot[style*="--cr"] { animation: lmTile 2.4s ease-in-out infinite; }
@keyframes lmTile { 50% { box-shadow: 0 0 0 3px color-mix(in srgb, var(--cr) 22%, transparent); } }
.lm-livedot { animation: lmBlink 1.6s ease-in-out infinite; transform-origin: center; transform-box: fill-box; }
@keyframes lmBlink { 50% { opacity: .35; } }
.lm-flash { animation: lmFlash 1.1s ease-out; border-radius: 3px; }
@keyframes lmFlash { from { background: color-mix(in srgb, var(--ac) 22%, transparent); } to { background: transparent; } }
text.lm-flash { animation: lmFlashT 1.1s ease-out; }
@keyframes lmFlashT { 30% { opacity: .35; } }

/* графики */
.lm-draw { stroke-dasharray: 1; stroke-dashoffset: 1; animation: lmDraw 1.4s cubic-bezier(.4,0,.2,1) forwards; animation-delay: var(--d, 0ms); }
@keyframes lmDraw { to { stroke-dashoffset: 0; } }
.lm-grow { transform-box: fill-box; transform-origin: 50% 100%; transform: scaleY(0); animation: lmGrow .7s cubic-bezier(.2,.8,.2,1) forwards; animation-delay: var(--d, 0ms); }
@keyframes lmGrow { to { transform: scaleY(1); } }
.lm-growx { transform-origin: 0 50%; transform: scaleX(0); animation: lmGrowX .8s cubic-bezier(.2,.8,.2,1) forwards; animation-delay: var(--d, 0ms); }
@keyframes lmGrowX { to { transform: scaleX(1); } }
.lm-xh { pointer-events: none; }
.lm-tip { position: fixed; z-index: 9990; pointer-events: none; background: #14171C; color: #fff; font: 500 12px 'IBM Plex Mono', ui-monospace, monospace; padding: 6px 9px; border-radius: 6px; box-shadow: 0 8px 20px rgba(0,0,0,.25); white-space: nowrap; transform: translate(-50%, calc(-100% - 12px)); opacity: 0; transition: opacity .12s; }
.lm-tip.on { opacity: 1; }
.lm-tip b { font-weight: 500; color: #9FB0FF; margin-right: 6px; }

/* план объекта */
.lm-mk { cursor: pointer; transition: filter .15s ease; }
.lm-mk:hover { filter: drop-shadow(0 4px 8px rgba(20,23,28,.3)) brightness(1.04); }
.lm-plan { cursor: grab; transition: none; }
.lm-plan.lm-anim { transition: all .3s ease; }
.lm-plan:active { cursor: grabbing; }

/* переключатели */
.lm-sw { cursor: pointer; transition: background-color .2s ease; }
.lm-sw > span { transition: transform .22s cubic-bezier(.3,1.4,.5,1); }

/* тосты */
.lm-toasts { position: fixed; right: 20px; bottom: 20px; z-index: 9999; display: flex; flex-direction: column; gap: 8px; align-items: flex-end; pointer-events: none; }
.lm-toast { pointer-events: auto; display: flex; align-items: center; gap: 10px; min-width: 260px; max-width: 420px; padding: 12px 14px; border-radius: 10px; background: #1B1F26; color: #E9EBEE; font: 400 13.5px/1.4 'IBM Plex Sans', system-ui, sans-serif; box-shadow: 0 14px 34px rgba(0,0,0,.28); animation: lmToastIn .35s cubic-bezier(.2,.9,.3,1.2) both; overflow: hidden; position: relative; }
.lm-toast.out { animation: lmToastOut .25s ease-in forwards; }
.lm-toast i { flex: none; width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; background: #35B97C; color: #0F1216; font-style: normal; font-weight: 700; font-size: 12px; }
.lm-toast.info i { background: #8094F2; }
.lm-toast.warn i { background: #EF5A4E; color: #fff; }
.lm-toast .pg { position: absolute; left: 0; bottom: 0; height: 3px; background: #8094F2; width: 0; transition: width 1.4s ease; }
.lm-toast .spin { width: 16px; height: 16px; border-radius: 50%; border: 2px solid rgba(255,255,255,.25); border-top-color: #fff; animation: lmSpin .7s linear infinite; background: none; }
@keyframes lmSpin { to { transform: rotate(360deg); } }
@keyframes lmToastIn { from { opacity: 0; transform: translateY(16px) scale(.96); } }
@keyframes lmToastOut { to { opacity: 0; transform: translateX(30px); } }

.lm-btn-busy { pointer-events: none; }
.lm-btn-busy::after { content: ''; position: absolute; inset: 0; background: inherit; }
.lm-btn-busy::before { content: ''; position: absolute; z-index: 2; left: 50%; top: 50%; width: 16px; height: 16px; margin: -8px 0 0 -8px; border-radius: 50%; border: 2px solid currentColor; border-right-color: transparent; animation: lmSpin .7s linear infinite; }

/* всплывающие окна: уведомления, меню, палитра */
.lm-pop { position: fixed; z-index: 9995; width: 360px; background: var(--lm-sf, #fff); color: var(--lm-i9, #14171C); border: 1px solid rgba(20,23,28,.1); border-radius: 12px; box-shadow: 0 20px 50px rgba(20,23,28,.22); font: 400 13px/1.4 'IBM Plex Sans', system-ui, sans-serif; overflow: hidden; transform-origin: top right; animation: lmPop .2s cubic-bezier(.2,.9,.3,1.2) both; }
.lm-pop.menu { width: 220px; padding: 6px; }
.lm-pop.menu button { all: unset; display: block; width: 100%; box-sizing: border-box; padding: 8px 10px; border-radius: 6px; cursor: pointer; }
.lm-pop.menu button:hover { background: rgba(20,23,28,.06); }
.lm-pop h4 { margin: 0; padding: 12px 14px; font-size: 14px; font-weight: 600; display: flex; justify-content: space-between; border-bottom: 1px solid rgba(20,23,28,.08); }
.lm-pop h4 span { font-weight: 500; color: #3D55D6; cursor: pointer; font-size: 12px; }
.lm-pop a { display: flex; gap: 10px; padding: 10px 14px; border-bottom: 1px solid rgba(20,23,28,.06); color: inherit; text-decoration: none; }
.lm-pop a:hover { background: rgba(61,85,214,.06); }
.lm-pop a .d { flex: none; width: 8px; height: 8px; border-radius: 50%; margin-top: 5px; }
.lm-pop a small { display: block; color: #5F6672; font-size: 12px; }
@keyframes lmPop { from { opacity: 0; transform: translateY(-6px) scale(.97); } }
html.lm-dark .lm-pop { --lm-sf: #1D222A; --lm-i9: #E9EBEE; border-color: rgba(255,255,255,.1); }
html.lm-dark .lm-pop a small { color: #8D949F; }
html.lm-dark .lm-pop.menu button:hover, html.lm-dark .lm-pop a:hover { background: rgba(255,255,255,.06); }

.lm-scrim { position: fixed; inset: 0; z-index: 9996; background: rgba(10,12,18,.42); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); animation: lmFade .18s ease both; display: flex; justify-content: center; align-items: flex-start; padding-top: 12vh; }
.lm-scrim.out { animation: lmFade .15s ease reverse forwards; }
@keyframes lmFade { from { opacity: 0; } }
.lm-pal { width: 640px; max-width: calc(100vw - 32px); background: #fff; border-radius: 14px; box-shadow: 0 30px 80px rgba(0,0,0,.35); overflow: hidden; font: 400 14px 'IBM Plex Sans', system-ui, sans-serif; color: #14171C; animation: lmPop .22s cubic-bezier(.2,.9,.3,1.15) both; transform-origin: top center; }
.lm-pal input { all: unset; box-sizing: border-box; width: 100%; padding: 18px 20px; font-size: 17px; border-bottom: 1px solid rgba(20,23,28,.08); }
.lm-pal ul { list-style: none; margin: 0; padding: 6px; max-height: 52vh; overflow: auto; }
.lm-pal li { display: flex; align-items: center; gap: 12px; padding: 9px 12px; border-radius: 8px; cursor: pointer; }
.lm-pal li.on { background: rgba(61,85,214,.09); color: #3D55D6; }
.lm-pal li small { margin-left: auto; color: #5F6672; font-size: 12px; white-space: nowrap; }
.lm-pal li em { font-style: normal; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: #8D949F; width: 64px; flex: none; }
.lm-pal .ft { display: flex; gap: 14px; padding: 9px 16px; border-top: 1px solid rgba(20,23,28,.08); color: #8D949F; font-size: 12px; }
.lm-pal kbd { font: 500 11px 'IBM Plex Mono', monospace; border: 1px solid rgba(20,23,28,.16); border-radius: 4px; padding: 0 4px; }
html.lm-dark .lm-pal { background: #1D222A; color: #E9EBEE; }
html.lm-dark .lm-pal li.on { background: rgba(128,148,242,.16); color: #A9B7FF; }

/* навигатор по экранам прототипа */
.lm-dock { position: fixed; left: 50%; bottom: 18px; transform: translateX(-50%); z-index: 9980; display: flex; align-items: center; gap: 2px; padding: 4px; border-radius: 999px; background: rgba(20,23,28,.86); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); color: #E9EBEE; font: 500 12.5px 'IBM Plex Sans', system-ui, sans-serif; box-shadow: 0 10px 30px rgba(0,0,0,.25); transition: opacity .25s, transform .25s; animation: lmDockIn .5s .4s cubic-bezier(.2,.9,.3,1.2) both; }
@keyframes lmDockIn { from { opacity: 0; transform: translate(-50%, 20px); } }
.lm-dock.hide { opacity: 0; transform: translate(-50%, 30px); pointer-events: none; }
.lm-dock button, .lm-dock a { all: unset; cursor: pointer; padding: 7px 12px; border-radius: 999px; white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; }
.lm-dock button:hover, .lm-dock a:hover { background: rgba(255,255,255,.12); }
.lm-dock .nm { max-width: 260px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: #AEB4BD; padding: 0 8px; }
.lm-dock .sep { width: 1px; height: 18px; background: rgba(255,255,255,.15); margin: 0 2px; }

.lm-map { position: fixed; inset: 0; z-index: 9997; background: rgba(10,12,18,.55); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); animation: lmFade .2s ease both; overflow: auto; font: 400 13px 'IBM Plex Sans', system-ui, sans-serif; }
.lm-map .in { max-width: 1240px; margin: 40px auto; background: #F4F5F7; border-radius: 18px; padding: 28px 32px 36px; box-shadow: 0 30px 80px rgba(0,0,0,.4); animation: lmPop .3s cubic-bezier(.2,.9,.3,1.1) both; transform-origin: top center; color: #14171C; }
.lm-map header { display: flex; align-items: center; gap: 16px; margin-bottom: 8px; }
.lm-map h3 { margin: 0; font-size: 22px; font-weight: 600; }
.lm-map header input { all: unset; margin-left: auto; width: 280px; height: 36px; padding: 0 12px; border-radius: 8px; background: #fff; border: 1px solid rgba(20,23,28,.12); }
.lm-map header button { all: unset; cursor: pointer; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 8px; font-size: 20px; }
.lm-map header button:hover { background: rgba(20,23,28,.06); }
.lm-map h5 { margin: 22px 0 10px; font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: #5F6672; font-weight: 600; }
.lm-map .g { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }
.lm-map .g a { display: block; background: #fff; border-radius: 10px; border: 1px solid rgba(20,23,28,.08); overflow: hidden; color: inherit; text-decoration: none; transition: transform .18s, box-shadow .18s; animation: lmPop .3s cubic-bezier(.2,.9,.3,1.1) both; animation-delay: var(--d, 0ms); }
.lm-map .g a:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(20,23,28,.14); }
.lm-map .g a.cur { outline: 2px solid #3D55D6; }
.lm-map .g img { width: 100%; height: 110px; object-fit: cover; object-position: top; display: block; background: #E4E6EA; }
.lm-map .g span { display: block; padding: 8px 10px; font-size: 12.5px; line-height: 1.3; }

/* чат ИИ */
.lm-typing { display: inline-flex; gap: 4px; padding: 6px 0; }
.lm-typing i { width: 6px; height: 6px; border-radius: 50%; background: var(--i5); animation: lmDot 1s infinite ease-in-out; }
.lm-typing i:nth-child(2) { animation-delay: .15s; } .lm-typing i:nth-child(3) { animation-delay: .3s; }
@keyframes lmDot { 0%, 80%, 100% { transform: translateY(0); opacity: .4; } 40% { transform: translateY(-4px); opacity: 1; } }
.lm-msg { animation: lmBodyIn .35s cubic-bezier(.2,.8,.2,1) both; }
.lm-caret::after { content: '▍'; animation: lmBlink .8s steps(2) infinite; color: var(--ac); }
.lm input.lm-real { all: unset; flex: 1; min-width: 0; height: 100%; font: inherit; color: var(--i9); }

/* лендинг */
.lm-hdr { position: fixed; top: 0; left: 0; right: 0; z-index: 9970; height: 64px; background: rgba(255,255,255,.82); backdrop-filter: blur(14px) saturate(1.4); -webkit-backdrop-filter: blur(14px) saturate(1.4); border-bottom: 1px solid rgba(20,23,28,.08); transform: translateY(-100%); transition: transform .35s cubic-bezier(.2,.8,.2,1); }
.lm-hdr.on { transform: none; }
.lm-hdr > header { height: 64px !important; }
.lm-prog { position: fixed; top: 0; left: 0; height: 3px; z-index: 9975; background: linear-gradient(90deg, #4556DD, #E2483D); width: 0; }
.lm-tilt { transition: transform .25s ease-out; transform-style: preserve-3d; will-change: transform; }
.lm-float { animation: lmFloat 6s ease-in-out infinite; }
@keyframes lmFloat { 50% { transform: translateY(-12px); } }
.lm-shine { position: relative; overflow: hidden; }
.lm-shine::after { content: ''; position: absolute; top: 0; left: -60%; width: 40%; height: 100%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.35), transparent); transform: skewX(-20deg); animation: lmShine 3.8s ease-in-out infinite; pointer-events: none; }
@keyframes lmShine { 0%, 60% { left: -60%; } 100% { left: 130%; } }
.lm-opt { cursor: pointer; transition: all .15s ease; }
.lm-opt:hover { border-color: #4556DD !important; }
.lm-done { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 14px; min-height: 420px; animation: lmBodyIn .5s cubic-bezier(.2,.8,.2,1) both; }
.lm-done svg circle { stroke-dasharray: 160; stroke-dashoffset: 160; animation: lmCk .6s ease forwards; }
.lm-done svg path { stroke-dasharray: 40; stroke-dashoffset: 40; animation: lmCk .4s .5s ease forwards; }
@keyframes lmCk { to { stroke-dashoffset: 0; } }
.lm-shake { animation: lmShake .4s; }
@keyframes lmShake { 25% { transform: translateX(-6px); } 75% { transform: translateX(6px); } }
.lm-cursor { position: fixed; z-index: 9960; width: 380px; height: 380px; margin: -190px 0 0 -190px; border-radius: 50%; pointer-events: none; background: radial-gradient(circle, rgba(69,86,221,.12), transparent 65%); transition: opacity .3s; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .lm-rv { opacity: 1; transform: none; }
}

/* ---------- язык ---------- */
html.lm-i18n body { visibility: hidden; animation: lmShow 0s 1.5s forwards; }
@keyframes lmShow { to { visibility: visible; } }
.lm-lang { display: inline-flex; padding: 3px; border-radius: 999px; background: rgba(20,23,28,.06); gap: 2px; flex: none; }
.lm-lang button { all: unset; cursor: pointer; padding: 5px 10px; border-radius: 999px; font: 600 12px 'IBM Plex Sans', system-ui, sans-serif; color: #5F6672; letter-spacing: .04em; transition: background-color .2s, color .2s; }
.lm-lang button:hover { color: #14171C; }
.lm-lang button.on { background: #fff; color: #1D268F; box-shadow: 0 2px 8px rgba(29,38,143,.15); }
.lm-foot .lm-lang { background: rgba(255,255,255,.08); }
.lm-foot .lm-lang button { color: rgba(255,255,255,.6); }
.lm-foot .lm-lang button:hover { color: #fff; }
.lm-foot .lm-lang button.on { background: rgba(255,255,255,.16); color: #fff; box-shadow: none; }

/* ---------- подвал лендинга ---------- */
.lm-foot { background: #080A2C; color: rgba(255,255,255,.62); font-size: 14px; }
.lm-foot .in { width: 1200px; margin: 0 auto; height: 76px; display: flex; align-items: center; gap: 40px; border-bottom: 1px solid rgba(255,255,255,.08); }
.lm-foot .brand { display: inline-flex; align-items: center; gap: 8px; color: #fff; font-weight: 600; font-size: 16px; }
.lm-foot nav { display: flex; gap: 28px; flex: 1; }
.lm-foot nav a { color: rgba(255,255,255,.72); transition: color .2s; }
.lm-foot nav a:hover { color: #fff; }
.lm-foot .sub { width: 1200px; margin: 0 auto; height: 52px; display: flex; align-items: center; gap: 24px; font-size: 13px; color: rgba(255,255,255,.45); }
.lm-foot .sub span:last-child { margin-left: auto; }
.lm-perks { display: flex; gap: 24px; font-size: 16px; font-weight: 500; color: rgba(255,255,255,.88); }
.lm-perks span { display: inline-flex; align-items: center; gap: 10px; }
.lm-perks i { font-style: normal; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.14); font-size: 13px; }

/* ---------- картинки: мягкое проявление после загрузки ---------- */
.lm img.lm-img { opacity: 0; filter: blur(16px) saturate(.6); transform: scale(1.04); transition: opacity .9s ease, filter 1.1s ease, transform 1.4s cubic-bezier(.2,.8,.2,1); }
.lm img.lm-img.lm-img-h { transform: none; transition: opacity .9s ease, filter 1.1s ease; }
.lm img.lm-img.lm-loaded { opacity: 1; filter: none; transform: none; }
.lm-shim { background-image: linear-gradient(100deg, rgba(255,255,255,0) 30%, rgba(255,255,255,.35) 50%, rgba(255,255,255,0) 70%) !important; background-size: 200% 100% !important; animation: lmShim 1.3s linear infinite; }
@keyframes lmShim { from { background-position: 150% 0; } to { background-position: -50% 0; } }
.lm .lm-wait { opacity: 0; transform: scale(.6) translateY(8px); }
.lm .lm-wait.lm-popin { opacity: 1; transform: none; transition: opacity .45s ease, transform .6s cubic-bezier(.3,1.5,.5,1); transition-delay: var(--d, 0ms); }
.lm .hs::before { content: ''; position: absolute; inset: -10px; border-radius: 50%; border: 2px solid currentColor; opacity: 0; animation: lmHs 2.6s ease-out infinite; animation-delay: var(--d, 0s); color: rgba(69,86,221,.6); }
.lm .hs.c::before { color: rgba(226,72,61,.7); animation-duration: 1.6s; }
@keyframes lmHs { 0% { transform: scale(.7); opacity: .9; } 100% { transform: scale(1.7); opacity: 0; } }

/* ---------- плитки лендинга ---------- */
.lm .mc { position: relative; overflow: hidden; transition: transform .45s cubic-bezier(.2,.8,.2,1), box-shadow .45s, border-color .45s; }
.lm .mc::before { content: ''; position: absolute; inset: 0; background: radial-gradient(380px circle at var(--mx, 50%) var(--my, 0%), rgba(69,86,221,.12), transparent 50%); opacity: 0; transition: opacity .35s; pointer-events: none; }
.lm .mc::after { content: ''; position: absolute; left: 28px; right: 28px; bottom: 0; height: 3px; border-radius: 3px 3px 0 0; background: linear-gradient(90deg, #1D268F, #4556DD, #FF6B6B); transform: scaleX(0); transform-origin: left; transition: transform .5s cubic-bezier(.2,.8,.2,1); }
.lm .mc:hover { transform: translateY(-8px); border-color: rgba(69,86,221,.38); box-shadow: 0 26px 50px rgba(29,38,143,.16); }
.lm .mc:hover::before { opacity: 1; }
.lm .mc:hover::after { transform: scaleX(1); }
.lm .mc .ib { position: relative; transition: transform .55s cubic-bezier(.3,1.6,.5,1); }
.lm .mc .ib::after { content: ''; position: absolute; inset: 0; border-radius: 50%; animation: lmRing 4.8s ease-out infinite; animation-delay: var(--d, 0s); }
@keyframes lmRing { 0% { box-shadow: 0 0 0 0 currentColor; opacity: .35; } 30%, 100% { box-shadow: 0 0 0 14px currentColor; opacity: 0; } }
.lm .mc:hover .ib { transform: scale(1.14) rotate(-8deg); }
.lm .mc > span:nth-child(2) { transition: color .3s; }
.lm .mc:hover > span:nth-child(2) { color: #1D268F; }

.lm .lm-ind { transition: transform .5s cubic-bezier(.2,.8,.2,1), box-shadow .5s; cursor: default; }
.lm .lm-ind img { transition: transform 1.4s cubic-bezier(.2,.8,.2,1), opacity .9s ease, filter 1.1s ease !important; }
.lm .lm-ind:hover { transform: translateY(-10px); box-shadow: 0 30px 60px rgba(29,38,143,.35) !important; }
.lm .lm-ind:hover img.lm-loaded { transform: scale(1.08); }
.lm .lm-ind > div { transition: transform .5s cubic-bezier(.2,.8,.2,1); transform: translateY(10px); }
.lm .lm-ind:hover > div { transform: none; }
.lm .lm-ind > div > span:first-child { transition: width .5s cubic-bezier(.2,.8,.2,1); }
.lm .lm-ind:hover > div > span:first-child { width: 96px !important; }
.lm .lm-ind > div > span:last-child { transition: color .4s; }
.lm .lm-ind:hover > div > span:last-child { color: #fff !important; }

.lm .sc { position: relative; overflow: hidden; transition: transform .45s cubic-bezier(.2,.8,.2,1), box-shadow .45s, filter .45s; }
.lm .sc::before { content: ''; position: absolute; inset: 0; background: radial-gradient(300px circle at var(--mx, 50%) var(--my, 50%), rgba(255,255,255,.22), transparent 55%); opacity: 0; transition: opacity .35s; pointer-events: none; }
.lm .sc:hover { transform: translateY(-6px) scale(1.015); box-shadow: 0 26px 50px rgba(29,38,143,.4); }
.lm .sc:hover::before, .lm .sc.lm-step::before { opacity: 1; }
.lm .sc.lm-step { box-shadow: 0 0 0 3px rgba(255,107,107,.75), 0 22px 44px rgba(29,38,143,.38); }
.lm .sc > div:first-child > span:last-child { transition: transform .5s cubic-bezier(.3,1.6,.5,1), opacity .3s; }
.lm .sc:hover > div:first-child > span:last-child, .lm .sc.lm-step > div:first-child > span:last-child { transform: rotate(-12deg) scale(1.25); opacity: 1 !important; }
.lm .lm-zoom { overflow: hidden; }
.lm .lm-zoom img { transition: transform 1.4s cubic-bezier(.2,.8,.2,1), opacity .9s ease, filter 1.1s ease !important; }
.lm .lm-zoom:hover img.lm-loaded { transform: scale(1.06); }
