:root{--brand:#c84b31;--brand-dark:#a83c26;--bg:#fdfbf7;--card:#ffffff;--text:#2d3142;--muted:#6b7280;--border:#e7e2d8;--error-bg:#fdecea;--error-text:#9b1c1c}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5}.shell{min-height:100dvh;display:grid;place-items:center;padding:24px}.card{width:100%;max-width:380px;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:32px;box-shadow:0 6px 24px rgba(45,49,66,.06)}.brand{font-weight:700;color:var(--brand);letter-spacing:-.01em;margin-bottom:20px;font-size:15px}h1{font-size:22px;margin:0 0 6px;letter-spacing:-.02em}.muted{color:var(--muted);font-size:14px;margin:4px 0}.stack{gap:14px;margin-top:20px}.stack,label{display:flex;flex-direction:column}label{gap:6px;font-size:13px;font-weight:600}input,label{color:var(--text)}input{font:inherit;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#fff}input:focus{outline:2px solid color-mix(in srgb,var(--brand) 45%,transparent);border-color:var(--brand)}button{font:inherit;font-weight:600;padding:11px 14px;border-radius:10px;border:1px solid transparent;background:var(--brand);color:#fff;cursor:pointer}button:hover:not(:disabled){background:var(--brand-dark)}button:disabled{opacity:.6;cursor:default}button.secondary{background:#fff;color:var(--text);border-color:var(--border)}.error{background:var(--error-bg);color:var(--error-text);font-size:13px;padding:10px 12px;border-radius:10px}a{color:var(--brand);font-weight:600;text-decoration:none}a:hover{text-decoration:underline}.scopes{list-style:none;padding:0;margin:12px 0;display:flex;flex-direction:column;gap:6px}.scopes li{font-size:13px;color:var(--text);padding:8px 12px;background:var(--bg);border:1px solid var(--border);border-radius:8px}.row{display:flex;gap:10px}.row button{flex:1 1}.hub{min-height:100dvh;display:flex;flex-direction:column;align-items:center;position:relative;overflow-x:hidden;color:#ffffff;background:linear-gradient(rgba(10,8,20,.25),rgba(10,8,20,.45)),url(/dreamfamily-aurora-bg.jpg) no-repeat 50% fixed;background-size:cover}.hub-wordmark{font-size:3.25rem;font-weight:700;letter-spacing:-.03em;text-align:center;margin:5rem 2rem 3.5rem;text-shadow:0 4px 20px rgba(0,0,0,.35)}.hub-dream{color:#ffb3d9}.hub-family-word{color:#ffffff}.hub-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:2.5rem;gap:2.5rem;width:100%;max-width:1100px;padding:0 2rem;margin-bottom:4rem}.hub-card{background:rgba(255,255,255,.06);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-color:rgba(255,255,255,.3) rgba(255,255,255,.15) rgba(255,255,255,.15) rgba(255,255,255,.3);border-style:solid;border-width:1px;border-radius:28px;padding:3.5rem 2rem;text-decoration:none;color:inherit;display:flex;flex-direction:column;align-items:center;text-align:center;box-shadow:0 20px 40px rgba(0,0,0,.25),inset 0 0 20px rgba(255,255,255,.03);transition:all .4s cubic-bezier(.16,1,.3,1)}.hub-card:hover{text-decoration:none;transform:translateY(-10px);background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.3);box-shadow:0 30px 60px rgba(0,0,0,.35),inset 0 0 30px rgba(255,255,255,.06)}.hub-icon{width:88px;height:88px;border-radius:44px;display:flex;align-items:center;justify-content:center;margin-bottom:1.75rem;background:rgba(255,255,255,.08);box-shadow:0 8px 20px rgba(0,0,0,.15);padding:.9rem;transition:transform .4s cubic-bezier(.16,1,.3,1)}.hub-card:hover .hub-icon{transform:scale(1.08);background:rgba(255,255,255,.15)}.hub-icon img{width:100%;height:100%;object-fit:contain;border-radius:14px;filter:drop-shadow(0 4px 6px rgba(0,0,0,.25))}.hub-card-title{font-size:1.75rem;font-weight:600;margin-bottom:.75rem;letter-spacing:-.01em;text-shadow:0 2px 10px rgba(0,0,0,.25)}.hub-card-desc{font-size:1.05rem;line-height:1.55;color:rgba(255,255,255,.85);margin:0}.hub-footer{margin-top:auto;padding:3rem 2rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.9rem}.hub-ml-logo{object-fit:contain;filter:drop-shadow(0 4px 12px rgba(0,0,0,.35))}.hub-ml-text{font-size:.95rem;color:rgba(255,255,255,.75);font-weight:500;letter-spacing:.05em}