/* ── Warm colour palette ──────────────────────────────── */ :root { --surface-1-light: #faf8f4; --surface-2-light: #f0ece4; --text-1-light: #1a1614; --text-2-light: #6b6258; --border-light: #ccc4b8; --surface-1-dark: #0d0b09; --surface-2-dark: #3d3631; --text-1-dark: #f7f3ee; --text-2-dark: #9e948a; --border-dark: #5c5249; } /* ── Hero ─────────────────────────────────────────────── */ section.hero { position: relative; overflow: hidden; width: 100%; height: 100vh; padding: 0; margin: 0 0 5rem; } .hero-bg { position: absolute; top: -30%; left: 0; width: 100%; height: 160%; background-position: center; background-size: cover; background-repeat: no-repeat; will-change: transform; } .hero-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(0, 0, 0, 0.6) 0%, transparent 45%), linear-gradient(to top, rgba(0, 0, 0, 0.35) 0%, transparent 20%); } .hero-fg { position: relative; z-index: 1; width: 100%; height: 100%; display: flex; flex-direction: column; justify-content: space-between; align-items: center; will-change: transform; } /* ── Hero content ─────────────────────────────────────── */ .hero-content { padding: 4rem 2rem 0; text-align: center; max-width: 900px; width: 100%; } .hero-content h1 { font-family: 'Cormorant Garant', Georgia, serif; color: #faf8f4; font-weight: 300; font-style: italic; font-size: clamp(3.5rem, 9vw, 8rem); line-height: 1.0; text-wrap: balance; letter-spacing: 0.04em; margin-bottom: 1.25rem; animation: hero-fade-up 1s cubic-bezier(0.16, 1, 0.3, 1) both; } .hero-content p { color: rgba(250, 248, 244, 0.8); font-size: 0.8125rem; line-height: 1.6; letter-spacing: 0.12em; text-transform: uppercase; text-wrap: balance; animation: hero-fade-up 1s cubic-bezier(0.16, 1, 0.3, 1) 0.15s both; } /* ── Scroll arrow ─────────────────────────────────────── */ .hero-scroll { padding-bottom: 2rem; color: rgba(250, 250, 250, 0.6); animation: hero-fade-in 0.6s ease 0.6s both; } .hero-scroll-icon { display: block; animation: hero-bounce 2s ease-in-out 1.2s infinite; } .hero-scroll svg { width: 1.75rem; height: 1.75rem; display: block; } /* ── Intro text section ───────────────────────────────── */ .home-intro { max-width: 600px; margin: 0 auto 5rem; padding: 0 1.5rem; text-align: center; } .home-intro .prose p { color: var(--text-2); font-size: 1rem; line-height: 1.85; margin-top: 1em; margin-bottom: 1em; } .home-intro .prose p:first-child { margin-top: 0; } /* ── Keyframes ────────────────────────────────────────── */ @keyframes hero-fade-up { from { opacity: 0; transform: translateY(1.5rem); } to { opacity: 1; transform: translateY(0); } } @keyframes hero-fade-in { from { opacity: 0; } to { opacity: 1; } } @keyframes hero-bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(7px); } }