tar-pract-qwen3 / index.html
algovenus's picture
Build the Oracle's Gym for MacOS using swift/swiftUI code
22fd8be verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Oracle's Gym | A Sparring Partner for Your Intuition</title>
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Montserrat:wght@300;400;500;600&display=swap" rel="stylesheet">
<script src="https://unpkg.com/feather-icons"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/lib/anime.min.js"></script>
<link href="https://unpkg.com/[email protected]/dist/aos.css" rel="stylesheet">
<script src="https://unpkg.com/[email protected]/dist/aos.js"></script>
<style>
:root {
--soft-mauve: #cab5c8;
--sage-green: #a3b7a4;
--warm-cream: #f5f0e6;
--dusty-purple: #9d8ca1;
--golden-yellow: #e6c88d;
--honey: #e6b87d;
--amber: #e6b36d;
--ivory: #fdfaf3;
--dusty-rose: #d8b4b4;
--terracotta: #c77d7d;
--burnt-orange: #d99e6d;
--plum: #8a6d8a;
--muted-gold: #d4af37;
--antique-bronze: #a67b5b;
}
body {
font-family: 'Montserrat', sans-serif;
background: linear-gradient(135deg, var(--ivory) 0%, var(--warm-cream) 100%);
color: #333;
}
.header-font {
font-family: 'Playfair Display', serif;
letter-spacing: 0.5px;
}
.gradiant-text {
background: linear-gradient(90deg, var(--plum) 0%, var(--dusty-purple) 50%, var(--sage-green) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.card {
background: rgba(255, 255, 255, 0.7);
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.3);
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.05);
transition: all 0.3s ease;
}
.card:hover {
transform: translateY(-5px);
box-shadow: 0 12px 40px rgba(0, 0, 0, 0.1);
}
.mode-card {
background: linear-gradient(145deg, var(--ivory), var(--warm-cream));
border-left: 4px solid var(--muted-gold);
}
.btn-primary {
background: linear-gradient(90deg, var(--plum) 0%, var(--dusty-purple) 100%);
color: white;
border: none;
padding: 12px 24px;
border-radius: 4px;
font-weight: 500;
transition: all 0.3s ease;
box-shadow: 0 4px 15px rgba(138, 109, 138, 0.3);
}
.btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 6px 20px rgba(138, 109, 138, 0.5);
}
.btn-secondary {
background: transparent;
border: 1px solid var(--dusty-purple);
color: var(--dusty-purple);
padding: 12px 24px;
border-radius: 4px;
font-weight: 500;
transition: all 0.3s ease;
}
.btn-secondary:hover {
background: rgba(157, 140, 161, 0.1);
}
.theme-tag {
background: rgba(216, 180, 180, 0.2);
color: var(--terracotta);
padding: 4px 12px;
border-radius: 20px;
font-size: 0.8rem;
display: inline-block;
margin: 4px;
}
.art-nouveau-border {
position: relative;
padding: 20px;
}
.art-nouveau-border::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
border: 1px solid var(--sage-green);
border-radius: 8px;
pointer-events: none;
background:
radial-gradient(circle at 10% 10%, transparent 2px, var(--sage-green) 2px, transparent 3px),
radial-gradient(circle at 90% 10%, transparent 2px, var(--sage-green) 2px, transparent 3px),
radial-gradient(circle at 10% 90%, transparent 2px, var(--sage-green) 2px, transparent 3px),
radial-gradient(circle at 90% 90%, transparent 2px, var(--sage-green) 2px, transparent 3px);
}
.glow {
box-shadow: 0 0 15px rgba(230, 184, 125, 0.3);
}
.floating {
animation: float 6s ease-in-out infinite;
}
@keyframes float {
0% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
100% { transform: translateY(0px); }
}
.symbol {
opacity: 0.1;
position: absolute;
z-index: -1;
}
</style>
</head>
<body class="min-h-screen">
<!-- Header -->
<header class="py-8 px-4 md:px-8">
<div class="container mx-auto flex justify-between items-center">
<div class="flex items-center">
<div class="w-12 h-12 rounded-full bg-gradient-to-r from-plum to-dusty-purple flex items-center justify-center text-white mr-3">
<i data-feather="book" class="w-6 h-6"></i>
</div>
<h1 class="text-2xl md:text-3xl font-bold header-font">
<span class="gradiant-text">Oracle's Gym</span>
</h1>
</div>
<nav class="hidden md:flex space-x-6">
<a href="#" class="text-dusty-purple hover:text-plum transition">Dashboard</a>
<a href="#" class="text-dusty-purple hover:text-plum transition">Case Files</a>
<a href="#" class="text-dusty-purple hover:text-plum transition">Master Journal</a>
<a href="#" class="text-dusty-purple hover:text-plum transition">Settings</a>
</nav>
<button class="md:hidden text-dusty-purple">
<i data-feather="menu" class="w-6 h-6"></i>
</button>
</div>
</header>
<!-- Hero Section -->
<section class="py-16 md:py-24 px-4 md:px-8">
<div class="container mx-auto text-center max-w-3xl">
<h2 class="text-4xl md:text-6xl font-bold header-font mb-6">A sparring partner for your intuition</h2>
<p class="text-lg md:text-xl text-gray-600 mb-10 max-w-2xl mx-auto">
Sharpen your tarot reading skills with sophisticated practice scenarios designed for intermediate to advanced readers.
</p>
<div class="flex flex-col sm:flex-row justify-center gap-4">
<button class="btn-primary px-8 py-3 text-lg">Start Practicing</button>
<button class="btn-secondary px-8 py-3 text-lg">Explore Modes</button>
</div>
</div>
</section>
<!-- Features Section -->
<section class="py-16 px-4 md:px-8 bg-ivory">
<div class="container mx-auto">
<div class="text-center mb-16">
<h2 class="text-3xl md:text-4xl font-bold header-font mb-4">Practice with Purpose</h2>
<p class="text-gray-600 max-w-2xl mx-auto">
Three distinct modes to challenge and refine your tarot interpretation skills.
</p>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
<!-- Mode 1 -->
<div class="mode-card card p-8 art-nouveau-border" data-aos="fade-up">
<div class="w-16 h-16 rounded-full bg-amber-100 flex items-center justify-center mb-6">
<i data-feather="folder" class="w-8 h-8 text-amber-700"></i>
</div>
<h3 class="text-2xl font-bold header-font mb-3">Case Files</h3>
<p class="text-gray-600 mb-4">
Deep-dive practice with complex scenarios that reveal hidden insights.
</p>
<div class="flex flex-wrap mb-4">
<span class="theme-tag">Career</span>
<span class="theme-tag">Relationships</span>
<span class="theme-tag">Spirituality</span>
</div>
<button class="text-dusty-purple font-medium flex items-center">
Explore Cases
<i data-feather="arrow-right" class="w-4 h-4 ml-2"></i>
</button>
</div>
<!-- Mode 2 -->
<div class="mode-card card p-8 art-nouveau-border" data-aos="fade-up" data-aos-delay="100">
<div class="w-16 h-16 rounded-full bg-rose-100 flex items-center justify-center mb-6">
<i data-feather="compass" class="w-8 h-8 text-rose-700"></i>
</div>
<h3 class="text-2xl font-bold header-font mb-3">Oracle's Outcome</h3>
<p class="text-gray-600 mb-4">
Predictive practice with multiple paths and narrative consequences.
</p>
<div class="flex flex-wrap mb-4">
<span class="theme-tag">Decision Making</span>
<span class="theme-tag">Advice</span>
<span class="theme-tag">Future</span>
</div>
<button class="text-dusty-purple font-medium flex items-center">
Choose Paths
<i data-feather="arrow-right" class="w-4 h-4 ml-2"></i>
</button>
</div>
<!-- Mode 3 -->
<div class="mode-card card p-8 art-nouveau-border" data-aos="fade-up" data-aos-delay="200">
<div class="w-16 h-16 rounded-full bg-green-100 flex items-center justify-center mb-6">
<i data-feather="refresh-cw" class="w-8 h-8 text-green-700"></i>
</div>
<h3 class="text-2xl font-bold header-font mb-3">Reading Replay</h3>
<p class="text-gray-600 mb-4">
Nuance practice with new information updates after 24-48 hours.
</p>
<div class="flex flex-wrap mb-4">
<span class="theme-tag">Timing</span>
<span class="theme-tag">Context</span>
<span class="theme-tag">Evolution</span>
</div>
<button class="text-dusty-purple font-medium flex items-center">
Replay Readings
<i data-feather="arrow-right" class="w-4 h-4 ml-2"></i>
</button>
</div>
</div>
</div>
</section>
<!-- Reading Interface Preview -->
<section class="py-16 px-4 md:px-8">
<div class="container mx-auto">
<div class="flex flex-col md:flex-row items-center">
<div class="md:w-1/2 mb-10 md:mb-0 md:pr-10">
<h2 class="text-3xl md:text-4xl font-bold header-font mb-6">Sophisticated Reading Interface</h2>
<p class="text-gray-600 mb-6">
Our virtual reading space provides an elegant environment for your practice sessions.
Choose from classic spreads or create your own freestyle layouts.
</p>
<ul class="text-gray-600 space-y-3 mb-8">
<li class="flex items-start">
<i data-feather="check-circle" class="w-5 h-5 text-plum mt-1 mr-3"></i>
<span>High-quality digital decks with detailed card artwork</span>
</li>
<li class="flex items-start">
<i data-feather="check-circle" class="w-5 h-5 text-plum mt-1 mr-3"></i>
<span>Classic spreads including Celtic Cross, 3-Card, and more</span>
</li>
<li class="flex items-start">
<i data-feather="check-circle" class="w-5 h-5 text-plum mt-1 mr-3"></i>
<span>Freestyle mode for custom layouts</span>
</li>
<li class="flex items-start">
<i data-feather="check-circle" class="w-5 h-5 text-plum mt-1 mr-3"></i>
<span>Detailed card viewing with zoom functionality</span>
</li>
</ul>
<button class="btn-primary">Try the Interface</button>
</div>
<div class="md:w-1/2 flex justify-center">
<div class="relative">
<div class="absolute -top-10 -left-10 w-64 h-64 bg-amber-100 rounded-full opacity-20 floating"></div>
<div class="relative bg-gradient-to-br from-ivory to-warm-cream border border-dusty-purple rounded-xl shadow-xl p-6 w-full max-w-md">
<div class="flex justify-between items-center mb-6">
<h3 class="text-xl font-bold header-font">Reading Preview</h3>
<div class="flex space-x-2">
<div class="w-3 h-3 bg-plum rounded-full"></div>
<div class="w-3 h-3 bg-sage-green rounded-full"></div>
<div class="w-3 h-3 bg-amber rounded-full"></div>
</div>
</div>
<div class="flex justify-center mb-6">
<div class="grid grid-cols-3 gap-4">
<div class="w-20 h-32 bg-gradient-to-br from-plum to-dusty-purple rounded shadow-md flex items-center justify-center text-white font-bold transform rotate-12">I</div>
<div class="w-20 h-32 bg-gradient-to-br from-sage-green to-amber rounded shadow-md flex items-center justify-center text-white font-bold">X</div>
<div class="w-20 h-32 bg-gradient-to-br from-terracotta to-burnt-orange rounded shadow-md flex items-center justify-center text-white font-bold transform -rotate-12">XI</div>
</div>
</div>
<div class="bg-white bg-opacity-70 rounded-lg p-4">
<p class="text-sm italic">"The cards reveal hidden motivations beneath the surface question..."</p>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Master Journal -->
<section class="py-16 px-4 md:px-8 bg-ivory">
<div class="container mx-auto">
<div class="text-center mb-16">
<h2 class="text-3xl md:text-4xl font-bold header-font mb-4">Master Journal</h2>
<p class="text-gray-600 max-w-2xl mx-auto">
Your personal archive of readings with powerful search and filtering capabilities.
</p>
</div>
<div class="grid grid-cols-1 md:grid-cols-2 gap-8">
<div class="card p-6">
<h3 class="text-xl font-bold header-font mb-4">Reading Archive</h3>
<div class="space-y-4">
<div class="p-4 bg-white rounded-lg border-l-4 border-plum">
<div class="flex justify-between">
<h4 class="font-bold">Career Crossroads</h4>
<span class="text-sm text-gray-500">2 days ago</span>
</div>
<p class="text-sm text-gray-600 mt-2">3-Card Spread | Career & Finance</p>
</div>
<div class="p-4 bg-white rounded-lg border-l-4 border-sage-green">
<div class="flex justify-between">
<h4 class="font-bold">Relationship Dynamics</h4>
<span class="text-sm text-gray-500">1 week ago</span>
</div>
<p class="text-sm text-gray-600 mt-2">Celtic Cross | Romance & Relationships</p>
</div>
<div class="p-4 bg-white rounded-lg border-l-4 border-amber">
<div class="flex justify-between">
<h4 class="font-bold">Spiritual Growth</h4>
<span class="text-sm text-gray-500">3 weeks ago</span>
</div>
<p class="text-sm text-gray-600 mt-2">Freestyle | Personal Growth</p>
</div>
</div>
</div>
<div class="card p-6">
<h3 class="text-xl font-bold header-font mb-4">Filter & Search</h3>
<div class="space-y-4">
<div class="relative">
<input type="text" placeholder="Search readings..." class="w-full p-3 rounded border border-gray-300 focus:outline-none focus:ring-2 focus:ring-plum">
<i data-feather="search" class="absolute right-3 top-3.5 w-5 h-5 text-gray-400"></i>
</div>
<div class="mt-6">
<h4 class="font-bold mb-2">Filter by Theme</h4>
<div class="flex flex-wrap gap-2">
<span class="theme-tag">Career</span>
<span class="theme-tag">Relationships</span>
<span class="theme-tag">Spirituality</span>
<span class="theme-tag">Health</span>
<span class="theme-tag">Creativity</span>
</div>
</div>
<div class="mt-6">
<h4 class="font-bold mb-2">Filter by Date</h4>
<div class="flex space-x-2">
<button class="flex-1 py-2 bg-white rounded border border-gray-300">Last 7 Days</button>
<button class="flex-1 py-2 bg-white rounded border border-gray-300">Last 30 Days</button>
<button class="flex-1 py-2 bg-white rounded border border-gray-300">All</button>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- CTA Section -->
<section class="py-20 px-4 md:px-8">
<div class="container mx-auto text-center max-w-3xl">
<h2 class="text-3xl md:text-4xl font-bold header-font mb-6">Elevate Your Tarot Practice</h2>
<p class="text-lg text-gray-600 mb-10">
Join thousands of tarot readers who are sharpening their intuition with Oracle's Gym.
</p>
<div class="flex flex-col sm:flex-row justify-center gap-4">
<button class="btn-primary px-8 py-3 text-lg">Start Free Trial</button>
<button class="btn-secondary px-8 py-3 text-lg">View Pricing</button>
</div>
</div>
</section>
<!-- Footer -->
<footer class="py-12 px-4 md:px-8 bg-gradient-to-r from-plum to-dusty-purple text-white">
<div class="container mx-auto">
<div class="flex flex-col md:flex-row justify-between items-center">
<div class="mb-6 md:mb-0">
<div class="flex items-center">
<div class="w-10 h-10 rounded-full bg-white flex items-center justify-center text-plum mr-3">
<i data-feather="book"></i>
</div>
<h2 class="text-2xl font-bold header-font">Oracle's Gym</h2>
</div>
<p class="mt-2 text-plum-200">A sparring partner for your intuition</p>
</div>
<div class="flex flex-wrap justify-center gap-6">
<div>
<h3 class="font-bold mb-2">Practice Modes</h3>
<ul class="text-plum-200 space-y-1">
<li><a href="#" class="hover:text-white transition">Case Files</a></li>
<li><a href="#" class="hover:text-white transition">Oracle's Outcome</a></li>
<li><a href="#" class="hover:text-white transition">Reading Replay</a></li>
</ul>
</div>
<div>
<h3 class="font-bold mb-2">Resources</h3>
<ul class="text-plum-200 space-y-1">
<li><a href="#" class="hover:text-white transition">Blog</a></li>
<li><a href="#" class="hover:text-white transition">Tutorials</a></li>
<li><a href="#" class="hover:text-white transition">Community</a></li>
</ul>
</div>
<div>
<h3 class="font-bold mb-2">Support</h3>
<ul class="text-plum-200 space-y-1">
<li><a href="#" class="hover:text-white transition">Help Center</a></li>
<li><a href="#" class="hover:text-white transition">Contact</a></li>
<li><a href="#" class="hover:text-white transition">Privacy Policy</a></li>
</ul>
</div>
</div>
</div>
<div class="mt-12 pt-8 border-t border-plum-300 text-center text-plum-200">
<p>© 2023 Oracle's Gym. All rights reserved.</p>
</div>
</div>
</footer>
<script>
// Initialize Feather Icons
feather.replace();
// Initialize AOS
AOS.init({
duration: 800,
easing: 'ease-out-quart'
});
// Anime.js animations
document.addEventListener('DOMContentLoaded', function() {
// Animate hero text
anime({
targets: '.header-font',
translateY: [50, 0],
opacity: [0, 1],
duration: 1000,
easing: 'easeOutExpo'
});
// Animate buttons
anime({
targets: '.btn-primary, .btn-secondary',
translateY: [30, 0],
opacity: [0, 1],
duration: 1200,
delay: anime.stagger(200),
easing: 'easeOutExpo'
});
// Floating animation for cards
anime({
targets: '.floating',
translateY: [-10, 10],
duration: 2000,
loop: true,
direction: 'alternate',
easing: 'easeInOutQuad'
});
});
</script>
</body>
</html>