@charset "utf-8";

@font-face { font-family: "Playfair Display"; src: url("../fonts/PlayfairDisplay-VariableFont_wght.woff2") format("woff2-variations"), url("../fonts/PlayfairDisplay-VariableFont_wght.woff2") format("woff2"), url("../fonts/PlayfairDisplay-VariableFont_wght.ttf") format("truetype-variations"), url("../fonts/PlayfairDisplay-VariableFont_wght.ttf") format("truetype"); font-weight: 400 900; font-style: normal; font-display: swap; }

@font-face { font-family: "Playfair Display"; src: url("../fonts/PlayfairDisplay-Italic-VariableFont_wght.woff2") format("woff2-variations"), url("../fonts/PlayfairDisplay-Italic-VariableFont_wght.woff2") format("woff2"), url("../fonts/PlayfairDisplay-Italic-VariableFont_wght.ttf") format("truetype-variations"), url("../fonts/PlayfairDisplay-Italic-VariableFont_wght.ttf") format("truetype"); font-weight: 400 900; font-style: italic; font-display: swap; }

@font-face { font-family: "DM Sans"; src: url("../fonts/DMSans-VariableFont_opsz_wght.woff2") format("woff2-variations"), url("../fonts/DMSans-VariableFont_opsz_wght.woff2") format("woff2"), url("../fonts/DMSans-VariableFont_opsz_wght.ttf") format("truetype-variations"), url("../fonts/DMSans-VariableFont_opsz_wght.ttf") format("truetype"); font-weight: 100 1000; font-style: normal; font-display: swap; }

@font-face { font-family: "DM Sans"; src: url("../fonts/DMSans-Italic-VariableFont_opsz_wght.woff2") format("woff2-variations"), url("../fonts/DMSans-Italic-VariableFont_opsz_wght.woff2") format("woff2"), url("../fonts/DMSans-Italic-VariableFont_opsz_wght.ttf") format("truetype-variations"), url("../fonts/DMSans-Italic-VariableFont_opsz_wght.ttf") format("truetype"); font-weight: 100 1000; font-style: italic; font-display: swap; }

@font-face { font-family: "DM Mono"; src: url("../fonts/DMMono-Light.woff2") format("woff2"), url("../fonts/DMMono-Light.ttf") format("truetype"); font-weight: 300; font-style: normal; font-display: swap; }

@font-face { font-family: "DM Mono"; src: url("../fonts/DMMono-LightItalic.woff2") format("woff2"), url("../fonts/DMMono-LightItalic.ttf") format("truetype"); font-weight: 300; font-style: italic; font-display: swap; }

@font-face { font-family: "DM Mono"; src: url("../fonts/DMMono-Regular.woff2") format("woff2"), url("../fonts/DMMono-Regular.ttf") format("truetype"); font-weight: 400; font-style: normal; font-display: swap; }

@font-face { font-family: "DM Mono"; src: url("../fonts/DMMono-Italic.woff2") format("woff2"), url("../fonts/DMMono-Italic.ttf") format("truetype"); font-weight: 400; font-style: italic; font-display: swap; }

@font-face { font-family: "DM Mono"; src: url("../fonts/DMMono-Medium.woff2") format("woff2"), url("../fonts/DMMono-Medium.ttf") format("truetype"); font-weight: 500; font-style: normal; font-display: swap; }

@font-face { font-family: "DM Mono"; src: url("../fonts/DMMono-MediumItalic.woff2") format("woff2"), url("../fonts/DMMono-MediumItalic.ttf") format("truetype"); font-weight: 500; font-style: italic; font-display: swap; }

