diff --git a/index.html b/index.html index 00263ad..f850783 100644 --- a/index.html +++ b/index.html @@ -5,853 +5,8 @@ DmitriyVPN — Быстрый и стабильный VPN для всех устройств - diff --git a/styles.css b/styles.css new file mode 100644 index 0000000..14dba37 --- /dev/null +++ b/styles.css @@ -0,0 +1,843 @@ +:root { + --bg-main: #0a0b0d; + --bg-card: #121418; + --bg-card-hover: #16191f; + --border: #1f242e; + --border-hover: #2f3747; + --text-main: #ffffff; + --text-sub: #94a3b8; + --accent: #38bdf8; + --accent-glow: rgba(56, 189, 248, 0.15); + --font-main: 'Inter', sans-serif; +} + +* { box-sizing: border-box; margin: 0; padding: 0; } +html { scroll-behavior: smooth; } + +body { + font-family: var(--font-main); + background-color: var(--bg-main); + color: var(--text-main); + line-height: 1.5; + overflow-x: hidden; +} + +body::before { + content: ''; + position: fixed; + top: -10%; + left: 50%; + transform: translateX(-50%); + width: 600px; + height: 400px; + background: radial-gradient(circle, var(--accent-glow) 0%, transparent 70%); + z-index: -1; + pointer-events: none; +} + +.container { + width: 100%; + max-width: 1140px; + margin: 0 auto; + padding: 0 24px; +} + +/* ===== HEADER ===== */ +header { + padding: 20px 0; + border-bottom: 1px solid var(--border); + backdrop-filter: blur(12px); + position: sticky; + top: 0; + z-index: 1000; + background: rgba(10, 11, 13, 0.88); +} + +.header-wrap { + display: flex; + justify-content: space-between; + align-items: center; +} + +.logo { + font-weight: 800; + font-size: 1.25rem; + letter-spacing: -0.5px; + text-decoration: none; + color: var(--text-main); + z-index: 1001; + position: relative; +} + +.logo span { color: var(--accent); } + +nav { + display: flex; + align-items: center; + gap: 28px; +} + +nav a { + color: #94a3b8; + text-decoration: none; + font-size: 0.875rem; + font-weight: 500; + transition: color 0.2s; +} + +nav a:hover { color: var(--text-main); } + +.btn-tg-nav { + background: #1e293b; + border: 1px solid var(--border); + padding: 8px 16px; + border-radius: 8px; + color: var(--text-main); + font-size: 0.85rem; + font-weight: 600; + text-decoration: none; + transition: all 0.2s; + white-space: nowrap; +} + +.btn-tg-nav:hover { + background: #0284c7; + border-color: #38bdf8; +} + +/* ===== BURGER ===== */ +.burger { + display: none; + flex-direction: column; + gap: 5px; + cursor: pointer; + padding: 4px; + background: none; + border: none; + z-index: 1001; + position: relative; +} + +.burger span { + display: block; + width: 24px; + height: 2px; + background: var(--text-main); + border-radius: 2px; + transition: all 0.3s ease; +} + +.burger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); } +.burger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); } +.burger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); } + +/* ===== MOBILE NAV ===== */ +.mobile-nav { + display: none; + position: fixed; + inset: 0; + background: rgba(10, 11, 13, 0.97); + backdrop-filter: blur(20px); + z-index: 999; + flex-direction: column; + align-items: center; + justify-content: center; + gap: 32px; +} + +.mobile-nav.open { display: flex; } + +.mobile-nav a { + color: var(--text-main); + text-decoration: none; + font-size: 1.4rem; + font-weight: 700; + transition: color 0.2s; +} + +.mobile-nav a:hover { color: var(--accent); } + +.mobile-nav .btn-tg-nav { + font-size: 1rem; + padding: 12px 28px; +} + +@media (max-width: 900px) { + .burger { display: flex; } + nav { display: none; } +} + +/* ===== SCROLL REVEAL ===== */ +.reveal { + opacity: 0; + transform: translateY(32px); + transition: opacity 0.65s ease, transform 0.65s ease; +} + +.reveal.visible { + opacity: 1; + transform: translateY(0); +} + +/* ===== SECTIONS BASE ===== */ +section { + padding: 80px 0; + border-top: 1px solid var(--border); +} + +.section-title { + text-align: center; + font-size: 2.25rem; + font-weight: 800; + margin-bottom: 10px; + letter-spacing: -1px; +} + +.section-sub { + text-align: center; + color: #94a3b8; + font-size: 1rem; + margin-bottom: 48px; +} + +@media (max-width: 768px) { + section { padding: 60px 0; } + .section-title { font-size: 1.75rem; } +} + +/* ===== HERO ===== */ +.hero { + padding: 80px 0 100px; + display: grid; + grid-template-columns: 1.2fr 0.8fr; + align-items: center; + gap: 48px; + border-top: none; +} + +@media (max-width: 768px) { + .hero { + grid-template-columns: 1fr; + text-align: center; + padding: 52px 0 64px; + } + .hero-right { display: flex; justify-content: center; } +} + +.badge { + display: inline-block; + padding: 6px 12px; + background: rgba(56, 189, 248, 0.06); + border: 1px solid rgba(56, 189, 248, 0.2); + color: var(--accent); + border-radius: 100px; + font-size: 0.8rem; + font-weight: 600; + margin-bottom: 20px; + text-transform: uppercase; + letter-spacing: 0.5px; +} + +h1 { + font-size: 3.5rem; + font-weight: 800; + line-height: 1.1; + letter-spacing: -1.5px; + margin-bottom: 24px; +} + +h1 span { + background: linear-gradient(to right, #38bdf8, #a855f7); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} + +.hero-text { + color: #94a3b8; + font-size: 1.1rem; + margin-bottom: 36px; +} + +.hero-btns { + display: flex; + gap: 16px; +} + +@media (max-width: 768px) { + .hero-btns { justify-content: center; flex-wrap: wrap; } + h1 { font-size: 2.4rem; } +} + +.btn-main { + display: inline-block; + background: var(--text-main); + color: var(--bg-main); + padding: 14px 28px; + border-radius: 10px; + font-weight: 600; + text-decoration: none; + transition: transform 0.2s, opacity 0.2s; +} + +.btn-main:hover { transform: translateY(-2px); opacity: 0.9; } + +.btn-sec { + display: inline-block; + border: 1px solid var(--border); + color: var(--text-main); + padding: 14px 28px; + border-radius: 10px; + font-weight: 600; + text-decoration: none; + transition: background 0.2s, border-color 0.2s; +} + +.btn-sec:hover { + background: rgba(255,255,255,0.04); + border-color: var(--border-hover); +} + +.hero-right { + position: relative; + display: flex; + justify-content: center; +} + +.shield-graphic { + width: 280px; + height: 320px; + background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%); + border: 2px solid var(--border); + border-radius: 20px 20px 140px 140px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + box-shadow: 0 25px 50px -12px rgba(0,0,0,0.5); + animation: float 4s ease-in-out infinite; +} + +.shield-icon { + font-size: 4rem; + margin-bottom: 12px; + filter: drop-shadow(0 0 15px var(--accent)); +} + +.shield-label { + font-family: 'Fira Code', monospace; + font-size: 0.85rem; + color: var(--accent); + letter-spacing: 1px; +} + +@keyframes float { + 0%, 100% { transform: translateY(0); } + 50% { transform: translateY(-12px); } +} + +/* ===== FEATURES ===== */ +.grid-features { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 20px; +} + +@media (max-width: 900px) { .grid-features { grid-template-columns: repeat(2, 1fr); } } +@media (max-width: 480px) { .grid-features { grid-template-columns: 1fr; } } + +.feature-card { + background: var(--bg-card); + border: 1px solid var(--border); + border-radius: 16px; + padding: 28px 24px; + transition: all 0.3s; +} + +.feature-card:hover { + border-color: rgba(56,189,248,0.3); + transform: translateY(-4px); + background: var(--bg-card-hover); +} + +.feature-icon { + font-size: 2rem; + margin-bottom: 14px; + display: block; +} + +.feature-title { + font-size: 1rem; + font-weight: 700; + margin-bottom: 8px; +} + +.feature-desc { + color: #94a3b8; + font-size: 0.875rem; + line-height: 1.6; +} + +/* ===== DEVICES ===== */ +.grid-devices { + display: grid; + grid-template-columns: repeat(6, 1fr); + gap: 16px; +} + +@media (max-width: 900px) { .grid-devices { grid-template-columns: repeat(3, 1fr); } } +@media (max-width: 480px) { .grid-devices { grid-template-columns: repeat(2, 1fr); } } + +.device-card { + background: var(--bg-card); + border: 1px solid var(--border); + border-radius: 14px; + padding: 28px 16px; + text-align: center; + transition: all 0.3s; +} + +.device-card:hover { + border-color: rgba(56,189,248,0.35); + background: var(--bg-card-hover); + transform: translateY(-4px); +} + +.device-icon { + font-size: 2.4rem; + margin-bottom: 10px; + display: block; +} + +.device-name { + font-size: 0.8rem; + font-weight: 600; + color: #94a3b8; +} + +/* ===== HOW TO CONNECT ===== */ +.steps { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 24px; + position: relative; +} + +@media (max-width: 768px) { .steps { grid-template-columns: 1fr; } } + +.step-card { + background: var(--bg-card); + border: 1px solid var(--border); + border-radius: 16px; + padding: 32px 24px; + text-align: center; + transition: border-color 0.3s; +} + +.step-card:hover { border-color: var(--border-hover); } + +.step-num { + width: 52px; + height: 52px; + border-radius: 50%; + background: linear-gradient(135deg, #0284c7, #a855f7); + display: flex; + align-items: center; + justify-content: center; + font-weight: 800; + font-size: 1.1rem; + margin: 0 auto 18px; + box-shadow: 0 0 20px rgba(2,132,199,0.3); +} + +.step-title { + font-size: 1rem; + font-weight: 700; + margin-bottom: 10px; +} + +.step-desc { + color: #94a3b8; + font-size: 0.875rem; + line-height: 1.6; +} + +/* ===== BILLING TOGGLE ===== */ +.billing-toggle { + display: flex; + justify-content: center; + gap: 4px; + background: var(--bg-card); + border: 1px solid var(--border); + border-radius: 10px; + padding: 4px; + width: fit-content; + margin: 0 auto 40px; +} + +.billing-btn { + background: none; + border: none; + padding: 9px 20px; + border-radius: 7px; + color: #64748b; + font-size: 0.875rem; + font-weight: 600; + cursor: pointer; + transition: all 0.2s; + font-family: var(--font-main); + position: relative; +} + +.billing-btn.active { + background: #0284c7; + color: #fff; +} + +.save-badge { + position: absolute; + top: -9px; + right: -6px; + background: #22c55e; + color: #fff; + font-size: 0.58rem; + padding: 2px 5px; + border-radius: 4px; + font-weight: 700; + line-height: 1.4; +} + +/* ===== PRICING ===== */ +.grid-pricing { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 24px; +} + +@media (max-width: 950px) { + .grid-pricing { grid-template-columns: 1fr; max-width: 450px; margin: 0 auto; } +} + +.price-card { + background: var(--bg-card); + border: 1px solid var(--border); + border-radius: 16px; + padding: 32px; + display: flex; + flex-direction: column; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + position: relative; + overflow: hidden; +} + +.price-card:hover { + transform: translateY(-4px); + border-color: var(--border-hover); + background: var(--bg-card-hover); +} + +.price-card.featured { + border-color: #0284c7; + background: linear-gradient(180deg, #12151c 0%, #0d1015 100%); +} + +.price-card.featured::before { + content: 'ОБХОД ГЛУШИЛОК'; + position: absolute; + top: 24px; + right: -35px; + background: #0284c7; + color: #fff; + font-size: 0.6rem; + font-weight: 700; + padding: 4px 35px; + transform: rotate(45deg); +} + +.card-name { + font-size: 1.1rem; + font-weight: 700; + margin-bottom: 8px; +} + +.card-price { + font-size: 2rem; + font-weight: 800; + margin-bottom: 20px; + display: flex; + align-items: baseline; + gap: 4px; +} + +.card-price span { + font-size: 0.9rem; + color: #64748b; + font-weight: 400; +} + +.card-price .price-val { + font-size: inherit; + color: inherit; + font-weight: inherit; +} + +.card-features { + list-style: none; + margin-bottom: 24px; + flex-grow: 1; +} + +.card-features li { + font-size: 0.9rem; + color: #94a3b8; + margin-bottom: 12px; + display: flex; + align-items: flex-start; + gap: 10px; +} + +.card-features li.disabled { + color: #475569; + text-decoration: line-through; +} + +.card-features li::before { + content: '✓'; + color: var(--accent); + font-weight: bold; + flex-shrink: 0; +} + +.card-features li.disabled::before { + content: '✕'; + color: #475569; +} + +.bot-sub-list { + display: flex; + flex-direction: column; + gap: 8px; + margin-bottom: 24px; +} + +.bot-sub-item { + background: rgba(255,255,255,0.03); + border: 1px solid var(--border); + padding: 10px 14px; + border-radius: 8px; + display: flex; + justify-content: space-between; + align-items: center; + font-size: 0.85rem; +} + +.bot-sub-item span { color: #94a3b8; } +.bot-sub-item strong { color: #fff; } + +.price-val { transition: opacity 0.15s; } +.price-val.updating { opacity: 0; } + +.btn-card { + display: block; + text-align: center; + padding: 12px; + border-radius: 8px; + text-decoration: none; + font-weight: 600; + font-size: 0.9rem; + transition: all 0.2s; + margin-top: auto; +} + +.btn-card-sec { + background: #1e293b; + color: var(--text-main); + border: 1px solid var(--border); +} +.btn-card-sec:hover { background: #334155; } + +.btn-card-primary { background: #0284c7; color: #fff; } +.btn-card-primary:hover { background: #0369a1; box-shadow: 0 0 15px rgba(2,132,199,0.3); } + +/* ===== FAQ ===== */ +.faq-list { + max-width: 760px; + margin: 0 auto; + display: flex; + flex-direction: column; + gap: 12px; +} + +.faq-item { + background: var(--bg-card); + border: 1px solid var(--border); + border-radius: 12px; + overflow: hidden; + transition: border-color 0.25s; +} + +.faq-item.open { border-color: rgba(56,189,248,0.3); } + +.faq-q { + width: 100%; + background: none; + border: none; + padding: 20px 24px; + display: flex; + justify-content: space-between; + align-items: center; + cursor: pointer; + color: var(--text-main); + font-size: 0.95rem; + font-weight: 600; + font-family: var(--font-main); + text-align: left; + gap: 16px; +} + +.faq-q:hover { background: rgba(255,255,255,0.02); } + +.faq-icon { + width: 26px; + height: 26px; + border-radius: 50%; + border: 1px solid var(--border); + display: flex; + align-items: center; + justify-content: center; + font-size: 1.1rem; + flex-shrink: 0; + transition: all 0.3s; + color: var(--accent); + line-height: 1; +} + +.faq-item.open .faq-icon { + transform: rotate(45deg); + border-color: var(--accent); +} + +.faq-a { + max-height: 0; + overflow: hidden; + transition: max-height 0.35s ease; +} + +.faq-a-inner { + padding: 0 24px 22px; + color: #94a3b8; + font-size: 0.9rem; + line-height: 1.7; +} + +/* ===== REVIEWS ===== */ +.grid-reviews { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 24px; +} + +@media (max-width: 768px) { .grid-reviews { grid-template-columns: 1fr; } } + +.review-card { + background: var(--bg-card); + border: 1px solid var(--border); + border-radius: 12px; + padding: 24px; + transition: border-color 0.2s; +} + +.review-card:hover { border-color: var(--border-hover); } + +.review-header { + display: flex; + align-items: center; + gap: 14px; + margin-bottom: 14px; +} + +.review-avatar { + width: 42px; + height: 42px; + border-radius: 50%; + background: linear-gradient(135deg, #0284c7, #a855f7); + display: flex; + align-items: center; + justify-content: center; + font-weight: 700; + font-size: 1rem; + flex-shrink: 0; +} + +.review-stars { + color: #fbbf24; + font-size: 0.8rem; + margin-bottom: 2px; +} + +.review-user { + font-weight: 700; + font-size: 0.95rem; +} + +.review-verified { + font-size: 0.73rem; + color: #22c55e; +} + +.review-text { + color: #94a3b8; + font-size: 0.9rem; + line-height: 1.65; +} + +/* ===== SUPPORT ===== */ +.support-inner { + text-align: center; +} + +.support-card { + background: linear-gradient(135deg, #11141a 0%, #0a0c10 100%); + border: 1px solid var(--border); + padding: 52px 48px; + border-radius: 20px; + max-width: 700px; + margin: 0 auto; +} + +.support-card h3 { + font-size: 1.5rem; + font-weight: 700; + margin-bottom: 12px; +} + +.support-card p { + color: #94a3b8; + margin-bottom: 28px; + font-size: 0.95rem; +} + +.btn-support { + display: inline-block; + background: #22c55e; + color: #fff; + padding: 12px 28px; + border-radius: 8px; + font-weight: 600; + text-decoration: none; + transition: all 0.2s; +} + +.btn-support:hover { + background: #16a34a; + box-shadow: 0 0 20px rgba(34,197,94,0.25); + transform: translateY(-1px); +} + +/* ===== FOOTER ===== */ +footer { + padding: 40px 0; + text-align: center; + border-top: 1px solid var(--border); + color: #475569; + font-size: 0.85rem; +}