/* ------------------------------------------------------------------ */ /* Hero card layout */ /* ------------------------------------------------------------------ */ .hero-card { padding: var(--space-2xl); width: 100%; display: grid; grid-template-columns: 200px 1fr; gap: var(--space-xl); align-items: center; animation: fadeInUp 0.8s var(--ease-out-expo); } .hero-details { display: flex; flex-direction: row; gap: var(--space-sm); align-items: flex-start; width: 100%; justify-content: flex-start; } .hero-main-column { display: flex; flex-direction: column; gap: var(--space-xl); flex: 1 1 auto; min-width: 0; } /* ------------------------------------------------------------------ */ /* Name / description / quote */ /* ------------------------------------------------------------------ */ .name { font-size: var(--text-2xl); font-weight: 700; margin-bottom: var(--space-sm); background: var(--accent-gradient-text); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; letter-spacing: -0.5px; } /* Terminal caret — blinks subtly after the name */ /* Tech chips for the skill tags line */ .tech-tags { display: flex; flex-wrap: wrap; gap: var(--space-xs); margin-bottom: var(--space-sm); } .tech-tag { display: inline-flex; align-items: center; padding: var(--space-2xs) var(--space-sm); font-size: var(--text-xs); font-weight: 500; color: var(--text-color-light); background: rgba(255, 255, 255, 0.05); border: 1px solid var(--surface-divider); border-radius: var(--radius-pill); letter-spacing: 0.02em; transition: background var(--dur-fast) var(--ease-out-soft), color var(--dur-fast) var(--ease-out-soft); } /* Styled pull-quote (the Lain line) */ .quote { display: block; margin-top: var(--space-sm); margin-bottom: var(--space-lg); padding-left: var(--space-md); font-size: var(--text-sm); color: var(--text-color-mid); font-style: italic; border-left: 2px solid var(--primary-500); line-height: 1.5; } /* ------------------------------------------------------------------ */ /* Social links */ /* ------------------------------------------------------------------ */ .social-links { display: flex; gap: var(--space-md); flex-wrap: wrap; justify-content: center; align-items: center; margin-top: var(--space-sm); position: relative; } .social-link { display: inline-flex; align-items: center; gap: var(--space-sm); transition: transform var(--dur-fast) var(--ease-out-soft), box-shadow var(--dur-fast) var(--ease-out-soft); } .social-link:hover { transform: translateY(-2px); } /* ------------------------------------------------------------------ */ /* Email tooltip (consolidated — was duplicated in original CSS) */ /* ------------------------------------------------------------------ */ .email-tooltip { position: absolute; left: 50%; top: -32px; transform: translateX(-50%) scale(1); background: rgba(20, 22, 32, 0.96); color: #fff; padding: var(--space-xs) var(--space-md); border-radius: var(--radius-sm); border: 1px solid var(--glass-border); font-size: var(--text-sm); font-weight: 500; box-shadow: var(--shadow-md); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity var(--dur-fast) var(--ease-out-soft), transform var(--dur-fast) var(--ease-out-soft); z-index: 10; white-space: nowrap; } .email-tooltip.is-visible { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(-75%); } .email-tooltip::after { content: ""; position: absolute; bottom: -5px; left: 50%; transform: translateX(-50%) rotate(45deg); width: 8px; height: 8px; background: rgba(20, 22, 32, 0.96); border-right: 1px solid var(--glass-border); border-bottom: 1px solid var(--glass-border); } /* ------------------------------------------------------------------ */ /* Responsive */ /* ------------------------------------------------------------------ */ @media (max-width: 1024px) { .hero-details { flex-direction: column; gap: var(--space-xl); } .hero-card { grid-template-columns: 1fr; text-align: center; } .hero-main-column { width: 100%; align-items: stretch; } } @media (max-width: 768px) { .hero-card { grid-template-columns: 1fr; gap: var(--space-xl); padding: var(--space-xl) var(--space-lg); text-align: center; } .name { font-size: var(--text-xl); } .social-links { justify-content: center; gap: var(--space-sm); } } @media (max-width: 480px) { .hero-card { padding: var(--space-lg) var(--space-md); } .name { font-size: var(--text-lg); } .social-links { gap: var(--space-xs); } .social-link { padding: var(--space-sm) var(--space-md); font-size: var(--text-xs); min-width: 0; flex: 1; max-width: calc(50% - 6px); justify-content: center; } .social-link span { display: none; } .social-link i { font-size: 16px; } } @media (max-width: 380px) { .social-link { max-width: calc(100% / 2 - 6px); padding: var(--space-sm); } }