Auto commit: 2025-12-09T14:35:31.368Z

This commit is contained in:
Flatlogic Bot 2025-12-09 14:35:31 +00:00
parent e0a23e172c
commit 94509d3c24
3 changed files with 469 additions and 145 deletions

257
assets/css/custom.css Normal file
View File

@ -0,0 +1,257 @@
@import url('https://fonts.googleapis.com/css2?family=Great+Vibes&family=Lato:wght@300;400;700&display=swap');
body {
background-color: #FFF5EE;
font-family: 'Lato', sans-serif;
color: #555;
}
h1, h2, h3, h4, h5, h6 {
font-family: 'Great Vibes', cursive;
color: #FFC0CB;
font-weight: normal;
}
.hero {
background: radial-gradient(circle, rgba(255, 192, 203, 0.3) 0%, rgba(255, 245, 238, 0) 70%);
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
color: #fff;
}
.hero-text {
animation: fadeIn 2s ease-in-out;
}
.hero h1 {
font-size: 5rem;
color: #E6A4B4;
}
.hero p {
font-size: 1.5rem;
color: #E6A4B4;
font-family: 'Lato', sans-serif;
font-weight: 300;
}
.section {
padding: 100px 0;
}
.section h2 {
text-align: center;
margin-bottom: 50px;
font-size: 3.5rem;
}
.timeline {
position: relative;
padding: 50px 0;
}
.timeline::before {
content: '';
position: absolute;
top: 0;
left: 50%;
transform: translateX(-50%);
width: 2px;
height: 100%;
background-color: #FFC0CB;
}
.timeline-item {
margin-bottom: 50px;
position: relative;
}
.timeline-item:last-child {
margin-bottom: 0;
}
.timeline-content {
position: relative;
width: 45%;
padding: 20px;
background-color: #fff;
border-radius: 0.75rem;
box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}
.timeline-item:nth-child(odd) .timeline-content {
left: 55%;
}
.timeline-item:nth-child(even) .timeline-content {
left: 0;
text-align: right;
}
.timeline-dot {
position: absolute;
top: 20px;
left: 50%;
transform: translateX(-50%);
width: 20px;
height: 20px;
border-radius: 50%;
background-color: #FFC0CB;
border: 4px solid #FFF5EE;
}
.gallery-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
gap: 15px;
}
.gallery-item {
background-color: #fff;
padding: 10px;
border-radius: 0.75rem;
box-shadow: 0 4px 6px rgba(0,0,0,0.1);
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.gallery-item:hover {
transform: translateY(-5px);
box-shadow: 0 8px 12px rgba(0,0,0,0.15);
}
.gallery-item img {
width: 100%;
height: 200px;
object-fit: cover;
border-radius: 0.5rem;
}
.love-reasons-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
gap: 20px;
}
.reason-card {
background: #fff;
padding: 20px;
border-radius: 0.75rem;
text-align: center;
box-shadow: 0 4px 6px rgba(0,0,0,0.05);
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.reason-card:hover {
transform: translateY(-5px);
box-shadow: 0 10px 20px rgba(255, 192, 203, 0.3);
}
.poem {
max-width: 600px;
margin: 0 auto;
text-align: center;
font-family: 'Great Vibes', cursive;
font-size: 1.8rem;
line-height: 1.8;
color: #777;
}
.final-section {
padding: 150px 0;
text-align: center;
background-color: #FFC0CB;
color: #fff;
position: relative;
overflow: hidden;
}
.final-section h2 {
color: #fff;
font-size: 3rem;
animation: pulse 2s infinite;
}
.floating-hearts {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
}
.heart {
position: absolute;
width: 20px;
height: 20px;
background-color: rgba(255,255,255,0.8);
transform: rotate(-45deg);
animation: float 10s infinite;
}
.heart::before, .heart::after {
content: '';
position: absolute;
width: 20px;
height: 20px;
border-radius: 50%;
background-color: rgba(255,255,255,0.8);
}
.heart::before {
top: -10px;
left: 0;
}
.heart::after {
top: 0;
left: 10px;
}
footer {
background-color: #fcebeb;
padding: 20px 0;
text-align: center;
font-size: 0.9rem;
color: #aaa;
}
.navbar {
transition: background-color 0.3s ease;
}
.navbar.scrolled {
background-color: rgba(255, 245, 238, 0.9) !important;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.nav-link {
color: #E6A4B4 !important;
font-weight: 600;
}
.nav-link:hover {
color: #FFC0CB !important;
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes pulse {
0% { transform: scale(1); }
50% { transform: scale(1.05); }
100% { transform: scale(1); }
}
@keyframes float {
0% { transform: translateY(100vh) rotate(-45deg); opacity: 1; }
100% { transform: translateY(-10vh) rotate(-45deg); opacity: 0; }
}

48
assets/js/main.js Normal file
View File

@ -0,0 +1,48 @@
document.addEventListener('DOMContentLoaded', function() {
// Smooth scrolling for anchor links
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function (e) {
e.preventDefault();
document.querySelector(this.getAttribute('href')).scrollIntoView({
behavior: 'smooth'
});
});
});
// Navbar scroll effect
const navbar = document.querySelector('.navbar');
window.addEventListener('scroll', () => {
if (window.scrollY > 50) {
navbar.classList.add('scrolled');
} else {
navbar.classList.remove('scrolled');
}
});
// Floating hearts animation
const finalSection = document.querySelector('.final-section');
if (finalSection) {
const heartsContainer = document.createElement('div');
heartsContainer.className = 'floating-hearts';
finalSection.appendChild(heartsContainer);
for (let i = 0; i < 15; i++) {
const heart = document.createElement('div');
heart.className = 'heart';
heart.style.left = Math.random() * 100 + 'vw';
heart.style.animationDuration = (Math.random() * 5 + 5) + 's'; // 5-10 seconds
heart.style.animationDelay = Math.random() * 5 + 's';
heartsContainer.appendChild(heart);
}
}
// Music button placeholder
const musicBtn = document.getElementById('play-music-btn');
if(musicBtn) {
musicBtn.addEventListener('click', () => {
alert('Background music coming soon!');
});
}
});

