added mock daily highlights, new dream entries, and enhanced personalized home page layout and functionality

Signed-off-by: Matthias Puchstein <matthias@puchstein.bayern>
This commit is contained in:
2025-07-09 23:27:45 +02:00
parent 18f2984bbc
commit 4bb7f4c979
3 changed files with 314 additions and 232 deletions

View File

@@ -1,255 +1,276 @@
import {BsMoonStars, BsStars} from 'react-icons/bs';
import {
FaBed,
FaBook,
FaBrain,
FaChartBar,
FaCloud,
FaEye,
FaHeart,
FaMicrophone,
FaMoon,
FaPen,
FaRobot,
FaStar,
FaVrCardboard,
} from 'react-icons/fa';
import {HiSparkles} from 'react-icons/hi';
import logotext from "../assets/logotext.svg";
import {useState} from 'react';
import {mockDreams} from '../data/MockDreams';
import {MockUserMap} from '../data/MockUsers';
import {getSortedDreamsByDate} from '../data/DreamUtils';
import {primaryMoodCategories, topDreamTopics} from '../data/MockDailyHighlights';
interface HomeProps {
isLoggedIn: boolean;
handleLogin: () => void;
}
export default function Home() {
const [inputMode, setInputMode] = useState<'text' | 'drawing'>('text');
const currentUser = MockUserMap.get(4); // Neo Quantum
const currentDate = new Date();
const formattedDate = currentDate.toLocaleDateString('de-DE', {
weekday: 'long',
year: 'numeric',
month: 'long',
day: 'numeric'
});
export default function Home({isLoggedIn, handleLogin}: HomeProps) {
// Get personal dreams (latest 3 for user ID 4)
const personalDreams = getSortedDreamsByDate(
mockDreams.filter(dream => dream.userId === 4)
).slice(0, 3);
if (isLoggedIn) {
return (<div>
<h1>Hallo Neo!</h1>
</div>)
}
// Get friends' dreams (latest 5 from other users)
const friendsDreams = getSortedDreamsByDate(
mockDreams.filter(dream => dream.userId !== 4)
).slice(0, 5);
return (<div className="p-4 pb-20 max-w-6xl mx-auto relative overflow-hidden">
{/* Floating Background Elements */}
<div className="absolute inset-0 pointer-events-none">
<div className="absolute top-10 left-10 text-purple-200 opacity-30">
<FaCloud size={40}/>
return (
<div className="p-4 dream-container backdrop-blur-md bg-opacity-30"
style={{backgroundColor: 'transparent', boxShadow: '0 10px 30px var(--shadow)'}}>
{/* Welcome Card */}
<div className="dreamy-card p-4 mb-4 transition-all duration-300 hover:transform hover:scale-[1.01]"
style={{backgroundColor: 'var(--card)', color: 'var(--text)'}}>
<h1 className="text-2xl font-bold mb-2 dream-title">Hallo Neo!</h1>
<p className="text-sm" style={{color: 'var(--text-muted)'}}>{formattedDate}</p>
<p className="mt-2" style={{color: 'var(--text)'}}>Willkommen zurück in deiner Traumwelt.</p>
</div>
<div className="absolute top-32 right-20 text-purple-300 opacity-20">
<BsStars size={30}/>
</div>
<div className="absolute bottom-40 left-32 text-purple-200 opacity-25">
<BsMoonStars size={35}/>
</div>
</div>
{/* Hero Section */}
<div className="text-center mb-12 sm:mb-16 relative z-10">
<div className="animate-pulse flex flex-col items-center mb-8 sm:mb-12">
<div className="flex items-center justify-around">
<img src={logotext} alt="REMind Logo and Text" className="h-32 sm:h-40 md:h-48 mb-4"/>
</div>
<p className="text-lg sm:text-xl dreamy-text">Träume analysieren, Gesellschaft verstehen</p>
</div>
<div className="dream-container max-w-3xl mx-auto backdrop-blur-sm bg-white/10 dark:bg-white/5 rounded-3xl p-4 sm:p-6 md:p-8">
<div className="flex flex-col sm:flex-row justify-center items-center mb-3 sm:mb-4">
<HiSparkles className="text-yellow-400 mb-2 sm:mb-0 sm:mr-2" size={20} />
<h2 className="dream-title text-xl sm:text-2xl">Träume sammeln KI verstehen VR erleben</h2>
<HiSparkles className="text-yellow-400 mt-2 sm:mt-0 sm:ml-2 hidden sm:block" size={20} />
</div>
<p className="mb-4 sm:mb-6 md:mb-8 text-sm sm:text-base md:text-lg" style={{color: 'var(--text)'}}>
Verwandle deine nächtlichen Reisen in interaktive Traumlandschaften
mit KI-gestützter Analyse und immersiven VR-Erlebnissen
</p>
</div>
</div>
{/* Main Features Grid - Dreamy Cards */}
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8 mb-16">
{/* KI-Traumdeutung */}
{/* Streak Notification */}
<div
className="card floating backdrop-blur-md bg-gradient-to-br from-purple-100/50 to-pink-100/50 border border-purple-200/30 dark:bg-gradient-to-br dark:from-purple-900/30 dark:to-pink-900/30 dark:border-purple-700/30"
style={{animationDelay: '0.5s'}}>
<div className="flex justify-center mb-4">
<div className="p-3 sm:p-4 bg-purple-500/20 rounded-full">
<FaBrain className="text-purple-600 dark:text-purple-400" size={28} />
className="dreamy-card p-4 mb-4 transition-all duration-300 hover:transform hover:scale-[1.01] floating"
style={{
background: 'var(--accent-gradient)',
color: 'white',
boxShadow: '0 10px 30px var(--shadow), inset 0 0 15px rgba(166, 77, 255, 0.3)'
}}>
<div className="flex items-center">
<div className="mr-3">
<svg xmlns="http://www.w3.org/2000/svg" className="h-8 w-8" fill="none" viewBox="0 0 24 24"
stroke="currentColor">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2}
d="M13 10V3L4 14h7v7l9-11h-7z"/>
</svg>
</div>
<div>
<h3 className="font-bold">Traum-Streak: {currentUser?.streakDays} Tage</h3>
<p className="text-sm">Beeindruckend! Du hältst deine Traum-Aufzeichnungen konstant bei.</p>
</div>
</div>
<h3 className="text-lg sm:text-xl font-bold mb-2 sm:mb-3 text-center" style={{color: 'var(--accent)'}}>
KI-Traumdeutung
</h3>
<p className="text-center text-sm sm:text-base" style={{color: 'var(--text)'}}>
Deine Träume werden von KI entschlüsselt -
Symbole erkannt, Emotionen analysiert, Bedeutungen offenbart
</p>
</div>
{/* Multimediale Traumerfassung */}
<div
className="card floating backdrop-blur-md bg-gradient-to-br from-blue-100/50 to-indigo-100/50 border border-blue-200/30 dark:bg-gradient-to-br dark:from-blue-900/30 dark:to-indigo-900/30 dark:border-blue-700/30"
style={{animationDelay: '1s'}}>
<div className="flex justify-center mb-4">
<div className="p-3 sm:p-4 bg-blue-500/20 rounded-full">
<FaMicrophone className="text-blue-600 dark:text-blue-400" size={28} />
{/* Input Card */}
<div className="dreamy-card p-4 mb-4 transition-all duration-300 hover:transform hover:scale-[1.01]"
style={{backgroundColor: 'var(--card)', color: 'var(--text)'}}>
<div className="flex justify-between items-center mb-3">
<h3 className="font-bold dream-title">Neuer Traum</h3>
<div className="flex rounded-lg overflow-hidden" style={{border: '1px solid var(--accent-soft)'}}>
<button
className={`px-3 py-1 text-sm transition-all duration-200`}
onClick={() => setInputMode('text')}
style={{
backgroundColor: inputMode === 'text' ? 'var(--accent)' : 'transparent',
color: inputMode === 'text' ? 'white' : 'var(--text)'
}}
>
Text
</button>
<button
className={`px-3 py-1 text-sm transition-all duration-200`}
onClick={() => setInputMode('drawing')}
style={{
backgroundColor: inputMode === 'drawing' ? 'var(--accent)' : 'transparent',
color: inputMode === 'drawing' ? 'white' : 'var(--text)'
}}
>
Zeichnung
</button>
</div>
</div>
<h3 className="text-lg sm:text-xl font-bold mb-2 sm:mb-3 text-center" style={{color: 'var(--accent)'}}>
Träume einfangen
</h3>
<p className="text-center text-sm sm:text-base" style={{color: 'var(--text)'}}>
Sprich deine Träume in der Nacht, zeichne traumhafte Skizzen
oder schreibe poetische Beschreibungen
</p>
</div>
{/* VR-Traumwelten */}
<div
className="card floating backdrop-blur-md bg-gradient-to-br from-violet-100/50 to-purple-100/50 border border-violet-200/30 dark:bg-gradient-to-br dark:from-violet-900/30 dark:to-purple-900/30 dark:border-violet-700/30"
style={{animationDelay: '1.5s'}}>
<div className="flex justify-center mb-4">
<div className="p-3 sm:p-4 bg-violet-500/20 rounded-full">
<FaVrCardboard className="text-violet-600 dark:text-violet-400" size={28} />
</div>
</div>
<h3 className="text-lg sm:text-xl font-bold mb-2 sm:mb-3 text-center" style={{color: 'var(--accent)'}}>
VR-Traumreisen
</h3>
<p className="text-center text-sm sm:text-base" style={{color: 'var(--text)'}}>
Betritt deine Träume als begehbare Welten -
schwebe durch Erinnerungen, berühre Traumsymbole
</p>
</div>
{/* Traumarchiv */}
<div
className="card backdrop-blur-md bg-gradient-to-br from-emerald-100/50 to-teal-100/50 border border-emerald-200/30 dark:bg-gradient-to-br dark:from-emerald-900/30 dark:to-teal-900/30 dark:border-emerald-700/30"
style={{animationDelay: '2s'}}>
<div className="flex justify-center mb-4">
<div className="p-3 sm:p-4 bg-emerald-500/20 rounded-full">
<FaBook className="text-emerald-600 dark:text-emerald-400" size={28} />
</div>
</div>
<h3 className="text-lg sm:text-xl font-bold mb-2 sm:mb-3 text-center" style={{color: 'var(--accent)'}}>
Traumschatzkammer
</h3>
<p className="text-center text-sm sm:text-base" style={{color: 'var(--text)'}}>
Deine Traumsammlung wächst - durchsuchbar nach Gefühlen,
Symbolen und magischen Momenten
</p>
</div>
{/* Traumstatistiken */}
<div
className="card backdrop-blur-md bg-gradient-to-br from-amber-100/50 to-orange-100/50 border border-amber-200/30 dark:bg-gradient-to-br dark:from-amber-900/30 dark:to-orange-900/30 dark:border-amber-700/30"
style={{animationDelay: '2.5s'}}>
<div className="flex justify-center mb-4">
<div className="p-3 sm:p-4 bg-amber-500/20 rounded-full">
<FaChartBar className="text-amber-600 dark:text-amber-400" size={28} />
</div>
</div>
<h3 className="text-lg sm:text-xl font-bold mb-2 sm:mb-3 text-center" style={{color: 'var(--accent)'}}>
Traummuster
</h3>
<p className="text-center text-sm sm:text-base" style={{color: 'var(--text)'}}>
Entdecke die geheimen Muster deiner Nachtreisen -
welche Träume kehren zurück?
</p>
</div>
{/* Schlafrhythmus */}
<div
className="card backdrop-blur-md bg-gradient-to-br from-rose-100/50 to-pink-100/50 border border-rose-200/30 dark:bg-gradient-to-br dark:from-rose-900/30 dark:to-pink-900/30 dark:border-rose-700/30"
style={{animationDelay: '3s'}}>
<div className="flex justify-center mb-4">
<div className="p-3 sm:p-4 bg-rose-500/20 rounded-full">
<FaMoon className="text-rose-600 dark:text-rose-400" size={28} />
</div>
</div>
<h3 className="text-lg sm:text-xl font-bold mb-2 sm:mb-3 text-center" style={{color: 'var(--accent)'}}>
Schlafzyklen
</h3>
<p className="text-center text-sm sm:text-base" style={{color: 'var(--text)'}}>
Verstehe deine Schlafrhythmen und wie sie deine
Traumlandschaften formen
</p>
</div>
</div>
{/* Dreamy Workflow Section */}
<div
className="dream-container mb-16 backdrop-blur-lg bg-gradient-to-br from-pink-500/30 to-red-400/30 dark:from-pink-800/30 dark:to-red-900/30 rounded-3xl p-6 sm:p-8 md:p-12">
<div className="text-center">
<FaHeart className="text-pink-500 dark:text-pink-400 mx-auto mb-4" size={32} />
<h2 className="dream-title text-2xl sm:text-3xl">Deine magische Traumreise</h2>
</div>
<div className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-4 gap-6 sm:gap-8 mt-6 sm:mt-8">
<div className="text-center">
{inputMode === 'text' ? (
<textarea
className="w-full p-3 rounded-lg mb-3 transition-all duration-200"
rows={4}
placeholder="Beschreibe deinen Traum..."
style={{
backgroundColor: 'var(--bg)',
color: 'var(--text)',
border: '1px solid var(--accent-soft)'
}}
></textarea>
) : (
<div
className="bg-gradient-to-br from-purple-400 to-purple-600 rounded-full w-16 h-16 sm:w-20 sm:h-20 flex items-center justify-center mx-auto mb-4 sm:mb-6 shadow-lg">
<FaBed className="text-white" size={24} />
className="w-full h-40 rounded-lg mb-3 flex items-center justify-center border-2 border-dashed transition-all duration-200"
style={{
backgroundColor: 'var(--bg)',
borderColor: 'var(--accent-soft)'
}}>
<p style={{color: 'var(--text-muted)'}}>Zeichne deinen Traum hier (Canvas-Platzhalter)</p>
</div>
<h4 className="font-bold mb-2 sm:mb-3 dreamy-text text-base sm:text-lg">1. Träumen</h4>
<p className="text-xs sm:text-sm" style={{color: 'var(--text)'}}>
In der Nacht zeichnen deine Sensoren sanft deine Traumreisen auf
</p>
</div>
<div className="text-center">
<div
className="bg-gradient-to-br from-blue-400 to-blue-600 rounded-full w-16 h-16 sm:w-20 sm:h-20 flex items-center justify-center mx-auto mb-4 sm:mb-6 shadow-lg">
<FaPen className="text-white" size={24} />
</div>
<h4 className="font-bold mb-2 sm:mb-3 dreamy-text text-base sm:text-lg">2. Einfangen</h4>
<p className="text-xs sm:text-sm" style={{color: 'var(--text)'}}>
Beim Erwachen flüsterst du deine Träume in die App
</p>
</div>
<div className="text-center">
<div
className="bg-gradient-to-br from-violet-400 to-violet-600 rounded-full w-16 h-16 sm:w-20 sm:h-20 flex items-center justify-center mx-auto mb-4 sm:mb-6 shadow-lg">
<FaRobot className="text-white" size={24} />
</div>
<h4 className="font-bold mb-2 sm:mb-3 dreamy-text text-base sm:text-lg">3. Verzaubern</h4>
<p className="text-xs sm:text-sm" style={{color: 'var(--text)'}}>
KI-Magie verwandelt deine Worte in Bilder, Klänge und Bedeutungen
</p>
</div>
<div className="text-center">
<div
className="bg-gradient-to-br from-pink-400 to-pink-600 rounded-full w-16 h-16 sm:w-20 sm:h-20 flex items-center justify-center mx-auto mb-4 sm:mb-6 shadow-lg">
<FaEye className="text-white" size={24} />
</div>
<h4 className="font-bold mb-2 sm:mb-3 dreamy-text text-base sm:text-lg">4. Erleben</h4>
<p className="text-xs sm:text-sm" style={{color: 'var(--text)'}}>
Tauche ein in deine VR-Traumwelten und entdecke dich selbst
</p>
</div>
</div>
</div>
)}
{/* Dreamy CTA Section */}
<div className="relative mt-12 sm:mt-16">
<div
className="card p-6 sm:p-8 md:p-12 text-center bg-gradient-to-br from-pink-600 via-violet-600 to-purple-600 border-none overflow-hidden">
<div className="relative z-10">
<div className="flex flex-col sm:flex-row justify-center items-center mb-4 sm:mb-6">
<FaStar className="text-yellow-300 mb-2 sm:mb-0 sm:mr-3" size={24} />
<h2 className="text-2xl sm:text-3xl md:text-4xl font-bold text-white">Wo Träume Realität werden</h2>
<FaStar className="text-yellow-300 mt-2 sm:mt-0 sm:ml-3 hidden sm:block" size={24} />
<div className="flex justify-between">
<div className="flex space-x-2">
<button className="p-2 rounded-full transition-all duration-200 hover:transform hover:scale-110"
style={{backgroundColor: 'var(--accent-soft)', color: 'var(--text)'}}>
<svg xmlns="http://www.w3.org/2000/svg" className="h-5 w-5" fill="none" viewBox="0 0 24 24"
stroke="currentColor">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2}
d="M19 11a7 7 0 01-7 7m0 0a7 7 0 01-7-7m7 7v4m0 0H8m4 0h4m-4-8a3 3 0 01-3-3V5a3 3 0 116 0v6a3 3 0 01-3 3z"/>
</svg>
</button>
<button className="p-2 rounded-full transition-all duration-200 hover:transform hover:scale-110"
style={{backgroundColor: 'var(--accent-soft)', color: 'var(--text)'}}>
<svg xmlns="http://www.w3.org/2000/svg" className="h-5 w-5" fill="none" viewBox="0 0 24 24"
stroke="currentColor">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2}
d="M15.172 7l-6.586 6.586a2 2 0 102.828 2.828l6.414-6.586a4 4 0 00-5.656-5.656l-6.415 6.585a6 6 0 108.486 8.486L20.5 13"/>
</svg>
</button>
</div>
<p className="text-base sm:text-lg md:text-xl text-purple-100 mb-6 sm:mb-8 md:mb-10 max-w-2xl mx-auto">
Lass dich von KI-gestützter Traumdeutung, VR-Erlebnissen und personalisierten
Einsichten in eine tiefere Welt deines Unterbewusstseins führen
</p>
<button
className="dreamy-button flex items-center mx-auto text-sm sm:text-base"
onClick={handleLogin}
>
<FaMoon className="mr-2 sm:mr-3" size={18} />
Lass die Magie beginnen!
<HiSparkles className="ml-2 sm:ml-3" size={18} />
<button className="px-4 py-2 rounded-lg transition-all duration-200 hover:transform hover:scale-105"
style={{background: 'var(--accent-gradient)', color: 'white'}}>
Senden
</button>
</div>
</div>
{/* Personal Feed */}
<div className="dreamy-card p-4 mb-4 transition-all duration-300 hover:transform hover:scale-[1.01]"
style={{backgroundColor: 'var(--card)', color: 'var(--text)'}}>
<h3 className="font-bold mb-3 dream-title">Deine letzten Träume</h3>
{personalDreams.length > 0 ? (
<div className="space-y-3">
{personalDreams.map((dream, index) => (
<div key={dream.id}
className="p-3 rounded-lg transition-all duration-300 hover:transform hover:scale-[1.02]"
style={{
backgroundColor: 'var(--bg)',
boxShadow: '0 4px 15px var(--shadow)',
animationDelay: `${index * 0.1}s`
}}>
<h4 className="font-medium" style={{color: 'var(--accent)'}}>{dream.title}</h4>
<p className="text-sm" style={{color: 'var(--text-muted)'}}>
{dream.date.toLocaleDateString('de-DE')}
</p>
</div>
))}
</div>
) : (
<p className="text-sm" style={{color: 'var(--text-muted)'}}>
Du hast noch keine Träume aufgezeichnet. Starte jetzt!
</p>
)}
</div>
{/* Friends Feed */}
<div className="dreamy-card p-4 mb-4 transition-all duration-300 hover:transform hover:scale-[1.01]"
style={{backgroundColor: 'var(--card)', color: 'var(--text)'}}>
<h3 className="font-bold mb-3 dream-title">Träume von Freunden</h3>
<div className="space-y-3">
{friendsDreams.map((dream, index) => {
const dreamUser = MockUserMap.get(dream.userId);
return (
<div key={dream.id}
className="p-3 rounded-lg transition-all duration-300 hover:transform hover:scale-[1.02]"
style={{
backgroundColor: 'var(--bg)',
boxShadow: '0 4px 15px var(--shadow)',
animationDelay: `${index * 0.1}s`
}}>
<div className="flex items-center mb-1">
<div
className="w-6 h-6 rounded-full mr-2 flex items-center justify-center overflow-hidden"
style={{
backgroundColor: 'var(--accent-soft)',
border: '1px solid var(--accent)'
}}>
{dreamUser?.profilePicture ? (
<img src={`/assets/profiles/${dreamUser.profilePicture}`}
alt={dreamUser.name} className="w-full h-full object-cover"/>
) : (
<span className="text-xs"
style={{color: 'var(--text)'}}>{dreamUser?.name.charAt(0)}</span>
)}
</div>
<span className="font-medium text-sm"
style={{color: 'var(--text)'}}>{dreamUser?.name}</span>
</div>
<h4 className="font-medium" style={{color: 'var(--accent)'}}>{dream.title}</h4>
<p className="text-sm" style={{color: 'var(--text-muted)'}}>
{dream.date.toLocaleDateString('de-DE')}
</p>
</div>
);
})}
</div>
</div>
{/* Daily Highlights */}
<div className="dreamy-card p-4 mb-4 transition-all duration-300 hover:transform hover:scale-[1.01]"
style={{backgroundColor: 'var(--card)', color: 'var(--text)'}}>
<h3 className="font-bold mb-3 dream-title">Tägliche Highlights</h3>
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
<div className="p-3 rounded-lg"
style={{backgroundColor: 'var(--bg)', boxShadow: '0 4px 15px var(--shadow)'}}>
<h4 className="font-medium mb-2" style={{color: 'var(--accent)'}}>Top Traumthemen</h4>
<ul className="list-disc pl-5 mb-4">
{topDreamTopics.map((topic, index) => (
<li key={index}
className="text-sm mb-1 transition-all duration-300 hover:transform hover:translate-x-1"
style={{color: 'var(--text)'}}>
<span style={{color: 'var(--accent-soft)'}}>{topic.label}:</span> {topic.percentage}%
</li>
))}
</ul>
</div>
<div className="p-3 rounded-lg"
style={{backgroundColor: 'var(--bg)', boxShadow: '0 4px 15px var(--shadow)'}}>
<h4 className="font-medium mb-2" style={{color: 'var(--accent)'}}>Stimmungskategorien</h4>
<ul className="list-disc pl-5">
{primaryMoodCategories.map((mood, index) => (
<li key={index}
className="text-sm mb-1 transition-all duration-300 hover:transform hover:translate-x-1"
style={{color: 'var(--text)'}}>
<span style={{color: 'var(--accent-soft)'}}>{mood.label}:</span> {mood.percentage}%
</li>
))}
</ul>
</div>
</div>
</div>
{/* Ad Banner */}
<div
className="dreamy-card p-4 mb-4 transition-all duration-300 hover:transform hover:scale-[1.01] floating"
style={{
background: 'linear-gradient(135deg, var(--accent), var(--accent-dark))',
color: 'white',
boxShadow: '0 10px 30px var(--shadow), inset 0 0 15px rgba(166, 77, 255, 0.3)'
}}>
<div className="flex flex-col sm:flex-row items-center">
<div className="mb-4 sm:mb-0 sm:mr-4 transition-all duration-300 hover:transform hover:rotate-12">
<svg xmlns="http://www.w3.org/2000/svg" className="h-16 w-16" fill="none" viewBox="0 0 24 24"
stroke="currentColor">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={1}
d="M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"/>
</svg>
</div>
<div>
<h3 className="font-bold text-lg mb-1">ReMind Sensor-Gerät</h3>
<p className="text-sm mb-2">Verbessere deine Traumerfahrung mit unserem Sensor mit EEG,
Bewegungserkennung und Vitalzeichen-Überwachung.</p>
<div
className="mb-3 inline-block px-2 py-1 text-xs font-bold rounded transition-all duration-300 hover:transform hover:scale-105"
style={{backgroundColor: 'var(--accent-soft)', color: 'var(--text)'}}>
Pro-Funktionen: VR-Räume, Automatische Traumerkennung und Aufzeichnung
</div>
</div>
</div>
</div>
</div>
</div>)
);
}