/* Lyxoire Media — Design Tokens */ :root { /* Palette — warm, editorial */ --bg: #faf9f6; --bg-soft: #f4f3f1; --bg-sand: #E5E3DC; --bg-dark: #1a1714; --bg-dark-2: #2a2520; --bg-dark-3: #38322C; --ink: #1a1714; --ink-2: #4e4637; --ink-3: #5f5e5c; --ink-4: #8a8580; --ink-muted: #b8b3ac; --taupe: #7E746B; --taupe-soft: #a89d92; --sand: #c8bfb3; --gold: #B99010; --gold-light: #d4a853; --gold-dark: #7b5804; --gold-ink: #4a3604; --line: rgba(26,23,20,0.08); --line-strong: rgba(26,23,20,0.14); --line-dark: rgba(255,255,255,0.10); /* Type */ --font-serif: 'DM Serif Display', 'Cormorant Garamond', Georgia, serif; --font-sans: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; /* Rhythm */ --r-1: 4px; --r-2: 8px; --r-3: 12px; --r-4: 16px; --r-5: 24px; --r-6: 32px; --r-7: 48px; --r-8: 64px; --r-9: 96px; --r-10: 128px; --radius-sm: 4px; --radius: 10px; --radius-lg: 18px; --radius-xl: 24px; --shadow-sm: 0 2px 8px rgba(26,23,20,0.04), 0 1px 2px rgba(26,23,20,0.04); --shadow-md: 0 20px 40px -12px rgba(26,23,20,0.10), 0 6px 14px -6px rgba(26,23,20,0.06); --shadow-lg: 0 40px 80px -20px rgba(26,23,20,0.18), 0 12px 24px -8px rgba(26,23,20,0.08); --shadow-gold: 0 20px 40px -12px rgba(185,144,16,0.25), 0 8px 16px -8px rgba(185,144,16,0.18); --container: 1280px; --container-narrow: 960px; --ease: cubic-bezier(0.22, 1, 0.36, 1); } * { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } body { font-family: var(--font-sans); font-size: 16px; line-height: 1.6; color: var(--ink); background: var(--bg); font-feature-settings: "ss01", "cv11"; } a { color: inherit; text-decoration: none; } button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; } img { max-width: 100%; display: block; } h1, h2, h3, h4, h5, h6 { font-family: var(--font-serif); font-weight: 400; letter-spacing: -0.01em; line-height: 1.08; color: var(--ink); } h1 { font-size: clamp(52px, 7vw, 108px); } h2 { font-size: clamp(36px, 4.4vw, 64px); line-height: 1.04; } h3 { font-size: clamp(24px, 2.2vw, 32px); line-height: 1.15; } h4 { font-size: 20px; line-height: 1.3; } .eyebrow { font-family: var(--font-sans); font-weight: 600; font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--gold-dark); display: inline-flex; align-items: center; gap: 10px; } .eyebrow::before { content: ""; width: 28px; height: 1px; background: var(--gold); } .eyebrow.no-line::before { display: none; } .eyebrow.on-dark { color: var(--gold-light); } .eyebrow.on-dark::before { background: var(--gold-light); } .container { max-width: var(--container); margin: 0 auto; padding: 0 32px; } .container-narrow { max-width: var(--container-narrow); margin: 0 auto; padding: 0 32px; } section { padding: clamp(72px, 10vw, 140px) 0; } /* Buttons */ .btn { display: inline-flex; align-items: center; gap: 10px; padding: 16px 28px; font-family: var(--font-sans); font-weight: 600; font-size: 14px; letter-spacing: 0.06em; text-transform: uppercase; border-radius: 999px; transition: all 0.3s var(--ease); position: relative; cursor: pointer; white-space: nowrap; } .btn-primary { background: var(--ink); color: var(--bg); border: 1px solid var(--ink); } .btn-primary:hover { background: var(--gold-dark); border-color: var(--gold-dark); transform: translateY(-1px); } .btn-gold { background: linear-gradient(135deg, #d4a853, #B99010); color: #fff; border: 1px solid transparent; box-shadow: var(--shadow-gold); } .btn-gold:hover { transform: translateY(-2px); box-shadow: 0 30px 50px -14px rgba(185,144,16,0.35); } .btn-ghost { background: transparent; color: var(--ink); border: 1px solid var(--line-strong); } .btn-ghost:hover { background: var(--ink); color: var(--bg); border-color: var(--ink); } .btn-ghost-light { background: transparent; color: var(--bg); border: 1px solid rgba(255,255,255,0.25); } .btn-ghost-light:hover { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.5); } .btn .arrow { transition: transform 0.3s var(--ease); } .btn:hover .arrow { transform: translateX(4px); } /* Link with arrow */ .link-gold { color: var(--gold-dark); font-weight: 600; font-size: 14px; letter-spacing: 0.04em; display: inline-flex; align-items: center; gap: 8px; border-bottom: 1px solid transparent; padding-bottom: 2px; transition: all 0.25s var(--ease); } .link-gold:hover { border-color: var(--gold); gap: 12px; } .section-head { max-width: 780px; margin-bottom: clamp(48px, 6vw, 80px); } .section-head .eyebrow { margin-bottom: 20px; } .section-head p { color: var(--ink-3); font-size: 18px; line-height: 1.65; margin-top: 20px; max-width: 640px; } .accent { color: var(--gold-dark); font-style: italic; } .accent-gold { color: var(--gold); } /* Fade-in on scroll */ .reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.9s var(--ease), transform 0.9s var(--ease); } .reveal.in { opacity: 1; transform: none; } /* Logo wordmark */ .logo-mark { font-family: var(--font-serif); font-size: 22px; letter-spacing: 0.18em; color: var(--ink); } .logo-mark .accent-dot { color: var(--gold); } .logo-mark.light { color: var(--bg); } /* Noise / grain overlay helper */ .grain::before { content: ""; position: absolute; inset: 0; background-image: url("data:image/svg+xml;utf8,"); opacity: 0.05; pointer-events: none; mix-blend-mode: multiply; } @media (max-width: 720px) { .container, .container-narrow { padding: 0 20px; } section { padding: 72px 0; } }