309
index.php
View File

@ -1,150 +1,169 @@
<?php
declare(strict_types=1);
@ini_set('display_errors', '1');
@error_reporting(E_ALL);
@date_default_timezone_set('UTC');
$phpVersion = PHP_VERSION;
$now = date('Y-m-d H:i:s');
?>
<!doctype html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>New Style</title>
<?php
// Read project preview data from environment
$projectDescription = $_SERVER['PROJECT_DESCRIPTION'] ?? '';
$projectImageUrl = $_SERVER['PROJECT_IMAGE_URL'] ?? '';
?>
<?php if ($projectDescription): ?>
<!-- Meta description -->
<meta name="description" content='<?= htmlspecialchars($projectDescription) ?>' />
<!-- Open Graph meta tags -->
<meta property="og:description" content="<?= htmlspecialchars($projectDescription) ?>" />
<!-- Twitter meta tags -->
<meta property="twitter:description" content="<?= htmlspecialchars($projectDescription) ?>" />
<?php endif; ?>
<?php if ($projectImageUrl): ?>
<!-- Open Graph image -->
<meta property="og:image" content="<?= htmlspecialchars($projectImageUrl) ?>" />
<!-- Twitter image -->
<meta property="twitter:image" content="<?= htmlspecialchars($projectImageUrl) ?>" />
<?php endif; ?>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap" rel="stylesheet">
<style>
:root {
--bg-color-start: #6a11cb;
--bg-color-end: #2575fc;
--text-color: #ffffff;
--card-bg-color: rgba(255, 255, 255, 0.01);
--card-border-color: rgba(255, 255, 255, 0.1);
}
body {
margin: 0;
font-family: 'Inter', sans-serif;
background: linear-gradient(45deg, var(--bg-color-start), var(--bg-color-end));
color: var(--text-color);
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
text-align: center;
overflow: hidden;
position: relative;
}
body::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><path d="M-10 10L110 10M10 -10L10 110" stroke-width="1" stroke="rgba(255,255,255,0.05)"/></svg>');
animation: bg-pan 20s linear infinite;
z-index: -1;
}
@keyframes bg-pan {
0% { background-position: 0% 0%; }
100% { background-position: 100% 100%; }
}
main {
padding: 2rem;
}
.card {
background: var(--card-bg-color);
border: 1px solid var(--card-border-color);
border-radius: 16px;
padding: 2rem;
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.1);
}
.loader {
margin: 1.25rem auto 1.25rem;
width: 48px;
height: 48px;
border: 3px solid rgba(255, 255, 255, 0.25);
border-top-color: #fff;
border-radius: 50%;
animation: spin 1s linear infinite;
}
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.hint {
opacity: 0.9;
}
.sr-only {
position: absolute;
width: 1px; height: 1px;
padding: 0; margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap; border: 0;
}
h1 {
font-size: 3rem;
font-weight: 700;
margin: 0 0 1rem;
letter-spacing: -1px;
}
p {
margin: 0.5rem 0;
font-size: 1.1rem;
}
code {
background: rgba(0,0,0,0.2);
padding: 2px 6px;
border-radius: 4px;
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
footer {
position: absolute;
bottom: 1rem;
font-size: 0.8rem;
opacity: 0.7;
}
</style>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>For A, With Love</title>
<!-- SEO Meta Tags -->
<meta name="description" content="<?php echo htmlspecialchars($_SERVER['PROJECT_DESCRIPTION'] ?? 'A special website for a special person.'); ?>">
<meta name="author" content="Your Name">
<meta name="keywords" content="love, romance, personal website, girlfriend">
<!-- Open Graph / Twitter Card Meta Tags (pre-populated by platform) -->
<meta property="og:title" content="For A, With Love">
<meta property="og:description" content="<?php echo htmlspecialchars($_SERVER['PROJECT_DESCRIPTION'] ?? 'A special website for a special person.'); ?>">
<meta property="og:image" content="<?php echo htmlspecialchars($_SERVER['PROJECT_IMAGE_URL'] ?? ''); ?>">
<meta property="og:url" content="<?php echo 'https://'.$_SERVER['HTTP_HOST']; ?>">
<meta name="twitter:card" content="summary_large_image">
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom CSS -->
<link rel="stylesheet" href="assets/css/custom.css?v=<?php echo time(); ?>">
<!-- Font Awesome for icons -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
</head>
<body>
<main>
<div class="card">
<h1>Analyzing your requirements and generating your website…</h1>
<div class="loader" role="status" aria-live="polite" aria-label="Applying initial changes">
<span class="sr-only">Loading…</span>
</div>
<p class="hint"><?= ($_SERVER['HTTP_HOST'] ?? '') === 'appwizzy.com' ? 'AppWizzy' : 'Flatlogic' ?> AI is collecting your requirements and applying the first changes.</p>
<p class="hint">This page will update automatically as the plan is implemented.</p>
<p>Runtime: PHP <code><?= htmlspecialchars($phpVersion) ?></code> — UTC <code><?= htmlspecialchars($now) ?></code></p>
</div>
</main>
<footer>
Page updated: <?= htmlspecialchars($now) ?> (UTC)
</footer>
<!-- Header -->
<nav class="navbar navbar-expand-lg navbar-light bg-transparent fixed-top">
<div class="container">
<a class="navbar-brand" href="#" style="font-family: 'Great Vibes', cursive; font-size: 1.8rem; color: #E6A4B4;">For A</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item"><a class="nav-link" href="#hero">Home</a></li>
<li class="nav-item"><a class="nav-link" href="#story">Our Story</a></li>
<li class="nav-item"><a class="nav-link" href="#love-reasons">Why I Love You</a></li>
<li class="nav-item"><a class="nav-link" href="#gallery">Gallery</a></li>
<li class="nav-item"><a class="nav-link" href="#messages">Messages</a></li>
</ul>
</div>
</div>
</nav>
<!-- Hero Section -->
<section id="hero" class="hero">
<div class="hero-text">
<h1>For A, With Love</h1>
<p>"A, this website is a small piece of my heart for you."</p>
<button id="play-music-btn" class="btn btn-outline-light mt-3"><i class="fas fa-music"></i> Play Music</button>
</div>
</section>
<!-- Our Story Section -->
<section id="story" class="section">
<div class="container">
<h2>Our Story</h2>
<div class="timeline">
<!-- Timeline Item Placeholder 1 -->
<div class="timeline-item">
<div class="timeline-dot"></div>
<div class="timeline-content">
<h3>[Date of a special memory]</h3>
<p>[A short description of the memory. e.g., The day we first met and how the world seemed to stop for a moment.]</p>
</div>
</div>
<!-- Timeline Item Placeholder 2 -->
<div class="timeline-item">
<div class="timeline-dot"></div>
<div class="timeline-content">
<h3>[Another key date]</h3>
<p>[Describe another beautiful moment we shared. Maybe our first trip together or a funny inside joke.]</p>
</div>
</div>
<!-- Timeline Item Placeholder 3 -->
<div class="timeline-item">
<div class="timeline-dot"></div>
<div class="timeline-content">
<h3>[Memorable event]</h3>
<p>[Talk about a challenge we overcame or a dream we shared. This is where we show our strength as a couple.]</p>
</div>
</div>
</div>
</div>
</section>
<!-- Why I Love You Section -->
<section id="love-reasons" class="section bg-light">
<div class="container">
<h2>Why I Love You</h2>
<div class="love-reasons-grid">
<!-- Reason Placeholder -->
<div class="reason-card">Your infectious laugh.</div>
<div class="reason-card">The way your eyes sparkle.</div>
<div class="reason-card">Your kindness to everyone.</div>
<div class="reason-card">How you always support me.</div>
<div class="reason-card">Our late-night talks.</div>
<div class="reason-card">Your passion for your dreams.</div>
<div class="reason-card">The comfort of your hugs.</div>
<div class="reason-card">Your incredible cooking.</div>
<div class="reason-card">How we can be silly together.</div>
<div class="reason-card">Your beautiful soul.</div>
</div>
</div>
</section>
<!-- Gallery Section -->
<section id="gallery" class="section">
<div class="container">
<h2>Gallery</h2>
<div class="gallery-grid">
<!-- Gallery Item Placeholder -->
<div class="gallery-item"><img src="https://via.placeholder.com/300x300.png/FFC0CB/fff?text=Our+Memory+1" alt="Placeholder Image"></div>
<div class="gallery-item"><img src="https://via.placeholder.com/300x300.png/F0E68C/fff?text=Our+Memory+2" alt="Placeholder Image"></div>
<div class="gallery-item"><img src="https://via.placeholder.com/300x300.png/E6A4B4/fff?text=Our+Memory+3" alt="Placeholder Image"></div>
<div class="gallery-item"><img src="https://via.placeholder.com/300x300.png/FFF5EE/333?text=Our+Memory+4" alt="Placeholder Image"></div>
</div>
</div>
</section>
<!-- Messages for Archana Section -->
<section id="messages" class="section bg-light">
<div class="container">
<h2>A Message For You</h2>
<div class="poem">
<p>
In a world of fleeting moments,<br>
You are my constant star.<br>
With every beat of my heart,<br>
I find myself where you are.
</p>
<p>
This is just a placeholder, my love,<br>
For a thousand words I wish to say,<br>
But for now, know this to be true,<br>
I love you more each and every day.
</p>
</div>
</div>
</section>
<!-- Final Page Section -->
<section id="final" class="final-section">
<div class="container">
<h2>A, I love you more every day.</h2>
</div>
<div class="floating-hearts"></div>
</section>
<!-- Footer -->
<footer>
<div class="container">
Made with <i class="fas fa-heart" style="color: #FFC0CB;"></i>, for the one who has my heart.
</div>
</footer>
<!-- Bootstrap JS Bundle -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<!-- Custom JS -->
<script src="assets/js/main.js?v=<?php echo time(); ?>"></script>
</body>
</html>
</html>