:root { --onyx: #0A0A0A; --antique-gold: #BEA87D; --midnight-navy: #1B2A4A; --warm-white: #FAFAF8; --parchment: #F5F0E8; --charcoal: #1A1A1A; --warm-gray: #888780; --stone: #D3D1C7; --slate: #3A3A3A; --antique-gold-hover: #D4C49A; --bg: var(--onyx); --bg-alt: #050505; --bg-card: var(--charcoal); --bg-navy: var(--midnight-navy); --fg: var(--warm-white); --fg-muted: var(--warm-gray); --fg-faint: rgba(255, 255, 255, 0.35); --fg-disclaimer: rgba(255, 255, 255, 0.15); --accent: var(--antique-gold); --accent-faint: rgba(190, 168, 125, 0.15); --border: rgba(255, 255, 255, 0.06); --border-strong: rgba(255, 255, 255, 0.12); --hairline: rgba(255, 255, 255, 0.04); --light-bg: var(--warm-white); --light-bg-alt: var(--parchment); --light-fg: var(--charcoal); --light-fg-muted: var(--warm-gray); --light-border: var(--stone); --font-display: 'Playfair Display', 'EB Garamond', Georgia, serif; --font-body: 'DM Sans', 'Plus Jakarta Sans', system-ui, sans-serif; --font-mono: 'DM Mono', 'JetBrains Mono', ui-monospace, monospace; --fs-hero: clamp(52px, 8vw, 120px); --fs-display: clamp(42px, 5vw, 72px); --fs-h1: clamp(36px, 4vw, 56px); --fs-h2: 28px; --fs-h3: 22px; --fs-perf: clamp(36px, 4vw, 52px); --fs-lead: 22px; --fs-body-lg: 17px; --fs-body: 15px; --fs-small: 14px; --fs-caption: 13px; --fs-label: 11px; --fs-disclaimer: 10px; --track-display: -1px; --track-h1: -0.5px; --track-label: 4px; --track-mono: 2px; --track-tag: 5px; --lh-tight: 1.05; --lh-display: 1.15; --lh-snug: 1.3; --lh-body: 1.7; --lh-loose: 1.9; --lh-very-loose: 2; --fw-light: 300; --fw-regular: 400; --fw-medium: 500; --fw-semibold: 600; --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-5: 20px; --space-6: 24px; --space-7: 32px; --space-8: 40px; --space-9: 48px; --space-10: 60px; --space-11: 80px; --space-12: 100px; --space-13: 140px; --radius-0: 0px; --radius-sm: 3px; --radius-md: 10px; --radius-pill: 20px; --container-max: 1400px; --container-pad: 5%; --ease-editorial: cubic-bezier(0.16, 1, 0.3, 1); --dur-fast: 0.2s; --dur-base: 0.3s; --dur-slow: 0.4s; --dur-entrance: 1s; --shadow-none: none; --hover-lift: translateY(-4px); --hover-lift-lg: translateY(-6px); --blur-nav: blur(16px); }

html { scroll-behavior: smooth; }

body { background-color: var(--bg); color: var(--fg); font-family: var(--font-body); font-weight: var(--fw-light); line-height: var(--lh-body); -webkit-font-smoothing: antialiased; }

.gem-hero, h1.gem-hero { font-family: var(--font-display); font-size: var(--fs-hero); font-weight: var(--fw-medium); line-height: var(--lh-tight); letter-spacing: -2px; color: var(--fg); }

.gem-hero em { color: var(--accent); font-style: italic; }

.gem-display, h2.gem-display { font-family: var(--font-display); font-size: var(--fs-display); font-weight: var(--fw-medium); line-height: var(--lh-display); letter-spacing: var(--track-h1); color: var(--fg); }

h1, .gem-h1 { font-family: var(--font-display); font-size: var(--fs-h1); font-weight: var(--fw-medium); line-height: var(--lh-display); color: var(--fg); letter-spacing: var(--track-h1); }

h2, .gem-h2 { font-family: var(--font-display); font-size: var(--fs-h2); font-weight: var(--fw-medium); line-height: var(--lh-snug); color: var(--fg); }

h3, .gem-h3 { font-family: var(--font-display); font-size: var(--fs-h3); font-weight: var(--fw-medium); line-height: var(--lh-snug); color: var(--fg); }

.gem-section-label { font-family: var(--font-mono); font-size: var(--fs-label); font-weight: var(--fw-medium); letter-spacing: var(--track-label); color: var(--accent); text-transform: uppercase; display: inline-block; }

.gem-data-label { font-family: var(--font-mono); font-size: var(--fs-disclaimer); letter-spacing: 3px; color: var(--fg-muted); text-transform: uppercase; }

.gem-perf { font-family: var(--font-display); font-size: var(--fs-perf); font-weight: var(--fw-medium); color: var(--fg); line-height: 1; }

.gem-perf span { font-size: 0.55em; color: rgba(255, 255, 255, 0.2); }

.gem-lead, p.lead { font-family: var(--font-display); font-size: var(--fs-lead); font-weight: var(--fw-regular); color: var(--fg); line-height: 1.6; }

p, .gem-body { font-size: var(--fs-body); line-height: var(--lh-loose); color: var(--fg-muted); font-weight: var(--fw-light); }

.gem-caption { font-size: var(--fs-caption); color: var(--fg-faint); line-height: var(--lh-body); }

.gem-disclaimer { font-size: var(--fs-disclaimer); color: var(--fg-disclaimer); line-height: var(--lh-loose); text-align: center; }

.gem-tag { font-family: var(--font-body); font-size: var(--fs-body); font-weight: var(--fw-regular); letter-spacing: var(--track-tag); text-transform: uppercase; color: var(--fg); }

.gem-gold-line { width: 2px; height: 80px; background: var(--accent); display: block; }

.gem-emphasis, em.gem-emphasis { color: var(--accent); font-style: italic; font-family: var(--font-display); }