block10tm / index.html
timoon811's picture
Add 3 files
a4e299d verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Guarantee + Nearest Flow Block</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700;900&display=swap');
body {
font-family: 'Inter', sans-serif;
background-color: #0a0a0a;
color: #E1E1E1;
overflow-x: hidden;
}
.neon-yellow {
color: #f6fc79;
text-shadow: 0 0 8px rgba(246, 252, 121, 0.7);
}
.neon-yellow-bg {
background-color: #f6fc79;
box-shadow: 0 0 15px rgba(246, 252, 121, 0.7);
}
.neon-yellow-border {
border-color: #f6fc79;
box-shadow: 0 0 10px rgba(246, 252, 121, 0.5);
}
.glow-text {
text-shadow: 0 0 10px rgba(246, 252, 121, 0.9);
}
.glow-box {
box-shadow: 0 0 15px rgba(246, 252, 121, 0.7);
}
.glow-box:hover {
box-shadow: 0 0 25px rgba(246, 252, 121, 0.9);
}
.border-glow {
border-color: #f6fc79;
box-shadow: 0 0 10px rgba(246, 252, 121, 0.5);
}
.border-glow:hover {
box-shadow: 0 0 20px rgba(246, 252, 121, 0.8);
}
.dashboard-container {
perspective: 1000px;
transform-style: preserve-3d;
}
.dashboard {
transform: rotateY(-15deg) rotateX(5deg);
transition: all 0.5s ease;
}
.dashboard:hover {
transform: rotateY(-10deg) rotateX(3deg);
}
.traffic-flow {
position: relative;
height: 100%;
overflow: hidden;
}
.flow-item {
position: absolute;
transition: all 0.5s ease;
}
.pulse {
animation: pulse 2s infinite;
}
@keyframes pulse {
0% { transform: scale(1); opacity: 1; }
50% { transform: scale(1.05); opacity: 0.8; }
100% { transform: scale(1); opacity: 1; }
}
.particles {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
}
.particle {
position: absolute;
background-color: rgba(246, 252, 121, 0.8);
border-radius: 50%;
pointer-events: none;
}
.tooltip {
visibility: hidden;
opacity: 0;
transition: all 0.3s ease;
}
.flow-item:hover .tooltip {
visibility: visible;
opacity: 1;
}
.nav-link {
position: relative;
transition: all 0.3s ease;
}
.nav-link:hover {
text-shadow: 0 0 10px rgba(246, 252, 121, 0.9);
color: #f6fc79 !important;
}
.process-arrow {
position: absolute;
color: #f6fc79;
font-size: 24px;
top: 50%;
transform: translateY(-50%);
z-index: 1;
}
@media (max-width: 768px) {
.dashboard {
transform: none;
}
}
.arrow-animation {
animation: arrowPulse 1.5s infinite;
}
@keyframes arrowPulse {
0% { opacity: 0.5; transform: translateY(-50%) translateX(0); }
50% { opacity: 1; transform: translateY(-50%) translateX(5px); }
100% { opacity: 0.5; transform: translateY(-50%) translateX(0); }
}
/* Custom styles for the guarantee-flow block */
.guarantee-flow-container {
opacity: 0;
transform: translateY(20px);
animation: fadeInUp 0.8s ease forwards;
}
@keyframes fadeInUp {
to {
opacity: 1;
transform: translateY(0);
}
}
.guarantee-section {
background-color: #121212;
animation: slideInLeft 0.6s ease-out forwards;
}
.flow-section {
background-color: #1a1a1a;
animation: slideInRight 0.6s ease-out forwards;
}
@keyframes slideInLeft {
from {
transform: translateX(-20px);
opacity: 0;
}
to {
transform: translateX(0);
opacity: 1;
}
}
@keyframes slideInRight {
from {
transform: translateX(20px);
opacity: 0;
}
to {
transform: translateX(0);
opacity: 1;
}
}
.shield-icon {
animation: shieldGlow 3s infinite alternate;
}
@keyframes shieldGlow {
0% {
filter: drop-shadow(0 0 8px rgba(246, 252, 121, 0.7));
transform: scale(1);
}
100% {
filter: drop-shadow(0 0 20px rgba(246, 252, 121, 1));
transform: scale(1.05);
}
}
.places-count {
animation: countPulse 2s infinite;
}
@keyframes countPulse {
0% {
color: #f6fc79;
text-shadow: 0 0 8px rgba(246, 252, 121, 0.7);
}
50% {
color: #fff;
text-shadow: 0 0 15px rgba(246, 252, 121, 1);
}
100% {
color: #f6fc79;
text-shadow: 0 0 8px rgba(246, 252, 121, 0.7);
}
}
.book-button {
animation: bounce 1s ease;
transition: all 0.3s ease;
}
@keyframes bounce {
0%, 20%, 50%, 80%, 100% {
transform: translateY(0);
}
40% {
transform: translateY(-10px);
}
60% {
transform: translateY(-5px);
}
}
.book-button:hover {
transform: translateY(-2px);
box-shadow: 0 0 25px rgba(246, 252, 121, 0.9);
}
.progress-bar {
height: 6px;
background-color: #333;
border-radius: 3px;
overflow: hidden;
}
.progress-fill {
height: 100%;
background-color: #f6fc79;
border-radius: 3px;
transition: width 0.5s ease;
box-shadow: 0 0 8px rgba(246, 252, 121, 0.7);
}
.shield-bg {
position: absolute;
right: 20px;
bottom: 20px;
opacity: 0.1;
width: 120px;
height: 120px;
z-index: 0;
filter: drop-shadow(0 0 5px rgba(246, 252, 121, 0.5));
}
.calendar-bg {
position: absolute;
right: 20px;
bottom: 20px;
opacity: 0.1;
width: 120px;
height: 120px;
z-index: 0;
filter: drop-shadow(0 0 5px rgba(246, 252, 121, 0.5));
}
.icon-container {
width: 48px;
height: 48px;
display: flex;
align-items: center;
justify-content: center;
margin-right: 12px;
}
.highlight-text {
color: #f6fc79;
text-shadow: 0 0 8px rgba(246, 252, 121, 0.7);
font-weight: 600;
}
.guarantee-percent {
background-color: #f6fc79;
color: #0a0a0a;
font-weight: 800;
box-shadow: 0 0 10px rgba(246, 252, 121, 0.7);
}
</style>
</head>
<body class="min-h-screen flex items-center justify-center p-4">
<div class="container mx-auto max-w-6xl">
<!-- Guarantee + Flow Block -->
<div class="guarantee-flow-container mb-20">
<div class="flex flex-col lg:flex-row rounded-xl overflow-hidden border border-gray-800 border-glow">
<!-- Guarantee Section -->
<div class="guarantee-section w-full lg:w-1/2 p-8 relative overflow-hidden">
<div class="relative z-10">
<div class="flex items-center mb-4">
<div class="icon-container">
<svg class="shield-icon w-full h-full" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12 22C12 22 20 18 20 12V5L12 2L4 5V12C4 18 12 22 12 22Z" stroke="#f6fc79" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M12 8V12V8ZM12 12H15H12ZM12 12H9H12Z" stroke="#f6fc79" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</div>
<h2 class="text-2xl font-bold neon-yellow glow-text">Гарантия</h2>
</div>
<p class="text-lg mb-6">
Мы уверены в качестве нашего курса. Если вы не получите результат после прохождения всех модулей и выполнения заданий, мы <span class="highlight-text">вернём вам деньги</span>.
</p>
<div class="flex items-center">
<div class="guarantee-percent px-4 py-2 rounded-full mr-4">
100%
</div>
<span class="text-sm opacity-80">Гарантия возврата средств</span>
</div>
</div>
<svg class="shield-bg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12 22C12 22 20 18 20 12V5L12 2L4 5V12C4 18 12 22 12 22Z" stroke="#f6fc79" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</div>
<!-- Flow Section -->
<div class="flow-section w-full lg:w-1/2 p-8 relative overflow-hidden">
<div class="relative z-10">
<div class="flex items-center mb-4">
<div class="icon-container">
<svg class="w-full h-full neon-yellow" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M19 4H5C3.89543 4 3 4.89543 3 6V20C3 21.1046 3.89543 22 5 22H19C20.1046 22 21 21.1046 21 20V6C21 4.89543 20.1046 4 19 4Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M16 2V6" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M8 2V6" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M3 10H21" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M8 14H8.01" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M12 14H12.01" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M16 14H16.01" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M8 18H8.01" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M12 18H12.01" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M16 18H16.01" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</div>
<h2 class="text-2xl font-bold neon-yellow glow-text">Ближайший поток</h2>
</div>
<div class="mb-6">
<div class="flex items-center mb-2">
<span class="text-gray-400 mr-2">Старт курса:</span>
<span class="font-bold neon-yellow">5 мая</span>
</div>
<div class="flex items-center">
<span class="text-gray-400 mr-2">Осталось мест:</span>
<span class="places-count font-bold">7 из 50</span>
</div>
</div>
<div class="mb-4">
<div class="flex justify-between text-sm mb-1">
<span>Заполненность потока:</span>
<span class="neon-yellow">86%</span>
</div>
<div class="progress-bar">
<div class="progress-fill" style="width: 86%"></div>
</div>
</div>
<button class="book-button w-full md:w-auto neon-yellow-bg hover:neon-yellow-bg text-black font-bold py-3 px-8 rounded-full transition-all duration-300 glow-box">
<svg class="w-5 h-5 inline mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path>
</svg>
Забронировать место
</button>
</div>
<svg class="calendar-bg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M19 4H5C3.89543 4 3 4.89543 3 6V20C3 21.1046 3.89543 22 5 22H19C20.1046 22 21 21.1046 21 20V6C21 4.89543 20.1046 4 19 4Z" stroke="#f6fc79" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M16 2V6" stroke="#f6fc79" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M8 2V6" stroke="#f6fc79" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M3 10H21" stroke="#f6fc79" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</div>
</div>
</div>
</div>
<script>
// Simple counter animation for places left
document.addEventListener('DOMContentLoaded', function() {
// Animate the places counter
const placesElement = document.querySelector('.places-count');
</html>