From ada8b9ab1c6a7a278c1bb5a383e249df9de5f5bb Mon Sep 17 00:00:00 2001 From: wasrusgen Date: Wed, 3 Jun 2026 19:59:02 +0300 Subject: [PATCH] =?UTF-8?q?landing:=20=D1=8D=D1=84=D1=84=D0=B5=D0=BA=D1=82?= =?UTF-8?q?=20=D0=BF=D1=80=D0=BE=D0=B6=D0=B5=D0=BA=D1=82=D0=BE=D1=80=D0=B0?= =?UTF-8?q?=20=D0=BD=D0=B0=20=D0=BA=D0=B0=D1=80=D1=82=D0=BE=D1=87=D0=BA?= =?UTF-8?q?=D0=B0=D1=85=20(=D1=81=D0=B2=D0=B5=D1=87=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D1=81=D0=BB=D0=B5=D0=B4=D1=83=D0=B5=D1=82=20=D0=B7?= =?UTF-8?q?=D0=B0=20=D0=BA=D1=83=D1=80=D1=81=D0=BE=D1=80=D0=BE=D0=BC,=20ti?= =?UTF-8?q?meweb-style)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/consult_landing.html | 24 ++++++++++++++++++++++++ docs/main.html | 24 ++++++++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/docs/consult_landing.html b/docs/consult_landing.html index e47d7f8..294c6bb 100644 --- a/docs/consult_landing.html +++ b/docs/consult_landing.html @@ -224,6 +224,16 @@ .problem-card, .funnel-step, .demo-card { transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; } .problem-card:hover, .funnel-step:hover, .demo-card:hover { transform: translateY(-3px); border-color: rgba(16,185,129,.4); box-shadow: 0 12px 30px rgba(0,0,0,.25); } + /* «Прожектор» — свечение следует за курсором (timeweb-style) */ + .feature-card, .demo-card, .funnel-step { overflow: hidden; } + .feature-card::after, .problem-card::after, .funnel-step::after, .demo-card::after { + content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none; + border-radius: inherit; opacity: 0; transition: opacity .35s ease; + background: radial-gradient(340px circle at var(--mx, 50%) var(--my, 50%), rgba(16,185,129,.18), transparent 62%); + } + .feature-card:hover::after, .problem-card:hover::after, .funnel-step:hover::after, .demo-card:hover::after { opacity: 1; } + .feature-card > *, .problem-card > *, .funnel-step > *, .demo-card > * { position: relative; z-index: 1; } + @media (prefers-reduced-motion: reduce) { .hero-content > *, .reveal, .pulse-chip, .pulse-chip svg polyline { animation: none !important; transition: none !important; opacity:1 !important; transform:none !important; stroke-dashoffset:0 !important; } } @@ -426,6 +436,20 @@ }, {threshold:0.12, rootMargin:'0px 0px -8% 0px'}); document.querySelectorAll('.reveal').forEach(function(el){io.observe(el);}); })(); + +/* «Прожектор» за курсором на карточках */ +(function(){ + if (window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches) return; + if (window.matchMedia && window.matchMedia('(hover: none)').matches) return; + var cards = document.querySelectorAll('.feature-card, .problem-card, .funnel-step, .demo-card'); + cards.forEach(function(c){ + c.addEventListener('mousemove', function(e){ + var r = c.getBoundingClientRect(); + c.style.setProperty('--mx', (e.clientX - r.left) + 'px'); + c.style.setProperty('--my', (e.clientY - r.top) + 'px'); + }); + }); +})(); diff --git a/docs/main.html b/docs/main.html index e47d7f8..294c6bb 100644 --- a/docs/main.html +++ b/docs/main.html @@ -224,6 +224,16 @@ .problem-card, .funnel-step, .demo-card { transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; } .problem-card:hover, .funnel-step:hover, .demo-card:hover { transform: translateY(-3px); border-color: rgba(16,185,129,.4); box-shadow: 0 12px 30px rgba(0,0,0,.25); } + /* «Прожектор» — свечение следует за курсором (timeweb-style) */ + .feature-card, .demo-card, .funnel-step { overflow: hidden; } + .feature-card::after, .problem-card::after, .funnel-step::after, .demo-card::after { + content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none; + border-radius: inherit; opacity: 0; transition: opacity .35s ease; + background: radial-gradient(340px circle at var(--mx, 50%) var(--my, 50%), rgba(16,185,129,.18), transparent 62%); + } + .feature-card:hover::after, .problem-card:hover::after, .funnel-step:hover::after, .demo-card:hover::after { opacity: 1; } + .feature-card > *, .problem-card > *, .funnel-step > *, .demo-card > * { position: relative; z-index: 1; } + @media (prefers-reduced-motion: reduce) { .hero-content > *, .reveal, .pulse-chip, .pulse-chip svg polyline { animation: none !important; transition: none !important; opacity:1 !important; transform:none !important; stroke-dashoffset:0 !important; } } @@ -426,6 +436,20 @@ }, {threshold:0.12, rootMargin:'0px 0px -8% 0px'}); document.querySelectorAll('.reveal').forEach(function(el){io.observe(el);}); })(); + +/* «Прожектор» за курсором на карточках */ +(function(){ + if (window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches) return; + if (window.matchMedia && window.matchMedia('(hover: none)').matches) return; + var cards = document.querySelectorAll('.feature-card, .problem-card, .funnel-step, .demo-card'); + cards.forEach(function(c){ + c.addEventListener('mousemove', function(e){ + var r = c.getBoundingClientRect(); + c.style.setProperty('--mx', (e.clientX - r.left) + 'px'); + c.style.setProperty('--my', (e.clientY - r.top) + 'px'); + }); + }); +})();