@import"https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700;800&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";.hub-page{min-height:100vh;background:#0f172a;color:#fff;font-family:var(--font-body)}.hub-container{max-width:1180px;margin:0 auto;padding:64px 32px}.hub-header{display:flex;align-items:center;gap:14px;margin-bottom:20px}.hub-logo{width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,#2563eb,#10b981);display:grid;place-items:center;font-family:var(--font-display);font-weight:800;font-size:18px;color:#fff}.hub-title{font-family:var(--font-display);font-weight:800;font-size:28px;letter-spacing:-.5px;line-height:1;margin:0}.hub-title-accent{color:#34d399}.hub-tagline{font-size:13px;opacity:.6;font-weight:600;margin:4px 0 0}.hub-intro{max-width:720px;font-size:16px;line-height:1.6;color:#ffffffb3;font-weight:500;margin:24px 0 0}.hub-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:36px}@media (max-width: 800px){.hub-grid{grid-template-columns:1fr}}.hub-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:22px;padding:28px;transition:all .2s var(--ease-out);cursor:pointer;display:flex;flex-direction:column}.hub-card:hover{border-color:#10b98166;transform:translateY(-2px);box-shadow:0 16px 48px -8px #10b98133}.hub-card-row{display:flex;justify-content:space-between;align-items:flex-start}.hub-card-emoji{font-size:32px;line-height:1}.hub-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.4px;text-transform:uppercase}.hub-badge.tone-emerald{background:#10b98126;color:#34d399}.hub-badge.tone-blue{background:#2563eb26;color:#93c5fd}.hub-badge.tone-violet{background:#7c3aed26;color:#c4b5fd}.hub-badge.tone-amber{background:#f59e0b26;color:#fcd34d}.hub-card-title{font-family:var(--font-display);font-weight:800;font-size:22px;margin:18px 0 8px}.hub-card-body{font-size:13px;color:#fff9;font-weight:500;line-height:1.5;margin:0 0 16px}.hub-card-body strong{color:#ffffffd9}.hub-card-flow{font-size:11px;color:#ffffff80;font-weight:700;letter-spacing:.4px;text-transform:uppercase;margin-top:auto}.hub-roles{margin-top:48px;padding:24px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:16px}.hub-roles-eyebrow{font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:#34d399;margin-bottom:8px}.hub-roles-text{font-size:13px;color:#ffffffb3;line-height:1.7}.hub-roles-text strong{color:#fff}:root{--life-purple: #8B5CF6;--life-violet: #7C3AED;--life-blue: #2563EB;--life-blue-light:#3B82F6;--life-cyan: #06B6D4;--life-teal: #14B8A6;--life-emerald: #10B981;--life-emerald-deep:#059669;--life-emerald-light:#34D399;--life-green: var(--life-emerald);--life-green-deep:var(--life-emerald-deep);--life-yellow: #FACC15;--life-amber: #F59E0B;--life-red: #EF4444;--life-rose: #F43F5E;--life-slate-900: #0F172A;--life-slate-800: #1E293B;--life-slate-700: #334155;--life-navy: #19325A;--life-navy-deep: #0F1E3A;--life-gold: #C59D34;--life-gradient: linear-gradient(135deg, #1E293B 0%, #2563EB 50%, #10B981 100%);--life-gradient-radial: radial-gradient(circle at 30% 20%, #1E293B 0%, #2563EB 45%, #10B981 100%);--life-gradient-soft: linear-gradient(135deg, #E2E8F0 0%, #DBEAFE 50%, #D1FAE5 100%);--life-gradient-violet: linear-gradient(135deg, #1E293B 0%, #7C3AED 50%, #2563EB 100%);--neutral-0: #FFFFFF;--neutral-50: #F8FAFC;--neutral-100: #F1F5F9;--neutral-200: #E2E8F0;--neutral-300: #CBD5E1;--neutral-400: #94A3B8;--neutral-500: #64748B;--neutral-600: #475569;--neutral-700: #334155;--neutral-800: #1E293B;--neutral-900: #0F172A;--neutral-950: #020617;--bg: var(--neutral-0);--bg-subtle: var(--neutral-50);--bg-muted: var(--neutral-100);--bg-inverse: var(--neutral-900);--fg: var(--neutral-900);--fg-muted: var(--neutral-600);--fg-subtle: var(--neutral-500);--fg-inverse: var(--neutral-0);--border: var(--neutral-200);--border-strong:var(--neutral-300);--primary: var(--life-emerald);--primary-hover:var(--life-emerald-deep);--primary-fg: #FFFFFF;--accent: var(--life-blue);--accent-hover: #1D4ED8;--secondary: var(--life-slate-800);--success: var(--life-emerald);--warning: var(--life-amber);--danger: var(--life-red);--info: var(--life-blue);--quiz-correct: #15803D;--quiz-correct-bg: #DCFCE7;--quiz-wrong: #BE123C;--quiz-wrong-bg:#FFE4E6;--font-display: "Sora", "Plus Jakarta Sans", system-ui, sans-serif;--font-body: "Plus Jakarta Sans", "Sora", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--fs-xs: 12px;--fs-sm: 14px;--fs-base: 16px;--fs-md: 18px;--fs-lg: 20px;--fs-xl: 24px;--fs-2xl: 30px;--fs-3xl: 36px;--fs-4xl: 48px;--fs-5xl: 64px;--fs-6xl: 80px;--lh-tight: 1.1;--lh-snug: 1.25;--lh-base: 1.5;--lh-loose: 1.7;--tracking-tight: -.02em;--tracking-normal: 0;--tracking-wide: .04em;--tracking-wider: .12em;--sp-0: 0;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sp-16: 64px;--sp-20: 80px;--sp-24: 96px;--r-xs: 4px;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 20px;--r-2xl: 28px;--r-3xl: 36px;--r-pill: 999px;--shadow-xs: 0 1px 2px rgba(14, 30, 58, .06);--shadow-sm: 0 2px 8px rgba(14, 30, 58, .06), 0 1px 2px rgba(14, 30, 58, .04);--shadow-md: 0 8px 24px rgba(14, 30, 58, .08), 0 2px 6px rgba(14, 30, 58, .04);--shadow-lg: 0 18px 40px rgba(14, 30, 58, .12), 0 4px 10px rgba(14, 30, 58, .06);--shadow-xl: 0 32px 64px rgba(14, 30, 58, .16);--shadow-glow-green: 0 8px 28px rgba(34, 197, 94, .35);--shadow-glow-blue: 0 8px 28px rgba(59, 114, 224, .3);--shadow-glow-violet: 0 8px 28px rgba(123, 63, 184, .3);--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--dur-fast: .14s;--dur-base: .22s;--dur-slow: .38s;--dur-slower: .6s}[data-theme=dark],.theme-dark{--bg: var(--neutral-950);--bg-subtle: var(--neutral-900);--bg-muted: var(--neutral-800);--bg-inverse: var(--neutral-0);--fg: var(--neutral-0);--fg-muted: #B8C2D6;--fg-subtle: #7E8BA5;--fg-inverse: var(--neutral-900);--border: rgba(255,255,255,.1);--border-strong: rgba(255,255,255,.18);--primary: var(--life-green);--primary-hover: #34D77B;--primary-fg: #03210E;--shadow-sm: 0 2px 8px rgba(0,0,0,.4);--shadow-md: 0 8px 24px rgba(0,0,0,.5);--shadow-lg: 0 18px 40px rgba(0,0,0,.6)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-body);font-size:var(--fs-base);line-height:var(--lh-base);color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}button{font-family:inherit}.h-display,h1.display{font-family:var(--font-display);font-size:clamp(40px,6vw,var(--fs-6xl));font-weight:800;line-height:var(--lh-tight);letter-spacing:var(--tracking-tight);color:var(--fg)}h1,.h1{font-family:var(--font-display);font-size:var(--fs-4xl);font-weight:800;line-height:var(--lh-tight);letter-spacing:var(--tracking-tight);margin:0}h2,.h2{font-family:var(--font-display);font-size:var(--fs-3xl);font-weight:700;line-height:var(--lh-snug);letter-spacing:var(--tracking-tight);margin:0}h3,.h3{font-family:var(--font-display);font-size:var(--fs-2xl);font-weight:700;line-height:var(--lh-snug);margin:0}h4,.h4{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:600;line-height:var(--lh-snug);margin:0}h5,.h5{font-family:var(--font-body);font-size:var(--fs-lg);font-weight:600;line-height:var(--lh-snug);margin:0}.eyebrow,.label{font-family:var(--font-body);font-size:var(--fs-xs);font-weight:700;line-height:1;letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--fg-muted)}.text-gradient{background:var(--life-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}@keyframes spin{to{transform:rotate(360deg)}}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(-8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes pulseRing{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.85}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
