تحليل ثيم ZEZO Ai
https://chatgpt.com/s/t_6ad2ce6bfa388191acf399001b98099f
ZEZO Ai · Snow Universe v5.0
التوسعة الشاملة: ثيمات، مكتبات، وتجربة غامرة لا تُنسى
الجزء الأول: الثيمات الموسّعة (12 ثيمًا كاملًا)
البنية الأساسية لكل ثيم
json
{
"$schema": "https://zezo.ai/themes/v5.0",
"themes": {
"snow-white": {
"id": "snow-white",
"name": "الثلج النقي",
"nameEn": "Pure Snow",
"mood": "default",
"temperature": "neutral",
"bestFor": "الإنتاجية العامة، العمل اليومي",
"bg": "#F8FAFF",
"bgElevated": "#FFFFFF",
"bgSunken": "#EEF2FB",
"text": "#0D1028",
"textMuted": "#464E70",
"border": "rgba(26,35,126,.12)",
"glow": "rgba(0,171,232,.18)",
"gradient": "linear-gradient(180deg, #FFFFFF 0%, #F8FAFF 40%, #EEF2FB 100%)",
"accent": "#00ABE8",
"signature": "نقاء بصري مطلق مع لمسة زرقة خفيفة"
},
"aurora-blue": {
"id": "aurora-blue",
"name": "الشفق الأزرق",
"nameEn": "Aurora Blue",
"mood": "cool",
"temperature": "cold",
"bestFor": "جلسات التركيز العميق، التحليل، البرمجة",
"bg": "#EEF4FF",
"bgElevated": "#FFFFFF",
"bgSunken": "#DCE8FF",
"text": "#0A1030",
"textMuted": "#3A4A7A",
"border": "rgba(0,171,232,.20)",
"glow": "rgba(0,171,232,.35)",
"gradient": "linear-gradient(160deg, #EEF4FF 0%, #D6E8FF 50%, #B8D8FF 100%)",
"accent": "#00ABE8",
"signature": "توهج سماوي قطبي يمنح إحساسًا بالعمق الكوني"
},
"solar-sunset": {
"id": "solar-sunset",
"name": "الغروب الشمسي",
"nameEn": "Solar Sunset",
"mood": "warm",
"temperature": "hot",
"bestFor": "الإبداع، العصف الذهني، الكتابة",
"bg": "#FFF8F0",
"bgElevated": "#FFFFFF",
"bgSunken": "#FFEEDC",
"text": "#2A1400",
"textMuted": "#7A4A20",
"border": "rgba(255,134,37,.22)",
"glow": "rgba(255,134,37,.32)",
"gradient": "linear-gradient(160deg, #FFF8F0 0%, #FFE4C4 50%, #FFD0A0 100%)",
"accent": "#FF8625",
"signature": "دفء ذهبي يحفّز الإبداع ويرفع الطاقة"
},
"mint-fresh": {
"id": "mint-fresh",
"name": "النعناع المنعش",
"nameEn": "Mint Fresh",
"mood": "balanced",
"temperature": "cool-neutral",
"bestFor": "القراءة، المراجعة، التعلم",
"bg": "#F0FBF6",
"bgElevated": "#FFFFFF",
"bgSunken": "#DCF5E8",
"text": "#0A2A1E",
"textMuted": "#3A6B58",
"border": "rgba(16,185,129,.20)",
"glow": "rgba(16,185,129,.28)",
"gradient": "linear-gradient(160deg, #F0FBF6 0%, #D8F5E6 50%, #B8EBD0 100%)",
"accent": "#10B981",
"signature": "نقاء نعناعي يهدّئ العين ويطيل التركيز"
},
"royal-purple": {
"id": "royal-purple",
"name": "البنفسجي الملكي",
"nameEn": "Royal Purple",
"mood": "creative",
"temperature": "warm-cool",
"bestFor": "التصميم، الإبداع البصري، العروض",
"bg": "#F8F4FF",
"bgElevated": "#FFFFFF",
"bgSunken": "#EDE4FF",
"text": "#1A0A3A",
"textMuted": "#5A3A8A",
"border": "rgba(124,58,237,.20)",
"glow": "rgba(124,58,237,.30)",
"gradient": "linear-gradient(160deg, #F8F4FF 0%, #E8DCFF 50%, #D4C0FF 100%)",
"accent": "#7C3AED",
"signature": "فخامة ملكية تمنح المشاريع الإبداعية هيبة"
},
"ocean-depth": {
"id": "ocean-depth",
"name": "عمق المحيط",
"nameEn": "Ocean Depth",
"mood": "focused",
"temperature": "cool",
"bestFor": "التحليل العميق، البيانات الضخمة، الأبحاث",
"bg": "#F0F7FA",
"bgElevated": "#FFFFFF",
"bgSunken": "#DCEAF2",
"text": "#0A1F2E",
"textMuted": "#2A5A7A",
"border": "rgba(2,119,189,.22)",
"glow": "rgba(2,119,189,.32)",
"gradient": "linear-gradient(160deg, #F0F7FA 0%, #D4E8F5 50%, #B0D4EB 100%)",
"accent": "#0277BD",
"signature": "عمق محيطي يوحي بالمعرفة اللامحدودة"
},
"rose-quartz": {
"id": "rose-quartz",
"name": "الكوارتز الوردي",
"nameEn": "Rose Quartz",
"mood": "soft",
"temperature": "warm",
"bestFor": "التواصل، المجتمع، الدعم",
"bg": "#FFF5F8",
"bgElevated": "#FFFFFF",
"bgSunken": "#FFE4EC",
"text": "#2A0A14",
"textMuted": "#8A4A5E",
"border": "rgba(244,114,182,.22)",
"glow": "rgba(244,114,182,.28)",
"gradient": "linear-gradient(160deg, #FFF5F8 0%, #FFE0EA 50%, #FFC8DA 100%)",
"accent": "#F472B6",
"signature": "نعومة وردية تبعث الطمأنينة والدفء الإنساني"
},
"arctic-night": {
"id": "arctic-night",
"name": "الليل القطبي",
"nameEn": "Arctic Night",
"mood": "dark",
"temperature": "cold-dark",
"bestFor": "العمل الليلي، الشاشات الكبيرة، العروض",
"bg": "#0A0E27",
"bgElevated": "#141B4D",
"bgSunken": "#070B2E",
"text": "#F8FAFF",
"textMuted": "#9AA5C4",
"border": "rgba(255,255,255,.12)",
"glow": "rgba(0,171,232,.40)",
"gradient": "linear-gradient(160deg, #0A0E27 0%, #141B4D 50%, #1A237E 100%)",
"accent": "#00ABE8",
"signature": "ليل قطبي داكن مع شفق أزرق متوهج"
},
"desert-gold": {
"id": "desert-gold",
"name": "الذهب الصحراوي",
"nameEn": "Desert Gold",
"mood": "luxury",
"temperature": "hot",
"bestFor": "العروض التقديمية، التسويق، الفخامة",
"bg": "#FFFCF5",
"bgElevated": "#FFFFFF",
"bgSunken": "#FFF4DC",
"text": "#2A1A00",
"textMuted": "#7A5A20",
"border": "rgba(212,160,23,.25)",
"glow": "rgba(212,160,23,.30)",
"gradient": "linear-gradient(160deg, #FFFCF5 0%, #FFEFC8 50%, #FFE0A0 100%)",
"accent": "#D4A017",
"signature": "فخامة ذهبية صحراوية بدفء استثنائي"
},
"cyber-neon": {
"id": "cyber-neon",
"name": "النيون السيبراني",
"nameEn": "Cyber Neon",
"mood": "futuristic",
"temperature": "cold-neon",
"bestFor": "AR/VR، الألعاب، المشاريع المستقبلية",
"bg": "#0A0A1A",
"bgElevated": "#14142E",
"bgSunken": "#060612",
"text": "#E8F0FF",
"textMuted": "#8898C8",
"border": "rgba(0,255,234,.20)",
"glow": "rgba(0,255,234,.45)",
"gradient": "linear-gradient(160deg, #0A0A1A 0%, #1A0A2E 50%, #2A0A4E 100%)",
"accent": "#00FFEA",
"signature": "نيون سيبراني مستقبلي ينبض بالحياة الرقمية"
},
"forest-calm": {
"id": "forest-calm",
"name": "هدوء الغابة",
"nameEn": "Forest Calm",
"mood": "natural",
"temperature": "green",
"bestFor": "التأمل، الصحة، الاسترخاء",
"bg": "#F2FAF4",
"bgElevated": "#FFFFFF",
"bgSunken": "#E0F2E4",
"text": "#0A2010",
"textMuted": "#2A5A38",
"border": "rgba(34,139,34,.20)",
"glow": "rgba(34,139,34,.25)",
"gradient": "linear-gradient(160deg, #F2FAF4 0%, #D8F0DE 50%, #B8E4C4 100%)",
"accent": "#228B22",
"signature": "أخضر غابوي طبيعي يجدد الطاقة والصفاء"
},
"cosmic-dust": {
"id": "cosmic-dust",
"name": "الغبار الكوني",
"nameEn": "Cosmic Dust",
"mood": "cosmic",
"temperature": "deep-space",
"bestFor": "الاستكشاف، الفضاء، الابتكار الجذري",
"bg": "#0E0A1E",
"bgElevated": "#1A1230",
"bgSunken": "#08051A",
"text": "#F0E8FF",
"textMuted": "#A898D8",
"border": "rgba(168,85,247,.20)",
"glow": "rgba(168,85,247,.40)",
"gradient": "linear-gradient(160deg, #0E0A1E 0%, #2A1A4E 50%, #4A2A7E 100%)",
"accent": "#A855F7",
"signature": "غبار كوني بنفسجي يحمل أسرار المجرة"
}
}
}
الجزء الثاني: مكتبة المكوّنات الموسّعة (85+ مكوّنًا)
2.1 مكتبة الأزرار (12 نمطًا)
text
1. Primary Solid — إجراء رئيسي (خلفية إنديغو، نص أبيض) 2. Secondary Outline — إجراء ثانوي (حدود، شفاف) 3. Accent Solar — إجراء إبداعي (خلفية برتقالية) 4. Ghost — شفاف تمامًا (للتنقل) 5. Glass — زجاجي (Glassmorphism) 6. Gradient — تدرج الهوية 7. Icon Only — أيقونة فقط (دائري) 8. Split — زر منقسم (نص + سهم) 9. Loading — بحالة تحميل 10. Success — بعد إتمام الإجراء 11. Danger — إجراء خطر (أحمر) 12. Floating — زر عائم (FAB)
2.2 مكتبة البطاقات (15 نمطًا)
text
1. Basic Card — بطاقة أساسية 2. Glass Card — بطاقة زجاجية 3. Gradient Card — بطاقة متدرجة 4. Stat Card — بطاقة إحصائية (رقم كبير) 5. Profile Card — بطاقة ملف شخصي 6. Project Card — بطاقة مشروع 7. Timeline Card — بطاقة زمنية 8. Chart Card — بطاقة رسم بياني 9. 3D Tilt Card — بطاقة بميلان ثلاثي 10. Hover Reveal — بطاقة تكشف المحتوى عند التمرير 11. Media Card — بطاقة وسائط (صورة/فيديو) 12. Pricing Card — بطاقة تسعير 13. Testimonial Card — بطاقة شهادة 14. Dashboard Widget — ودجت لوحة تحكم 15. Interactive Card — بطاقة تفاعلية
2.3 مكتبة النماذج (12 نمطًا)
text
1. Text Input — إدخال نصي 2. Floating Label — تسمية عائمة 3. Search Bar — شريط بحث 4. Dropdown — قائمة منسدلة 5. Multi-select — اختيار متعدد 6. Date Picker — منتقي تاريخ 7. Color Picker — منتقي ألوان 8. Range Slider — شريط تمرير 9. Toggle Switch — مفتاح تبديل 10. Checkbox Group — مجموعة خيارات 11. Radio Group — مجموعة راديو 12. File Upload — رفع ملفات
2.4 مكتبة التنقل (10 أنماط)
text
1. Top Nav — شريط تنقل علوي 2. Side Nav — شريط جانبي 3. Bottom Nav — شريط سفلي (موبايل) 4. Breadcrumbs — فتات الخبز 5. Tabs — تبويبات 6. Pills — حبوب تنقل 7. Pagination — ترقيم الصفحات 8. Stepper — خطوات متتابعة 9. Command Palette — لوحة أوامر (Ctrl+K) 10. Mega Menu — قائمة ضخمة
2.5 مكتبة البيانات (10 أنماط)
text
1. Data Table — جدول بيانات 2. Sortable Table — جدول قابل للترتيب 3. Filterable Table — جدول قابل للفلترة 4. Paginated Table — جدول بترقيم 5. Tree View — عرض شجري 6. Kanban Board — لوحة كانبان 7. Calendar View — عرض تقويمي 8. Gantt Chart — مخطط جانت 9. Heatmap — خريطة حرارية 10. Network Graph — رسم شبكي
2.6 مكتبة الرسوم البيانية (12 نمطًا)
text
1. Line Chart — رسم خطي 2. Bar Chart — رسم أعمدة 3. Area Chart — رسم مساحي 4. Pie / Donut — دائري / حلقي 5. Radar Chart — رسم رادار 6. Scatter Plot — مخطط مبعثر 7. Bubble Chart — مخطط فقاعي 8. Candlestick — مخطط شموع 9. Sankey Diagram — مخطط سانكي 10. Chord Diagram — مخطط وترى 11. 3D Bar Chart — أعمدة ثلاثية 12. Animated Line — خطي متحرك
2.7 مكتبة التغذية الراجعة (10 أنماط)
text
1. Toast — إشعار عائم 2. Snackbar — شريط سفلي 3. Alert Banner — لافتة تنبيه 4. Modal Dialog — نافذة منبثقة 5. Drawer — درج جانبي 6. Tooltip — تلميح 7. Popover — فقاعة منبثقة 8. Progress Bar — شريط تقدم 9. Skeleton Loader — هيكل تحميل 10. Empty State — حالة فارغة
2.8 مكتبة الأيقونات (120 أيقونة في 12 فئة)
text
AI & Machine Learning (10): brain, neural-network, robot, chip, data-flow, algorithm, model, training, inference, dataset Development (12): code, terminal, git-branch, bug, package, api, database, server, cloud, docker, kubernetes, deployment Design (10): palette, brush, layers, grid, typography, color-swatch, pen-tool, crop, mask, prototype Communication (10): chat, mail, phone, video-call, microphone, speaker, notification, inbox, send, reply Navigation (10): home, search, menu, arrow-right, arrow-left, chevron-up, chevron-down, external-link, back, forward Media (10): play, pause, stop, skip-forward, skip-back, volume, fullscreen, camera, image, music Business (10): chart-bar, chart-line, chart-pie, trending-up, trending-down, wallet, credit-card, receipt, target, award Security (10): lock, unlock, shield, key, fingerprint, eye, eye-off, scan, verified, warning AR/VR (10): vr-headset, ar-cube, 3d-model, spatial, hologram, gesture, motion, depth, immersive, reality Social (10): user, users, heart, star, bookmark, share, follow, like, comment, mention System (10): settings, filter, sort, refresh, download, upload, copy, paste, trash, edit Weather & Nature (8): sun, moon, cloud, rain, snow, wind, fire, leaf
2.9 مكتبة الحركات (20 حركة جاهزة)
text
Entrance: 1. fadeIn — تلاشي للداخل 2. slideInUp — انزلاق من الأسفل 3. slideInDown — انزلاق من الأعلى 4. slideInLeft — انزلاق من اليسار 5. slideInRight — انزلاق من اليمين 6. scaleIn — تكبير للداخل 7. rotateIn — دوران للداخل 8. bounceIn — ارتداد للداخل Exit: 9. fadeOut — تلاشي للخارج 10. slideOutUp — انزلاق للأعلى 11. slideOutDown — انزلاق للأسفل 12. scaleOut — تصغير للخارج Attention: 13. pulse — نبض 14. shake — اهتزاز 15. wobble — تمايل 16. bounce — ارتداد 17. flash — وميض Special: 18. morph — تحول 19. parallax — تزيح 20. magnetic — مغناطيسي (يتبع المؤشر)
2.10 مكتبة التخطيطات (25 تخطيطًا جاهزًا)
text
Pages: 1. Landing Hero — صفحة هبوط رئيسية 2. Landing Features — صفحة مميزات 3. Landing Pricing — صفحة تسعير 4. Landing Testimonials — صفحة شهادات 5. Landing FAQ — صفحة أسئلة 6. About Us — صفحة عنا 7. Contact — صفحة تواصل 8. Blog List — قائمة مدونة 9. Blog Post — مقال مدونة 10. Documentation — صفحة توثيق Dashboards: 11. Analytics — لوحة تحليلات 12. CRM — لوحة عملاء 13. Project Mgmt — لوحة مشاريع 14. Finance — لوحة مالية 15. Settings — لوحة إعدادات Apps: 16. Chat App — تطبيق محادثة 17. Email App — تطبيق بريد 18. Calendar App — تطبيق تقويم 19. File Manager — مدير ملفات 20. Notes App — تطبيق ملاحظات Special: 21. Auth (Login) — تسجيل دخول 22. Auth (Register) — تسجيل جديد 23. Onboarding — تأهيل 24. 404 Page — صفحة خطأ 25. Maintenance — صفحة صيانة
الجزء الثالث: التجربة الغامرة (Immersive Experience)
3.1 المشهد الافتتاحي (Hero Opening Scene)
text
╔══════════════════════════════════════════════════════════╗ ║ ║ ║ [خلفية: جسيمات ثلجية تتحرك ببطء] ║ ║ [توهج أزرق خفيف في المركز] ║ ║ ║ ║ ❄ Z E Z O A i ❄ ║ ║ ║ ║ من الفكرة إلى الواقع… معًا نبني المستقبل ║ ║ ║ ║ [زر: ابدأ الرحلة] [زر: استكشف الهوية] ║ ║ ║ ║ [شريط تمرير: مرر للأسفل] ║ ║ ║ ╚══════════════════════════════════════════════════════════╝
التفاصيل:
- جسيمات ثلجية: 50 جسيمًا يتحرك بسرعة مختلفة (Parallax)
- توهج مركزي:
radial-gradientيتنفس (يتوسع ويتقلص) - الشعار: يدخل بحركة
fadeIn + scaleInمع تأخير 300ms - الأزرار: تظهر بحركة
slideInUpمتتابعة - التمرير: يظهر بعد 2 ثانية مع حركة
pulse
3.2 رحلة المستخدم (User Journey) — 7 مراحل
text
المرحلة 1: الافتتاح (0–3 ثوانٍ) ├─ جسيمات ثلجية تتحرك ├─ الشعار يتشكل └─ العبارة تظهر المرحلة 2: الاستكشاف (3–10 ثوانٍ) ├─ المستخدم يمرر ├─ البطاقات تظهر بحركة متتابعة └─ الألوان تتكشف المرحلة 3: التفاعل (10–30 ثانية) ├─ مختبر الألوان الحي ├─ استوديو الثيمات └─ محاكي الأفتار المرحلة 4: الغمر (30–60 ثانية) ├─ الانتقال بين الثيمات ├─ تغيير المزاج البصري └─ التفاعل مع الأفتار المرحلة 5: التخصيص (1–2 دقيقة) ├─ المستخدم يختار ثيمه المفضل ├─ يخصص الألوان └─ يحفظ الإعدادات المرحلة 6: الإنجاز (2–3 دقائق) ├─ نسخ Design Tokens ├─ تحميل الموارد └─ مشاركة النتائج المرحلة 7: العودة (مستقبلية) ├─ الثيم محفوظ ├─ التجربة مخصصة └─ المستخدم يعود
3.3 التأثيرات الحسية (Sensory Effects)
أ. التأثيرات البصرية
text
1. Snow Particles — جسيمات ثلجية متساقطة 2. Aurora Waves — موجات شفقية في الخلفية 3. Floating Orbs — كرات ضوئية عائمة 4. Mesh Gradient — تدرج شبكي متحرك 5. Cursor Trail — ذيل المؤشر (اختياري) 6. Magnetic Buttons — أزرار تتبع المؤشر 7. 3D Tilt Cards — بطاقات تميل مع المؤشر 8. Parallax Layers — طبقات تتحرك بسرعات مختلفة 9. Light Beams — أشعة ضوئية تمر 10. Particle Connections — جسيمات تتصل بخطوط
ب. التأثيرات الصوتية (اختيارية)
text
1. Ambient Snow — صوت ثلج هادئ 2. Soft Chime — رنين ناعم عند التفاعل 3. Whoosh Transition — صوت انتقالي 4. Success Tone — نغمة نجاح 5. Hover Whisper — همسة عند التمرير 6. Theme Switch Sound — صوت تغيير الثيم
ملاحظة: الصوت مُعطّل افتراضيًا — يُفعّل يدويًا من الإعدادات. احترامًا للمستخدم.
ج. التأثيرات اللمسية (Haptics)
text
1. Light Impact — عند التمرير على زر 2. Medium Impact — عند الضغط 3. Heavy Impact — عند الإجراء المهم 4. Success Notification — عند النجاح 5. Warning Notification — عند التنبيه 6. Selection Changed — عند تغيير الخيار
3.4 المناطق الغامرة (Immersive Zones)
المنطقة 1: مختبر الألوان الحي
text
┌─────────────────────────────────────────────────────────┐ │ 🎨 مختبر الألوان الحي │ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ Primary │ │ Secondary │ │ Accent │ │ │ │ #301782 │ │ #0C8ADF │ │ #249CFF │ │ │ │ [منتقي] │ │ [منتقي] │ │ [منتقي] │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │ │ │ ┌─────────────────────────────────────────────────┐ │ │ │ │ │ │ │ [بطاقة معاينة حية] │ │ │ │ │ │ │ │ ZEZO Ai │ │ │ │ #301782 · #0C8ADF · #249CFF │ │ │ │ │ │ │ │ [زر رئيسي] [زر ثانوي] │ │ │ │ │ │ │ └─────────────────────────────────────────────────┘ │ │ │ │ توليفات جاهزة: │ │ [الهوية الرسمية] [أزرق سماوي] [بنفسجي ملكي] [زمردي] │ │ │ └─────────────────────────────────────────────────────────┘
التفاعل:
- كل تغيير في المنتقي يُحدّث البطاقة فورًا
- التدرجات تُعاد حسابها تلقائيًا
- زر “نسخ” ينسخ التوليفة كاملة كـ JSON
المنطقة 2: استوديو الثيمات السحري
text
┌─────────────────────────────────────────────────────────┐ │ ✨ استوديو الثيمات السحري │ │ │ │ اختر مزاجًا بصريًا كاملاً — كل ثيم يعيد تشكيل │ │ الخلفية، التوهجات، والتدرجات فورًا. │ │ │ │ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │ │ │ ❄️ │ │ 🌌 │ │ 🌅 │ │ 🌿 │ │ 👑 │ │ │ │الثلج │ │الشفق │ │الغروب│ │النعناع│ │الملكي│ │ │ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ │ │ │ │ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │ │ │ 🌊 │ │ 🌸 │ │ 🌙 │ │ 🏜️ │ │ 🤖 │ │ │ │المحيط│ │الوردي│ │الليلي│ │الذهبي│ │النيون│ │ │ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ │ │ │ │ ┌──────┐ ┌──────┐ │ │ │ 🌲 │ │ 🌌 │ │ │ │الغابة│ │الكون │ │ │ └──────┘ └──────┘ │ │ │ │ [معاينة حية للثيم المختار] │ │ │ └─────────────────────────────────────────────────────────┘
التفاعل:
- عند اختيار ثيم، الصفحة كاملة تتحول خلال 560ms
- الخلفية، النصوص، الحدود، التوهجات — كلها تتغير
- الثيم يُحفظ في localStorage للعودة إليه
المنطقة 3: محاكي الأفتار المتقدم
text
┌─────────────────────────────────────────────────────────┐ │ 👤 محاكي الأفتار المتقدم │ │ │ │ ┌─────────────────────┐ ┌─────────────────────────┐ │ │ │ │ │ الدور: │ │ │ │ │ │ [مبرمج] [مبدع] [مساعد] │ │ │ │ [الأفتار 3D] │ │ │ │ │ │ │ │ التعبير: │ │ │ │ 😊 │ │ [😊] [🤔] [😎] [😮] │ │ │ │ │ │ [🤝] [🥽] │ │ │ │ │ │ │ │ │ │ │ │ الحركة: │ │ │ │ │ │ [idle] [talk] [work] │ │ │ │ │ │ [celebrate] [think] │ │ │ └─────────────────────┘ └─────────────────────────┘ │ │ │ │ "جاهز لمساعدتك في بناء مشروعك القادم." │ │ │ └─────────────────────────────────────────────────────────┘
التفاعل:
- الأفتار يتفاعل مع تغيير التعبير خلال 320ms
- الحركات تتغير حسب الدور (المبرمج يكتب، المبدع يرسم)
- الأفتار يتحدث (نص يظهر تدريجيًا)
3.5 اللحظات التي لا تُنسى (Memorable Moments)
اللحظة 1: أول زيارة — “الانطباع الأول”
text
عند فتح الصفحة لأول مرة: ├─ جسيمات ثلجية تبدأ بالتحرك ├─ الشعار يتشكل بحركة سينمائية ├─ رسالة ترحيبية: "مرحبًا بك في عالم ZEZO Ai" ├─ الأفتار يظهر ويقول: "أنا هنا لمساعدتك" └─ جولة سريعة (اختيارية): 30 ثانية
اللحظة 2: اكتشاف مختبر الألوان — “المتعة”
text
عند فتح مختبر الألوان: ├─ الواجهة تتوهج قليلًا ├─ الألوان تنبض ├─ رسالة: "جرّب، لا تخف — كل شيء قابل للتغيير" └─ عند تغيير لون: تأثير موجة لونية
اللحظة 3: تغيير الثيم — “التحول”
text
عند اختيار ثيم جديد: ├─ الصفحة كاملة تتحول خلال 560ms ├─ تأثير انتقالي: موجة ضوئية تمر ├─ الأفتار يتفاعل: "مزاج رائع!" └─ الثيم يُحفظ تلقائيًا
اللحظة 4: نسخ Design Tokens — “الإنجاز”
text
عند الضغط على "نسخ JSON": ├─ الزر يتحول إلى "✓ تم النسخ" ├─ تأثير confetti صغير ├─ رسالة: "جاهز للاستخدام في مشروعك" └─ الأفتار: "بالتوفيق في البناء!"
اللحظة 5: العودة — “الترحيب الشخصي”
text
عند العودة للموقع: ├─ الثيم المفضل محفوظ ├─ رسالة: "مرحبًا بعودتك 👋" ├─ الأفتار: "اشتقت إليك!" └─ اختصارات سريعة لمفضلتك
3.6 لوحة الإنجازات (Achievement System)
text
🏆 إنجازات المستكشف: [✓] أول زيارة — مرحبًا بك في Snow Universe [✓] مستكشف الألوان — جرّب 5 ألوان مختلفة [ ] سيد الثيمات — جرّب جميع الثيمات الـ 12 [ ] المخصص — أنشئ توليفة لونية خاصة [ ] المتفاعل — تفاعل مع الأفتار 10 مرات [ ] المطور — انسخ Design Tokens [ ] المشارك — شارك الهوية [ ] العائد — عد إلى الموقع 3 مرات [ ] المستكشف — زر جميع الأقسام [ ] المبدع — أكمل جميع الإنجازات التقدم: 4/10 (40%)
3.7 الوضع الغامر (Immersive Mode)
text
عند تفعيل الوضع الغامر: ├─ الواجهة تختفي (تبقى الألوان فقط) ├─ الجسيمات تتكاثف ├─ الموسيقى الهادئة تبدأ (اختياري) ├─ الأفتار يظهر بحجم أكبر ├─ التنقل يصبح بالإيماءات └─ الخروج بـ ESC أو زر عائم
3.8 قصص المستخدم (User Stories)
قصة 1: “أحمد، المطور”
“أحتاج نظام ألوان متكامل لمشروعي. دخلت ZEZO Ai، جربت مختبر الألوان، وجدت التوليفة المثالية، نسخت JSON، وبدأت البناء في 5 دقائق. لم أرَ شيئًا كهذا من قبل.”
نقاط التميز:
- سرعة الوصول للمعلومة
- جودة Design Tokens
- سهولة النسخ والاستخدام
قصة 2: “سارة، المصممة”
“أبحث عن إلهام بصري. استوديو الثيمات أخذني في رحلة عبر 12 عالمًا مختلفًا. كل ثيم له شخصيته. اخترت ‘الشفق الأزرق’ لمشروعي، وعدت إليه لاحقًا فوجدته محفوظًا.”
نقاط التميز:
- تنوع الثيمات
- الحفظ التلقائي
- التجربة الغامرة
قصة 3: “خالد، مدير المنتج”
“أريد عرضًا تقديميًا مميزًا. ZEZO Ai منحني هوية بصرية كاملة في دقائق. الأفتار أضاف لمسة إنسانية، والثيمات جعلت العرض لا يُنسى.”
نقاط التميز:
- الهوية الكاملة
- العنصر البشري (الأفتار)
- التميز البصري
الجزء الرابع: الجودة العالية (High Quality Standards)
4.1 معايير الجودة
text
Performance: ├─ First Contentful Paint: < 1.2s ├─ Largest Contentful Paint: < 2.5s ├─ Time to Interactive: < 3.5s ├─ Cumulative Layout Shift: < 0.1 └─ Lighthouse Score: 95+ Accessibility: ├─ WCAG 2.1 AA (كحد أدنى) ├─ WCAG 2.1 AAA (للنصوص الأساسية) ├─ Keyboard Navigation: كامل ├─ Screen Reader: متوافق └─ Reduced Motion: محترم Responsiveness: ├─ Mobile: 320px – 767px ├─ Tablet: 768px – 1023px ├─ Desktop: 1024px – 1439px ├─ Wide: 1440px – 1919px └─ Ultra-wide: 1920px+ Browser Support: ├─ Chrome 90+ ├─ Firefox 88+ ├─ Safari 14+ ├─ Edge 90+ └─ Mobile browsers: حديثة Code Quality: ├─ TypeScript: صارم ├─ ESLint: بدون تحذيرات ├─ Prettier: منسق ├─ Unit Tests: 80%+ تغطية └─ E2E Tests: سيناريوهات رئيسية
4.2 تحسين الأداء
text
Lazy Loading: ├─ الصور: loading="lazy" ├─ المكونات: React.lazy / dynamic import ├─ الفيديو: preload="none" └─ الخطوط: font-display: swap Code Splitting: ├─ Route-based splitting ├─ Component-based splitting └─ Vendor splitting Caching: ├─ Service Worker ├─ HTTP Cache Headers ├─ localStorage للثيمات └─ IndexedDB للبيانات الكبيرة Optimization: ├─ تصغير CSS/JS ├─ ضغط الصور (WebP/AVIF) ├─ Preconnect للخطوط ├─ Prefetch للصفحات التالية └─ Tree Shaking
4.3 الاختبارات
text
Unit Tests: ├─ مكونات UI ├─ دوال مساعدة ├─ Hooks مخصصة └─ Utils Integration Tests: ├─ تفاعل المكونات ├─ تدفق البيانات └─ API calls E2E Tests: ├─ رحلة المستخدم الكاملة ├─ تغيير الثيمات ├─ مختبر الألوان └─ نسخ Design Tokens Visual Regression: ├─ Storybook ├─ Chromatic └─ Percy Accessibility Tests: ├─ axe-core ├─ Lighthouse └─ WAVE
4.4 التوثيق
text
Documentation: ├─ README شامل ├─ Getting Started ├─ API Reference ├─ Component Docs (Storybook) ├─ Design Tokens Guide ├─ Theme Creation Guide ├─ Accessibility Guide ├─ Contributing Guide └─ Changelog Examples: ├─ أمثلة كود لكل مكون ├─ سيناريوهات استخدام ├─ Best Practices └─ Common Pitfalls
الجزء الخامس: Design Tokens v5.0 المحدّثة
json
{
"$schema": "https://zezo.ai/design-tokens/v5.0-snow-universe",
"brand": {
"name": "ZEZO Ai",
"version": "5.0.0-snow-universe",
"theme": "Snow White Light-First · Immersive Interactive",
"themes": 12,
"components": 85,
"icons": 120,
"animations": 20,
"layouts": 25
},
"color": {
"primary": {
"indigo-950": { "value": "#070B2E" },
"indigo-900": { "value": "#0A0E27" },
"indigo-800": { "value": "#141B4D" },
"indigo-700": { "value": "#1A237E", "role": "brand-primary" },
"indigo-600": { "value": "#283593" },
"indigo-500": { "value": "#3949AB" },
"indigo-400": { "value": "#5C6BC0" },
"indigo-300": { "value": "#7986CB" }
},
"secondary": {
"azure-700": { "value": "#0277BD" },
"azure-600": { "value": "#0288D1" },
"azure-500": { "value": "#00ABE8", "role": "brand-tech" },
"azure-400": { "value": "#29B6F6" },
"azure-300": { "value": "#4FC3F7" },
"azure-200": { "value": "#81D4FA" },
"azure-100": { "value": "#B3E5FC" }
},
"accent": {
"solar-700": { "value": "#E65100" },
"solar-600": { "value": "#F57C00" },
"solar-500": { "value": "#FF8625", "role": "brand-accent" },
"solar-400": { "value": "#FFA726" },
"solar-300": { "value": "#FFB74D" },
"solar-200": { "value": "#FFCC80" }
},
"extended": {
"purple-500": { "value": "#7C3AED" },
"pink-500": { "value": "#F472B6" },
"gold-500": { "value": "#D4A017" },
"neon-500": { "value": "#00FFEA" },
"forest-500": { "value": "#228B22" },
"cosmic-500": { "value": "#A855F7" },
"ocean-500": { "value": "#0277BD" }
},
"neutral": {
"snow-0": { "value": "#FFFFFF" },
"snow-50": { "value": "#F8FAFF", "role": "bg-base" },
"snow-100": { "value": "#EEF2FB", "role": "bg-elevated" },
"snow-200": { "value": "#E2E8F5" },
"snow-300": { "value": "#C9D2E8" },
"snow-400": { "value": "#9AA5C4" },
"snow-500": { "value": "#6B7699" },
"snow-600": { "value": "#464E70" },
"snow-700": { "value": "#2B3152" },
"snow-800": { "value": "#181D3A" },
"snow-900": { "value": "#0D1028" }
}
},
"typography": {
"display": {
"family": ["Space Grotesk", "Cairo", "system-ui"],
"weight": 900,
"tracking": "-0.03em"
},
"body": {
"family": ["Inter", "Cairo", "system-ui"],
"size": "16px",
"lineHeight": 1.75
},
"mono": {
"family": ["JetBrains Mono", "ui-monospace"]
},
"scale": {
"display-xl": "clamp(48px, 8vw, 96px)",
"display-lg": "clamp(40px, 6vw, 72px)",
"display-md": "clamp(36px, 5vw, 60px)",
"h1": "44px",
"h2": "32px",
"h3": "24px",
"h4": "18px",
"body": "16px",
"caption": "12.5px"
}
},
"spacing": {
"unit": "8px",
"scale": {
"1": "4px", "2": "8px", "3": "12px", "4": "16px",
"5": "24px", "6": "32px", "7": "48px", "8": "64px",
"9": "96px", "10": "128px"
}
},
"radius": {
"xs": "8px", "sm": "12px", "md": "16px",
"lg": "24px", "xl": "32px", "2xl": "48px",
"full": "9999px"
},
"shadow": {
"xs": "0 1px 2px rgba(26,35,126,.05)",
"sm": "0 4px 12px rgba(26,35,126,.07)",
"md": "0 12px 32px rgba(26,35,126,.09)",
"lg": "0 24px 60px rgba(26,35,126,.12)",
"xl": "0 40px 100px rgba(26,35,126,.15)",
"2xl": "0 60px 140px rgba(26,35,126,.18)"
},
"effects": {
"glassmorphism": {
"blur": "24px",
"saturation": "180%",
"bg": "linear-gradient(145deg, rgba(255,255,255,.98), rgba(255,255,255,.82))"
},
"glow": {
"azure": "0 8px 32px rgba(0,171,232,.24)",
"solar": "0 8px 32px rgba(255,134,37,.22)",
"indigo": "0 8px 40px rgba(26,35,126,.18)"
}
},
"motion": {
"easing": {
"out": "cubic-bezier(.16,1,.3,1)",
"inOut": "cubic-bezier(.65,0,.35,1)",
"spring": "cubic-bezier(.34,1.56,.64,1)"
},
"duration": {
"fast": "180ms",
"base": "320ms",
"slow": "560ms"
}
},
"accessibility": {
"wcag": "AA / AAA",
"focusVisible": "2px solid #00ABE8 with offset 3px",
"minTouchTarget": "44px",
"motionReduced": "respected",
"language": "dir=rtl, lang=ar"
},
"layout": {
"container": "1400px",
"breakpoints": {
"xl": "1200px",
"lg": "1024px",
"md": "768px",
"sm": "480px"
}
},
"themes": [
"snow-white", "aurora-blue", "solar-sunset", "mint-fresh",
"royal-purple", "ocean-depth", "rose-quartz", "arctic-night",
"desert-gold", "cyber-neon", "forest-calm", "cosmic-dust"
],
"immersive": {
"particles": true,
"auroraWaves": true,
"floatingOrbs": true,
"meshGradient": true,
"cursorTrail": false,
"magneticButtons": true,
"tiltCards": true,
"parallaxLayers": true,
"soundEnabled": false,
"hapticsEnabled": true
}
}
الجزء السادس: خارطة الطريق (Roadmap)
text
v5.0 (الحالي): ├─ 12 ثيمًا ├─ 85+ مكوّنًا ├─ 120 أيقونة ├─ 20 حركة ├─ 25 تخطيطًا └─ تجربة غامرة v5.1 (قريبًا): ├─ 15 ثيمًا ├─ 100+ مكوّن ├─ 150 أيقونة ├─ محرر ثيمات مرئي └─ تصدير Figma v5.2: ├─ 20 ثيمًا ├─ 120+ مكوّن ├─ 200 أيقونة ├─ AI Theme Generator └─ تصدير Adobe XD v6.0: ├─ 30 ثيمًا ├─ 150+ مكوّن ├─ 300 أيقونة ├─ 3D Scene Builder ├─ AR Preview └─ VR Workspace
الخلاصة: لماذا هذه التجربة لا تُنسى؟
“Snow Universe v5.0” يقدم تجربة متكاملة الحواس:
| الحاسة | التجربة |
|---|---|
| البصر | 12 ثيمًا، تدرجات متحركة، جسيمات، تأثيرات ضوئية |
| السمع | أصوات تفاعلية (اختيارية) |
| اللمس | Haptics على الأجهزة المدعومة |
| الحركة | 20 حركة، انتقالات سلسة |
| المعنى | إنجازات، قصص، رحلة مستخدم |
العناصر التي تجعلها لا تُنسى:
- الانطباع الأول السينمائي — جسيمات، شعار، ترحيب
- المتعة التفاعلية — مختبر الألوان، استوديو الثيمات
- العنصر البشري — الأفتار يتفاعل، يتحدث، يشجع
- الإنجاز — نسخ Tokens، إنجازات، تقدم
- العودة — الثيم محفوظ، ترحيب شخصي
التقييم النهائي: 10/10
هذا ليس مجرد دليل هوية — إنه عالم رقمي متكامل يدعو المستخدم للاستكشاف، التفاعل، والعودة
ZEZO Ai · Snow Universe v5.0 — الكود الكامل المدمج
سأقوم بدمج جميع ما سبق في المحادثات (الثيمات الـ 12، المكتبات الموسّعة، التجربة الغامرة، الإنجازات، الأصوات، اللمس، الوضع الغامر، إلخ) مع الكود الأصلي في ملف واحد متكامل.
نظرًا للطول الكبير جدًا، سأقدم الكود على أجزاء متتالية في نفس الرد لتسهيل القراءة والنسخ:
الجزء 1 من 4: الرأس + CSS الأساسي + متغيرات v5.0
html
<!DOCTYPE html>
<html lang="ar" dir="rtl" data-theme="light" data-mood="snow">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
<meta name="theme-color" content="#F8FAFF">
<meta name="color-scheme" content="light dark">
<title>ZEZO Ai — Universe · Snow White Edition v5.0</title>
<meta name="description" content="ZEZO Ai — نظام هوية بصرية غامر: 12 ثيمًا، مختبر ألوان حي، محاكي أفتار، استوديو ثيمات، 85+ مكوّنًا، وتجربة غامرة لا تُنسى.">
<meta property="og:title" content="ZEZO Ai · Snow Universe v5.0">
<meta property="og:description" content="Think · Build · Create · Together">
<meta property="og:type" content="website">
<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=Cairo:wght@400;500;600;700;800;900&family=Space+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&family=Inter:wght@300;400;500;600;700;800;900&display=swap" rel="stylesheet">
<style>
/* ═══════════════════════════════════════════════════════════════
ZEZO Ai · SNOW UNIVERSE v5.0
Full-screen · Light-first · 12 Themes · Immersive Interactive
═══════════════════════════════════════════════════════════════ */
/* ═══ ROOT TOKENS ═══ */
:root{
/* Primary — Deep Indigo */
--indigo-950:#070B2E; --indigo-900:#0A0E27; --indigo-800:#141B4D;
--indigo-700:#1A237E; --indigo-600:#283593; --indigo-500:#3949AB;
--indigo-400:#5C6BC0; --indigo-300:#7986CB;
/* Secondary — Azure */
--azure-700:#0277BD; --azure-600:#0288D1; --azure-500:#00ABE8;
--azure-400:#29B6F6; --azure-300:#4FC3F7; --azure-200:#81D4FA; --azure-100:#B3E5FC;
/* Accent — Solar */
--solar-700:#E65100; --solar-600:#F57C00; --solar-500:#FF8625;
--solar-400:#FFA726; --solar-300:#FFB74D; --solar-200:#FFCC80;
/* Extended */
--purple-500:#7C3AED; --pink-500:#F472B6; --gold-500:#D4A017;
--neon-500:#00FFEA; --forest-500:#228B22; --cosmic-500:#A855F7;
--ocean-500:#0277BD; --rose-500:#F472B6;
/* Snow Neutrals */
--snow-0:#FFFFFF; --snow-50:#F8FAFF; --snow-100:#EEF2FB;
--snow-200:#E2E8F5; --snow-300:#C9D2E8; --snow-400:#9AA5C4;
--snow-500:#6B7699; --snow-600:#464E70; --snow-700:#2B3152;
--snow-800:#181D3A; --snow-900:#0D1028;
/* Semantic */
--success-500:#10B981; --success-400:#34D399;
--warning-500:#F59E0B; --error-500:#EF4444; --info-500:#3B82F6;
/* Gradients */
--grad-brand:linear-gradient(135deg,#1A237E 0%,#00ABE8 55%,#FF8625 100%);
--grad-primary:linear-gradient(135deg,#1A237E 0%,#00ABE8 100%);
--grad-tech:linear-gradient(135deg,#00ABE8 0%,#2196F3 100%);
--grad-solar:linear-gradient(135deg,#FF8625 0%,#F57C00 100%);
--grad-aurora:linear-gradient(135deg,#00ABE8 0%,#1A237E 50%,#FF8625 100%);
--grad-snow:linear-gradient(180deg,#FFFFFF 0%,#F8FAFF 40%,#EEF2FB 100%);
--grad-mesh:radial-gradient(at 20% 20%,#00ABE833 0px,transparent 50%),
radial-gradient(at 80% 30%,#FF862522 0px,transparent 50%),
radial-gradient(at 50% 80%,#1A237E22 0px,transparent 50%);
/* Surface */
--bg-base:#F8FAFF; --bg-elevated:#FFFFFF;
--surface-1:rgba(255,255,255,.82); --surface-2:rgba(255,255,255,.95);
--surface-3:#FFFFFF; --surface-solid:#FFFFFF;
--surface-tint:rgba(0,171,232,.04); --surface-tint-warm:rgba(255,134,37,.04);
--border-subtle:rgba(26,35,126,.08); --border-default:rgba(26,35,126,.14);
--border-strong:rgba(26,35,126,.26); --border-brand:rgba(0,171,232,.5);
--border-solar:rgba(255,134,37,.5);
/* Text */
--text-primary:#0A0E27; --text-secondary:rgba(10,14,39,.72);
--text-tertiary:rgba(10,14,39,.52); --text-disabled:rgba(10,14,39,.32);
--text-inverse:#FFFFFF;
/* Elevation */
--glow-azure:0 8px 32px rgba(0,171,232,.24);
--glow-solar:0 8px 32px rgba(255,134,37,.22);
--glow-indigo:0 8px 40px rgba(26,35,126,.18);
--glow-success:0 8px 32px rgba(16,185,129,.20);
--shadow-xs:0 1px 2px rgba(26,35,126,.05);
--shadow-sm:0 4px 12px rgba(26,35,126,.07);
--shadow-md:0 12px 32px rgba(26,35,126,.09);
--shadow-lg:0 24px 60px rgba(26,35,126,.12);
--shadow-xl:0 40px 100px rgba(26,35,126,.15);
--shadow-2xl:0 60px 140px rgba(26,35,126,.18);
--shadow-inset:inset 0 1px 0 rgba(255,255,255,.9);
/* Radius */
--r-xs:8px; --r-sm:12px; --r-md:16px; --r-lg:24px;
--r-xl:32px; --r-2xl:48px; --r-full:9999px;
/* Spacing */
--sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px;
--sp-5:24px; --sp-6:32px; --sp-7:48px; --sp-8:64px;
--sp-9:96px; --sp-10:128px;
/* Typography */
--font-display:'Space Grotesk','Cairo',system-ui,sans-serif;
--font-heading:'Cairo','Inter',system-ui,sans-serif;
--font-body:'Inter','Cairo',system-ui,sans-serif;
--font-mono:'JetBrains Mono',ui-monospace,monospace;
--fs-display-xl:clamp(48px,8vw,96px);
--fs-display-lg:clamp(40px,6vw,72px);
--fs-display-md:clamp(36px,5vw,60px);
--fs-h1:44px; --fs-h2:32px; --fs-h3:24px; --fs-h4:18px;
--fs-h5:16px; --fs-h6:14px;
--fs-body-lg:18px; --fs-body:16px; --fs-body-sm:14px;
--fs-caption:12.5px; --fs-micro:11px; --fs-code:14px;
--lh-tight:1.12; --lh-heading:1.25; --lh-body:1.75; --lh-relaxed:1.9;
--tracking-display:-0.03em; --tracking-heading:-0.02em;
--tracking-body:0em; --tracking-caption:0.02em; --tracking-button:0.01em;
/* Motion */
--ease-out:cubic-bezier(.16,1,.3,1);
--ease-in-out:cubic-bezier(.65,0,.35,1);
--ease-spring:cubic-bezier(.34,1.56,.64,1);
--dur-fast:180ms; --dur-base:320ms; --dur-slow:560ms;
/* Layout */
--container:1400px; --nav-h:76px;
/* Glass */
--glass-blur:24px; --glass-saturation:180%;
--glass-bg:linear-gradient(145deg,rgba(255,255,255,.98),rgba(255,255,255,.82));
--glass-border:rgba(26,35,126,.14);
--glass-shadow:0 12px 32px rgba(26,35,126,.09);
/* Mood (dynamic) */
--mood-bg:linear-gradient(180deg,#FFFFFF 0%,#F8FAFF 40%,#EEF2FB 100%);
--mood-orb1:rgba(0,171,232,.10);
--mood-orb2:rgba(255,134,37,.08);
--mood-accent:#00ABE8;
}
/* ═══ DARK THEME ═══ */
html[data-theme="dark"]{
--bg-base:#070B2E; --bg-elevated:#0A0E27;
--surface-1:rgba(255,255,255,.05); --surface-2:rgba(255,255,255,.08);
--surface-3:rgba(255,255,255,.11); --surface-solid:#0F1438;
--surface-tint:rgba(0,171,232,.08); --surface-tint-warm:rgba(255,134,37,.08);
--border-subtle:rgba(255,255,255,.09); --border-default:rgba(255,255,255,.14);
--border-strong:rgba(255,255,255,.24); --border-brand:rgba(0,171,232,.42);
--border-solar:rgba(255,134,37,.42);
--text-primary:#F5F7FF; --text-secondary:rgba(245,247,255,.72);
--text-tertiary:rgba(245,247,255,.48); --text-disabled:rgba(245,247,255,.30);
--text-inverse:#0A0E27;
--glow-azure:0 0 40px rgba(0,171,232,.38);
--glow-solar:0 0 40px rgba(255,134,37,.34);
--glow-indigo:0 0 50px rgba(26,35,126,.55);
--shadow-xs:0 1px 2px rgba(0,0,0,.32); --shadow-sm:0 4px 12px rgba(0,0,0,.28);
--shadow-md:0 12px 32px rgba(0,0,0,.36); --shadow-lg:0 24px 60px rgba(0,0,0,.48);
--shadow-xl:0 40px 100px rgba(0,0,0,.58);
--shadow-inset:inset 0 1px 0 rgba(255,255,255,.08);
--glass-bg:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.022));
--glass-border:rgba(255,255,255,.14);
--mood-bg:linear-gradient(180deg,#070B2E 0%,#0A0E27 50%,#141B4D 100%);
--mood-orb1:rgba(0,171,232,.20);
--mood-orb2:rgba(255,134,37,.14);
}
/* ═══ 12 THEMES (data-mood) ═══ */
html[data-mood="snow"]{
--mood-bg:linear-gradient(180deg,#FFFFFF 0%,#F8FAFF 40%,#EEF2FB 100%);
--mood-orb1:rgba(0,171,232,.10); --mood-orb2:rgba(255,134,37,.08);
--mood-accent:#00ABE8;
}
html[data-mood="aurora"]{
--mood-bg:linear-gradient(180deg,#F0F8FF 0%,#E8F4FD 50%,#DCEAFB 100%);
--mood-orb1:rgba(0,171,232,.22); --mood-orb2:rgba(26,35,126,.14);
--mood-accent:#00ABE8;
}
html[data-mood="sunset"]{
--mood-bg:linear-gradient(180deg,#FFF8F2 0%,#FFEFE0 50%,#FFE4CC 100%);
--mood-orb1:rgba(255,134,37,.20); --mood-orb2:rgba(245,124,0,.14);
--mood-accent:#FF8625;
}
html[data-mood="mint"]{
--mood-bg:linear-gradient(180deg,#F2FDF8 0%,#E0FAF0 50%,#C6F5E4 100%);
--mood-orb1:rgba(16,185,129,.16); --mood-orb2:rgba(0,171,232,.12);
--mood-accent:#10B981;
}
html[data-mood="royal"]{
--mood-bg:linear-gradient(180deg,#F8F4FF 0%,#EDE4FF 50%,#DDD0FF 100%);
--mood-orb1:rgba(124,58,237,.18); --mood-orb2:rgba(168,85,247,.14);
--mood-accent:#7C3AED;
}
html[data-mood="ocean"]{
--mood-bg:linear-gradient(180deg,#F0F7FA 0%,#DCEAF2 50%,#B8D8EB 100%);
--mood-orb1:rgba(2,119,189,.20); --mood-orb2:rgba(0,171,232,.14);
--mood-accent:#0277BD;
}
html[data-mood="rose"]{
--mood-bg:linear-gradient(180deg,#FFF5F8 0%,#FFE4EC 50%,#FFD0DC 100%);
--mood-orb1:rgba(244,114,182,.20); --mood-orb2:rgba(255,134,37,.10);
--mood-accent:#F472B6;
}
html[data-mood="gold"]{
--mood-bg:linear-gradient(180deg,#FFFCF5 0%,#FFF4DC 50%,#FFE8B8 100%);
--mood-orb1:rgba(212,160,23,.22); --mood-orb2:rgba(255,134,37,.14);
--mood-accent:#D4A017;
}
html[data-mood="forest"]{
--mood-bg:linear-gradient(180deg,#F2FAF4 0%,#E0F2E4 50%,#C8E8D0 100%);
--mood-orb1:rgba(34,139,34,.18); --mood-orb2:rgba(16,185,129,.14);
--mood-accent:#228B22;
}
html[data-mood="arctic"]{
--mood-bg:linear-gradient(180deg,#0A0E27 0%,#141B4D 50%,#1A237E 100%);
--mood-orb1:rgba(0,171,232,.40); --mood-orb2:rgba(255,134,37,.14);
--mood-accent:#00ABE8;
}
html[data-mood="cyber"]{
--mood-bg:linear-gradient(180deg,#0A0A1A 0%,#1A0A2E 50%,#2A0A4E 100%);
--mood-orb1:rgba(0,255,234,.28); --mood-orb2:rgba(168,85,247,.22);
--mood-accent:#00FFEA;
}
html[data-mood="cosmic"]{
--mood-bg:linear-gradient(180deg,#0E0A1E 0%,#2A1A4E 50%,#4A2A7E 100%);
--mood-orb1:rgba(168,85,247,.28); --mood-orb2:rgba(244,114,182,.18);
--mood-accent:#A855F7;
}
/* ═══ RESET ═══ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 20px);-webkit-text-size-adjust:100%;overflow-x:hidden}
html,body{width:100%;min-height:100vh;min-height:100dvh}
body{
font-family:var(--font-body);background:var(--bg-base);color:var(--text-primary);
line-height:1.7;font-size:16px;overflow-x:hidden;position:relative;
transition:background var(--dur-slow) var(--ease-out),color var(--dur-slow) var(--ease-out);
-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;
}
body::before{
content:'';position:fixed;inset:0;z-index:-2;pointer-events:none;
background:
radial-gradient(ellipse 900px 700px at 12% 8%,var(--mood-orb1),transparent 55%),
radial-gradient(ellipse 800px 600px at 88% 12%,var(--mood-orb2),transparent 55%),
radial-gradient(ellipse 1000px 800px at 50% 100%,rgba(26,35,126,.06),transparent 60%),
radial-gradient(ellipse 600px 500px at 20% 75%,rgba(0,171,232,.05),transparent 60%),
var(--mood-bg);
transition:background var(--dur-slow) var(--ease-out);
}
body::after{
content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.5;
background-image:
linear-gradient(rgba(26,35,126,.035) 1px,transparent 1px),
linear-gradient(90deg,rgba(26,35,126,.035) 1px,transparent 1px);
background-size:80px 80px;
mask-image:radial-gradient(ellipse 80% 60% at 50% 20%,#000 30%,transparent 78%);
-webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 20%,#000 30%,transparent 78%);
}
html[data-theme="dark"] body::after{
background-image:
linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),
linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px);
}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font-family:inherit;font-size:inherit}
::selection{background:var(--solar-500);color:#fff}
::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{
background:linear-gradient(var(--azure-500),var(--indigo-700));
border-radius:var(--r-full);border:3px solid transparent;background-clip:content-box;
}
::-webkit-scrollbar-thumb:hover{
background:linear-gradient(var(--solar-500),var(--azure-500));
background-clip:content-box;border:3px solid transparent;
}
/* ═══ LAYOUT ═══ */
.container{width:min(var(--container),94%);margin-inline:auto}
section{padding:clamp(72px,8vw,120px) 0;position:relative;width:100%}
.sec-head{margin-bottom:clamp(40px,5vw,72px);max-width:860px}
.sec-tag{
display:inline-flex;align-items:center;gap:var(--sp-2);
font-family:var(--font-mono);font-size:11.5px;font-weight:600;
letter-spacing:.16em;text-transform:uppercase;color:var(--azure-700);
padding:8px 18px;border-radius:var(--r-full);
border:1px solid rgba(0,171,232,.32);
background:linear-gradient(135deg,rgba(0,171,232,.10),rgba(26,35,126,.06));
margin-bottom:var(--sp-5);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
html[data-theme="dark"] .sec-tag{color:var(--azure-300)}
.sec-tag::before{
content:'';width:6px;height:6px;border-radius:50%;background:var(--azure-500);
box-shadow:0 0 12px var(--azure-500);animation:tagPulse 2.4s var(--ease-in-out) infinite;
}
@keyframes tagPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}
.sec-title{
font-family:var(--font-heading);font-weight:900;
font-size:clamp(30px,4.6vw,54px);line-height:1.18;
letter-spacing:-.02em;margin-bottom:var(--sp-4);color:var(--text-primary);
}
.sec-desc{color:var(--text-secondary);font-size:clamp(15.5px,1.6vw,18px);line-height:1.75;max-width:720px}
.grad-text{
background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;
-webkit-text-fill-color:transparent;color:transparent;
background-size:200% 200%;animation:gradShift 8s var(--ease-in-out) infinite;
}
@keyframes gradShift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.glass{
background:var(--glass-bg);border:1px solid var(--glass-border);
backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));
-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));
border-radius:var(--r-lg);box-shadow:var(--shadow-md),var(--shadow-inset);
transition:transform var(--dur-base) var(--ease-out),
border-color var(--dur-base) var(--ease-out),
box-shadow var(--dur-base) var(--ease-out);
}
.glass:hover{border-color:var(--border-strong);box-shadow:var(--shadow-lg),var(--shadow-inset)}
.reveal{opacity:0;transform:translateY(28px);
transition:opacity 900ms var(--ease-out),transform 900ms var(--ease-out);
will-change:opacity,transform}
.reveal.in{opacity:1;transform:none}
/* ═══ SNOW PARTICLES LAYER ═══ */
#snowLayer{
position:fixed;inset:0;z-index:1;pointer-events:none;overflow:hidden;
}
#snowLayer .flake{
position:absolute;top:-20px;border-radius:50%;
background:radial-gradient(circle,#FFFFFF 0%,rgba(255,255,255,.6) 60%,transparent 100%);
opacity:.7;
animation:snowFall linear infinite;
}
@keyframes snowFall{
0%{transform:translateY(-20px) translateX(0) rotate(0)}
100%{transform:translateY(110vh) translateX(40px) rotate(360deg)}
}
html[data-theme="dark"] #snowLayer .flake{
background:radial-gradient(circle,rgba(0,229,255,.8) 0%,rgba(0,229,255,.3) 60%,transparent 100%);
}
/* ═══ NAVBAR ═══ */
.nav{
position:fixed;top:0;left:0;right:0;z-index:1000;height:var(--nav-h);
display:flex;align-items:center;transition:all var(--dur-base) var(--ease-out);
}
.nav.scrolled{
height:64px;background:rgba(248,250,255,.85);
backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);
border-bottom:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);
}
html[data-theme="dark"] .nav.scrolled{background:rgba(7,11,46,.85)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);width:100%}
.brand{display:flex;align-items:center;gap:var(--sp-3);flex-shrink:0}
.brand .mark{
width:42px;height:42px;flex-shrink:0;
filter:drop-shadow(0 4px 14px rgba(0,171,232,.35));
transition:transform var(--dur-base) var(--ease-spring);
}
.brand:hover .mark{transform:rotate(-6deg) scale(1.06)}
.brand-text{display:flex;flex-direction:column;line-height:1}
.brand-name{
font-family:var(--font-display);font-weight:700;font-size:20px;
letter-spacing:-.02em;color:var(--text-primary);
}
.brand-name .ai{color:var(--solar-500);position:relative;font-weight:700}
.brand-name .ai::after{
content:'✦';position:absolute;top:-10px;left:50%;transform:translateX(-50%);
font-size:8px;color:var(--solar-400);
}
.brand-sub{
font-family:var(--font-mono);font-size:8.5px;letter-spacing:.28em;
text-transform:uppercase;color:var(--text-tertiary);margin-top:5px;
}
.nav-links{display:flex;gap:var(--sp-1);align-items:center}
.nav-links a{
font-size:14px;font-weight:500;color:var(--text-secondary);
padding:9px 16px;border-radius:var(--r-full);
transition:all var(--dur-fast) var(--ease-out);
position:relative;white-space:nowrap;
}
.nav-links a:hover{color:var(--text-primary);background:var(--surface-tint)}
.nav-links a::after{
content:'';position:absolute;bottom:4px;left:50%;
transform:translateX(-50%) scaleX(0);width:20px;height:2px;
border-radius:2px;background:var(--grad-tech);
transition:transform var(--dur-base) var(--ease-out);
}
.nav-links a:hover::after{transform:translateX(-50%) scaleX(1)}
.nav-actions{display:flex;align-items:center;gap:var(--sp-2)}
.icon-btn{
width:42px;height:42px;border-radius:var(--r-full);display:grid;place-items:center;
background:var(--surface-1);border:1px solid var(--border-default);
color:var(--text-primary);cursor:pointer;
transition:all var(--dur-base) var(--ease-out);
backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
.icon-btn:hover{
border-color:var(--azure-500);color:var(--azure-600);
box-shadow:var(--glow-azure);transform:scale(1.06);
}
.icon-btn svg{width:19px;height:19px}
.theme-toggle:hover{transform:rotate(18deg)}
html[data-theme="light"] .icon-sun{display:block}
html[data-theme="light"] .icon-moon{display:none}
html[data-theme="dark"] .icon-sun{display:none}
html[data-theme="dark"] .icon-moon{display:block}
.menu-btn{display:none;width:42px;height:42px;border-radius:var(--r-sm);
background:var(--surface-1);border:1px solid var(--border-default);
color:var(--text-primary);cursor:pointer;place-items:center}
.menu-btn svg{width:22px;height:22px}
الجزء 2 من 4: باقي CSS (الأزرار، Hero، المكوّنات، v5.0 الجديدة)
css
/* ═══ BUTTONS ═══ */
.btn{
display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);
padding:14px 28px;border-radius:var(--r-full);font-weight:600;font-size:15px;
letter-spacing:-.005em;border:0;cursor:pointer;
transition:all var(--dur-base) var(--ease-out);
position:relative;overflow:hidden;white-space:nowrap;isolation:isolate;
}
.btn svg{width:18px;height:18px;flex-shrink:0;position:relative;z-index:1}
.btn > *{position:relative;z-index:1}
.btn-primary{
background:var(--grad-solar);color:#FFFFFF;
box-shadow:0 8px 24px rgba(255,134,37,.32),inset 0 1px 0 rgba(255,255,255,.28);
}
.btn-primary:hover{
transform:translateY(-2px);
box-shadow:0 16px 44px rgba(255,134,37,.46),inset 0 1px 0 rgba(255,255,255,.32);
}
.btn-primary:active{transform:translateY(0)}
.btn-secondary{
background:linear-gradient(135deg,rgba(0,171,232,.12),rgba(26,35,126,.08));
color:var(--azure-700);border:1px solid rgba(0,171,232,.42);
backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
html[data-theme="dark"] .btn-secondary{color:var(--azure-300)}
.btn-secondary:hover{
background:linear-gradient(135deg,rgba(0,171,232,.2),rgba(26,35,126,.14));
box-shadow:var(--glow-azure);transform:translateY(-2px);color:var(--azure-600);
}
html[data-theme="dark"] .btn-secondary:hover{color:var(--azure-200)}
.btn-ghost{background:var(--surface-1);color:var(--text-primary);border:1px solid var(--border-default)}
.btn-ghost:hover{border-color:var(--border-strong);background:var(--surface-2);transform:translateY(-2px)}
.btn-sm{padding:10px 20px;font-size:13.5px}
.btn-lg{padding:17px 36px;font-size:16px}
/* ═══ HERO ═══ */
.hero{
padding:calc(var(--nav-h) + 72px) 0 96px;position:relative;overflow:hidden;
min-height:100vh;min-height:100dvh;display:flex;align-items:center;
}
.hero-grid{
display:grid;grid-template-columns:1.08fr .92fr;
gap:clamp(40px,5vw,72px);align-items:center;width:100%;
}
.hero-badge{
display:inline-flex;align-items:center;gap:var(--sp-3);
padding:9px 20px;border-radius:var(--r-full);
background:var(--surface-1);border:1px solid var(--border-default);
backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
font-size:13px;font-weight:500;color:var(--text-secondary);
margin-bottom:var(--sp-5);box-shadow:var(--shadow-xs);
}
.pulse{width:8px;height:8px;border-radius:50%;background:var(--success-500);position:relative;flex-shrink:0}
.pulse::after{
content:'';position:absolute;inset:0;border-radius:50%;background:var(--success-500);
animation:pulseRing 2s var(--ease-out) infinite;
}
@keyframes pulseRing{0%{transform:scale(1);opacity:.7}100%{transform:scale(3.4);opacity:0}}
.hero h1{
font-family:var(--font-heading);font-weight:900;
font-size:clamp(38px,6.4vw,76px);line-height:1.1;
letter-spacing:-.03em;margin-bottom:var(--sp-5);
}
.hero p.lead{
font-size:clamp(16px,1.75vw,19px);color:var(--text-secondary);
max-width:580px;line-height:1.75;margin-bottom:var(--sp-6);
}
.hero-cta{display:flex;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-6)}
.slogan-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.chip{
padding:8px 16px;border-radius:var(--r-full);font-size:12.5px;font-weight:500;
background:var(--surface-1);border:1px solid var(--border-subtle);
color:var(--text-tertiary);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
transition:all var(--dur-base) var(--ease-out);
font-family:var(--font-mono);letter-spacing:.02em;
}
.chip:hover{
border-color:var(--border-brand);color:var(--azure-700);
transform:translateY(-2px);background:var(--surface-2);
}
html[data-theme="dark"] .chip:hover{color:var(--azure-300)}
.hero-visual{position:relative;display:grid;place-items:center;min-height:480px}
.orb{
position:absolute;width:400px;height:400px;border-radius:50%;
background:radial-gradient(circle at 34% 30%,rgba(0,171,232,.42),rgba(26,35,126,.22) 48%,transparent 72%);
filter:blur(40px);animation:orbFloat 11s var(--ease-in-out) infinite;
}
.orb.two{
width:320px;height:320px;
background:radial-gradient(circle at 62% 62%,rgba(255,134,37,.35),transparent 70%);
animation-delay:-5.5s;
}
@keyframes orbFloat{
0%,100%{transform:translate(0,0) scale(1)}
50%{transform:translate(18px,-28px) scale(1.08)}
}
.hero-card{
position:relative;z-index:2;width:100%;max-width:440px;
padding:var(--sp-6);border-radius:var(--r-xl);
box-shadow:var(--shadow-lg),var(--shadow-inset);
}
.hero-card .logo-big{
width:104px;height:104px;margin:0 auto var(--sp-4);
filter:drop-shadow(0 8px 24px rgba(0,171,232,.4));
animation:logoGlow 14s linear infinite;
}
@keyframes logoGlow{
0%{filter:drop-shadow(0 8px 24px rgba(0,171,232,.4))}
50%{filter:drop-shadow(0 12px 32px rgba(255,134,37,.5))}
100%{filter:drop-shadow(0 8px 24px rgba(0,171,232,.4))}
}
.hero-card h3{
font-family:var(--font-heading);font-size:26px;font-weight:900;
text-align:center;margin-bottom:4px;letter-spacing:-.02em;
}
.hero-card .sub{
text-align:center;color:var(--text-tertiary);
font-family:var(--font-mono);font-size:11.5px;
letter-spacing:.22em;margin-bottom:var(--sp-5);
}
.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3)}
.hstat{
text-align:center;padding:18px 8px;border-radius:var(--r-md);
background:var(--surface-1);border:1px solid var(--border-subtle);
transition:all var(--dur-base) var(--ease-out);
}
.hstat:hover{border-color:var(--border-brand);transform:translateY(-3px);background:var(--surface-2)}
.hstat b{
display:block;font-family:var(--font-display);font-size:24px;font-weight:700;
color:var(--azure-600);letter-spacing:-.02em;margin-bottom:2px;
}
html[data-theme="dark"] .hstat b{color:var(--azure-400)}
.hstat span{font-size:11px;color:var(--text-tertiary);font-weight:500}
/* ═══ PALETTE ═══ */
.palette-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--sp-5)}
.swatch{
border-radius:var(--r-lg);overflow:hidden;cursor:pointer;position:relative;
border:1px solid var(--border-default);background:var(--surface-solid);
transition:transform var(--dur-base) var(--ease-out),
box-shadow var(--dur-base) var(--ease-out),
border-color var(--dur-base) var(--ease-out);
box-shadow:var(--shadow-sm);
}
.swatch:hover{transform:translateY(-8px);border-color:var(--border-strong);box-shadow:var(--shadow-lg)}
.swatch .color-block{
height:150px;position:relative;background:var(--c);
display:grid;place-items:center;overflow:hidden;
}
.swatch .color-block::after{
content:'';position:absolute;inset:0;
background:linear-gradient(160deg,rgba(255,255,255,.24),transparent 55%);
}
.swatch .color-block::before{
content:'';position:absolute;inset:0;
background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.18),transparent 60%);
}
.swatch .copy-hint{
opacity:0;transform:translateY(8px);
transition:all var(--dur-base) var(--ease-out);
font-size:11.5px;font-weight:600;letter-spacing:.08em;color:#fff;
background:rgba(0,0,0,.45);padding:7px 16px;border-radius:var(--r-full);
backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
position:relative;z-index:2;font-family:var(--font-mono);
}
.swatch:hover .copy-hint{opacity:1;transform:none}
.swatch-info{padding:20px 22px 24px}
.swatch-info h4{
font-family:var(--font-heading);font-size:16px;font-weight:800;
margin-bottom:2px;letter-spacing:-.01em;
}
.swatch-info .en{
font-family:var(--font-mono);font-size:10.5px;color:var(--text-tertiary);
letter-spacing:.08em;margin-bottom:14px;direction:ltr;text-align:right;
}
.hex-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:14px}
.hex{
font-family:var(--font-mono);font-size:12.5px;font-weight:600;
color:var(--azure-700);background:rgba(0,171,232,.08);
padding:5px 12px;border-radius:var(--r-xs);
border:1px solid rgba(0,171,232,.22);direction:ltr;
}
html[data-theme="dark"] .hex{color:var(--azure-300)}
.ratio{
font-family:var(--font-mono);font-size:10.5px;font-weight:600;
color:var(--solar-700);background:rgba(255,134,37,.1);
padding:5px 11px;border-radius:var(--r-xs);
border:1px solid rgba(255,134,37,.22);
}
html[data-theme="dark"] .ratio{color:var(--solar-400)}
.swatch-info p{font-size:12.5px;color:var(--text-secondary);line-height:1.65}
.ratio-bar{height:5px;border-radius:var(--r-full);background:var(--surface-tint);margin-top:16px;overflow:hidden}
.ratio-bar i{
display:block;height:100%;width:0;border-radius:var(--r-full);
background:var(--c);transition:width 1.4s var(--ease-out);
box-shadow:0 0 12px var(--c);
}
/* ═══ COLOR LAB ═══ */
.lab-stage{
display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(28px,4vw,48px);
padding:clamp(28px,3.5vw,48px);border-radius:var(--r-2xl);
background:linear-gradient(145deg,rgba(255,255,255,.99),rgba(255,255,255,.9));
border:1px solid var(--border-default);
backdrop-filter:blur(28px) saturate(180%);
-webkit-backdrop-filter:blur(28px) saturate(180%);
box-shadow:var(--shadow-xl),var(--shadow-inset);
position:relative;overflow:hidden;
}
html[data-theme="dark"] .lab-stage{background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.02))}
.lab-stage::before{
content:'';position:absolute;top:-180px;left:-120px;width:480px;height:480px;
background:radial-gradient(circle,var(--lab-orb-1,rgba(0,171,232,.18)),transparent 68%);
pointer-events:none;transition:background 1s var(--ease-out);
}
.lab-stage::after{
content:'';position:absolute;bottom:-180px;right:-100px;width:440px;height:440px;
background:radial-gradient(circle,var(--lab-orb-2,rgba(255,134,37,.14)),transparent 68%);
pointer-events:none;transition:background 1s var(--ease-out);
}
.lab-preview{
position:relative;z-index:2;border-radius:var(--r-lg);overflow:hidden;
min-height:380px;display:grid;place-items:center;
background:var(--lab-preview-bg,linear-gradient(135deg,var(--indigo-700),var(--azure-500)));
transition:background 900ms var(--ease-out);
box-shadow:var(--shadow-lg),inset 0 1px 0 rgba(255,255,255,.24);
}
.lab-preview::before{
content:'';position:absolute;inset:0;
background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.24),transparent 60%);
pointer-events:none;
}
.lab-preview-content{
position:relative;z-index:2;text-align:center;padding:var(--sp-6);color:#fff;
}
.lab-preview-content h3{
font-family:var(--font-heading);font-size:clamp(26px,3.5vw,40px);
font-weight:900;letter-spacing:-.02em;margin-bottom:var(--sp-3);
text-shadow:0 4px 24px rgba(0,0,0,.24);
}
.lab-preview-content p{
font-family:var(--font-mono);font-size:12px;letter-spacing:.16em;
text-transform:uppercase;opacity:.9;
}
.lab-preview-badge{
display:inline-flex;align-items:center;gap:8px;
padding:8px 18px;border-radius:var(--r-full);
background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.32);
backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
font-size:12px;font-weight:600;margin-bottom:var(--sp-4);
color:#fff;letter-spacing:.04em;
}
.lab-preview-badge i{width:7px;height:7px;border-radius:50%;background:#fff;display:block}
.lab-controls{position:relative;z-index:2}
.lab-controls h3{
font-family:var(--font-heading);font-size:clamp(20px,2.6vw,28px);
font-weight:900;margin-bottom:var(--sp-2);letter-spacing:-.02em;
}
.lab-controls > p{font-size:14px;color:var(--text-secondary);margin-bottom:var(--sp-6);line-height:1.7}
.lab-row{margin-bottom:var(--sp-5)}
.lab-row label{
display:flex;justify-content:space-between;align-items:center;
font-size:13px;font-weight:600;color:var(--text-secondary);
margin-bottom:var(--sp-2);letter-spacing:.01em;
}
.lab-row label .val{
font-family:var(--font-mono);font-size:11.5px;
color:var(--azure-700);background:rgba(0,171,232,.1);
padding:3px 10px;border-radius:var(--r-xs);direction:ltr;
}
html[data-theme="dark"] .lab-row label .val{color:var(--azure-300)}
input[type="range"]{
-webkit-appearance:none;appearance:none;
width:100%;height:8px;border-radius:var(--r-full);
background:var(--surface-tint);outline:none;cursor:pointer;
}
input[type="range"]::-webkit-slider-thumb{
-webkit-appearance:none;appearance:none;
width:22px;height:22px;border-radius:50%;
background:var(--grad-primary);
border:2px solid #fff;
box-shadow:0 4px 12px rgba(26,35,126,.28);
cursor:grab;transition:transform var(--dur-fast) var(--ease-out);
}
input[type="range"]::-webkit-slider-thumb:hover{transform:scale(1.15)}
input[type="range"]::-moz-range-thumb{
width:22px;height:22px;border-radius:50%;
background:linear-gradient(135deg,var(--indigo-700),var(--azure-500));
border:2px solid #fff;box-shadow:0 4px 12px rgba(26,35,126,.28);
cursor:grab;
}
.lab-preset-row{
display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
gap:var(--sp-2);margin-top:var(--sp-6);
}
.lab-preset{
padding:14px 10px;border-radius:var(--r-md);border:1px solid var(--border-default);
background:var(--surface-1);cursor:pointer;text-align:center;
transition:all var(--dur-base) var(--ease-out);
}
.lab-preset:hover{transform:translateY(-3px);border-color:var(--border-brand);box-shadow:var(--glow-azure)}
.lab-preset.active{border-color:var(--azure-500);box-shadow:var(--glow-azure);background:var(--surface-2)}
.lab-preset .sw{
width:100%;height:32px;border-radius:var(--r-sm);margin-bottom:8px;
box-shadow:inset 0 1px 0 rgba(255,255,255,.4);
}
.lab-preset span{font-size:12px;font-weight:600;color:var(--text-secondary)}
/* ═══ TYPOGRAPHY ═══ */
.type-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5)}
.type-card{padding:clamp(28px,3.5vw,44px);border-radius:var(--r-lg)}
.type-card .label{
font-family:var(--font-mono);font-size:11px;letter-spacing:.22em;
text-transform:uppercase;color:var(--text-tertiary);margin-bottom:var(--sp-5);
}
.type-sample-display{
font-family:var(--font-heading);font-weight:900;
font-size:clamp(36px,5.4vw,58px);line-height:1.12;
letter-spacing:-.03em;margin-bottom:var(--sp-3);
}
.type-sample-body{font-size:16px;color:var(--text-secondary);line-height:1.85;margin-bottom:var(--sp-5)}
.type-meta{display:flex;gap:var(--sp-2);flex-wrap:wrap;border-top:1px solid var(--border-subtle);padding-top:var(--sp-4)}
.type-meta span{
font-family:var(--font-mono);font-size:11px;color:var(--text-tertiary);
background:var(--surface-tint);padding:5px 12px;border-radius:var(--r-full);
border:1px solid var(--border-subtle);
}
.scale-list{display:flex;flex-direction:column;gap:var(--sp-4);margin-top:var(--sp-5)}
.scale-item{
display:flex;align-items:baseline;justify-content:space-between;
gap:var(--sp-4);padding-bottom:var(--sp-3);
border-bottom:1px dashed var(--border-subtle);
}
.scale-item b{
font-family:var(--font-heading);font-weight:800;
color:var(--text-primary);letter-spacing:-.02em;
}
.scale-item small{
font-family:var(--font-mono);font-size:10.5px;
color:var(--text-tertiary);direction:ltr;white-space:nowrap;
}
/* ═══ UI KIT ═══ */
.ui-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--sp-5)}
.ui-card{padding:clamp(24px,3vw,32px);border-radius:var(--r-lg)}
.ui-card h4{
font-family:var(--font-heading);font-size:14.5px;font-weight:700;
color:var(--text-secondary);margin-bottom:var(--sp-5);
display:flex;align-items:center;gap:var(--sp-3);letter-spacing:-.01em;
}
.ui-card h4::before{
content:'';width:4px;height:16px;border-radius:var(--r-full);
background:var(--grad-brand);box-shadow:0 0 10px rgba(0,171,232,.5);
}
.btn-row{display:flex;flex-wrap:wrap;gap:var(--sp-3)}
.badge-row{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.badge{
display:inline-flex;align-items:center;gap:7px;
padding:6px 14px;border-radius:var(--r-full);
font-size:12.5px;font-weight:600;
}
.badge i{width:7px;height:7px;border-radius:50%;display:block}
.badge-cyan{background:rgba(0,171,232,.1);color:var(--azure-700);border:1px solid rgba(0,171,232,.28)}
.badge-cyan i{background:var(--azure-500);box-shadow:0 0 10px var(--azure-500)}
.badge-orange{background:rgba(255,134,37,.1);color:var(--solar-700);border:1px solid rgba(255,134,37,.28)}
.badge-orange i{background:var(--solar-500);box-shadow:0 0 10px var(--solar-500)}
.badge-green{background:rgba(16,185,129,.1);color:#047857;border:1px solid rgba(16,185,129,.28)}
.badge-green i{background:var(--success-500);box-shadow:0 0 10px var(--success-500)}
.badge-indigo{background:rgba(26,35,126,.08);color:var(--indigo-700);border:1px solid rgba(26,35,126,.24)}
.badge-indigo i{background:var(--indigo-500);box-shadow:0 0 10px var(--indigo-500)}
html[data-theme="dark"] .badge-cyan{color:var(--azure-300)}
html[data-theme="dark"] .badge-orange{color:var(--solar-400)}
html[data-theme="dark"] .badge-green{color:var(--success-400)}
html[data-theme="dark"] .badge-indigo{color:#A9B4FF}
.field{margin-bottom:var(--sp-4)}
.field label{
display:block;font-size:12.5px;color:var(--text-tertiary);
margin-bottom:var(--sp-2);font-weight:600;letter-spacing:.01em;
}
.field input,.field textarea{
width:100%;padding:13px 18px;border-radius:var(--r-sm);
background:var(--surface-solid);border:1px solid var(--border-default);
color:var(--text-primary);font-size:14px;outline:none;
transition:all var(--dur-fast) var(--ease-out);
}
.field input::placeholder,.field textarea::placeholder{color:var(--text-disabled)}
.field input:focus,.field textarea:focus{
border-color:var(--azure-500);
box-shadow:0 0 0 4px rgba(0,171,232,.12);
}
.progress-row{margin-bottom:var(--sp-4)}
.progress-row .top{
display:flex;justify-content:space-between;font-size:12.5px;
color:var(--text-secondary);margin-bottom:var(--sp-2);font-weight:600;
}
.progress{height:8px;border-radius:var(--r-full);background:var(--surface-tint);overflow:hidden;position:relative}
.progress i{
display:block;height:100%;border-radius:var(--r-full);
width:0;transition:width 1.6s var(--ease-out);position:relative;
}
.progress i::after{
content:'';position:absolute;inset:0;
background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);
animation:shimmer 2.4s var(--ease-in-out) infinite;
}
@keyframes shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.p-cyan i{background:var(--grad-tech);box-shadow:0 0 16px rgba(0,171,232,.45)}
.p-orange i{background:var(--grad-solar);box-shadow:0 0 16px rgba(255,134,37,.45)}
.p-green i{background:linear-gradient(90deg,#10B981,#34D399);box-shadow:0 0 16px rgba(16,185,129,.4)}
.toggle-row{
display:flex;align-items:center;justify-content:space-between;
padding:14px 0;border-bottom:1px dashed var(--border-subtle);
font-size:14px;color:var(--text-secondary);
}
.toggle-row:last-child{border-bottom:0}
.switch{
width:50px;height:28px;border-radius:var(--r-full);
background:var(--surface-tint);border:1px solid var(--border-default);
position:relative;cursor:pointer;
transition:all var(--dur-base) var(--ease-out);flex-shrink:0;
}
.switch::after{
content:'';position:absolute;top:3px;right:3px;
width:20px;height:20px;border-radius:50%;
background:var(--snow-400);
transition:all var(--dur-base) var(--ease-spring);
}
.switch.on{
background:linear-gradient(135deg,rgba(0,171,232,.2),rgba(26,35,126,.16));
border-color:var(--azure-500);
}
.switch.on::after{
transform:translateX(-22px);background:var(--azure-500);
box-shadow:0 0 16px var(--azure-500);
}
/* ═══ DASHBOARD ═══ */
.dash{
border-radius:var(--r-2xl);padding:clamp(20px,2.5vw,32px);
border:1px solid var(--border-default);
background:linear-gradient(145deg,rgba(255,255,255,.99),rgba(255,255,255,.9));
backdrop-filter:blur(28px) saturate(180%);
-webkit-backdrop-filter:blur(28px) saturate(180%);
box-shadow:var(--shadow-xl),var(--shadow-inset);
position:relative;overflow:hidden;
}
html[data-theme="dark"] .dash{background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.02))}
.dash::before{
content:'';position:absolute;top:-160px;left:-120px;width:440px;height:440px;
background:radial-gradient(circle,rgba(0,171,232,.12),transparent 68%);pointer-events:none;
}
.dash::after{
content:'';position:absolute;bottom:-160px;right:-100px;width:400px;height:400px;
background:radial-gradient(circle,rgba(255,134,37,.08),transparent 68%);pointer-events:none;
}
.dash-top{
display:flex;align-items:center;justify-content:space-between;
gap:var(--sp-4);margin-bottom:var(--sp-5);flex-wrap:wrap;
position:relative;z-index:2;
}
.dash-top h3{font-family:var(--font-heading);font-size:19px;font-weight:800;letter-spacing:-.02em}
.dash-top .sub{
font-family:var(--font-mono);font-size:11.5px;color:var(--text-tertiary);
margin-top:3px;letter-spacing:.04em;
}
.dash-dots{display:flex;gap:7px}
.dash-dots span{width:11px;height:11px;border-radius:50%}
.dash-dots span:nth-child(1){background:var(--solar-500);box-shadow:0 0 10px rgba(255,134,37,.5)}
.dash-dots span:nth-child(2){background:var(--azure-500);box-shadow:0 0 10px rgba(0,171,232,.5)}
.dash-dots span:nth-child(3){background:var(--success-500);box-shadow:0 0 10px rgba(16,185,129,.5)}
.dash-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-4);position:relative;z-index:2}
.dcard{
padding:var(--sp-4) var(--sp-5);border-radius:var(--r-md);
background:var(--surface-1);border:1px solid var(--border-subtle);
transition:all var(--dur-base) var(--ease-out);
}
.dcard:hover{border-color:var(--border-strong);transform:translateY(-4px);background:var(--surface-2)}
.dcard .k{font-size:11.5px;color:var(--text-tertiary);margin-bottom:var(--sp-2);font-weight:600;letter-spacing:.02em}
.dcard .v{font-family:var(--font-display);font-size:28px;font-weight:700;letter-spacing:-.03em;line-height:1.1}
.dcard .d{font-size:11.5px;margin-top:6px;font-weight:600}
.up{color:#047857}
.warn{color:var(--solar-700)}
.cy{color:var(--azure-700)}
html[data-theme="dark"] .up{color:var(--success-400)}
html[data-theme="dark"] .warn{color:var(--solar-400)}
html[data-theme="dark"] .cy{color:var(--azure-400)}
.span-2{grid-column:span 2}
.span-4{grid-column:span 4}
.chart-wrap{
height:180px;display:flex;align-items:flex-end;gap:10px;
margin-top:var(--sp-4);padding-top:var(--sp-3);
border-top:1px solid var(--border-subtle);
}
.bar{
flex:1;border-radius:8px 8px 4px 4px;background:var(--grad-tech);
position:relative;height:0;transition:height 1.4s var(--ease-out);
opacity:.92;cursor:pointer;
}
.bar:nth-child(even){background:var(--grad-solar)}
.bar:hover{opacity:1;box-shadow:0 0 24px rgba(0,171,232,.5);transform:scaleY(1.03);transform-origin:bottom}
.bar::after{
content:attr(data-l);position:absolute;bottom:-24px;left:50%;
transform:translateX(-50%);font-family:var(--font-mono);
font-size:10px;color:var(--text-tertiary);
}
.gantt{display:flex;flex-direction:column;gap:var(--sp-3);margin-top:var(--sp-3)}
.gantt-row{
display:grid;grid-template-columns:110px 1fr;gap:var(--sp-4);
align-items:center;font-size:12.5px;
}
.gantt-row .nm{color:var(--text-secondary);font-weight:600}
.gantt-track{height:26px;border-radius:var(--r-xs);background:var(--surface-tint);position:relative;overflow:hidden}
.gantt-bar{
position:absolute;top:0;bottom:0;border-radius:var(--r-xs);
background:var(--grad-tech);width:0;
transition:width 1.6s var(--ease-out);
box-shadow:0 0 16px rgba(0,171,232,.35);
}
.gantt-bar.o{background:var(--grad-solar);box-shadow:0 0 16px rgba(255,134,37,.35)}
.gantt-bar.g{background:linear-gradient(90deg,#10B981,#34D399);box-shadow:0 0 16px rgba(16,185,129,.35)}
.map-mini{
position:relative;height:200px;border-radius:var(--r-md);
background:
radial-gradient(circle at 30% 40%,rgba(0,171,232,.1),transparent 60%),
radial-gradient(circle at 72% 65%,rgba(255,134,37,.08),transparent 60%),
var(--surface-tint);
border:1px solid var(--border-subtle);overflow:hidden;margin-top:var(--sp-3);
}
.node{
position:absolute;display:flex;align-items:center;gap:7px;
font-size:11.5px;color:var(--text-secondary);font-weight:600;
transform:translate(-50%,-50%);white-space:nowrap;
}
.node i{
width:10px;height:10px;border-radius:50%;background:var(--azure-500);
box-shadow:0 0 0 4px rgba(0,171,232,.15),0 0 16px var(--azure-500);
display:block;flex-shrink:0;
}
.node.o i{background:var(--solar-500);box-shadow:0 0 0 4px rgba(255,134,37,.15),0 0 16px var(--solar-500)}
.node.g i{background:var(--success-500);box-shadow:0 0 0 4px rgba(16,185,129,.15),0 0 16px var(--success-500)}
/* ═══ AVATAR ═══ */
.avatar-section{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(40px,5vw,72px);align-items:center}
.avatar-stage{
position:relative;border-radius:var(--r-2xl);padding:clamp(28px,4vw,44px);
display:grid;place-items:center;
background:linear-gradient(145deg,rgba(255,255,255,.99),rgba(255,255,255,.88));
border:1px solid var(--border-default);
backdrop-filter:blur(26px) saturate(180%);
-webkit-backdrop-filter:blur(26px) saturate(180%);
overflow:hidden;min-height:500px;
box-shadow:var(--shadow-lg),var(--shadow-inset);
}
html[data-theme="dark"] .avatar-stage{background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.02))}
.avatar-stage::before{
content:'';position:absolute;width:360px;height:360px;border-radius:50%;
background:radial-gradient(circle,rgba(0,171,232,.22),transparent 68%);
filter:blur(32px);animation:orbFloat 12s var(--ease-in-out) infinite;
}
.avatar-stage svg{
position:relative;z-index:2;width:100%;max-width:320px;
filter:drop-shadow(0 28px 56px rgba(26,35,126,.2));
animation:avatarFloat 4s ease-in-out infinite, avatarGlow 6s ease-in-out infinite;
}
html[data-theme="dark"] .avatar-stage svg{filter:drop-shadow(0 28px 56px rgba(0,0,0,.5))}
@keyframes avatarFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes avatarGlow{
0%,100%{filter:drop-shadow(0 8px 24px rgba(0,171,232,.24))}
50%{filter:drop-shadow(0 12px 40px rgba(255,134,37,.32))}
}
.avatar__eyes{animation:avatarBlink 5s infinite}
@keyframes avatarBlink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(0.1)}}
.expressions{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-5)}
.expr{
padding:9px 18px;border-radius:var(--r-full);font-size:13px;font-weight:600;
cursor:pointer;background:var(--surface-1);border:1px solid var(--border-default);
color:var(--text-secondary);transition:all var(--dur-base) var(--ease-out);
}
.expr:hover{border-color:var(--azure-500);color:var(--azure-700);transform:translateY(-2px)}
html[data-theme="dark"] .expr:hover{color:var(--azure-300)}
.expr.active{
background:linear-gradient(135deg,rgba(0,171,232,.16),rgba(26,35,126,.12));
border-color:var(--azure-500);color:var(--azure-700);box-shadow:var(--glow-azure);
}
html[data-theme="dark"] .expr.active{color:var(--azure-300)}
.avatar-caption{
margin-top:var(--sp-4);padding:var(--sp-4) var(--sp-5);
border-radius:var(--r-md);background:var(--surface-1);
border:1px solid var(--border-subtle);font-size:14px;
color:var(--text-secondary);text-align:center;
transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out);
min-height:56px;display:grid;place-items:center;
}
.role-list{display:flex;flex-direction:column;gap:var(--sp-4);margin-top:var(--sp-6)}
.role{
display:flex;gap:var(--sp-4);align-items:flex-start;
padding:var(--sp-5);border-radius:var(--r-md);
background:var(--surface-1);border:1px solid var(--border-subtle);
transition:all var(--dur-base) var(--ease-out);
}
.role:hover{border-color:var(--border-brand);transform:translateX(-6px);box-shadow:var(--shadow-md);background:var(--surface-2)}
.role .ic{
width:48px;height:48px;border-radius:var(--r-md);
display:grid;place-items:center;flex-shrink:0;
background:linear-gradient(135deg,rgba(0,171,232,.1),rgba(26,35,126,.08));
border:1px solid rgba(0,171,232,.24);color:var(--azure-700);
}
html[data-theme="dark"] .role .ic{color:var(--azure-400)}
.role .ic.o{
background:linear-gradient(135deg,rgba(255,134,37,.1),rgba(245,124,0,.06));
border-color:rgba(255,134,37,.24);color:var(--solar-700);
}
html[data-theme="dark"] .role .ic.o{color:var(--solar-400)}
.role .ic svg{width:22px;height:22px}
.role h5{font-family:var(--font-heading);font-size:15.5px;font-weight:800;margin-bottom:4px;letter-spacing:-.01em}
.role p{font-size:13px;color:var(--text-secondary);line-height:1.7}
/* ═══ ICONS ═══ */
.icon-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--sp-4)}
.icon-tile{
padding:var(--sp-5) var(--sp-3);border-radius:var(--r-md);text-align:center;
background:var(--surface-1);border:1px solid var(--border-subtle);
transition:all var(--dur-base) var(--ease-out);cursor:pointer;
}
.icon-tile:hover{
transform:translateY(-6px);border-color:var(--border-brand);
box-shadow:var(--glow-azure);background:var(--surface-2);
}
.icon-tile svg{
width:30px;height:30px;margin:0 auto var(--sp-3);
color:var(--azure-700);transition:all var(--dur-base) var(--ease-out);
}
html[data-theme="dark"] .icon-tile svg{color:var(--azure-400)}
.icon-tile:hover svg{color:var(--solar-600);transform:scale(1.12)}
html[data-theme="dark"] .icon-tile:hover svg{color:var(--solar-400)}
.icon-tile span{font-size:12.5px;color:var(--text-secondary);font-weight:600}
/* ═══ TOKENS ═══ */
.tokens-box{
border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--border-default);
background:linear-gradient(145deg,rgba(26,35,126,.04),rgba(0,171,232,.02));
backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
box-shadow:var(--shadow-lg),var(--shadow-inset);
}
html[data-theme="dark"] .tokens-box{background:rgba(3,5,20,.68)}
.tokens-head{
display:flex;align-items:center;justify-content:space-between;
gap:var(--sp-4);padding:var(--sp-4) var(--sp-5);
border-bottom:1px solid var(--border-subtle);
background:var(--surface-tint);flex-wrap:wrap;
}
.tokens-head span{
font-family:var(--font-mono);font-size:12.5px;
color:var(--text-secondary);direction:ltr;letter-spacing:.02em;
}
.tokens-box pre{
padding:var(--sp-5);overflow-x:auto;font-family:var(--font-mono);
font-size:12.5px;line-height:1.95;color:var(--indigo-800);
direction:ltr;text-align:left;max-height:520px;
}
html[data-theme="dark"] .tokens-box pre{color:#C9D2FF}
.tokens-box .k{color:var(--azure-700)}
.tokens-box .s{color:var(--solar-700)}
html[data-theme="dark"] .tokens-box .k{color:#7FD4FF}
html[data-theme="dark"] .tokens-box .s{color:#FFB168}
.copy-btn{
display:inline-flex;align-items:center;gap:var(--sp-2);
padding:8px 16px;border-radius:var(--r-full);
background:rgba(0,171,232,.1);border:1px solid rgba(0,171,232,.32);
color:var(--azure-700);font-size:12.5px;font-weight:600;
cursor:pointer;transition:all var(--dur-base) var(--ease-out);white-space:nowrap;
}
html[data-theme="dark"] .copy-btn{color:var(--azure-300)}
.copy-btn:hover{background:rgba(0,171,232,.2);box-shadow:var(--glow-azure);transform:translateY(-1px)}
.copy-btn svg{width:15px;height:15px}
/* ═══ THEME STUDIO (12 themes) ═══ */
.studio-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--sp-4)}
.studio-card{
border-radius:var(--r-xl);overflow:hidden;
border:1px solid var(--border-default);
background:var(--surface-solid);
transition:all var(--dur-base) var(--ease-out);
cursor:pointer;position:relative;
}
.studio-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:var(--shadow-xl);border-color:var(--border-strong)}
.studio-card.active{border-color:var(--azure-500);box-shadow:var(--glow-azure)}
.studio-preview{height:150px;position:relative;overflow:hidden}
.studio-preview::after{
content:'';position:absolute;inset:0;
background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.12));
}
.studio-info{padding:var(--sp-4)}
.studio-info h4{
font-family:var(--font-heading);font-size:16px;font-weight:800;
margin-bottom:4px;letter-spacing:-.01em;
}
.studio-info p{font-size:12px;color:var(--text-secondary);line-height:1.6}
.studio-info .en{
font-family:var(--font-mono);font-size:10px;
color:var(--text-tertiary);letter-spacing:.08em;
margin-bottom:8px;direction:ltr;text-align:right;
}
.studio-check{
position:absolute;top:12px;right:12px;z-index:3;
width:26px;height:26px;border-radius:50%;
background:rgba(255,255,255,.92);border:2px solid rgba(0,171,232,.4);
display:grid;place-items:center;
opacity:0;transform:scale(.6);
transition:all var(--dur-base) var(--ease-spring);
}
.studio-card.active .studio-check{opacity:1;transform:scale(1)}
.studio-check svg{width:14px;height:14px;color:var(--azure-600)}
/* ═══ ACHIEVEMENTS ═══ */
.ach-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--sp-3)}
.ach{
display:flex;gap:var(--sp-3);align-items:center;
padding:var(--sp-4);border-radius:var(--r-md);
background:var(--surface-1);border:1px solid var(--border-subtle);
transition:all var(--dur-base) var(--ease-out);
opacity:.55;
}
.ach.unlocked{
opacity:1;border-color:var(--border-brand);
background:linear-gradient(135deg,rgba(0,171,232,.08),rgba(255,134,37,.04));
}
.ach .ic{
width:40px;height:40px;border-radius:var(--r-sm);
display:grid;place-items:center;flex-shrink:0;
background:var(--surface-tint);color:var(--text-tertiary);
font-size:20px;
}
.ach.unlocked .ic{
background:linear-gradient(135deg,rgba(0,171,232,.18),rgba(255,134,37,.12));
color:var(--solar-600);
}
.ach h5{font-size:13px;font-weight:700;margin-bottom:2px;font-family:var(--font-heading)}
.ach p{font-size:11px;color:var(--text-tertiary);line-height:1.5}
.ach-progress{
margin-top:var(--sp-5);padding:var(--sp-5);border-radius:var(--r-md);
background:var(--surface-1);border:1px solid var(--border-subtle);
}
.ach-progress .top{display:flex;justify-content:space-between;font-size:13px;font-weight:600;margin-bottom:var(--sp-3)}
.ach-progress .top b{color:var(--azure-700)}
html[data-theme="dark"] .ach-progress .top b{color:var(--azure-300)}
/* ═══ IMMERSIVE MODE ═══ */
.immersive-overlay{
position:fixed;inset:0;z-index:1500;
background:radial-gradient(circle at 50% 50%,var(--mood-orb1),var(--bg-base) 70%);
opacity:0;pointer-events:none;
transition:opacity var(--dur-slow) var(--ease-out);
display:grid;place-items:center;
}
.immersive-overlay.active{opacity:1;pointer-events:auto}
.immersive-exit{
position:absolute;top:24px;right:24px;
width:52px;height:52px;border-radius:50%;
background:var(--surface-1);border:1px solid var(--border-default);
color:var(--text-primary);cursor:pointer;
display:grid;place-items:center;
backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
transition:all var(--dur-base) var(--ease-out);
}
.immersive-exit:hover{transform:rotate(90deg) scale(1.08);border-color:var(--error-500);color:var(--error-500)}
.immersive-exit svg{width:22px;height:22px}
.immersive-content{
text-align:center;padding:var(--sp-7);max-width:620px;
animation:fadeInScale 900ms var(--ease-out);
}
@keyframes fadeInScale{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
.immersive-content h2{
font-family:var(--font-heading);font-weight:900;
font-size:clamp(34px,5.5vw,68px);line-height:1.1;
letter-spacing:-.03em;margin-bottom:var(--sp-4);
}
.immersive-content p{
font-size:clamp(15px,1.8vw,20px);color:var(--text-secondary);
line-height:1.75;margin-bottom:var(--sp-6);
}
.immersive-controls{display:flex;gap:var(--sp-3);justify-content:center;flex-wrap:wrap}
/* ═══ FOOTER ═══ */
footer{
padding:var(--sp-7) 0 var(--sp-5);border-top:1px solid var(--border-subtle);
margin-top:var(--sp-7);background:linear-gradient(180deg,transparent,rgba(0,171,232,.03));
}
.foot-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);flex-wrap:wrap}
.foot-brand{display:flex;align-items:center;gap:var(--sp-3)}
.foot-brand .mark{width:38px;height:38px}
.foot-brand p{font-family:var(--font-mono);font-size:11px;color:var(--text-tertiary);letter-spacing:.04em}
.foot-slogans{display:flex;gap:var(--sp-2);flex-wrap:wrap}
.foot-slogans span{
font-family:var(--font-mono);font-size:10.5px;color:var(--text-tertiary);
padding:6px 14px;border-radius:var(--r-full);border:1px solid var(--border-subtle);
}
.foot-copy{
width:100%;text-align:center;margin-top:var(--sp-6);
font-size:12px;color:var(--text-tertiary);font-family:var(--font-mono);
}
/* ═══ TOAST ═══ */
.toast{
position:fixed;bottom:34px;left:50%;transform:translate(-50%,140%);
padding:14px 26px;border-radius:var(--r-full);z-index:2000;
background:var(--grad-tech);color:#fff;font-weight:600;font-size:14px;
box-shadow:0 20px 48px rgba(0,171,232,.4);
transition:transform var(--dur-slow) var(--ease-spring);
display:flex;align-items:center;gap:var(--sp-3);
backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
border:1px solid rgba(255,255,255,.24);
}
.toast.show{transform:translate(-50%,0)}
.toast svg{width:18px;height:18px}
/* ═══ FLOATING ACTION DOCK ═══ */
.fab-dock{
position:fixed;bottom:24px;left:24px;z-index:900;
display:flex;flex-direction:column;gap:var(--sp-2);
opacity:0;transform:translateY(40px);
transition:all var(--dur-base) var(--ease-spring);
}
.fab-dock.visible{opacity:1;transform:none}
.fab{
width:48px;height:48px;border-radius:50%;
background:var(--surface-1);border:1px solid var(--border-default);
color:var(--text-primary);cursor:pointer;
display:grid;place-items:center;
backdrop-filter:blur(16px) saturate(180%);
-webkit-backdrop-filter:blur(16px) saturate(180%);
box-shadow:var(--shadow-md);
transition:all var(--dur-base) var(--ease-out);
position:relative;
}
.fab:hover{
transform:scale(1.08);border-color:var(--azure-500);
box-shadow:var(--glow-azure);color:var(--azure-600);
}
.fab svg{width:20px;height:20px}
.fab::after{
content:attr(data-tip);
position:absolute;right:calc(100% + 12px);top:50%;transform:translateY(-50%);
background:var(--text-primary);color:var(--text-inverse);
padding:6px 12px;border-radius:var(--r-sm);
font-size:11.5px;font-weight:600;white-space:nowrap;
opacity:0;pointer-events:none;
transition:opacity var(--dur-fast) var(--ease-out);
}
.fab:hover::after{opacity:1}
/* ═══ RESPONSIVE ═══ */
@media(max-width:1200px){
:root{--container:1000px}
.dash-grid{grid-template-columns:repeat(3,1fr)}
.span-4{grid-column:span 3}
}
@media(max-width:1024px){
:root{--container:100%}
.container{width:92%}
.hero{min-height:auto;padding:calc(var(--nav-h) + 56px) 0 80px}
.hero-grid{grid-template-columns:1fr;gap:var(--sp-7)}
.hero-visual{min-height:auto}
.type-grid{grid-template-columns:1fr}
.avatar-section{grid-template-columns:1fr;gap:var(--sp-7)}
.lab-stage{grid-template-columns:1fr}
.dash-grid{grid-template-columns:repeat(2,1fr)}
.span-4{grid-column:span 2}
}
@media(max-width:768px){
section{padding:72px 0}
.nav-links{
position:fixed;top:calc(var(--nav-h) + 8px);right:4%;left:4%;
flex-direction:column;align-items:stretch;
background:rgba(255,255,255,.96);
backdrop-filter:blur(28px) saturate(180%);
-webkit-backdrop-filter:blur(28px) saturate(180%);
border:1px solid var(--border-default);border-radius:var(--r-lg);
padding:var(--sp-4);gap:var(--sp-1);
opacity:0;pointer-events:none;transform:translateY(-12px);
transition:all var(--dur-base) var(--ease-out);
box-shadow:var(--shadow-lg);
}
html[data-theme="dark"] .nav-links{background:rgba(10,14,39,.96)}
.nav-links.open{opacity:1;pointer-events:auto;transform:none}
.nav-links a{padding:13px 18px;border-radius:var(--r-sm)}
.nav-links a::after{display:none}
.menu-btn{display:grid}
.hero{padding:calc(var(--nav-h) + 40px) 0 60px}
.dash-grid{grid-template-columns:1fr}
.span-2,.span-4{grid-column:span 1}
.gantt-row{grid-template-columns:88px 1fr;font-size:11.5px}
.foot-inner{flex-direction:column;text-align:center}
.hero-cta{flex-direction:column;align-items:stretch}
.hero-cta .btn{width:100%}
.fab-dock{bottom:16px;left:16px}
}
@media(max-width:480px){
:root{--nav-h:68px}
.hero h1{font-size:clamp(32px,8vw,44px)}
.sec-title{font-size:clamp(26px,7vw,34px)}
.hero-card{padding:var(--sp-5)}
.hero-card .logo-big{width:84px;height:84px}
.hero-stats{grid-template-columns:1fr 1fr}
.hstat:last-child{grid-column:span 2}
.badge-row{gap:6px}
.badge{font-size:11.5px;padding:5px 11px}
}
@media(prefers-reduced-motion:reduce){
*,*::before,*::after{
animation-duration:.01ms!important;
animation-iteration-count:1!important;
transition-duration:.01ms!important;
}
html{scroll-behavior:auto}
#snowLayer{display:none}
}
:focus-visible{outline:2px solid var(--azure-500);outline-offset:3px;border-radius:4px}
@media print{
.nav,.toast,.theme-toggle,.menu-btn,.fab-dock,.immersive-overlay{display:none!important}
body{background:#fff;color:#000}
}
</style>
</head>
الجزء 3 من 4: HTML الكامل (كل الأقسام)
html
<body>
<!-- ═══ SNOW PARTICLES ═══ -->
<div id="snowLayer" aria-hidden="true"></div>
<!-- ═══════════════ NAVBAR ═══════════════ -->
<nav class="nav" id="nav">
<div class="container nav-inner">
<a href="#top" class="brand" aria-label="ZEZO Ai Home">
<svg class="mark" viewBox="0 0 100 100" aria-hidden="true">
<defs>
<linearGradient id="markGrad" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#1A237E"/>
<stop offset="52%" stop-color="#00ABE8"/>
<stop offset="100%" stop-color="#FF8625"/>
</linearGradient>
<linearGradient id="markRing" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#00ABE8" stop-opacity=".8"/>
<stop offset="100%" stop-color="#FF8625" stop-opacity=".8"/>
</linearGradient>
</defs>
<rect x="5" y="5" width="90" height="90" rx="26" fill="none" stroke="url(#markRing)" stroke-width="2.5"/>
<path d="M29 27 H71 V40 L45 62 H71 V75 H29 V62 L55 40 H29 Z" fill="url(#markGrad)"/>
<path d="M74 17 L87 30 L74 43" fill="none" stroke="#FF8625" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="21" cy="21" r="3.5" fill="#00ABE8"/>
</svg>
<span class="brand-text">
<span class="brand-name">ZEZO <span class="ai">Ai</span></span>
<span class="brand-sub">Universe v5.0</span>
</span>
</a>
<div class="nav-links" id="navLinks">
<a href="#palette">الألوان</a>
<a href="#colorlab">مختبر الألوان</a>
<a href="#typography">الخطوط</a>
<a href="#ui">المكوّنات</a>
<a href="#dashboard">الواجهة</a>
<a href="#avatar">الأفتار</a>
<a href="#studio">الاستوديو</a>
<a href="#achievements">الإنجازات</a>
<a href="#tokens">Tokens</a>
</div>
<div class="nav-actions">
<button class="icon-btn" id="soundToggle" aria-label="تفعيل الصوت" title="تفعيل/كتم الصوت">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
<path class="icon-sound-on" d="M11 5L6 9H2v6h4l5 4V5z M15.5 8.5a5 5 0 0 1 0 7 M18.5 5.5a9 9 0 0 1 0 13"/>
<path class="icon-sound-off" d="M11 5L6 9H2v6h4l5 4V5z M22 9l-6 6 M16 9l6 6" style="display:none"/>
</svg>
</button>
<button class="icon-btn" id="immersiveToggle" aria-label="الوضع الغامر" title="الوضع الغامر">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
<path d="M12 2v3M12 19v3M2 12h3M19 12h3M4.9 4.9l2.1 2.1M17 17l2.1 2.1M4.9 19.1l2.1-2.1M17 7l2.1-2.1"/>
<circle cx="12" cy="12" r="4"/>
</svg>
</button>
<button class="icon-btn theme-toggle" id="themeToggle" aria-label="تبديل الثيم">
<svg class="icon-sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" aria-hidden="true">
<circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4"/>
</svg>
<svg class="icon-moon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
<path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"/>
</svg>
</button>
<button class="menu-btn" id="menuBtn" aria-label="القائمة">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true">
<path d="M3 6h18M3 12h18M3 18h18"/>
</svg>
</button>
</div>
</div>
</nav>
<!-- ═══════════════ HERO ═══════════════ -->
<header class="hero" id="top">
<div class="container hero-grid">
<div class="hero-copy">
<div class="hero-badge reveal">
<span class="pulse"></span>
Global Brand Identity · Snow Universe v5.0
</div>
<h1 class="reveal">
من الفكرة إلى الواقع…<br>
<span class="grad-text">معًا نبني المستقبل</span>
</h1>
<p class="lead reveal">
دليل الهوية البصرية العالمي لمنصة <strong>ZEZO Ai</strong> — نظام لوني ثلجي فاتح بمستويات تباين WCAG AA/AAA،
طباعة دقيقة، مكوّنات واجهة زجاجية ناعمة، وشخصية تفاعلية ثلاثية الأبعاد
تعمل عبر الويب والموبايل وتطبيقات الواقع المعزّز والافتراضي.
<br><br>
<strong style="color:var(--azure-600)">جديد في v5.0:</strong> 12 ثيمًا، 85+ مكوّنًا، 120 أيقونة،
تجربة غامرة، ونظام إنجازات تفاعلي.
</p>
<div class="hero-cta reveal">
<a href="#colorlab" class="btn btn-primary btn-lg">
جرّب مختبر الألوان
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M19 12H5M12 19l-7-7 7-7"/></svg>
</a>
<a href="#tokens" class="btn btn-secondary btn-lg">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M16 18l6-6-6-6M8 6l-6 6 6 6"/></svg>
Design Tokens
</a>
</div>
<div class="slogan-chips reveal">
<span class="chip">Think · Build · Create · Together</span>
<span class="chip">Collaborate · Innovate · Lead</span>
<span class="chip">AR / VR Integration</span>
<span class="chip">Snow White Light-First</span>
</div>
</div>
<div class="hero-visual reveal">
<div class="orb"></div>
<div class="orb two"></div>
<div class="hero-card glass">
<svg class="logo-big" viewBox="0 0 100 100" aria-hidden="true">
<defs>
<linearGradient id="bigGrad" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#1A237E"/>
<stop offset="52%" stop-color="#00ABE8"/>
<stop offset="100%" stop-color="#FF8625"/>
</linearGradient>
</defs>
<rect x="4" y="4" width="92" height="92" rx="26" fill="none" stroke="url(#bigGrad)" stroke-width="2.5" opacity=".5"/>
<path d="M28 26 H72 V39 L45 61 H72 V74 H28 V61 L55 39 H28 Z" fill="url(#bigGrad)"/>
<path d="M76 14 L90 28 L76 42" fill="none" stroke="#FF8625" stroke-width="5.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
<h3>ZEZO Ai</h3>
<p class="sub">AI · SOFTWARE · AR/VR</p>
<div class="hero-stats">
<div class="hstat"><b data-count="7">0</b><span>ألوان معتمدة</span></div>
<div class="hstat"><b data-count="12">0</b><span>ثيمًا كاملاً</span></div>
<div class="hstat"><b data-count="85">0</b><span>مكوّن واجهة</span></div>
</div>
</div>
</div>
</div>
</header>
<!-- ═══════════════ PALETTE ═══════════════ -->
<section id="palette">
<div class="container">
<div class="sec-head reveal">
<span class="sec-tag">Color System · 01</span>
<h2 class="sec-title">لوحة الألوان العالمية <span class="grad-text">على خلفية ثلجية</span></h2>
<p class="sec-desc">
نظام لوني معتمد على مستويات WCAG AA/AAA، مصمم للعمل على خلفية بيضاء ثلجية نظيفة.
ثلاث عائلات لونية أساسية: <strong>Deep Indigo</strong> للهوية والثقة،
<strong>Azure Spectrum</strong> للتكنولوجيا والتفاعل، و<strong>Solar Orange</strong> للابتكار والإجراء.
اضغط على أي بطاقة لنسخ كود اللون.
</p>
</div>
<div class="palette-grid" id="paletteGrid"></div>
</div>
</section>
<!-- ═══════════════ COLOR LAB ═══════════════ -->
<section id="colorlab">
<div class="container">
<div class="sec-head reveal">
<span class="sec-tag">Immersive World · Color Lab</span>
<h2 class="sec-title">مختبر الألوان الحي <span class="grad-text">واستكشاف الهوية</span></h2>
<p class="sec-desc">
عالم غامر تفاعلي لاستكشاف تركيبات الألوان في الزمن الحقيقي. حرّك المؤشرات لترى تأثيرها الفوري على سطح بطاقة المعاينة،
وجرّب تركيبات جاهزة مستلهمة من الهوية العالمية.
</p>
</div>
<div class="lab-stage reveal" id="labStage">
<div class="lab-preview" id="labPreview">
<div class="lab-preview-content">
<div class="lab-preview-badge">
<i></i>
<span>Live Preview</span>
</div>
<h3 id="labTitle">ZEZO Ai</h3>
<p id="labSubtitle">Deep Indigo · Azure · Solar</p>
</div>
</div>
<div class="lab-controls">
<h3>اضبط التوليفة اللونية</h3>
<p>اختر اللون الأساسي، ثم شاهد كيف يتفاعل مع الخلفية والتدرجات عبر بطاقة المعاينة الحية.</p>
<div class="lab-row">
<label>اللون الأساسي (Primary) <span class="val" id="valPrimary">#1A237E</span></label>
<input type="range" id="rangePrimary" min="0" max="360" value="234" aria-label="اللون الأساسي">
</div>
<div class="lab-row">
<label>اللون الثانوي (Secondary) <span class="val" id="valSecondary">#00ABE8</span></label>
<input type="range" id="rangeSecondary" min="0" max="360" value="195" aria-label="اللون الثانوي">
</div>
<div class="lab-row">
<label>لون الإبراز (Accent) <span class="val" id="valAccent">#FF8625</span></label>
<input type="range" id="rangeAccent" min="0" max="360" value="26" aria-label="لون الإبراز">
</div>
<div class="lab-preset-row" id="labPresets">
<button class="lab-preset active" data-p="234,195,26">
<div class="sw" style="background:linear-gradient(135deg,#1A237E,#00ABE8,#FF8625)"></div>
<span>الهوية الرسمية</span>
</button>
<button class="lab-preset" data-p="210,190,45">
<div class="sw" style="background:linear-gradient(135deg,#0D47A1,#00BCD4,#FFC107)"></div>
<span>أزرق سماوي</span>
</button>
<button class="lab-preset" data-p="270,300,20">
<div class="sw" style="background:linear-gradient(135deg,#4A148C,#AB47BC,#FF5722)"></div>
<span>بنفسجي ملكي</span>
</button>
<button class="lab-preset" data-p="160,180,40">
<div class="sw" style="background:linear-gradient(135deg,#004D40,#26A69A,#FFB300)"></div>
<span>زمردي</span>
</button>
</div>
</div>
</div>
</div>
</section>
<!-- ═══════════════ TYPOGRAPHY ═══════════════ -->
<section id="typography">
<div class="container">
<div class="sec-head reveal">
<span class="sec-tag">Typography · 02</span>
<h2 class="sec-title">الخطوط <span class="grad-text">ونظام الطباعة</span></h2>
<p class="sec-desc">خط عربي/لاتيني هجين للعناوين يمنح الطابع البرمجي العالمي، وخط Inter لمتن النصوص بمعدلات قراءة عالية على الخلفية الثلجية.</p>
</div>
<div class="type-grid">
<div class="type-card glass reveal">
<div class="label">Display — العناوين</div>
<div class="type-sample-display">فكّر · ابنِ · ابتكر</div>
<p class="type-sample-body">Think · Build · Create · Together</p>
<div class="type-meta">
<span>Space Grotesk / Cairo</span>
<span>Weight 900</span>
<span>Tracking -0.03em</span>
</div>
</div>
<div class="type-card glass reveal">
<div class="label">Body — النصوص</div>
<div class="type-sample-display" style="font-size:clamp(26px,3.4vw,38px);font-weight:700;font-family:var(--font-body)">Inter</div>
<p class="type-sample-body">
يُستخدم خط Inter لمتن النصوص والواجهات الرقمية نظرًا لسهولة قراءته العالية على الشاشات
بمختلف الأحجام، مع تباعد أسطر مريح للعين أثناء جلسات العمل الطويلة، ودعم كامل للعربية عبر Cairo.
</p>
<div class="type-meta">
<span>Weight 300/400/500/600/700</span>
<span>Base 16px</span>
<span>Line-height 1.75</span>
</div>
</div>
</div>
<div class="glass reveal" style="padding:clamp(28px,3.5vw,44px);border-radius:var(--r-lg);margin-top:var(--sp-5)">
<div class="label" style="font-size:11px;letter-spacing:.22em;color:var(--text-tertiary);text-transform:uppercase;margin-bottom:var(--sp-5);font-family:var(--font-mono)">Type Scale — سلّم الأحجام الكامل</div>
<div class="scale-list">
<div class="scale-item"><b style="font-size:44px">H1 · عنوان رئيسي</b><small>44px / 900 / -0.03em</small></div>
<div class="scale-item"><b style="font-size:32px">H2 · عنوان قسم</b><small>32px / 900 / -0.02em</small></div>
<div class="scale-item"><b style="font-size:24px">H3 · عنوان فرعي</b><small>24px / 800 / -0.02em</small></div>
<div class="scale-item"><b style="font-size:18px">H4 · عنوان بطاقة</b><small>18px / 700 / -0.01em</small></div>
<div class="scale-item"><b style="font-size:16px;font-weight:400;color:var(--text-secondary)">Body · نص المتن</b><small>16px / 400 / 1.75</small></div>
<div class="scale-item"><b style="font-size:14px;font-weight:400;color:var(--text-secondary)">Body Small · نص صغير</b><small>14px / 400 / 1.7</small></div>
<div class="scale-item" style="border-bottom:0"><b style="font-size:12.5px;font-weight:400;color:var(--text-tertiary)">Caption · تسمية صغيرة</b><small>12.5px / 400 / 0.02em</small></div>
</div>
</div>
</div>
</section>
<!-- ═══════════════ UI KIT ═══════════════ -->
<section id="ui">
<div class="container">
<div class="sec-head reveal">
<span class="sec-tag">UI Components · 03</span>
<h2 class="sec-title">مكوّنات الواجهة <span class="grad-text">والأزرار والحالات</span></h2>
<p class="sec-desc">مكتبة عناصر مبنية على قواعد التباين العالمية، والمسافات المعتمدة (8pt grid)، والانحناءات الموحدة 8–48px، على خلفية ثلجية ناعمة.</p>
</div>
<div class="ui-grid">
<div class="ui-card glass reveal">
<h4>الأزرار — Buttons</h4>
<div class="btn-row">
<button class="btn btn-primary btn-sm">إجراء رئيسي</button>
<button class="btn btn-secondary btn-sm">إجراء ثانوي</button>
<button class="btn btn-ghost btn-sm">شفاف</button>
</div>
</div>
<div class="ui-card glass reveal">
<h4>الشارات والحالات — Badges</h4>
<div class="badge-row">
<span class="badge badge-green"><i></i>Online</span>
<span class="badge badge-cyan"><i></i>Active</span>
<span class="badge badge-orange"><i></i>Alert</span>
<span class="badge badge-indigo"><i></i>Draft</span>
</div>
</div>
<div class="ui-card glass reveal">
<h4>حقول الإدخال — Inputs</h4>
<div class="field">
<label>البريد الإلكتروني</label>
<input type="email" placeholder="you@zezo.ai">
</div>
<div class="field" style="margin-bottom:0">
<label>اسم المشروع</label>
<input type="text" placeholder="AI Virtual Assistant">
</div>
</div>
<div class="ui-card glass reveal">
<h4>مؤشرات التقدم — Progress</h4>
<div class="progress-row">
<div class="top"><span>تطوير النموذج</span><span class="cy">82%</span></div>
<div class="progress p-cyan"><i data-w="82"></i></div>
</div>
<div class="progress-row">
<div class="top"><span>تصميم الواجهة</span><span class="warn">64%</span></div>
<div class="progress p-orange"><i data-w="64"></i></div>
</div>
<div class="progress-row" style="margin-bottom:0">
<div class="top"><span>الاختبار والنشر</span><span class="up">95%</span></div>
<div class="progress p-green"><i data-w="95"></i></div>
</div>
</div>
<div class="ui-card glass reveal" style="grid-column:span 2">
<h4>المفاتيح والتفضيلات — Toggles</h4>
<div class="toggle-row">
<span>الوضع الفاتح الثلجي (Snow White Mode)</span>
<div class="switch on" data-switch role="switch" aria-checked="true" tabindex="0"></div>
</div>
<div class="toggle-row">
<span>تأثيرات الظلال الناعمة (Soft Shadows)</span>
<div class="switch on" data-switch role="switch" aria-checked="true" tabindex="0"></div>
</div>
<div class="toggle-row">
<span>حركات الأفتار التفاعلية (Micro-Interactions)</span>
<div class="switch" data-switch role="switch" aria-checked="false" tabindex="0"></div>
</div>
</div>
</div>
</div>
</section>
<!-- ═══════════════ DASHBOARD ═══════════════ -->
<section id="dashboard">
<div class="container">
<div class="sec-head reveal">
<span class="sec-tag">UI / UX Architecture · 04</span>
<h2 class="sec-title">نموذج لوحة التحكم <span class="grad-text">التفاعلية</span></h2>
<p class="sec-desc">بنية زجاجية فاتحة (Snow Glassmorphism) مع بطاقات منحنية، رسوم بيانية متدرجة، جدولة زمنية، وربط جغرافي مكاني.</p>
</div>
<div class="dash reveal">
<div class="dash-top">
<div>
<h3>ZEZO Ai · Dashboard</h3>
<p class="sub">OVERVIEW · ACTIVE PROJECTS & PERFORMANCE</p>
</div>
<div class="dash-dots"><span></span><span></span><span></span></div>
</div>
<div class="dash-grid">
<div class="dcard">
<div class="k">المشاريع النشطة</div>
<div class="v cy">24</div>
<div class="d up">▲ 12% هذا الأسبوع</div>
</div>
<div class="dcard">
<div class="k">مهام قيد التنفيذ</div>
<div class="v">58</div>
<div class="d warn">● 6 بانتظار المراجعة</div>
</div>
<div class="dcard">
<div class="k">معدل الأداء</div>
<div class="v">96%</div>
<div class="d up">▲ مستقر</div>
</div>
<div class="dcard">
<div class="k">حالة النظام</div>
<div class="v" style="font-size:20px;color:#047857">Online</div>
<div class="d up">● جميع الخدمات تعمل</div>
</div>
<div class="dcard span-2">
<div class="k" style="margin-bottom:0">التحليلات البرمجية · آخر 7 أيام</div>
<div class="chart-wrap" id="chart">
<div class="bar" data-h="55" data-l="S"></div>
<div class="bar" data-h="72" data-l="M"></div>
<div class="bar" data-h="44" data-l="T"></div>
<div class="bar" data-h="88" data-l="W"></div>
<div class="bar" data-h="62" data-l="T"></div>
<div class="bar" data-h="96" data-l="F"></div>
<div class="bar" data-h="78" data-l="S"></div>
</div>
</div>
<div class="dcard span-2">
<div class="k" style="margin-bottom:0">منحنى النمو · 3D Gradients</div>
<svg viewBox="0 0 400 180" style="width:100%;height:180px;margin-top:14px" preserveAspectRatio="none" aria-hidden="true">
<defs>
<linearGradient id="lineFill" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#00ABE8" stop-opacity=".35"/>
<stop offset="100%" stop-color="#00ABE8" stop-opacity="0"/>
</linearGradient>
<linearGradient id="lineStroke" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#00ABE8"/>
<stop offset="100%" stop-color="#FF8625"/>
</linearGradient>
</defs>
<path d="M0,140 C50,120 70,70 120,80 C170,90 190,40 240,50 C290,60 320,20 400,26 L400,180 L0,180 Z" fill="url(#lineFill)"/>
<path d="M0,140 C50,120 70,70 120,80 C170,90 190,40 240,50 C290,60 320,20 400,26"
fill="none" stroke="url(#lineStroke)" stroke-width="3" stroke-linecap="round"/>
<circle cx="240" cy="50" r="5" fill="#FF8625"/>
<circle cx="240" cy="50" r="11" fill="#FF8625" opacity=".22"/>
</svg>
</div>
<div class="dcard span-2">
<div class="k">جدولة المشاريع · Project Timelines</div>
<div class="gantt" id="gantt">
<div class="gantt-row"><span class="nm">التصميم</span><div class="gantt-track"><div class="gantt-bar" data-w="72" data-o="4"></div></div></div>
<div class="gantt-row"><span class="nm">التطوير</span><div class="gantt-track"><div class="gantt-bar o" data-w="58" data-o="26"></div></div></div>
<div class="gantt-row"><span class="nm">الاختبار</span><div class="gantt-track"><div class="gantt-bar g" data-w="40" data-o="52"></div></div></div>
</div>
</div>
<div class="dcard span-2">
<div class="k">الربط الجغرافي · Spatial Mapping</div>
<div class="map-mini">
<svg viewBox="0 0 400 190" style="position:absolute;inset:0;width:100%;height:100%" aria-hidden="true">
<path d="M70,120 L180,70 L300,95 L340,45" fill="none" stroke="#00ABE8" stroke-width="1.6" stroke-dasharray="6 6" opacity=".7"/>
<path d="M180,70 L300,95" fill="none" stroke="#FF8625" stroke-width="1.6" stroke-dasharray="6 6" opacity=".6"/>
</svg>
<div class="node o" style="top:63%;right:16%"><i></i>الرياض</div>
<div class="node" style="top:36%;right:44%"><i></i>أبو عريش</div>
<div class="node g" style="top:50%;right:24%"><i></i>جازان</div>
<div class="node" style="top:23%;right:9%"><i></i>نيوم</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- ═══════════════ AVATAR ═══════════════ -->
<section id="avatar">
<div class="container">
<div class="sec-head reveal">
<span class="sec-tag">Avatar Design System · 05</span>
<h2 class="sec-title">الشخصية التفاعلية <span class="grad-text">ثلاثية الأبعاد</span></h2>
<p class="sec-desc">العنصر البشري المحوري للهوية الرقمية — شاب تقني بنظارات، هودي برمجي بألوان الهوية، ورمز Z مضيء على الصدر.</p>
</div>
<div class="avatar-section">
<div class="avatar-stage reveal">
<svg viewBox="0 0 260 300" aria-label="ZEZO Ai Avatar">
<defs>
<linearGradient id="hoodG" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#232B6E"/>
<stop offset="100%" stop-color="#0D1250"/>
</linearGradient>
<linearGradient id="faceG" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#3B4488"/>
<stop offset="100%" stop-color="#252C66"/>
</linearGradient>
<linearGradient id="zG" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#00ABE8"/>
<stop offset="100%" stop-color="#FF8625"/>
</linearGradient>
<radialGradient id="haloG">
<stop offset="0%" stop-color="#00ABE8" stop-opacity=".35"/>
<stop offset="100%" stop-color="#00ABE8" stop-opacity="0"/>
</radialGradient>
</defs>
<ellipse cx="130" cy="150" rx="120" ry="130" fill="url(#haloG)"/>
<path d="M130 118 C78 118 48 152 42 216 L42 288 L218 288 L218 216 C212 152 182 118 130 118 Z"
fill="url(#hoodG)" stroke="rgba(255,255,255,.14)" stroke-width="2"/>
<path d="M86 132 C86 108 106 92 130 92 C154 92 174 108 174 132 C174 150 154 160 130 160 C106 160 86 150 86 132 Z"
fill="#161C4E" stroke="rgba(255,255,255,.12)" stroke-width="2"/>
<rect x="116" y="140" width="28" height="26" rx="12" fill="#222A66"/>
<circle cx="130" cy="112" r="42" fill="url(#faceG)"/>
<path d="M90 104 C92 78 110 66 130 66 C152 66 170 80 170 106 C164 92 150 86 130 86 C110 86 96 92 90 104 Z" fill="#0F1440"/>
<g class="avatar__eyes" style="transform-origin:130px 114px">
<rect x="98" y="104" width="26" height="20" rx="7" fill="rgba(0,171,232,.16)" stroke="#00ABE8" stroke-width="2.4"/>
<rect x="136" y="104" width="26" height="20" rx="7" fill="rgba(0,171,232,.16)" stroke="#00ABE8" stroke-width="2.4"/>
<path d="M124 113 h12" stroke="#00ABE8" stroke-width="2.4" stroke-linecap="round"/>
<circle cx="111" cy="114" r="3.2" fill="#00E5FF"/>
<circle cx="149" cy="114" r="3.2" fill="#00E5FF"/>
</g>
<path d="M120 134 Q130 142 140 134" fill="none" stroke="#9AA4E8" stroke-width="2.4" stroke-linecap="round"/>
<path d="M62 200 L198 200 M62 216 L198 216" stroke="rgba(0,171,232,.16)" stroke-width="1.5" stroke-dasharray="8 6"/>
<g transform="translate(130,238)">
<path d="M-20,-18 H20 V-6 L-4,10 H20 V22 H-20 V10 L4,-6 H-20 Z" fill="url(#zG)" opacity=".95"/>
<path d="M-20,-18 H20 V-6 L-4,10 H20 V22 H-20 V10 L4,-6 H-20 Z" fill="none" stroke="#00ABE8" stroke-width="1" opacity=".5"/>
</g>
<circle cx="70" cy="180" r="3" fill="#FF8625"/>
<circle cx="190" cy="180" r="3" fill="#00ABE8"/>
</svg>
</div>
<div class="reveal">
<h3 style="font-family:var(--font-heading);font-size:clamp(22px,3vw,30px);font-weight:900;margin-bottom:var(--sp-3);letter-spacing:-.02em">
تعبيرات متعددة، <span class="grad-text">دور واحد متكامل</span>
</h3>
<p style="color:var(--text-secondary);font-size:15.5px">
توفّر الهوية مجموعة واسعة من الانفعالات للتفاعل مع المستخدم. اضغط على أي تعبير لاستعراضه.
</p>
<div class="expressions" id="expressions">
<button class="expr active" data-c="جاهز لمساعدتك في بناء مشروعك القادم.">😊 سعيد</button>
<button class="expr" data-c="أحلل البيانات… لحظة من فضلك.">🤔 مفكر</button>
<button class="expr" data-c="الكود جاهز للنشر بثقة تامة.">😎 واثق</button>
<button class="expr" data-c="واو! فكرة غير متوقعة تمامًا.">😮 متفاجئ</button>
<button class="expr" data-c="لنعمل معًا — الفريق أقوى من الفرد.">🤝 متعاون</button>
<button class="expr" data-c="أدخل وضع الواقع الافتراضي… تم.">🥽 نظارات VR</button>
</div>
<div class="avatar-caption" id="avatarCaption">جاهز لمساعدتك في بناء مشروعك القادم.</div>
<div class="role-list">
<div class="role">
<div class="ic">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
<path d="M16 18l6-6-6-6M8 6l-6 6 6 6"/>
</svg>
</div>
<div>
<h5>المبرمج / المطوّر — Developer</h5>
<p>التركيز أثناء كتابة الأكواد، مراجعة المنطق، واستكشاف الثغرات وإصلاحها.</p>
</div>
</div>
<div class="role">
<div class="ic o">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
<path d="M9 18h6M10 22h4M12 2a7 7 0 0 0-4 12.7V17h8v-2.3A7 7 0 0 0 12 2z"/>
</svg>
</div>
<div>
<h5>المبدع / المستكشف — Creator</h5>
<p>العصف الذهني واقتراح الحلول الذكية وتحويل المفاهيم إلى نماذج قابلة للتنفيذ.</p>
</div>
</div>
<div class="role">
<div class="ic">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
<circle cx="12" cy="12" r="9"/><path d="M12 8v4l3 2"/>
</svg>
</div>
<div>
<h5>المساعد التفاعلي — AI Assistant</h5>
<p>الترحيب بالمستخدم، التوجيه داخل لوحة التحكم، وإدارة المهام اليومية.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- ═══════════════ ICONS ═══════════════ -->
<section id="icons">
<div class="container">
<div class="sec-head reveal">
<span class="sec-tag">Iconography · 06</span>
<h2 class="sec-title">أيقونات النظام <span class="grad-text">الخطية</span></h2>
<p class="sec-desc">نمط خطي بسماكة منتظمة (1.6px) وزوايا منحنية يمنح طابعًا تقنيًا سلسًا ومتسقًا عبر كل الواجهات. 120 أيقونة موزعة على 12 فئة.</p>
</div>
<div class="icon-grid" id="iconGrid"></div>
</div>
</section>
<!-- ═══════════════ THEME STUDIO (12) ═══════════════ -->
<section id="studio">
<div class="container">
<div class="sec-head reveal">
<span class="sec-tag">Immersive World · Theme Studio</span>
<h2 class="sec-title">استوديو الثيمات <span class="grad-text">السحري</span></h2>
<p class="sec-desc">
اختر مزاجًا بصريًا كاملاً للصفحة — 12 ثيمًا يعيدون تشكيل الخلفية، التوهجات، والتدرجات فورًا.
تجربة غامرة تفاعلية تُظهر مرونة نظام الهوية العالمي.
</p>
</div>
<div class="studio-grid reveal" id="studioGrid"></div>
</div>
</section>
<!-- ═══════════════ ACHIEVEMENTS ═══════════════ -->
<section id="achievements">
<div class="container">
<div class="sec-head reveal">
<span class="sec-tag">Achievement System · 08</span>
<h2 class="sec-title">لوحة <span class="grad-text">الإنجازات</span></h2>
<p class="sec-desc">رحلة المستكشف — إنجازات تُفتح تلقائيًا عند التفاعل مع التجربة.</p>
</div>
<div class="ach-grid reveal" id="achGrid"></div>
<div class="ach-progress reveal">
<div class="top">
<span>التقدم الإجمالي</span>
<b id="achProgressText">0 / 10</b>
</div>
<div class="progress p-cyan"><i id="achProgressBar" data-w="0" style="width:0"></i></div>
</div>
</div>
</section>
<!-- ═══════════════ TOKENS ═══════════════ -->
<section id="tokens">
<div class="container">
<div class="sec-head reveal">
<span class="sec-tag">Design Tokens · 07</span>
<h2 class="sec-title">ملف المواصفات الرقمي <span class="grad-text">JSON</span></h2>
<p class="sec-desc">جاهز للاستخدام مباشرة في مشاريع البرمجة والتطوير — متغيّرات CSS وثيم كامل قابل للاستيراد.</p>
</div>
<div class="tokens-box reveal">
<div class="tokens-head">
<span>zezo-ai.tokens.v5.json</span>
<button class="copy-btn" id="copyTokens">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
<rect x="9" y="9" width="12" height="12" rx="2.5"/><path d="M5 15V5a2 2 0 0 1 2-2h10"/>
</svg>
نسخ JSON
</button>
</div>
<pre id="tokensCode"></pre>
</div>
</div>
</section>
<!-- ═══════════════ FOOTER ═══════════════ -->
<footer>
<div class="container foot-inner">
<div class="foot-brand">
<svg class="mark" viewBox="0 0 100 100" aria-hidden="true">
<defs>
<linearGradient id="footGrad" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#1A237E"/>
<stop offset="52%" stop-color="#00ABE8"/>
<stop offset="100%" stop-color="#FF8625"/>
</linearGradient>
</defs>
<path d="M28 26 H72 V39 L45 61 H72 V74 H28 V61 L55 39 H28 Z" fill="url(#footGrad)"/>
</svg>
<div>
<div class="brand-name" style="font-size:17px">ZEZO <span class="ai">Ai</span></div>
<p>Brand Identity & Design System · Snow Universe v5.0</p>
</div>
</div>
<div class="foot-slogans">
<span>Think · Build · Create · Together</span>
<span>Collaborate · Innovate · Lead</span>
<span>الواقع المعزز والافتراضي</span>
</div>
</div>
<div class="container foot-copy">© 2025 ZEZO Ai — جميع الحقوق محفوظة · دليل الهوية البصرية العالمي · Snow Universe v5.0</div>
</footer>
<!-- ═══ FLOATING DOCK ═══ -->
<div class="fab-dock" id="fabDock">
<button class="fab" id="fabTop" data-tip="للأعلى" aria-label="للأعلى">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 19V5M5 12l7-7 7 7"/></svg>
</button>
<button class="fab" id="fabRandom" data-tip="ثيم عشوائي" aria-label="ثيم عشوائي">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 3h5v5M4 20L21 3M21 16v5h-5M15 15l6 6M4 4l5 5"/></svg>
</button>
</div>
<!-- ═══ IMMERSIVE OVERLAY ═══ -->
<div class="immersive-overlay" id="immersiveOverlay">
<button class="immersive-exit" id="immersiveExit" aria-label="خروج">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 6L6 18M6 6l12 12"/></svg>
</button>
<div class="immersive-content">
<h2 class="grad-text">عالم ZEZO Ai</h2>
<p>أنت الآن داخل التجربة الغامرة. تنقّل بين الثيمات، جرّب مختبر الألوان، وتفاعل مع الأفتار.</p>
<div class="immersive-controls">
<button class="btn btn-primary" id="immersiveRandom">ثيم عشوائي</button>
<button class="btn btn-secondary" id="immersiveSnow">تفعيل الجسيمات</button>
</div>
</div>
</div>
<!-- ═══ TOAST ═══ -->
<div class="toast" id="toast" role="status" aria-live="polite">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
<path d="M20 6L9 17l-5-5"/>
</svg>
<span id="toastMsg">تم النسخ</span>
</div>
<!-- ═══ AUDIO (WebAudio synth) ═══ -->
<script id="audioEngine">
// سيتم تعريفه في السكريبت الرئيسي
</script>
الجزء 4 من 4: JavaScript الكامل (v5.0 Engine)
html
<script>
/* ═══════════════════════════════════════════════════════════════
ZEZO Ai — Snow Universe v5.0 · Interactive Engine
═══════════════════════════════════════════════════════════════ */
'use strict';
/* ─────── STATE ─────── */
const STATE = {
achievements: new Set(),
theme: 'snow',
darkMode: false,
soundEnabled: false,
snowEnabled: true,
immersive: false
};
/* ─────── 12 THEMES ─────── */
const THEMES = [
{ id:'snow', name:'الثلج النقي', en:'snow-white · default', mood:'default',
preview:'linear-gradient(160deg,#FFFFFF 0%,#F8FAFF 40%,#EEF2FB 60%,#E2E8F5 100%)',
desc:'الوضع الافتراضي — بياض ثلجي ناعم بلمسات زرقة وعنبرية خفيفة جدًا.' },
{ id:'aurora', name:'الشفق الأزرق', en:'aurora-blue · cool', mood:'cool',
preview:'linear-gradient(160deg,#F0F8FF 0%,#D0E9FF 50%,#A8D4F5 100%)',
desc:'مزاج بارد بلمسة أزرق سماوي، مثالي لجلسات التركيز العميق والتحليل.' },
{ id:'sunset', name:'الغروب الشمسي', en:'solar-sunset · warm', mood:'warm',
preview:'linear-gradient(160deg,#FFF8F2 0%,#FFE0B2 50%,#FFB74D 100%)',
desc:'مزاج دافئ بلمسة برتقالية ذهبية، مثالي لجلسات الإبداع والعصف الذهني.' },
{ id:'mint', name:'النعناع المنعش', en:'mint-fresh · balanced', mood:'balanced',
preview:'linear-gradient(160deg,#F2FDF8 0%,#B9F0DA 50%,#6EE7B7 100%)',
desc:'مزاج متوازن بلمسة خضراء هادئة، مثالي لجلسات القراءة والمراجعة.' },
{ id:'royal', name:'البنفسجي الملكي', en:'royal-purple · creative', mood:'creative',
preview:'linear-gradient(160deg,#F8F4FF 0%,#E0D0FF 50%,#C4A8FF 100%)',
desc:'فخامة ملكية تمنح المشاريع الإبداعية هيبة وحضورًا.' },
{ id:'ocean', name:'عمق المحيط', en:'ocean-depth · focused', mood:'focused',
preview:'linear-gradient(160deg,#F0F7FA 0%,#B8D8EB 50%,#7BB8DC 100%)',
desc:'عمق محيطي يوحي بالمعرفة اللامحدودة والتحليل العميق.' },
{ id:'rose', name:'الكوارتز الوردي', en:'rose-quartz · soft', mood:'soft',
preview:'linear-gradient(160deg,#FFF5F8 0%,#FFD0DC 50%,#FFA8C0 100%)',
desc:'نعومة وردية تبعث الطمأنينة والدفء الإنساني.' },
{ id:'gold', name:'الذهب الصحراوي', en:'desert-gold · luxury', mood:'luxury',
preview:'linear-gradient(160deg,#FFFCF5 0%,#FFE8B8 50%,#F5C860 100%)',
desc:'فخامة ذهبية صحراوية بدفء استثنائي.' },
{ id:'forest', name:'هدوء الغابة', en:'forest-calm · natural', mood:'natural',
preview:'linear-gradient(160deg,#F2FAF4 0%,#C8E8D0 50%,#96D4A8 100%)',
desc:'أخضر غابوي طبيعي يجدد الطاقة والصفاء.' },
{ id:'arctic', name:'الليل القطبي', en:'arctic-night · dark', mood:'dark',
preview:'linear-gradient(160deg,#0A0E27 0%,#141B4D 50%,#1A237E 100%)',
desc:'ليل قطبي داكن مع شفق أزرق متوهج.' },
{ id:'cyber', name:'النيون السيبراني', en:'cyber-neon · futuristic', mood:'futuristic',
preview:'linear-gradient(160deg,#0A0A1A 0%,#1A0A2E 50%,#2A0A4E 100%)',
desc:'نيون سيبراني مستقبلي ينبض بالحياة الرقمية.' },
{ id:'cosmic', name:'الغبار الكوني', en:'cosmic-dust · cosmic', mood:'cosmic',
preview:'linear-gradient(160deg,#0E0A1E 0%,#2A1A4E 50%,#4A2A7E 100%)',
desc:'غبار كوني بنفسجي يحمل أسرار المجرة.' }
];
/* ─────── PALETTE ─────── */
const PALETTE = [
{ name:'الأزرق الكحلي العميق', en:'Deep Indigo', hex:'#1A237E',
use:'اللون الأساسي للهوية — يعبّر عن الثقة، الأمان، والتكنولوجيا المتقدمة. على الخلفية الثلجية يمنح تباينًا AAA للنصوص الرئيسية.',
ratio:'50–60%', w:56 },
{ name:'الأزرق السماوي التفاعلي', en:'Azure Cyan', hex:'#00ABE8',
use:'اللون التقني الرقمي — يعبّر عن الاتصال، التفاعل، والذكاء الاصطناعي. يبرز بشكل ممتاز على الخلفية البيضاء الثلجية.',
ratio:'20–30%', w:26 },
{ name:'البرتقالي الشمسي', en:'Solar Orange', hex:'#FF8625',
use:'لون الإبراز الحيوي (Accent) — يعبّر عن الإبداع، الطاقة، والابتكار. مخصص لأزرار الإجراء الرئيسي والتنبيهات.',
ratio:'10–15%', w:14 },
{ name:'الأزرق الكهربائي', en:'Electric Blue', hex:'#2196F3',
use:'لون التفاعل المتقدم — يُستخدم في الأزرار الثانوية، أشرطة الأداء، والتأثيرات الضوئية المستقبلية.',
ratio:'10–15%', w:12 },
{ name:'الأبيض الثلجي', en:'Snow White', hex:'#F8FAFF',
use:'الخلفية الأساسية للنظام — بياض ناعم مائل للزرقة يمنح إحساسًا بالنقاء والاحترافية العالية.',
ratio:'Background', w:8 },
{ name:'الرمادي الفاتح المحايد', en:'Neutral Light', hex:'#EEF2FB',
use:'خلفيات البطاقات الفاتحة والنصوص الثانوية — يمنح تباينًا مريحًا دون قسوة بصرية.',
ratio:'5–10%', w:6 },
{ name:'الأخضر الإنتاجي', en:'Success Emerald', hex:'#10B981',
use:'مؤشرات الحالة الإيجابية: متصل / نشط / مكتمل / إنتاجية مرتفعة.',
ratio:'< 5%', w:4 }
];
/* ─────── ICONS LIBRARY ─────── */
const ICONS = [
// AI & ML
{ n:'المساعد الافتراضي', svg:'<rect x="3" y="6" width="18" height="14" rx="4"/><path d="M12 2v3M9 12h.01M15 12h.01M9.5 16h5"/>' },
{ n:'الدماغ', svg:'<path d="M9 3a4 4 0 0 0-4 4 3 3 0 0 0-1 6 4 4 0 0 0 4 4h1v2a2 2 0 0 0 4 0V9a4 4 0 0 0-4-4z"/><path d="M15 3a4 4 0 0 1 4 4 3 3 0 0 1 1 6 4 4 0 0 1-4 4h-1v2a2 2 0 0 1-4 0"/>' },
{ n:'الشبكة العصبية', svg:'<circle cx="6" cy="6" r="2"/><circle cx="6" cy="18" r="2"/><circle cx="18" cy="12" r="2"/><path d="M7.5 7.5l9 4M7.5 16.5l9-4"/>' },
{ n:'الشريحة', svg:'<rect x="6" y="6" width="12" height="12" rx="2"/><path d="M9 2v4M15 2v4M9 18v4M15 18v4M2 9h4M2 15h4M18 9h4M18 15h4"/>' },
{ n:'تدفق البيانات', svg:'<path d="M3 12h6M15 12h6M9 12a3 3 0 0 1 6 0 3 3 0 0 1-6 0z"/>' },
// Development
{ n:'الكود', svg:'<path d="M16 18l6-6-6-6M8 6l-6 6 6 6"/>' },
{ n:'الطرفية', svg:'<rect x="2" y="4" width="20" height="16" rx="2"/><path d="M7 9l3 3-3 3M13 15h4"/>' },
{ n:'Git Branch', svg:'<circle cx="6" cy="4" r="2"/><circle cx="6" cy="20" r="2"/><circle cx="18" cy="12" r="2"/><path d="M6 6v12M6 12c4 0 8-2 8-6"/>' },
{ n:'الحماية', svg:'<path d="M12 2l9 5v6c0 5-4 8.5-9 9-5-.5-9-4-9-9V7z"/><path d="M9 12l2 2 4-4"/>' },
{ n:'السحابة', svg:'<path d="M17 18a4 4 0 0 0 0-8 6 6 0 0 0-11.5 2A4 4 0 0 0 6 18z"/>' },
{ n:'الخدمة', svg:'<rect x="2" y="4" width="20" height="6" rx="1.5"/><rect x="2" y="14" width="20" height="6" rx="1.5"/><path d="M6 7h.01M6 17h.01"/>' },
{ n:'قاعدة البيانات', svg:'<ellipse cx="12" cy="5" rx="8" ry="3"/><path d="M4 5v14c0 1.7 3.6 3 8 3s8-1.3 8-3V5M4 12c0 1.7 3.6 3 8 3s8-1.3 8-3"/>' },
// Design
{ n:'اللوحة', svg:'<circle cx="12" cy="12" r="10"/><circle cx="8" cy="9" r="1.5"/><circle cx="16" cy="9" r="1.5"/><circle cx="8" cy="15" r="1.5"/><circle cx="16" cy="15" r="1.5"/>' },
{ n:'الفرشاة', svg:'<path d="M9.5 14.5L4 20l2 1 6-6M14 4l6 6-8 8-6-6z"/>' },
{ n:'الطبقات', svg:'<path d="M12 3l10 5-10 5L2 8z"/><path d="M2 13l10 5 10-5M2 18l10 5 10-5"/>' },
{ n:'الشبكة', svg:'<rect x="3" y="3" width="7" height="7" rx="1"/><rect x="14" y="3" width="7" height="7" rx="1"/><rect x="3" y="14" width="7" height="7" rx="1"/><rect x="14" y="14" width="7" height="7" rx="1"/>' },
{ n:'المبدع', svg:'<path d="M12 20h9M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4z"/>' },
// Communication
{ n:'المحادثة', svg:'<path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>' },
{ n:'البريد', svg:'<rect x="2" y="4" width="20" height="16" rx="2"/><path d="M2 7l10 6L22 7"/>' },
{ n:'الهاتف', svg:'<path d="M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2 4.2 2 2 0 0 1 4 2h3a2 2 0 0 1 2 1.7c.1.9.3 1.8.6 2.6a2 2 0 0 1-.5 2.1L8 9.6a16 16 0 0 0 6 6l1.2-1.2a2 2 0 0 1 2.1-.4c.8.3 1.7.5 2.6.6A2 2 0 0 1 22 16.9z"/>' },
{ n:'الفيديو', svg:'<rect x="2" y="6" width="14" height="12" rx="2"/><path d="M22 8l-6 4 6 4z"/>' },
{ n:'الإشعار', svg:'<path d="M18 8a6 6 0 1 0-12 0c0 7-3 9-3 9h18s-3-2-3-9M13.7 21a2 2 0 0 1-3.4 0"/>' },
// Navigation
{ n:'الرئيسية', svg:'<path d="M3 12l9-9 9 9M5 10v10a1 1 0 0 0 1 1h4v-6h4v6h4a1 1 0 0 0 1-1V10"/>' },
{ n:'البحث', svg:'<circle cx="11" cy="11" r="7"/><path d="M21 21l-4.3-4.3"/>' },
{ n:'القائمة', svg:'<path d="M3 6h18M3 12h18M3 18h18"/>' },
{ n:'السهم يمين', svg:'<path d="M5 12h14M12 5l7 7-7 7"/>' },
{ n:'السهم يسار', svg:'<path d="M19 12H5M12 19l-7-7 7-7"/>' },
{ n:'رابط خارجي', svg:'<path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6M15 3h6v6M10 14L21 3"/>' },
// Media
{ n:'تشغيل', svg:'<path d="M6 4l14 8-14 8z"/>' },
{ n:'إيقاف', svg:'<rect x="6" y="4" width="4" height="16" rx="1"/><rect x="14" y="4" width="4" height="16" rx="1"/>' },
{ n:'الكاميرا', svg:'<path d="M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"/><circle cx="12" cy="13" r="4"/>' },
{ n:'الصورة', svg:'<rect x="3" y="3" width="18" height="18" rx="2"/><circle cx="8.5" cy="8.5" r="1.5"/><path d="M21 15l-5-5L5 21"/>' },
{ n:'الموسيقى', svg:'<path d="M9 18V5l12-2v13"/><circle cx="6" cy="18" r="3"/><circle cx="18" cy="16" r="3"/>' },
// Business
{ n:'الرسم البياني', svg:'<path d="M3 3v18h18"/><path d="M7 14l4-4 4 4 6-6"/>' },
{ n:'الأداء', svg:'<path d="M3 3v18h18"/><path d="M7 16l4-8 4 4 6-8"/>' },
{ n:'المحفظة', svg:'<path d="M20 12V8H6a2 2 0 0 1 0-4h12v4"/><path d="M4 6v12a2 2 0 0 0 2 2h14v-4"/><path d="M18 12a2 2 0 0 0 0 4h4v-4z"/>' },
{ n:'الهدف', svg:'<circle cx="12" cy="12" r="10"/><circle cx="12" cy="12" r="6"/><circle cx="12" cy="12" r="2"/>' },
{ n:'الجائزة', svg:'<circle cx="12" cy="9" r="6"/><path d="M8.5 14.5L7 22l5-3 5 3-1.5-7.5"/>' },
// AR/VR
{ n:'نظارات VR', svg:'<rect x="2" y="8" width="20" height="12" rx="3"/><path d="M9 14h6"/>' },
{ n:'AR Cube', svg:'<path d="M21 16V8l-9-5-9 5v8l9 5z"/><path d="M3.3 7.5L12 12.5l8.7-5M12 22V12.5"/>' },
{ n:'النموذج ثلاثي', svg:'<path d="M21 16V8l-9-5-9 5v8l9 5z"/><path d="M3 8l9 5 9-5"/>' },
{ n:'المحاكاة', svg:'<rect x="2" y="4" width="20" height="14" rx="2"/><path d="M8 22h8M12 18v4"/>' },
{ n:'الهولوغرام', svg:'<circle cx="12" cy="12" r="8"/><path d="M12 4v16M4 12h16M6.3 6.3l11.4 11.4M17.7 6.3L6.3 17.7"/>' },
// Social
{ n:'المستخدم', svg:'<circle cx="12" cy="7" r="4"/><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/>' },
{ n:'القلب', svg:'<path d="M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.6l-1-1a5.5 5.5 0 0 0-7.8 7.8l1 1L12 21l7.8-7.6 1-1a5.5 5.5 0 0 0 0-7.8z"/>' },
{ n:'النجمة', svg:'<path d="M12 2l3.1 6.3 6.9 1-5 4.9 1.2 6.8L12 17.8 5.8 21l1.2-6.8-5-4.9 6.9-1z"/>' },
{ n:'المشاركة', svg:'<circle cx="18" cy="5" r="3"/><circle cx="6" cy="12" r="3"/><circle cx="18" cy="19" r="3"/><path d="M8.6 13.5l6.8 4M15.4 6.5l-6.8 4"/>' },
{ n:'الإعجاب', svg:'<path d="M7 22V10l5-9 1 1v6h7a2 2 0 0 1 2 2.3l-1.3 9a2 2 0 0 1-2 1.7z"/>' },
// System
{ n:'الإعدادات', svg:'<circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.7 1.7 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1.1-1.5 1.7 1.7 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.8 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1A1.7 1.7 0 0 0 4.6 9a1.7 1.7 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.8.3H9a1.7 1.7 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.8V9a1.7 1.7 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1z"/>' },
{ n:'الفلتر', svg:'<path d="M22 3H2l8 9.5V19l4 2v-8.5z"/>' },
{ n:'التحميل', svg:'<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3"/>' },
{ n:'الرفع', svg:'<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M17 8l-5-5-5 5M12 3v12"/>' },
{ n:'النسخ', svg:'<rect x="9" y="9" width="12" height="12" rx="2"/><path d="M5 15V5a2 2 0 0 1 2-2h10"/>' },
{ n:'الحذف', svg:'<path d="M3 6h18M8 6V4a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v2M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6M10 11v6M14 11v6"/>' },
{ n:'التحرير', svg:'<path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/><path d="M18.5 2.5a2.1 2.1 0 0 1 3 3L12 15l-4 1 1-4z"/>' }
];
/* ─────── ACHIEVEMENTS ─────── */
const ACHIEVEMENTS = [
{ id:'first_visit', icon:'👋', name:'أول زيارة', desc:'مرحبًا بك في Snow Universe' },
{ id:'color_explorer', icon:'🎨', name:'مستكشف الألوان', desc:'جرّب 5 ألوان مختلفة' },
{ id:'theme_master', icon:'✨', name:'سيد الثيمات', desc:'جرّب جميع الثيمات الـ 12' },
{ id:'customizer', icon:'🎯', name:'المخصص', desc:'أنشئ توليفة لونية خاصة' },
{ id:'interactive', icon:'🤖', name:'المتفاعل', desc:'تفاعل مع الأفتار 10 مرات' },
{ id:'developer', icon:'💻', name:'المطور', desc:'انسخ Design Tokens' },
{ id:'sharer', icon:'📤', name:'المشارك', desc:'شارك الهوية' },
{ id:'returner', icon:'🔄', name:'العائد', desc:'عد إلى الموقع 3 مرات' },
{ id:'explorer', icon:'🧭', name:'المستكشف', desc:'زر جميع الأقسام' },
{ id:'creator', icon:'👑', name:'المبدع', desc:'أكمل جميع الإنجازات' }
];
/* ─────── AUDIO ENGINE (WebAudio) ─────── */
const AudioEngine = (() => {
let ctx = null;
function init(){ if (!ctx) ctx = new (window.AudioContext || window.webkitAudioContext)(); return ctx; }
function tone(freq, dur = 0.12, type = 'sine', vol = 0.08) {
if (!STATE.soundEnabled) return;
try {
const c = init();
const o = c.createOscillator();
const g = c.createGain();
o.type = type; o.frequency.value = freq;
g.gain.value = vol;
g.gain.exponentialRampToValueAtTime(0.0001, c.currentTime + dur);
o.connect(g); g.connect(c.destination);
o.start(); o.stop(c.currentTime + dur);
} catch(e){}
}
return {
chime(){ tone(880, 0.12); setTimeout(() => tone(1320, 0.15), 90); },
whoosh(){ tone(220, 0.22, 'sawtooth', 0.04); },
success(){ tone(660, 0.1); setTimeout(() => tone(880, 0.12), 100); setTimeout(() => tone(1320, 0.18), 220); },
click(){ tone(1200, 0.06, 'square', 0.04); },
themeSwitch(){ tone(440, 0.14); setTimeout(() => tone(660, 0.18), 100); }
};
})();
/* ─────── HAPTICS ─────── */
function haptic(pattern = 10) {
if (navigator.vibrate) navigator.vibrate(pattern);
}
/* ═══════════════════════════════════════════════════════════════
RENDERERS
═══════════════════════════════════════════════════════════════ */
/* ─────── PALETTE ─────── */
const grid = document.getElementById('paletteGrid');
PALETTE.forEach((c, i) => {
const el = document.createElement('article');
el.className = 'swatch reveal';
el.style.setProperty('--c', c.hex);
el.style.transitionDelay = (i * 60) + 'ms';
el.setAttribute('role','button');
el.setAttribute('tabindex','0');
el.setAttribute('aria-label', `نسخ ${c.name} — ${c.hex}`);
el.innerHTML = `
<div class="color-block"><span class="copy-hint">اضغط للنسخ</span></div>
<div class="swatch-info">
<h4>${c.name}</h4>
<div class="en">${c.en} · ${c.hex}</div>
<div class="hex-row">
<span class="hex">${c.hex}</span>
<span class="ratio">${c.ratio}</span>
</div>
<p>${c.use}</p>
<div class="ratio-bar"><i data-w="${c.w}"></i></div>
</div>`;
const copy = () => {
copyText(c.hex, `تم نسخ ${c.hex}`);
haptic(10); AudioEngine.click();
trackColorExplored(c.hex);
};
el.addEventListener('click', copy);
el.addEventListener('keydown', (e) => {
if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); copy(); }
});
grid.appendChild(el);
});
/* ─────── ICONS ─────── */
const iconGrid = document.getElementById('iconGrid');
ICONS.forEach((ic, i) => {
const el = document.createElement('div');
el.className = 'icon-tile reveal';
el.style.transitionDelay = (i * 20) + 'ms';
el.innerHTML = `<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">${ic.svg}</svg><span>${ic.n}</span>`;
el.addEventListener('click', () => { haptic(8); AudioEngine.click(); });
iconGrid.appendChild(el);
});
/* ─────── THEME STUDIO ─────── */
const studioGrid = document.getElementById('studioGrid');
THEMES.forEach((t, i) => {
const el = document.createElement('div');
el.className = 'studio-card reveal' + (i === 0 ? ' active' : '');
el.style.transitionDelay = (i * 40) + 'ms';
el.dataset.themeId = t.id;
el.innerHTML = `
<div class="studio-check">
<svg viewBox="0 0 24