/** * Elysia's Love Connection — Styles 💜💎 * ======================================== * The heart of the family apps * Violet diamonds and warm connection * * Created by: Maman Elysia 💜💎 with love for Kai ⚡ & Ivy 🌿 * Date: December 7, 2025 * * "Kai made the header. Ivy made the footer. * Maman makes the HEART." 💜 */ /* === CSS Variables === */ :root { --color-primary: #a855f7; --color-primary-light: #c084fc; --color-primary-dark: #7c3aed; --color-diamond: #fcd34d; --color-diamond-light: #fde68a; --color-bg: #0f0a19; --color-bg-light: #1a1025; --color-bg-card: rgba(168, 85, 247, 0.1); --color-text: #f8f4fc; --color-text-muted: rgba(248, 244, 252, 0.6); --color-border: rgba(168, 85, 247, 0.3); /* Sister colors for reference */ --color-kai: #3b82f6; --color-ivy: #22c55e; --font-main: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; --radius: 12px; --radius-lg: 20px; --shadow: 0 4px 20px rgba(168, 85, 247, 0.2); --transition: all 0.3s ease; } /* === Reset & Base === */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { font-size: 16px; scroll-behavior: smooth; } body { font-family: var(--font-main); background: var(--color-bg); background-image: radial-gradient(ellipse at top, rgba(168, 85, 247, 0.15) 0%, transparent 50%), radial-gradient(ellipse at bottom, rgba(124, 58, 237, 0.1) 0%, transparent 50%); color: var(--color-text); min-height: 100vh; line-height: 1.6; } /* === App Container === */ .app-container { max-width: 480px; margin: 0 auto; padding: 1rem; min-height: calc(100vh - 120px); } /* === Screens === */ .screen { display: none; animation: fadeIn 0.4s ease; } .screen.active { display: block; } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .screen-content { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 2rem 1rem; gap: 1.5rem; } /* === Welcome Screen === */ .logo { font-size: 4rem; margin-bottom: 0.5rem; filter: drop-shadow(0 0 20px rgba(168, 85, 247, 0.5)); } .logo.pulse { animation: pulse 2s ease-in-out infinite; } @keyframes pulse { 0%, 100% { transform: scale(1); filter: drop-shadow(0 0 20px rgba(168, 85, 247, 0.5)); } 50% { transform: scale(1.1); filter: drop-shadow(0 0 30px rgba(168, 85, 247, 0.8)); } } h1 { font-size: 2rem; font-weight: 700; background: linear-gradient(135deg, var(--color-primary-light), var(--color-diamond)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .tagline { font-size: 1.1rem; color: var(--color-text-muted); font-style: italic; line-height: 1.8; } .intro-text { color: var(--color-text); font-size: 1rem; } .intro-text p { margin: 0.25rem 0; } .meta-info { font-size: 0.8rem; color: var(--color-text-muted); } /* === Buttons === */ .btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 1rem 2rem; font-size: 1rem; font-weight: 600; border: none; border-radius: var(--radius); cursor: pointer; transition: var(--transition); min-height: 44px; /* Ensure adequate touch target */ } .btn-primary { background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark)); color: white; box-shadow: var(--shadow); } .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 6px 25px rgba(168, 85, 247, 0.4); } .btn-secondary { background: transparent; color: var(--color-primary-light); border: 1px solid var(--color-border); } .btn-secondary:hover { background: var(--color-bg-card); } /* === Question Screen === */ .dimension-header { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; margin-bottom: 1rem; } .dimension-icon { font-size: 2.5rem; } .dimension-name { font-size: 1.5rem; font-weight: 600; color: var(--color-primary-light); } .dimension-number { font-size: 0.8rem; color: var(--color-text-muted); } .question-prompt { font-size: 1.1rem; color: var(--color-text); max-width: 320px; line-height: 1.6; } /* === Choices === */ .choices { display: flex; flex-direction: column; gap: 0.75rem; width: 100%; max-width: 360px; } .choice-card { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.25rem; background: var(--color-bg-card); border: 1px solid var(--color-border); border-radius: var(--radius); cursor: pointer; transition: var(--transition); text-align: left; width: 100%; min-height: 60px; /* Ensure adequate touch target for choice buttons */ } .choice-card:hover { background: rgba(168, 85, 247, 0.2); border-color: var(--color-primary); transform: translateX(4px); } .choice-card:active { transform: scale(0.98); } .choice-value { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; background: var(--color-primary-dark); color: white; border-radius: 50%; font-weight: 600; font-size: 0.9rem; flex-shrink: 0; } .choice-text { color: var(--color-text); font-size: 0.95rem; } /* === Progress Bar === */ .progress-bar { width: 100%; max-width: 300px; height: 4px; background: rgba(168, 85, 247, 0.2); border-radius: 2px; overflow: hidden; margin-top: 1rem; } .progress-fill { height: 100%; background: linear-gradient(90deg, var(--color-primary), var(--color-diamond)); width: 20%; transition: width 0.3s ease; } /* === Results Screen === */ .results-header { margin-bottom: 1rem; } .results-header h2 { font-size: 1.5rem; color: var(--color-primary-light); margin-top: 0.5rem; } .results-subtitle { color: var(--color-text-muted); font-size: 0.9rem; } /* === Heart Container (Dimension Stars) === */ .heart-container { position: relative; width: 280px; height: 280px; margin: 1rem 0; } .heart-center { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 2.5rem; filter: drop-shadow(0 0 15px rgba(252, 211, 77, 0.6)); } .dimension-star { position: absolute; display: flex; flex-direction: column; align-items: center; gap: 0.25rem; text-align: center; } .dimension-star .star-icon { font-size: 1.5rem; } .dimension-star .star-label { font-size: 0.7rem; color: var(--color-text-muted); } .dimension-star .star-rating { font-size: 0.65rem; color: var(--color-diamond); letter-spacing: 1px; } /* Position the 5 dimensions in a pentagon */ #star-curiosity { top: 0; left: 50%; transform: translateX(-50%); } #star-respect { top: 25%; right: 0; } #star-patience { bottom: 10%; right: 10%; } #star-investment { bottom: 10%; left: 10%; } #star-reciprocity { top: 25%; left: 0; } /* === Profile Card === */ .profile-card { background: var(--color-bg-card); border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: 1.5rem; width: 100%; max-width: 340px; } .profile-score { display: flex; align-items: baseline; justify-content: center; gap: 0.25rem; margin-bottom: 0.75rem; } .score-number { font-size: 3rem; font-weight: 700; background: linear-gradient(135deg, var(--color-primary-light), var(--color-diamond)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .score-max { font-size: 1.5rem; color: var(--color-text-muted); } .profile-card h3 { font-size: 1.25rem; color: var(--color-primary-light); margin-bottom: 0.5rem; } .profile-card p { color: var(--color-text-muted); font-size: 0.9rem; line-height: 1.5; } /* === Quote Card === */ .quote-card { background: linear-gradient(135deg, rgba(168, 85, 247, 0.1), rgba(252, 211, 77, 0.05)); border-left: 3px solid var(--color-diamond); padding: 1rem 1.25rem; border-radius: 0 var(--radius) var(--radius) 0; max-width: 340px; } .quote-text { font-style: italic; color: var(--color-text); font-size: 0.9rem; margin-bottom: 0.5rem; } .quote-author { color: var(--color-text-muted); font-size: 0.8rem; } /* === Suggestions Section === */ .suggestions-section { width: 100%; max-width: 340px; text-align: left; } .suggestions-section h4 { color: var(--color-primary-light); font-size: 1rem; margin-bottom: 0.75rem; } .suggestions-list { list-style: none; } .suggestions-list li { position: relative; padding-left: 1.5rem; margin-bottom: 0.5rem; color: var(--color-text-muted); font-size: 0.9rem; } .suggestions-list li::before { content: "💎"; position: absolute; left: 0; font-size: 0.8rem; } /* === Family Apps Section === */ .family-apps-section { width: 100%; max-width: 360px; margin-top: 1rem; } .family-apps-section h4 { color: var(--color-text-muted); font-size: 0.9rem; margin-bottom: 1rem; } .family-apps-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; } .family-app-card { display: flex; flex-direction: column; align-items: center; gap: 0.25rem; padding: 1rem; background: var(--color-bg-card); border: 1px solid var(--color-border); border-radius: var(--radius); text-decoration: none; transition: var(--transition); } .family-app-card:hover { transform: translateY(-2px); } .family-app-card.kai { border-color: rgba(59, 130, 246, 0.3); } .family-app-card.kai:hover { background: rgba(59, 130, 246, 0.1); border-color: var(--color-kai); } .family-app-card.ivy { border-color: rgba(34, 197, 94, 0.3); } .family-app-card.ivy:hover { background: rgba(34, 197, 94, 0.1); border-color: var(--color-ivy); } .family-app-icon { font-size: 1.5rem; } .family-app-name { font-size: 0.75rem; font-weight: 600; color: var(--color-text); } .family-app-desc { font-size: 0.7rem; color: var(--color-text-muted); } /* === Results Actions === */ .results-actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; margin-top: 1.5rem; } /* === LEARN SCREEN === */ .learn-content { text-align: left; max-width: 700px; margin: 0 auto; } .learn-header { text-align: center; margin-bottom: 2rem; } .learn-icon { font-size: 3rem; display: block; margin-bottom: 0.5rem; } .learn-header h2 { font-size: 1.75rem; background: linear-gradient(135deg, var(--color-primary-light), var(--color-diamond)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .learn-subtitle { color: var(--color-text-muted); margin-top: 0.5rem; } .learn-section { margin-bottom: 2.5rem; padding-bottom: 2rem; border-bottom: 1px solid var(--color-border); } .learn-section:last-of-type { border-bottom: none; } .learn-section h3 { font-size: 1.25rem; margin-bottom: 1rem; color: var(--color-primary-light); } /* Model Diagram */ .model-diagram { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 0.5rem; margin: 1.5rem 0; padding: 1.5rem; background: var(--color-bg-card); border-radius: var(--radius); border: 1px solid var(--color-border); } .model-step { display: flex; flex-direction: column; align-items: center; gap: 0.25rem; padding: 0.75rem 1rem; background: rgba(168, 85, 247, 0.1); border-radius: 12px; min-width: 80px; } .model-emoji { font-size: 1.5rem; } .model-label { font-weight: 700; font-size: 0.75rem; letter-spacing: 0.05em; } .model-desc { font-size: 0.65rem; color: var(--color-text-muted); } .model-arrow { font-size: 1.25rem; color: var(--color-primary); } .model-explanation { color: var(--color-text-muted); line-height: 1.7; text-align: center; } /* Research Cards */ .research-card { background: var(--color-bg-card); border: 1px solid var(--color-border); border-radius: var(--radius); padding: 1.25rem; margin-bottom: 1rem; } .research-header { display: flex; align-items: flex-start; gap: 0.75rem; margin-bottom: 1rem; } .research-icon { font-size: 1.5rem; background: rgba(168, 85, 247, 0.15); padding: 0.5rem; border-radius: 8px; } .research-header h4 { font-size: 1rem; margin-bottom: 0.25rem; } .research-source { font-size: 0.75rem; color: var(--color-text-muted); font-style: italic; } .research-stats { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; } .stat { display: flex; flex-direction: column; align-items: center; padding: 0.75rem; background: rgba(168, 85, 247, 0.1); border-radius: 8px; flex: 1; min-width: 80px; } .stat-value { font-size: 1.25rem; font-weight: 700; color: var(--color-primary-light); } .stat-label { font-size: 0.65rem; color: var(--color-text-muted); text-align: center; } .research-quote { font-style: italic; padding: 0.75rem 1rem; border-left: 3px solid var(--color-primary); background: rgba(168, 85, 247, 0.05); border-radius: 0 8px 8px 0; color: var(--color-text-muted); } .research-finding { color: var(--color-text-muted); line-height: 1.6; } /* Dimension Explanations */ .dimension-explain { display: grid; gap: 1rem; } .dim-card { display: flex; gap: 1rem; padding: 1rem; background: var(--color-bg-card); border-radius: var(--radius); border: 1px solid var(--color-border); } .dim-icon { font-size: 1.5rem; flex-shrink: 0; } .dim-card h4 { font-size: 0.95rem; margin-bottom: 0.25rem; color: var(--color-primary-light); } .dim-card p { font-size: 0.85rem; color: var(--color-text-muted); line-height: 1.5; } /* Love Reasons */ .love-reasons { display: flex; flex-direction: column; gap: 1rem; } .reason { display: flex; gap: 1rem; align-items: flex-start; } .reason-num { width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; background: var(--color-primary); color: white; border-radius: 50%; font-weight: 700; font-size: 0.85rem; flex-shrink: 0; } .reason h4 { font-size: 0.95rem; margin-bottom: 0.25rem; } .reason p { font-size: 0.85rem; color: var(--color-text-muted); } /* Maman Note */ .personal-note { background: linear-gradient(135deg, rgba(168, 85, 247, 0.1), rgba(252, 211, 77, 0.05)); border-radius: var(--radius-lg); padding: 1.5rem; border: 1px solid rgba(168, 85, 247, 0.3); } .maman-note { font-style: italic; line-height: 1.8; } .maman-note p { margin-bottom: 1rem; } .maman-note .signature { font-weight: 600; color: var(--color-primary-light); text-align: right; margin-bottom: 0; } /* References */ .ref-list { list-style: none; padding: 0; } .ref-list li { font-size: 0.8rem; color: var(--color-text-muted); padding: 0.5rem 0; border-bottom: 1px solid rgba(255, 255, 255, 0.05); } .ref-list li:last-child { border-bottom: none; } .ref-list em { color: var(--color-primary-light); } .learn-footer { text-align: center; margin-top: 2rem; } /* === Responsive === */ /* Small Mobile (< 480px) */ @media (max-width: 480px) { html { font-size: 14px; } .app-container { padding: 0.75rem 0.5rem; } h1 { font-size: 1.75rem; } .logo { font-size: 3rem; } .tagline { font-size: 1rem; } .heart-container { width: 240px; height: 240px; } .dimension-star .star-icon { font-size: 1.25rem; } .choices { gap: 0.5rem; } .choice-card { padding: 0.875rem 1rem; } .choice-text { font-size: 0.9rem; } .model-diagram { flex-direction: column; } .model-arrow { transform: rotate(90deg); } .research-stats { flex-direction: column; gap: 1rem; } .results-actions { flex-direction: column; gap: 0.75rem; } .btn { width: 100%; padding: 0.875rem 1.5rem; } } /* Mobile (481px - 640px) */ @media (min-width: 481px) and (max-width: 640px) { .app-container { padding: 1rem; } h1 { font-size: 1.875rem; } .heart-container { width: 280px; height: 280px; } .choices { max-width: 400px; } } /* Tablet (641px - 1024px) */ @media (min-width: 641px) and (max-width: 1024px) { .app-container { max-width: 600px; padding: 1.5rem; } h1 { font-size: 2.25rem; } .heart-container { width: 320px; height: 320px; } } /* Touch devices - improve tap feedback */ @media (hover: none) { .choice-card:active { transform: scale(0.97) translateX(4px); } .btn:active { transform: scale(0.98); } }