@import "https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:wght@500;700;800&family=DM+Sans:wght@400;500;700&display=swap";*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}:root{--font-display:"Bricolage Grotesque", sans-serif;--font-body:"DM Sans", sans-serif;--bg-base:#1a103a;--bg-app:linear-gradient(145deg, #1a103a, #261254 45%, #17284e);--text:#f8faff;--muted:#f8faffc7;--surface:#ffffff1f;--surface-strong:#ffffff2e;--border:#fff3;--focus:#ffffff3d;--shadow-card:0 20px 50px #07031157;--ring-track:#fff3;--ring-accent:#fbbf24;--ring-accent-alt:#a78bfa;--cta-gradient:linear-gradient(120deg, #facc15, #fb7185);--cta-text:#1f1035;--radius:18px;--gen-greatest:#d4a24a;--gen-silent:#94a3b8;--gen-boomers:#f59e0b;--gen-genx:#14b8a6;--gen-millennials:#8b5cf6;--gen-genz:#ec4899;--gen-alpha:#3b82f6;--gen-beta:#c4b5fd;--grad-greatest:linear-gradient(135deg, #2d1a45 0%, #4d2b6f 45%, #6e368f 100%);--grad-silent:linear-gradient(135deg, #111827 0%, #243244 50%, #334155 100%);--grad-boomers:linear-gradient(135deg, #3c1c08 0%, #7c2d12 52%, #b45309 100%);--grad-genx:linear-gradient(135deg, #073c43 0%, #0f766e 52%, #14b8a6 100%);--grad-millennials:linear-gradient(135deg, #2c0f4a 0%, #5b21b6 50%, #7c3aed 100%);--grad-genz:linear-gradient(135deg, #3f0b2f 0%, #9d174d 52%, #db2777 100%);--grad-alpha:linear-gradient(135deg, #0b2b59 0%, #1d4ed8 50%, #2563eb 100%);--grad-beta:linear-gradient(135deg, #251347 0%, #5b3aa5 52%, #8b5cf6 100%)}body{font-family:var(--font-body);color:var(--text);background:var(--bg-base);overflow-x:hidden}.app{background:var(--bg-app);min-height:100dvh;transition:background .7s}.screen{flex-direction:column;justify-content:center;min-height:100dvh;padding:1.8rem 1rem 2.4rem;display:flex}.landing-content{text-align:center;width:min(100%,700px);margin-inline:auto}.landing-title{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 .8rem;font-size:clamp(2.25rem,9vw,4rem)}.landing-title .highlight{background:linear-gradient(90deg,#f97316,#f43f5e,#22c55e);color:#0000;-webkit-background-clip:text}.landing-tagline{color:var(--muted);margin-bottom:1rem;line-height:1.6}.landing-shape-row{justify-content:center;gap:.65rem;margin-bottom:1.25rem;display:flex}.date-selector{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:1.1rem;display:grid}.select-wrapper select{background:var(--surface);border:1px solid var(--border);width:100%;color:var(--text);font:500 .98rem var(--font-body);border-radius:12px;padding:.85rem .7rem}.select-wrapper select:focus{outline:2px solid var(--focus)}.cta-button{background:var(--cta-gradient);color:var(--cta-text);font:700 1rem var(--font-display);cursor:pointer;border:0;border-radius:999px;padding:.88rem 1.55rem}.cta-button:disabled{opacity:.45;cursor:not-allowed}.reset-button{background:var(--surface-strong);color:var(--text);margin:1.5rem auto 0}.loading-content{text-align:center}.loading-rings{width:72px;height:72px;margin:0 auto 1.2rem;position:relative}.ring{border:4px solid var(--ring-track);border-top-color:var(--ring-accent);border-radius:999px;position:absolute;inset:0}.ring-inner{border-width:3px;border-top-color:var(--ring-accent-alt);inset:11px}.loading-message{font-family:var(--font-display);color:var(--muted)}.result-screen{justify-content:flex-start;gap:0;padding:0}.hero-card{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:32px 24px;display:flex;position:relative;overflow:hidden}.hero-card:before{content:"";background:#ffffff0a;border-radius:50%;width:300px;height:300px;position:absolute;top:-40%;right:-30%}.hero-card:after{content:"";background:#00000014;border-radius:50%;width:200px;height:200px;position:absolute;bottom:-20%;left:-20%}.hero-inner{z-index:1;flex-direction:column;align-items:center;display:flex;position:relative}.hero-brand-badge{text-transform:uppercase;letter-spacing:2px;color:#fff6;border:1px solid #ffffff26;border-radius:999px;margin-bottom:24px;padding:4px 14px;font-size:.6rem}.hero-shape{margin-bottom:18px;display:flex}.hero-gen-name{font-size:2.2rem;font-weight:800;font-family:var(--font-display);color:#fff;margin:0 0 6px;line-height:1.05}.hero-year-range{color:#ffffff8c;margin:0 0 24px;font-size:.9rem}.hero-divider{background:#fff3;width:40px;height:1.5px;margin-bottom:24px}.hero-age-number{font-size:3.2rem;font-weight:800;font-family:var(--font-display);color:#fff;line-height:1}.hero-age-label{text-transform:uppercase;letter-spacing:.1em;color:#fff6;margin-bottom:24px;font-size:.7rem}.hero-aka{color:#ffffff59;max-width:260px;margin:0 0 16px;font-size:.75rem;font-style:italic;line-height:1.4}.hero-url{color:#fff3;letter-spacing:.5px;font-size:.6rem}.hero-scroll-hint{color:#ffffff4d;z-index:1;font-size:.7rem;animation:2s ease-in-out infinite bobDown;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}@keyframes bobDown{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(4px)}}.result-details{flex-direction:column;gap:1rem;width:min(100%,700px);margin-inline:auto;padding:1.5rem 1rem 2.4rem;display:flex}.result-card{border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#05061847;padding:1.35rem}.result-description{margin:0 0 .8rem;line-height:1.5}.result-section{text-align:left;margin-top:.85rem}.result-section h3{letter-spacing:.08em;text-transform:uppercase;opacity:.82;margin:0 0 .5rem;font-size:.78rem}.tag-list{flex-wrap:wrap;gap:.4rem;display:flex}.tag{background:#fff3;border-radius:999px;padding:.28rem .7rem;font-size:.82rem}.tag-outline{background:0 0;border:1px solid #ffffff57}.birth-year-card,.gift-section,.timeline-wrapper{border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#05061847;padding:1.1rem}.byc-title,.gift-title,.timeline-title{font-family:var(--font-display);margin:0 0 .85rem}.byc-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;display:grid}.byc-item{background:#ffffff14;border-radius:12px;padding:.7rem}.byc-item h4{text-transform:uppercase;opacity:.8;margin:0 0 .3rem;font-size:.75rem}.byc-item p{margin:0;font-size:.9rem;line-height:1.45}.gift-row{flex-direction:column;gap:.5rem;display:flex}.gift-card{color:inherit;border-left:4px solid var(--gift-accent);background:#ffffff14;border-radius:12px;flex-direction:row;justify-content:space-between;align-items:center;gap:.5rem;padding:.75rem .9rem;text-decoration:none;display:flex}.gift-card-text{flex:1}.gift-card h3{margin:0 0 .15rem;font-size:.88rem;font-weight:700}.gift-card p{color:var(--muted);margin:0;font-size:.78rem;line-height:1.35}.gift-arrow{opacity:.6;flex-shrink:0;font-size:.95rem}.timeline-list{flex-direction:column;padding-left:26px;display:flex;position:relative}.timeline-list:before{content:"";background:#ffffff26;width:1.5px;position:absolute;top:10px;bottom:10px;left:7px}.timeline-item{align-items:flex-start;gap:10px;padding:7px 0;display:flex;position:relative}.timeline-dot{z-index:1;background:0 0;border:2px solid #fff3;border-radius:50%;flex-shrink:0;width:15px;height:15px;margin-top:2px;margin-left:-26px}.timeline-item.active .timeline-dot{border-color:var(--tl-color);background:var(--tl-color);box-shadow:0 0 12px var(--tl-color)}.timeline-item-content{flex:1;align-items:center;gap:8px;display:flex}.timeline-item-text{flex-direction:column;display:flex}.timeline-gen-name{font:700 .78rem var(--font-display);color:#ffffff80}.timeline-gen-range{color:#ffffff4d;font-size:.68rem}.timeline-item.active{background:#ffffff0a;border-radius:10px;margin:-2px -10px -2px -26px;padding:9px 10px 9px 26px}.timeline-item.active .timeline-gen-name{color:#fff;font-size:.88rem}.timeline-item.active .timeline-gen-range{color:#ffffffa6}.timeline-you-badge{font-family:var(--font-body);color:#fff;background:#0000004d;border-radius:999px;margin-top:3px;padding:2px 8px;font-size:.62rem;display:inline-block}.edge-case-message{text-align:center;width:min(100%,520px);margin:auto}.edge-case-message h2{font-family:var(--font-display);margin-bottom:.4rem}.edge-case-message p{color:var(--muted);margin-bottom:1rem}@media (width<=640px){.byc-grid{grid-template-columns:1fr}}
